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

Sebastien Francois sf2 at ecs.soton.ac.uk
Wed Jan 15 12:42:24 GMT 2014


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.



More information about the Eprints-tech mailing list