Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

geoindex: panic when trying to insert object with NaN coordinate #81609

Closed
cockroach-teamcity opened this issue May 21, 2022 · 6 comments · Fixed by #106671
Closed

geoindex: panic when trying to insert object with NaN coordinate #81609

cockroach-teamcity opened this issue May 21, 2022 · 6 comments · Fixed by #106671
Assignees
Labels
C-test-failure Broken test (automatically or manually discovered). O-roachtest O-robot Originated from a bot. T-sql-queries SQL Queries Team

Comments

@cockroach-teamcity
Copy link
Member

cockroach-teamcity commented May 21, 2022

roachtest.sqlsmith/setup=rand-tables/setting=no-ddl failed with artifacts on release-21.2 @ 2bd5952ed0db3dc898c0d75eb50bc65c26feef04:

						*
					FROM
						(VALUES (NULL), (NULL), (NULL), (7.429673887640251493E+26:::DECIMAL)) AS tab_140445 (col_214839)
				),
			with_44972 (col_214840)
				AS (
					SELECT
						*
					FROM
						(VALUES (NULL), ('\xe29883':::BYTES), ('\x94b4':::BYTES), ('\xf3ff':::BYTES)) AS tab_140446 (col_214840)
				)
		SELECT
			tab_140448.col1_2 AS col_214841,
			'10:24:07.603288':::TIME AS col_214842,
			(-0.3989618420600891):::FLOAT8 AS col_214843,
			st_rotatex('0105000000060000000102000000020000002CF565DB1790F041C2509EC57231F2411C1E119D614AE7C166AFF2D39B030142010200000003000000809745B2972CF84160399714F897E241E0D03302F1C6D6410EFC89BE9FE20042F83C7FD5C4ACD6411854CBFDFF42DE41010200000004000000C4A695BE1FC2FD411CE9BCE66C42D8C142F59F55FD7800424C0D1238165FE041A07574B08DC0D94170D034F5A969EB41D843A641FF49E741B6F0864FF80E0242010200000004000000781D60294113F2412C338441624C02C2100451CE196BED41525C0281389BEEC11430818C69A2EF415C09A4FD752D024200E4B02D00CB9341C047BBFE74DDE44101020000000400000040B0B6B74C96A0C162D23CFAACB8E7C11CD943F294E9E5C187C18248646102C2709F7E29F32AC4C160D1A56EC799FAC1607737DC4662E941ADC9125B944FF6C1010200000004000000F097AF975517F441714AF1717A16F0C15442BA391710F841BEBE416B6780F241E01C9C5F7602B6413CC620A0C9C3E14140E714D68300E2C1A0C4038270B4BAC1':::GEOMETRY::GEOMETRY, tab_140448.col1_3::FLOAT8)::GEOMETRY
				AS col_214844
		FROM
			defaultdb.public.table3@[0] AS tab_140447, defaultdb.public.table1@[0] AS tab_140448
		LIMIT
			94:::INT8;

	cluster.go:1296,context.go:91,cluster.go:1284,test_runner.go:866: dead node detection: /home/agent/work/.go/src/github.com/cockroachdb/cockroach/bin/roachprod monitor teamcity-5223707-1653112301-10-n4cpu4 --oneshot --ignore-empty-nodes: exit status 1 2: 12429
		1: dead (exit status 134)
		3: 12310
		4: 11803
		Error: UNCLASSIFIED_PROBLEM: 1: dead (exit status 134)
		(1) UNCLASSIFIED_PROBLEM
		Wraps: (2) attached stack trace
		  -- stack trace:
		  | github.com/cockroachdb/cockroach/pkg/roachprod.Monitor
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/roachprod/roachprod.go:596
		  | main.glob..func14
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/cmd/roachprod/main.go:569
		  | main.wrap.func1
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/cmd/roachprod/main.go:123
		  | github.com/spf13/cobra.(*Command).execute
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/spf13/cobra/command.go:856
		  | github.com/spf13/cobra.(*Command).ExecuteC
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/spf13/cobra/command.go:960
		  | github.com/spf13/cobra.(*Command).Execute
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/spf13/cobra/command.go:897
		  | main.main
		  | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/cmd/roachprod/main.go:1170
		  | runtime.main
		  | 	/usr/local/go/src/runtime/proc.go:255
		  | runtime.goexit
		  | 	/usr/local/go/src/runtime/asm_amd64.s:1581
		Wraps: (3) 1: dead (exit status 134)
		Error types: (1) errors.Unclassified (2) *withstack.withStack (3) *errutil.leafError
Reproduce

See: roachtest README

/cc @cockroachdb/sql-queries

