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