Hi. I have a problem with custom metadata registry. I make a new registry
"local" and make the element "local.type".

 

When I try to make statistics generation (stat-general or stat-initial or
stat-monthly) I get an error.

 

C:\dspace>dspace stat-monthly
Using DSpace installation in: C:\dspace
Exception: ОШИБКА: подзапрос в выражении вернул больше одной строки
org.postgresql.util.PSQLException: ОШИБКА: подзапрос в выражении вернул
больше одной строки
        at
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorI
mpl.java:1531)
        at
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.ja
va:1313)
        at
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188)
        at
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.j
ava:452)
        at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2St
atement.java:354)
        at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statem
ent.java:258)
        at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingP
reparedStatement.java:96)
        at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingP
reparedStatement.java:96)
        at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingP
reparedStatement.java:96)
        at
org.dspace.storage.rdbms.DatabaseManager.query(DatabaseManager.java:284)
        at
org.dspace.storage.rdbms.DatabaseManager.querySingle(DatabaseManager.java:33
0)
        at
org.dspace.app.statistics.LogAnalyser.getNumItems(LogAnalyser.java:1255)
        at
org.dspace.app.statistics.LogAnalyser.processLogs(LogAnalyser.java:498)
        at
org.dspace.app.statistics.CreateStatReport.statMonthly(CreateStatReport.java
:181)
        at
org.dspace.app.statistics.CreateStatReport.main(CreateStatReport.java:121)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
org.dspace.app.launcher.ScriptLauncher.main(ScriptLauncher.java:183)

 

I think system searches all fields *.type and get 2 fields (sorry, I have
Russian output in my postgres).

 

This query works bad:

SELECT COUNT(*) AS num FROM item WHERE in_archive = TRUE AND withdrawn =
FALSE  AND item_id IN ( SELECT item_id FROM metadatavalue WHERE
metadata_field_id = ( SELECT etadata_field_id  FROM metadatafieldregistry
WHERE element = 'date'  AND qualifier = 'accessioned')  AND
text_value::TIMESTAMP > '2013-12-01'::TIMESTAMP  AND text_value::TIMESTAMP <
'2013-12-31'::TIMESTAMP )  AND item_id IN ( SELECT item_id FROM
metadatavalue WHERE text_value LIKE '%Thesis or Dissertation%' AND
metadata_field_id = ( SELECT metadata_field_id  FROM metadatafieldregistry
WHERE element = 'type'  AND qualifier IS NULL) );

 

This query works fine:

SELECT COUNT(*) AS num FROM item WHERE in_archive = TRUE AND withdrawn =
FALSE  AND item_id IN ( SELECT item_id FROM metadatavalue WHERE
metadata_field_id = ( SELECT metadata_field_id  FROM metadatafieldregistry
WHERE element = 'date'  AND qualifier = 'accessioned')  AND
text_value::TIMESTAMP > '2014-08-01'::TIMESTAMP  AND text_value::TIMESTAMP <
'2014-08-31'::TIMESTAMP )  AND item_id IN ( SELECT item_id FROM
metadatavalue WHERE text_value LIKE '%Thesis or Dissertation%' AND
metadata_field_id = ( SELECT metadata_field_id  FROM metadatafieldregistry
WHERE element = 'type'  AND qualifier IS NULL LIMIT 1)

 

I have this error in 1.8.x and in 3.x versions.

 

------------------------------------------------------------------------------
_______________________________________________
DSpace-tech mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-tech
List Etiquette: https://wiki.duraspace.org/display/DSPACE/Mailing+List+Etiquette

Reply via email to