This test on roachdash | Improve this report!

Jira issue: CRDB-16035

@cockroach-teamcity cockroach-teamcity added branch-release-21.2 C-test-failure Broken test (automatically or manually discovered). O-roachtest O-robot Originated from a bot. release-blocker Indicates a release-blocker. Use with branch-release-2x.x label to denote which branch is blocked. labels May 21, 2022
@blathers-crl blathers-crl bot added the T-sql-queries SQL Queries Team label May 21, 2022
@rharding6373
Copy link
Collaborator

Looks like a panic in spatial, CC @otan

From the node 1 cockroach.stderr.log:

* ERROR: [n1,client=34.139.75.72:51958,hostnossl,user=root] a SQL panic has occurred while executing the following statement:
* INSERT INTO defaultdb.public.table4 AS tab_140444 WITH with_44971 (col_214839) AS (SELECT * FROM (VALUES (NULL), (NULL), (NULL), (7.429673887640251493E+26:::DECIMAL)) AS tab_140445 (col_214839)), with_44972 (col_214840) AS (SELECT * FROM (VALUES (NULL), (e'\\xe29883':::BYTES), (e'\\x94b4':::BYTES), (e'\\xf3ff':::BYTES)) AS tab_140446 (col_214840)) SELECT tab_140448.col1_2 AS col_214841, '10:24:07.603288':::TIME AS col_214842, (-0.3989618420600891):::FLOAT8 AS col_214843, st_rotatex('0105000000060000000102000000020000002CF565DB1790F041C2509EC57231F2411C1E119D614AE7C166AFF2D39B030142010200000003000000809745B2972CF84160399714F897E241E0D03302F1C6D6410EFC89BE9FE20042F83C7FD5C4ACD6411854CBFDFF42DE41010200000004000000C4A695BE1FC2FD411CE9BCE66C42D8C142F59F55FD7800424C0D1238165FE041A07574B08DC0D94170D034F5A969EB41D843A641FF49E741B6F0864FF80E0242010200000004000000781D60294113F2412C338441624C02C2100451CE196BED41525C0281389BEEC11430818C69A2EF415C09A4FD752D024200E4B02D00CB9341C047BBFE74DDE44101020000000400000040B0B6B74C96A0C162D23CFAACB8E7C11CD943F294E9E5C187C18248646102C2709F7E29F32AC4C160D1A56EC799FAC1607737DC4662E941ADC9125B944FF6C1010200000004000000F097AF975517F441714AF1717A16F0C15442BA391710F841BEBE416B6780F241E01C9C5F7602B6413CC620A0C9C3E14140E714D68300E2C1A0C4038270B4BAC1':::GEOMETRY::GEOMETRY, tab_140448.col1_3::FLOAT8)::GEOMETRY AS col_214844 FROM defaultdb.public.table3@[0] AS tab_140447, defaultdb.public.table1@[0] AS tab_140448 LIMIT 94:::INT8
*
*
* ERROR: [n1,client=34.139.75.72:51958,hostnossl,user=root] a panic has occurred!
* Float.SetFloat64(NaN)
* (1) attached stack trace
*   -- stack trace:
*   | github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn.func1
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:666
*   | [...repeated from below...]
* Wraps: (2) while executing: INSERT INTO _ AS _ WITH _ (_) AS (SELECT * FROM (VALUES (_), (__more3__)) AS _ (_)), _ (_) AS (SELECT * FROM (VALUES (_), (__more3__)) AS _ (_)) SELECT _._ AS _, '_':::TIME AS _, (_):::FLOAT8 AS _, st_rotatex('_':::GEOMETRY::GEOMETRY, _._::FLOAT8)::GEOMETRY AS _ FROM _@[0] AS _, _@[0] AS _ LIMIT _:::INT8
* Wraps: (3) attached stack trace
*   -- stack trace:
*   | github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn.func1
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:666
*   | runtime.gopanic
*   | 	/usr/local/go/src/runtime/panic.go:1038
*   | github.com/cockroachdb/cockroach/pkg/sql/colexecerror.CatchVectorizedRuntimeError.func1
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/sql/colexecerror/error.go:58
*   | runtime.gopanic
*   | 	/usr/local/go/src/runtime/panic.go:1038
*   | math/big.(*Float).SetFloat64
*   | 	/usr/local/go/src/math/big/float.go:549
*   | github.com/golang/geo/r3.precFloat
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/golang/geo/r3/precisevector.go:49
*   | github.com/golang/geo/r3.NewPreciseVector
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/golang/geo/r3/precisevector.go:83
*   | github.com/golang/geo/r3.PreciseVectorFromVector
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/golang/geo/r3/precisevector.go:75
*   | github.com/golang/geo/s2.exactSign
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/golang/geo/s2/predicates.go:264
*   | github.com/golang/geo/s2.expensiveSign
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/golang/geo/s2/predicates.go:235
*   | github.com/golang/geo/s2.(*EdgeCrosser).crossingSign
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/golang/geo/s2/edge_crosser.go:208
*   | github.com/golang/geo/s2.(*EdgeCrosser).ChainCrossingSign
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/golang/geo/s2/edge_crosser.go:145
*   | github.com/golang/geo/s2.(*Polyline).IntersectsCell
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/golang/geo/s2/polyline.go:154
*   | github.com/golang/geo/s2.(*coverer).newCandidate
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/golang/geo/s2/regioncoverer.go:133
*   | github.com/golang/geo/s2.(*coverer).initialCandidates
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/golang/geo/s2/regioncoverer.go:265
*   | github.com/golang/geo/s2.(*coverer).coveringInternal
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/golang/geo/s2/regioncoverer.go:286
*   | github.com/golang/geo/s2.(*RegionCoverer).CellUnion
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/golang/geo/s2/regioncoverer.go:345
*   | github.com/golang/geo/s2.(*RegionCoverer).Covering
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/vendor/github.com/golang/geo/s2/regioncoverer.go:325
*   | github.com/cockroachdb/cockroach/pkg/geo/geoindex.simpleCovererImpl.covering
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/geo/geoindex/geoindex.go:400
*   | github.com/cockroachdb/cockroach/pkg/geo/geoindex.geomCovererWithBBoxFallback.covering
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/geo/geoindex/s2_geometry_index.go:150
*   | github.com/cockroachdb/cockroach/pkg/geo/geoindex.invertedIndexKeys
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/geo/geoindex/geoindex.go:529
*   | github.com/cockroachdb/cockroach/pkg/geo/geoindex.(*s2GeometryIndex).InvertedIndexKeys
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/geo/geoindex/s2_geometry_index.go:191
*   | github.com/cockroachdb/cockroach/pkg/sql/rowenc.EncodeGeoInvertedIndexTableKeys
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/sql/rowenc/index_encoding.go:1074
*   | github.com/cockroachdb/cockroach/pkg/sql/rowenc.EncodeInvertedIndexKeys
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/sql/rowenc/index_encoding.go:802
*   | github.com/cockroachdb/cockroach/pkg/sql/rowenc.EncodeSecondaryIndex
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/sql/rowenc/index_encoding.go:1214
*   | github.com/cockroachdb/cockroach/pkg/sql/row.(*rowHelper).encodeSecondaryIndexes
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/sql/row/helper.go:201
*   | github.com/cockroachdb/cockroach/pkg/sql/row.(*rowHelper).encodeIndexes
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/sql/row/helper.go:155
*   | github.com/cockroachdb/cockroach/pkg/sql/row.(*Inserter).InsertRow
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/sql/row/inserter.go:166
*   | github.com/cockroachdb/cockroach/pkg/sql.(*tableInserter).row
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/sql/tablewriter_insert.go:44
*   | github.com/cockroachdb/cockroach/pkg/sql.(*insertRun).processSourceRow
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/sql/insert.go:160
*   | github.com/cockroachdb/cockroach/pkg/sql.(*insertNode).BatchedNext
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/sql/insert.go:237
*   | github.com/cockroachdb/cockroach/pkg/sql.(*rowCountNode).startExec
*   | 	/home/agent/work/.go/src/github.com/cockroachdb/cockroach/pkg/sql/plan_batch.go:173
* Wraps: (4) Float.SetFloat64(NaN)
* Error types: (1) *withstack.withStack (2) *safedetails.withSafeDetails (3) *withstack.withStack (4) big.ErrNaN
*
cockroach exited with code 134: Sat May 21 06:10:59 UTC 2022

