EPrints Technical Mailing List Archive

Message: #02521


< Previous (by date) | Next (by date) > | < Previous (in thread) | Next (in thread) > | Messages - Most Recent First | Threads - Most Recent First

[EP-tech] Re: Understanding how data objects link


On 15/01/14 12:30, Ian Stuart wrote:
On 15/01/14 12:02, Sebastien Francois wrote:
On 15/01/14 12:00, Ian Stuart wrote:
Yes!! good hint!
That sent me off to look at the History dataObj - and that showed that I
needed:

		{ name=>"datasetid", type=>"text", text_index=>0, },
Just a detail - /datasetid/ should be of type "id" not "text"
Nope - text

In DataObj::SubObject::get_parent -

   $datasetid = $self->get_value( "datasetid" ) unless defined $datasetid;
   $objectid = $self->get_value( "objectid" ) unless defined $objectid;

   my $ds = $session->get_repository->get_dataset( $datasetid );
   my $parent = $ds->get_object( $session, $objectid );

.... and both of these calls are looking for string names

(but I'll test some more)


"Id" doesn't imply "numerical" - Id fields don't get text indexed and are retrieved via an EXact match.

===

perldoc EPrints/MetaField/Id.pm:


EPrints::MetaField::Id(3) User Contributed Perl Documentation EPrints::MetaField::Id(3)


NAME
       EPrints::MetaField::Id - an identifier string

DESCRIPTION
Use Id fields whenever you are storing textual data that needs to be matched exactly (e.g. filenames).

===

See User::username for a real example.



Note that a number of fields in EPrints are wrongly of type "text" (e.g. eprint.dir, eprint.source etc...)

Seb.