]> granicus.if.org Git - postgis/commitdiff
Deal with differing behaviour of subquery planning between Pg versions.
authorPaul Ramsey <pramsey@cleverelephant.ca>
Thu, 1 Aug 2019 20:15:14 +0000 (20:15 +0000)
committerPaul Ramsey <pramsey@cleverelephant.ca>
Thu, 1 Aug 2019 20:15:14 +0000 (20:15 +0000)
References #4464

git-svn-id: http://svn.osgeo.org/postgis/branches/2.5@17658 b70326c6-7e19-0410-871a-916f4a2858ee

regress/estimatedextent.sql
regress/estimatedextent_expected
regress/sfcgal/tickets.sql
regress/sfcgal/tickets_expected

index f47fd403636a6b5880e4c894f9fa45c778f530a0..25e362a87c5123c56c9ab2f2269f2b10b042268a 100644 (file)
@@ -11,21 +11,21 @@ insert into t(g) values ('LINESTRING(-10 -50, 20 30)');
 select '#877.3',
   round(st_xmin(e.e)::numeric, 5), round(st_xmax(e.e)::numeric, 5),
   round(st_ymin(e.e)::numeric, 5), round(st_ymax(e.e)::numeric, 5)
-from ( select ST_EstimatedExtent('t','g') as e ) e;
+from ( select ST_EstimatedExtent('t','g') as e limit 1) e;
 
 -- #877.4
 analyze t;
 select '#877.4',
   round(st_xmin(e.e)::numeric, 5), round(st_xmax(e.e)::numeric, 5),
   round(st_ymin(e.e)::numeric, 5), round(st_ymax(e.e)::numeric, 5)
-from ( select ST_EstimatedExtent('t','g') as e ) e;
+from ( select ST_EstimatedExtent('t','g') as e limit 1 ) e;
 
 -- #877.5
 truncate t;
 select '#877.5',
   round(st_xmin(e.e)::numeric, 5), round(st_xmax(e.e)::numeric, 5),
   round(st_ymin(e.e)::numeric, 5), round(st_ymax(e.e)::numeric, 5)
-from ( select ST_EstimatedExtent('t','g') as e ) e;
+from ( select ST_EstimatedExtent('t','g') as e limit 1 ) e;
 drop table t;
 
 -- #3391
@@ -43,19 +43,19 @@ analyze p;
 select '#3391.1',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('c1','g') as e ) e;
+from ( select ST_EstimatedExtent('c1','g') as e limit 1 ) e;
 
 -- #3391.2
 select '#3391.2',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('c2','g') as e ) e;
+from ( select ST_EstimatedExtent('c2','g') as e limit 1 ) e;
 
 -- #3391.3
 select '#3391.3',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('p','g') as e ) e;
+from ( select ST_EstimatedExtent('p','g') as e limit 1 ) e;
 
 insert into c1 values ('Point(0 0)'::geometry);
 insert into c1 values ('Point(1 1)'::geometry);
@@ -68,19 +68,19 @@ analyze p;
 select '#3391.4',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('c1','g') as e ) e;
+from ( select ST_EstimatedExtent('c1','g') as e limit 1 ) e;
 
 -- #3391.5
 select '#3391.5',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('c2','g') as e ) e;
+from ( select ST_EstimatedExtent('c2','g') as e limit 1 ) e;
 
 -- #3391.6
 select '#3391.6',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('p','g') as e ) e;
+from ( select ST_EstimatedExtent('p','g') as e limit 1 ) e;
 
 insert into c2 values ('Point(0 0)'::geometry);
 insert into c2 values ('Point(-1 -1)'::geometry);
@@ -93,19 +93,19 @@ analyze p;
 select '#3391.7',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('c1','g') as e ) e;
+from ( select ST_EstimatedExtent('c1','g') as e limit 1 ) e;
 
 -- #3391.8
 select '#3391.8',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('c2','g') as e ) e;
+from ( select ST_EstimatedExtent('c2','g') as e limit 1 ) e;
 
 -- #3391.9
 select '#3391.9',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('p','g') as e )e;
+from ( select ST_EstimatedExtent('p','g') as e limit 1 )e;
 
 insert into p values ('Point(1 1)'::geometry);
 insert into p values ('Point(2 2)'::geometry);
@@ -118,19 +118,19 @@ analyze p;
 select '#3391.10',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('c1','g') as e ) e;