@blathers-crl blathers-crl bot added the T-sql-foundations SQL Foundations Team (formerly SQL Schema + SQL Sessions) label May 24, 2022
@otan
Copy link
Contributor

otan commented May 24, 2022

this is actually failing on the indexing code, so maybe @sumeerbhola / @rytaft can take a look.
my guess is that regioncoverer doesn't handle NaN / Inf coordinates well, so we should handle them as out of bounds if we detect NaN/Inf in the bounding box.

@rytaft
Copy link
Collaborator

rytaft commented May 25, 2022

Here's a repro:

CREATE TABLE t (
  g GEOMETRY NOT NULL,
  INVERTED INDEX (g)
);

INSERT INTO t SELECT st_rotatex('0105000000060000000102000000020000002CF565DB1790F041C2509EC57231F2411C1E119D614AE7C166AFF2D39B030142010200000003000000809745B2972CF84160399714F897E241E0D03302F1C6D6410EFC89BE9FE20042F83C7FD5C4ACD6411854CBFDFF42DE41010200000004000000C4A695BE1FC2FD411CE9BCE66C42D8C142F59F55FD7800424C0D1238165FE041A07574B08DC0D94170D034F5A969EB41D843A641FF49E741B6F0864FF80E0242010200000004000000781D60294113F2412C338441624C02C2100451CE196BED41525C0281389BEEC11430818C69A2EF415C09A4FD752D024200E4B02D00CB9341C047BBFE74DDE44101020000000400000040B0B6B74C96A0C162D23CFAACB8E7C11CD943F294E9E5C187C18248646102C2709F7E29F32AC4C160D1A56EC799FAC1607737DC4662E941ADC9125B944FF6C1010200000004000000F097AF975517F441714AF1717A16F0C15442BA391710F841BEBE416B6780F241E01C9C5F7602B6413CC620A0C9C3E14140E714D68300E2C1A0C4038270B4BAC1':::GEOMETRY::GEOMETRY, '-Inf':::FLOAT8)::GEOMETRY;

