Skip to content

Commit 7dcb274

Browse files
committed
File metrics fixes
/monthly to only count when files are first added to a version (and not add to the count when they are republished in a new version) /toMonth and / - count files available in prior released versions (but removed from the latest) as well as all of those in the latest version (as of the given date)
1 parent 8f697d2 commit 7dcb274

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

src/main/java/edu/harvard/iq/dataverse/metrics/MetricsServiceBean.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -288,11 +288,18 @@ public JsonArray filesTimeSeries(Dataverse d) {
288288
+ "from (\n"
289289
+ "select min(to_char(COALESCE(releasetime, createtime), 'YYYY-MM')) as date, filemetadata.id as id\n"
290290
+ "from datasetversion, filemetadata\n"
291-
+ "where datasetversion.id=filemetadata.datasetversion_id\n"
292-
+ "and versionstate='RELEASED' \n"
293-
+ "and dataset_id in (select dataset.id from dataset, dvobject where dataset.id=dvobject.id\n"
291+
+ "where datasetversion.id = filemetadata.datasetversion_id\n"
292+
+ "and datasetversion.versionstate = 'RELEASED'\n"
293+
+ "and dataset_id in (select dataset.id from dataset, dvobject where dataset.id = dvobject.id\n"
294294
+ "and dataset.harvestingclient_id IS NULL and publicationdate is not null\n "
295295
+ ((d == null) ? ")" : "and dvobject.owner_id in (" + getCommaSeparatedIdStringForSubtree(d, "Dataverse") + "))\n ")
296+
+ "and filemetadata.id = (\n"
297+
+ " select min(fm.id)\n"
298+
+ " from filemetadata fm\n"
299+
+ " join datasetversion dv on dv.id = fm.datasetversion_id\n"
300+
+ " where fm.datafile_id = filemetadata.datafile_id\n"
301+
+ " and dv.versionstate = 'RELEASED'\n"
302+
+ ")\n"
296303
+ "group by filemetadata.id) as subq group by subq.date order by date;");
297304
logger.log(Level.FINE, "Metric query: {0}", query);
298305
List<Object[]> results = query.getResultList();
@@ -314,8 +321,9 @@ public long filesToMonth(String yyyymm, Dataverse d) {
314321
+ "select DISTINCT ON (datasetversion.dataset_id) datasetversion.id \n"
315322
+ "from datasetversion\n"
316323
+ "join dataset on dataset.id = datasetversion.dataset_id\n"
324+
+ "join filemetadata fm on fm.datasetversion_id = datasetversion.id\n"
317325
+ ((d == null) ? "" : "join dvobject on dvobject.id = dataset.id\n")
318-
+ "where versionstate='RELEASED'\n"
326+
+ "where versionstate='RELEASED' and filemetadata.datafile_id=fm.datafile_id\n"
319327
+ ((d == null) ? "" : "and dvobject.owner_id in (" + getCommaSeparatedIdStringForSubtree(d, "Dataverse") + ")\n")
320328
+ "and date_trunc('month', releasetime) <= to_date('" + yyyymm + "','YYYY-MM')\n"
321329
+ "and dataset.harvestingclient_id is null\n"

0 commit comments

Comments
 (0)