mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-07 00:15:48 -04:00
parent
d921c20f58
commit
ffad801fad
@ -1376,6 +1376,25 @@ class TestPyQgsPostgresProvider(unittest.TestCase, ProviderTestCase):
|
||||
self.assertEqual(vl.featureCount(), 4000)
|
||||
print("--- %s seconds ---" % (time.time() - start_time))
|
||||
|
||||
def testFilterOnCustomBbox(self):
|
||||
extent = QgsRectangle(-68, 70, -67, 80)
|
||||
request = QgsFeatureRequest().setFilterRect(extent)
|
||||
dbconn = 'dbname=\'qgis_test\''
|
||||
uri = '%s srid=4326 key="pk" sslmode=disable table="qgis_test"."some_poly_data_shift_bbox" (geom)' % (dbconn)
|
||||
|
||||
def _test(vl, ids):
|
||||
values = {feat['pk']: 'x' for feat in vl.getFeatures(request)}
|
||||
expected = {x: 'x' for x in ids}
|
||||
self.assertEqual(values, expected)
|
||||
|
||||
vl = QgsVectorLayer(uri, "testgeom", "postgres")
|
||||
self.assertTrue(vl.isValid())
|
||||
_test(vl, [2, 3])
|
||||
|
||||
vl = QgsVectorLayer(uri + ' bbox=shiftbox', "testgeom", "postgres")
|
||||
self.assertTrue(vl.isValid())
|
||||
_test(vl, [1, 3])
|
||||
|
||||
|
||||
class TestPyQgsPostgresProviderCompoundKey(unittest.TestCase, ProviderTestCase):
|
||||
|
||||
|
15
tests/testdata/provider/testdata_pg.sql
vendored
15
tests/testdata/provider/testdata_pg.sql
vendored
@ -638,3 +638,18 @@ INSERT INTO qgis_test.geometries_table VALUES
|
||||
CREATE VIEW qgis_test.geometries_view AS (SELECT * FROM qgis_test.geometries_table);
|
||||
|
||||
CREATE TABLE qgis_test.geometryless_table (name VARCHAR, value INTEGER);
|
||||
|
||||
---------------------------------------------
|
||||
--
|
||||
-- View with separate bbox field
|
||||
--
|
||||
|
||||
CREATE VIEW qgis_test.some_poly_data_shift_bbox AS
|
||||
SELECT pk,
|
||||
geom,
|
||||
ST_Translate(
|
||||
ST_Envelope(geom),
|
||||
ST_XMax(ST_Envelope(geom)) - ST_XMin(ST_Envelope(geom)),
|
||||
0.0
|
||||
) AS shiftbox
|
||||
FROM qgis_test.some_poly_data;
|
||||
|
Loading…
x
Reference in New Issue
Block a user