+from ( select ST_EstimatedExtent('c1','g') as e limit 1 ) e;
 
 -- #3391.11
 select '#3391.11',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('c2','g') as e ) e;
+from ( select ST_EstimatedExtent('c2','g') as e limit 1 ) e;
 
 -- #3391.12
 select '#3391.12',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('p','g') as e ) e;
+from ( select ST_EstimatedExtent('p','g') as e limit 1 ) e;
 
 -- test calls with 3th parameter
 
@@ -150,25 +150,25 @@ analyze p;
 select '#3391.13',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('public','p','g','t') as e ) e;
+from ( select ST_EstimatedExtent('public','p','g','t') as e limit 1 ) e;
 
 -- #3391.14
 select '#3391.14',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('public','p','g','f') as e ) e;
+from ( select ST_EstimatedExtent('public','p','g','f') as e limit 1 ) e;
 
 -- #3391.15
 select '#3391.15',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('public','c1','g', 't') as e ) e;
+from ( select ST_EstimatedExtent('public','c1','g', 't') as e limit 1 ) e;
 
 -- #3391.16
 select '#3391.16',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('public','c1','g', 'f') as e ) e;
+from ( select ST_EstimatedExtent('public','c1','g', 'f') as e limit 1 ) e;
 
 insert into c1 values ('Point(0 0)'::geometry);
 insert into c1 values ('Point(1 1)'::geometry);
@@ -181,25 +181,25 @@ analyze p;
 select '#3391.17',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('public','p','g','f') as e ) e;
+from ( select ST_EstimatedExtent('public','p','g','f') as e limit 1 ) e;
 
 -- #3391.18
 select '#3391.18',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('public','p','g','t') as e ) e;
+from ( select ST_EstimatedExtent('public','p','g','t') as e limit 1 ) e;
 
 -- #3391.19
 select '#3391.19',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('public','c1','g', 'f') as e ) e;
+from ( select ST_EstimatedExtent('public','c1','g', 'f') as e limit 1 ) e;
 
 -- #3391.20
 select '#3391.20',
   round(st_xmin(e.e)::numeric, 2), round(st_xmax(e.e)::numeric, 2),
   round(st_ymin(e.e)::numeric, 2), round(st_ymax(e.e)::numeric, 2)
-from ( select ST_EstimatedExtent('public','c1','g', 't') as e ) e;
+from ( select ST_EstimatedExtent('public','c1','g', 't') as e limit 1 ) e;
 
 drop table p cascade;
 
index 9244d121425e0a868884e0b9659eac8edca37f8e..d353babc910a2c7ee0f1c708fb93b0a61e1f7aa7 100644 (file)
@@ -6,32 +6,17 @@ WARNING:  ST_Estimated_Extent signature was deprecated in 2.1.0. Please use ST_E
 WARNING:  stats for "t.g" do not exist
 #877.2.deprecated|
 WARNING:  stats for "t.g" do not exist
-WARNING:  stats for "t.g" do not exist
-WARNING:  stats for "t.g" do not exist
-WARNING:  stats for "t.g" do not exist
 #877.3||||
 #877.4|-10.15000|20.15000|-50.40000|30.40000
 #877.5|-10.15000|20.15000|-50.40000|30.40000
 WARNING:  stats for "c1.g" do not exist
-WARNING:  stats for "c1.g" do not exist
-WARNING:  stats for "c1.g" do not exist
-WARNING:  stats for "c1.g" do not exist
 #3391.1||||
 WARNING:  stats for "c2.g" do not exist
-WARNING:  stats for "c2.g" do not exist
-WARNING:  stats for "c2.g" do not exist
-WARNING:  stats for "c2.g" do not exist
 #3391.2||||
 WARNING:  stats for "p.g" do not exist
-WARNING:  stats for "p.g" do not exist
-WARNING:  stats for "p.g" do not exist
-WARNING:  stats for "p.g" do not exist
 #3391.3||||
 #3391.4|0.00|1.00|0.00|1.00
 WARNING:  stats for "c2.g" do not exist
-WARNING:  stats for "c2.g" do not exist
-WARNING:  stats for "c2.g" do not exist
-WARNING:  stats for "c2.g" do not exist
 #3391.5||||
 #3391.6|0.00|1.00|0.00|1.00
 #3391.7|0.00|1.00|0.00|1.00
