From 71a659ccfd47950e7c95b3106f8d3bec37d5f14d Mon Sep 17 00:00:00 2001 From: Paul Norman Date: Wed, 15 Jan 2025 14:58:47 -0800 Subject: [PATCH] Add a debug comment to first line of SQL This makes it easier to see what the queries are from --- tests/test_config.py | 4 ++-- tests/test_definition.py | 8 ++++---- tilekiln/definition.py | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/test_config.py b/tests/test_config.py index fd8445f..393e340 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -170,13 +170,13 @@ def test_render(self): self.assertIsNone(layer.render_sql(Tile(5, 0, 0))) self.assertIsNone(layer.render_sql(Tile(7, 0, 0))) - self.assertEqual(layer.render_sql(Tile(4, 0, 0)), '''WITH mvtgeom AS + self.assertEqual(layer.render_sql(Tile(4, 0, 0)), '''WITH mvtgeom AS -- foo/4/0/0 ( one ) SELECT ST_AsMVT(mvtgeom.*, 'foo', 4096) FROM mvtgeom;''') - self.assertEqual(layer.render_sql(Tile(6, 0, 0)), '''WITH mvtgeom AS + self.assertEqual(layer.render_sql(Tile(6, 0, 0)), '''WITH mvtgeom AS -- foo/6/0/0 ( two ) diff --git a/tests/test_definition.py b/tests/test_definition.py index 98be2bc..ce9d965 100644 --- a/tests/test_definition.py +++ b/tests/test_definition.py @@ -45,7 +45,7 @@ def test_render(self): fs.writetext("one.sql.jinja2", "SELECT 1") d = Definition("one", {"minzoom": 1, "maxzoom": 3, "extent": 1024, "buffer": 8, "file": "one.sql.jinja2"}, fs) - expected = '''WITH mvtgeom AS + expected = '''WITH mvtgeom AS -- one/2/0/0 ( SELECT 1 ) @@ -57,7 +57,7 @@ def test_render(self): "{{unbuffered_bbox}}\n{{extent}}\n{{buffer}}") d = Definition("two", {"minzoom": 1, "maxzoom": 3, "extent": 1024, "buffer": 256, "file": "two.sql.jinja2"}, fs) - expected = '''WITH mvtgeom AS + expected = '''WITH mvtgeom AS -- two/2/0/1 ( SELECT 2/0/1 ST_TileEnvelope(2, 0, 1, margin=>0.25) @@ -74,7 +74,7 @@ def test_render(self): d = Definition("units", {"minzoom": 1, "maxzoom": 3, "extent": 1024, "buffer": 256, "file": "units.sql.jinja2"}, fs) # Crudely slice up the string to turn it into numbers - expected = '''WITH mvtgeom AS + expected = '''WITH mvtgeom AS -- units/2/0/1 ( 10018754.17 100375435118892.39 @@ -89,7 +89,7 @@ def test_render(self): d = Definition("whitespace", {"minzoom": 1, "maxzoom": 3, "extent": 1024, "buffer": 256, "file": "whitespace.sql.jinja2"}, fs) # Crudely slice up the string to turn it into numbers - expected = '''WITH mvtgeom AS + expected = '''WITH mvtgeom AS -- whitespace/2/0/1 ( foo bar diff --git a/tilekiln/definition.py b/tilekiln/definition.py index 65171c8..0ae8d06 100644 --- a/tilekiln/definition.py +++ b/tilekiln/definition.py @@ -58,8 +58,8 @@ def render_sql(self, tile: Tile) -> str: coordinate_area=(tile_length(tile)/self.extent)**2) # TODO: Use proper escaping for self.id in SQL - return ('''WITH mvtgeom AS\n(\n''' + inner + '''\n)\n''' + - f'''SELECT ST_AsMVT(mvtgeom.*, '{self.id}', {self.extent})\n''' + + return (f'''WITH mvtgeom AS -- {self.id}/{tile.zoom}/{tile.x}/{tile.y}\n(\n''' + + inner + f'''\n)\nSELECT ST_AsMVT(mvtgeom.*, '{self.id}', {self.extent})\n''' + '''FROM mvtgeom;''')