[EP-tech] Re: Configuration may be wrong

Sebastien Francois sf2 at ecs.soton.ac.uk
Mon Jul 30 11:41:29 BST 2012


On 30/07/12 11:35, Robert Berry wrote:
> Hi Seb,
>
> Thanks, that has fixed it! I will keep an eye on this and report back
> any errors that occur given the change.
Great! Yes it'd be nice if you could tell us if you spot any errors 
related to this.

>
> This modification could possibly break repositories using MySQL,
> however, which does treat '' and NULL as different.

You're right - we will probably fix this in the core as:

push @sql_and, $db->quote_identifier( $table, $col_name 
).$db->sql_NotNull();

Then in Database.pm:

sub sql_NotNull { return " != '' " }

And in Database/Oracle.pm:

sub sql_NotNull { return " IS NOT NULL " }


Feel free to test the above patch.

Seb.


>
> Best wishes,
> Rob
>
> Sebastien Francois<sf2 at ecs.soton.ac.uk>  writes:
>
>> Hi Rob,
>>
>> Have a look into : perl_lib/EPrints/Search/Condition/IsNotNull.pm, and
>> search for:
>>
>>                  push @sql_and,
>>                           $db->quote_identifier( $table, $col_name )." !=
>> ''";
>>
>> Perhaps you can try to replace " != ''" with " IS NOT NULL " there (then
>> restart Apache&  test again)?
>>
>> I don't know if this could break other things in the system though.
>>
>> Seb.
>>
>> On 30/07/12 10:48, Robert Berry wrote:
>>> Hi Seb,
>>>
>>> The problem is with the Oracle layer.
>>>
>>> Immediately preceding the error message is the following SQL:
>>>
>>> Database execute debug: SELECT DISTINCT D0,D1 FROM (SELECT "DISTINCTBY_188303376"."DIVISIONS" D0,"DISTINCTBY_188303376"."EPRINTID" D1 FROM "EPRINT", "EPRINT_DIVISIONS" "DISTINCTBY_188303376", "EPRINT_DIVISIONS" "EPRINT_DIVISIONS" WHERE "EPRINT"."EPRINTID"="DISTINCTBY_188303376"."EPRINTID" AND "EPRINT"."EPRINTID"="EPRINT_DIVISIONS"."EPRINTID" AND "EPRINT"."METADATA_VISIBILITY" = 'show' AND "EPRINT"."EPRINT_STATUS" = 'archive' AND ( "EPRINT_DIVISIONS"."DIVISIONS" != '')) D
>>> Warning! No values were found for eprint.view.divisions [divisions] - configuration may be wrong
>>>
>>> This SQL will *never* return results. This is because Oracle treats the
>>> empty string '' as equivalent to NULL, so the statement
>>> "EPRINT_DIVISIONS.DIVISIONS != ''" breaks it. If you try running either
>>> of the following statements against the database,
>>>
>>> SELECT * FROM EPRINT_DIVISIONS WHERE divisions = NULL;
>>> SELECT * FROM EPRINT_DIVISIONS WHERE divisions = '';
>>>
>>> or
>>>
>>> SELECT * FROM EPRINT_DIVISIONS WHERE divisions != NULL;
>>> SELECT * FROM EPRINT_DIVISIONS WHERE divisions != '';
>>>
>>> An empty result set will be returned. This is very bizarre, I know, but
>>> the layer needs to use 'IS NULL' or 'IS NOT NULL' in those scenarios.
>>>
>>> To whom do I need to speak about fixing this?
>>>
>>> Best wishes,
>>> Rob
>>>
>>>
>>> Robert Berry<robert.berry at liverpool.ac.uk>   writes:
>>>
>>>> Hi Seb,
>>>>
>>>> Sorry, never mind that last e-mail. The data isn't wrong - everything
>>>> looks right. Still unsure why the script won't generate the divisions
>>>> view, however, as I definitely have prints with those divisions set. I
>>>> will do some more digging - thanks for your advice.
>>>>
>>>> Best wishes, Rob
>>>>
>>>> Robert Berry<robert.berry at liverpool.ac.uk>   writes:
>>>>
>>>>> Hi Seb,
>>>>>
>>>>> I tried reindexing and it gave no errors. It's still not working, though.
>>>>>
>>>>> I looked at the SQL that was being used in the generate_views script,
>>>>> and it is using SUBJECT__ORDER_VALUES_EN as part of its look up for the
>>>>> subjects / divisions. The data in here is wrong though - it relates to
>>>>> the old set of subjects. Is there a way to repopulate this table? Do you
>>>>> know why it might not have been populated?
>>>>>
>>>>> Best wishes,
>>>>> Rob
>>>>>
>>>>> Sebastien Francois<sf2 at ecs.soton.ac.uk>   writes:
>>>>>
>>>>>> Hi Rob,
>>>>>>
>>>>>> I think this means you've asked EPrints to generate a 'view' on
>>>>>> 'subjects', however no EPrint objects / publications have got a subject
>>>>>> set. In other words, your 'view' will be empty.
>>>>>>
>>>>>> I can't comment much about the Oracle error except that when you
>>>>>> imported your subjects file, EPrints must have requested to re-index the
>>>>>> "subjects" dataset and this is probably what this error relates to (but
>>>>>> I cannot tell you any implications this will have...). You may try to:
>>>>>>
>>>>>> /opt/eprints3/bin/epadmin reindex<archive_id>   subject
>>>>>>
>>>>>> and see what happens.
>>>>>>
>>>>>> Seb.
>>>>>>
>>>>>> On 27/07/12 16:57, Robert Berry wrote:
>>>>>>> Hello,
>>>>>>>
>>>>>>> What does it mean when I run the bin/generate_views script, and it gives
>>>>>>> an error like --
>>>>>>>
>>>>>>> Wrote: /eprints/eprints3/archives/liverpool/html/en/view/year
>>>>>>> Warning! No values were found for eprint.view.subjects [subjects] -
>>>>>>> configuration may be wrong
>>>>>>>
>>>>>>> What configuration? Where?
>>>>>>>
>>>>>>> I've imported a new subjects file. It gave a bunch of Oracle errors-
>>>>>>>
>>>>>>> ORA-01722: invalid number (DBD ERROR: error possibly near<*>    indicator
>>>>>>> at char 52 in 'INSERT INTO "EVENT_QUEUE" ("EVENTQUEUEID") VALUES
>>>>>>> (:<*>p1)') at /eprints/eprints3/bin/../perl_lib/EPrints/DataObj.pm line
>>>>>>> 294
>>>>>>>
>>>>>>> -so I guess it could be related to that. The subjects are in the
>>>>>>>     database, table, however, and look correct.
>>>>>>>
>>>>>>> Best wishes, Rob
>>>>>>> *** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
>>>>>>> *** Archive: http://www.eprints.org/tech.php/
>>>>>>> *** EPrints community wiki: http://wiki.eprints.org/
>>>>>> *** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
>>>>>> *** Archive: http://www.eprints.org/tech.php/
>>>>>> *** EPrints community wiki: http://wiki.eprints.org/
>>>>> *** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
>>>>> *** Archive: http://www.eprints.org/tech.php/
>>>>> *** EPrints community wiki: http://wiki.eprints.org/
>>>> *** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
>>>> *** Archive: http://www.eprints.org/tech.php/
>>>> *** EPrints community wiki: http://wiki.eprints.org/
>>> *** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
>>> *** Archive: http://www.eprints.org/tech.php/
>>> *** EPrints community wiki: http://wiki.eprints.org/
>> *** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
>> *** Archive: http://www.eprints.org/tech.php/
>> *** EPrints community wiki: http://wiki.eprints.org/
> *** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
> *** Archive: http://www.eprints.org/tech.php/
> *** EPrints community wiki: http://wiki.eprints.org/



More information about the Eprints-tech mailing list