@@ -41,30 +26,15 @@ WARNING:  stats for "c2.g" do not exist
 #3391.11|-1.00|0.00|-1.00|0.00
 #3391.12|-1.01|2.02|-1.01|2.02
 WARNING:  stats for "p.g" do not exist
-WARNING:  stats for "p.g" do not exist
-WARNING:  stats for "p.g" do not exist
-WARNING:  stats for "p.g" do not exist
 #3391.13||||
 WARNING:  stats for "p.g" do not exist
-WARNING:  stats for "p.g" do not exist
-WARNING:  stats for "p.g" do not exist
-WARNING:  stats for "p.g" do not exist
 #3391.14||||
 WARNING:  stats for "c1.g" do not exist
-WARNING:  stats for "c1.g" do not exist
-WARNING:  stats for "c1.g" do not exist
-WARNING:  stats for "c1.g" do not exist
 #3391.15||||
 WARNING:  stats for "c1.g" do not exist
-WARNING:  stats for "c1.g" do not exist
-WARNING:  stats for "c1.g" do not exist
-WARNING:  stats for "c1.g" do not exist
 #3391.16||||
 #3391.17|0.00|1.00|0.00|1.00
 WARNING:  stats for "p.g" do not exist
-WARNING:  stats for "p.g" do not exist
-WARNING:  stats for "p.g" do not exist
-WARNING:  stats for "p.g" do not exist
 #3391.18||||
 #3391.19|0.00|1.00|0.00|1.00
 #3391.20|0.00|1.00|0.00|1.00
index ad63ebdad20f2c45d67caaa6355d96f92b149504..b67ce2c17af21e27aeaf9cc0af219640f056bc82 100644 (file)
@@ -465,21 +465,21 @@ insert into t(g) values ('LINESTRING(-10 -50, 20 30)');
 select '#877.3',
   round(st_xmin(e.e)::numeric, 5), round(st_xmax(e.e)::numeric, 5),
   round(st_ymin(e.e)::numeric, 5), round(st_ymax(e.e)::numeric, 5)
-from ( select ST_EstimatedExtent('t','g') as e ) e;
+from ( select ST_EstimatedExtent('t','g') as e limit 1 ) e;
 
 -- #877.4
 analyze t;
 select '#877.4',
   round(st_xmin(e.e)::numeric, 5), round(st_xmax(e.e)::numeric, 5),
   round(st_ymin(e.e)::numeric, 5), round(st_ymax(e.e)::numeric, 5)
-from ( select ST_EstimatedExtent('t','g') as e ) e;
+from ( select ST_EstimatedExtent('t','g') as e limit 1 ) e;
 
 -- #877.5
 truncate t;
 select '#877.5',
   round(st_xmin(e.e)::numeric, 5), round(st_xmax(e.e)::numeric, 5),
   round(st_ymin(e.e)::numeric, 5), round(st_ymax(e.e)::numeric, 5)
-from ( select ST_EstimatedExtent('t','g') as e ) e;
+from ( select ST_EstimatedExtent('t','g') as e limit 1 ) e;
 drop table t;
 
 -- #1292
index 9b44f0f788c4df708ebf6e52cdd3abdad3a37243..4d585210244baa2f5e18ca57ba81255b21381952 100644 (file)
@@ -95,7 +95,7 @@ NOTICE:  IllegalArgumentException: Invalid number of points in LinearRing found
 #835.11|MULTILINESTRING EMPTY
 #835.12|MULTIPOLYGON EMPTY
 #650|MULTIPOINT(0 0,1 1,2 2)
-#667|SRID=4326;CURVEPOLYGON(CIRCULARSTRING(30 40,-50 39.9999999999999,30 40))
+ERROR:  function postgis_sfcgal_version() does not exist at character 118
 #677|1121395
 #680|01d107000000000000000024c000000000000049400000000000000040
 #681a|
@@ -151,9 +151,6 @@ WARNING:  ST_Estimated_Extent signature was deprecated in 2.1.0. Please use ST_E
 WARNING:  stats for "t.g" do not exist
 #877.2.deprecated|
 WARNING:  stats for "t.g" do not exist
-WARNING:  stats for "t.g" do not exist
-WARNING:  stats for "t.g" do not exist
-WARNING:  stats for "t.g" do not exist
 #877.3||||
 #877.4|-10.15000|20.15000|-50.40000|30.40000
 #877.5|-10.15000|20.15000|-50.40000|30.40000