From ee082a91de5ff2e117a21421d4bcc42e9b81f2af Mon Sep 17 00:00:00 2001 From: cquest Date: Sun, 20 Nov 2016 11:16:13 +0100 Subject: [PATCH] optimisation INSERT geo --- backend.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/backend.py b/backend.py index effad58..aacd24b 100644 --- a/backend.py +++ b/backend.py @@ -112,10 +112,9 @@ class EventsResource(BaseEvent): class EventResource(BaseEvent): def maybe_insert_geometry(self, geometry, cur): # insert into geo table if not existing - cur.execute("""INSERT INTO geo (hash, geom, geom_center) - SELECT *, st_centroid(geom) FROM - (SELECT md5(ewkt) as hash, st_setsrid(st_geomfromewkt(ewkt),4326) as geom FROM - (SELECT st_asewkt(st_geomfromgeojson( %s )) as ewkt) as g) as i + cur.execute("""INSERT INTO geo + SELECT geom, md5(st_asewkt(geom)) as hash, st_centroid(geom) as geom_center FROM + (SELECT st_setsrid(st_geomfromgeojson( %s ),4326) as geom) as g WHERE ST_IsValid(geom) ON CONFLICT DO NOTHING RETURNING hash;""", (geometry,))