Add test for extracting candidate primary keys from geometryless view

This commit is contained in:
Sandro Santilli 2019-11-08 11:13:02 +01:00
parent 6b82917715
commit ea970d9ef1
2 changed files with 18 additions and 1 deletions

View File

@ -111,6 +111,14 @@ class TestPyQgsProviderConnectionPostgres(unittest.TestCase, TestPyQgsProviderCo
self.assertFalse('geometries_table' in table_names)
self.assertFalse('geometries_view' in table_names)
tables = conn.tables('qgis_test', QgsAbstractDatabaseProviderConnection.Aspatial | QgsAbstractDatabaseProviderConnection.View)
table_names = self._table_names(tables)
b32523_view = self._table_by_name(tables, 'b32523')
self.assertTrue(b32523_view)
pks = b32523_view.primaryKeyColumns()
self.assertTrue('pk' in pks)
self.assertTrue('random' in pks)
geometries_table = self._table_by_name(conn.tables('qgis_test'), 'geometries_table')
srids_and_types = [[t.crs.postgisSrid(), t.wkbType]
for t in geometries_table.geometryColumnTypes()]

View File

@ -661,4 +661,13 @@ CREATE VIEW qgis_test.some_poly_data_shift_bbox AS
--
CREATE TABLE qgis_test.b31799_test_table AS (SELECT (ST_DumpPoints(ST_GeneratePoints(ST_Expand('SRID=4326;POINT(0 0)'::geometry,90),10))).geom, random());
CREATE VIEW qgis_test.b31799_test_view_ctid AS (SELECT ctid, geom, random() FROM qgis_test.b31799_test_table, pg_sleep(0.1));
CREATE VIEW qgis_test.b31799_test_view_ctid AS (SELECT ctid, geom, random() FROM qgis_test.b31799_test_table, pg_sleep(0.1));
---------------------------------------------
--
-- Geometryless view
-- See https://github.com/qgis/QGIS/issues/32523
--
CREATE VIEW qgis_test.b32523 AS
SELECT pk, random()
FROM qgis_test.some_poly_data;