@rytaft
Copy link
Collaborator

rytaft commented May 25, 2022

Looks like @otan is right:

select st_isvalid(g), st_isvalidreason(g) from (values (st_rotatex('0105000000060000000102000000020000002CF565DB1790F041C2509EC57231F2411C1E119D614AE7C166AFF2D39B030142010200000003000000809745B2972CF84160399714F897E241E0D03302F1C6D6410EFC89BE9FE20042F83C7FD5C4ACD6411854CBFDFF42DE41010200000004000000C4A695BE1FC2FD411CE9BCE66C42D8C142F59F55FD7800424C0D1238165FE041A07574B08DC0D94170D034F5A969EB41D843A641FF49E741B6F0864FF80E0242010200000004000000781D60294113F2412C338441624C02C2100451CE196BED41525C0281389BEEC11430818C69A2EF415C09A4FD752D024200E4B02D00CB9341C047BBFE74DDE44101020000000400000040B0B6B74C96A0C162D23CFAACB8E7C11CD943F294E9E5C187C18248646102C2709F7E29F32AC4C160D1A56EC799FAC1607737DC4662E941ADC9125B944FF6C1010200000004000000F097AF975517F441714AF1717A16F0C15442BA391710F841BEBE416B6780F241E01C9C5F7602B6413CC620A0C9C3E14140E714D68300E2C1A0C4038270B4BAC1':::GEOMETRY::GEOMETRY, '-Inf':::FLOAT8)::GEOMETRY)) as t(g);
  st_isvalid |             st_isvalidreason
-------------+-------------------------------------------
    false    | Invalid Coordinate[4446059958.37236 nan]
(1 row)

@rytaft rytaft changed the title roachtest: sqlsmith/setup=rand-tables/setting=no-ddl failed geoindex: panic when trying to insert object with NaN coordinate May 25, 2022
@otan otan removed release-blocker Indicates a release-blocker. Use with branch-release-2x.x label to denote which branch is blocked. T-sql-foundations SQL Foundations Team (formerly SQL Schema + SQL Sessions) labels May 25, 2022
@yuzefovich yuzefovich self-assigned this Jul 5, 2023
@yuzefovich
Copy link
Member

In Postgres we get an error when trying to evaluate st_rotatex with an infinity as the second argument:

yuzefovich=# SELECT st_rotatex('0105000000060000000102000000020000002CF565DB1790F041C2509EC57231F2411C1E119D614AE7C166AFF2D39B030142010200000003000000809745B2972CF84160399714F897E241E0D03302F1C6D6410EFC89BE9FE20042F83C7FD5C4ACD6411854CBFDFF42DE41010200000004000000C4A695BE1FC2FD411CE9BCE66C42D8C142F59F55FD7800424C0D1238165FE041A07574B08DC0D94170D034F5A969EB41D843A641FF49E741B6F0864FF80E0242010200000004000000781D60294113F2412C338441624C02C2100451CE196BED41525C0281389BEEC11430818C69A2EF415C09A4FD752D024200E4B02D00CB9341C047BBFE74DDE44101020000000400000040B0B6B74C96A0C162D23CFAACB8E7C11CD943F294E9E5C187C18248646102C2709F7E29F32AC4C160D1A56EC799FAC1607737DC4662E941ADC9125B944FF6C1010200000004000000F097AF975517F441714AF1717A16F0C15442BA391710F841BEBE416B6780F241E01C9C5F7602B6413CC620A0C9C3E14140E714D68300E2C1A0C4038270B4BAC1'::GEOMETRY, '-Inf'::FLOAT8)::GEOMETRY;
ERROR:  input is out of range
CONTEXT:  SQL function "st_rotatex" statement 1

