From ae5324716b50484f269a74e11c0afddd6232b45e Mon Sep 17 00:00:00 2001 From: Tessa Conway Date: Mon, 5 Sep 2016 17:33:37 +0100 Subject: [PATCH] Fix generic query so limiting of data happens upfront and not at the end - performance improvement --- repository/models/queries/generic.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/repository/models/queries/generic.py b/repository/models/queries/generic.py index a52aa8d..d972a4c 100644 --- a/repository/models/queries/generic.py +++ b/repository/models/queries/generic.py @@ -84,20 +84,24 @@ SELECT ?{id_name} (MAX(?when) AS ?last_modified) WHERE {{ - ?{id_name} a {class} . - OPTIONAL {{ ?{id_name} dcterm:modified ?when }} - - {filter} + {{ SELECT ?{id_name} {{ + ?{id_name} a {class} . + OPTIONAL {{ ?{id_name} dcterm:modified ?when }} + + {filter} + }} LIMIT {page_size} + OFFSET {offset} + }} + OPTIONAL {{ ?{id_name} dcterm:modified ?when }} }} GROUP BY ?{id_name} }} {extra_query} }} ORDER BY ?last_modified -LIMIT {page_size} -OFFSET {offset} """ + INSERT_DATA = """ INSERT DATA { %s