EPrints Technical Mailing List Archive

See the EPrints wiki for instructions on how to join this mailing list and related information.

Message: #00918


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

[EP-tech] Re: Configuration may be wrong


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@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@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@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@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/