If we return an error in such scenario, this should prevent the crash.

Should we add a code like this to all geo builtins that return Geometry type?

diff --git a/pkg/sql/sem/builtins/geo_builtins.go b/pkg/sql/sem/builtins/geo_builtins.go
index f1728c5a2e4..ab026fa19c9 100644
--- a/pkg/sql/sem/builtins/geo_builtins.go
+++ b/pkg/sql/sem/builtins/geo_builtins.go
@@ -5152,6 +5152,10 @@ The matrix transformation will be applied as follows for each coordinate:
                                        return nil, err
                                }
 
+                               if _, err := geomfn.IsValid(ret); err != nil {
+                                       return nil, err
+                               }
+
                                return tree.NewDGeometry(ret), nil
                        },
                        Info: infoBuilder{

I tried to find the source code of postgres where this validity checking happens but failed. I found that st_rotatex seems to be a UDF which calls LWGEOM_affine.

@otan @rytaft what are your takes on this?

@otan
Copy link
Contributor

otan commented Jul 6, 2023

IsValid is a very expensive operation and we should avoid if it necessary. the ST_Rotate fix is only a temporary fix though - i think it still breaks in this case:

root@127.0.0.1:26257/demoapp/defaultdb> create table t (a geometry, inverted index(a));
CREATE TABLE

Time: 5ms total (execution 4ms / network 0ms)

root@127.0.0.1:26257/demoapp/defaultdb> insert into t values
                                     -> ('0105000000060000000102000000020000002CF565DB1790F041010000000000F87F1C1E119D614AE7C1010000000000F87F010200000003000000809745B2972CF841010000000000F87FE0D03302F1C6D641010000000000F87FF83C
                                     -> 7FD5C4ACD641010000000000F87F010200000004000000C4A695BE1FC2FD41010000000000F87F42F59F55FD780042010000000000F87FA07574B08DC0D941010000000000F87FD843A641FF49E741010000000000F87F01020000000400
                                     -> 0000781D60294113F241010000000000F87F100451CE196BED41010000000000F87F1430818C69A2EF41010000000000F87F00E4B02D00CB9341010000000000F87F01020000000400000040B0B6B74C96A0C1010000000000F87F1CD943
                                     -> F294E9E5C1010000000000F87F709F7E29F32AC4C1010000000000F87F607737DC4662E941010000000000F87F010200000004000000F097AF975517F441010000000000F87F5442BA391710F841010000000000F87FE01C9C5F7602B641
                                     -> 010000000000F87F40E714D68300E2C1010000000000F87F');
*
* ERROR: a SQL panic has occurred while executing the following statement:
* INSERT INTO t VALUES ('0105000000060000000102000000020000002CF565DB1790F041010000000000F87F1C1E119D614AE7C1010000000000F87F010200000003000000809745B2972CF841010000000000F87FE0D03302F1C6D641010000000000F87FF83C7FD5C4ACD641010000000000F87F010200000004000000C4A695BE1FC2FD41010000000000F87F42F59F55FD780042010000000000F87FA07574B08DC0D941010000000000F87FD843A641FF49E741010000000000F87F010200000004000000781D60294113F241010000000000F87F100451CE196BED41010000000000F87F1430818C69A2EF41010000000000F87F00E4B02D00CB9341010000000000F87F01020000000400000040B0B6B74C96A0C1010000000000F87F1CD943F294E9E5C1010000000000F87F709F7E29F32AC4C1010000000000F87F607737DC4662E941010000000000F87F010200000004000000F097AF975517F441010000000000F87F5442BA391710F841010000000000F87FE01C9C5F7602B641010000000000F87F40E714D68300E2C1010000000000F87F')

i think the "right" thing to do is for any coordinate that has NaN in MinX/MaxX/MinY/MaxY in the BoundingBox should be treated as a special case that should always as a candidate from the covering index (i think we had something for this already for when the bounding box exceeds the SRID bounds, and probably butchered the terms here).

@craig craig bot closed this as completed in 604d4ae Jul 17, 2023
@mgartner mgartner moved this to Done in SQL Queries Jul 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-test-failure Broken test (automatically or manually discovered). O-roachtest O-robot Originated from a bot. T-sql-queries SQL Queries Team
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

5 participants