# This logic test fails in the 3node-tenant configuration because the keys are
# prefixed with the tenant ID if run by a tenant:
# https://github.com/cockroachdb/cockroach/issues/49582
# LogicTest: !3node-tenant-default-configs

statement ok
CREATE TABLE b(
  a int primary key,
  geog geography(geometry, 4326),
  geom geometry(point),
  FAMILY (a, geog, geom)
)

statement ok
CREATE TABLE c(
  a int primary key,
  geog geography(geometry, 4326),
  geom geometry(point),
  FAMILY (a, geog, geom),
  INVERTED INDEX (geog),
  INVERTED INDEX (geom)
)

query T kvtrace
INSERT INTO b VALUES
  (1, 'POINT(1.0 1.0)', 'POINT(2.0 2.0)'),
  (2, 'LINESTRING(1.0 1.0, 2.0 2.0)', 'POINT(1.0 1.0)')
----
Scan /Table/20/1/10{6-7}
CPut /Table/106/1/1/0 -> /TUPLE/
CPut /Table/106/1/2/0 -> /TUPLE/

query T kvtrace
INSERT INTO c VALUES
  (1, 'POINT(1.0 1.0)', 'POINT(2.0 2.0)'),
  (2, 'LINESTRING(1.0 1.0, 2.0 2.0)', 'POINT(1.0 1.0)')
----
Scan /Table/20/1/10{7-8}
CPut /Table/107/1/1/0 -> /TUPLE/
InitPut /Table/107/2/"B\xfd\x10\x01D\x15@\x80K\xd5\x01?\x91\xdfF\xa2R\x9d9?\x91\xdfF\xa2R\x9d9\x89\x88" -> /BYTES/
InitPut /Table/107/3/"B\xfd\x10\x00\x00\x00\x00\x00\x00\x01\x01@\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x00\x89\x88" -> /BYTES/
CPut /Table/107/1/2/0 -> /TUPLE/
InitPut /Table/107/2/"B\xfd\x10\x01P\x00\x00\x00\x00\x00\x00?\x91\xdfF\xa2R\x9d8?\x91\xdfF\xa2R\x9c\xb9?\xa1\xdfF\xa2R\x9d9?\xa1\xdfF\xa2R\x9dx\x8a\x88" -> /BYTES/
InitPut /Table/107/2/"B\xfd\x10\x03\xff\xff\xfc\x00\x00\x00\x00?\x91\xdfF\xa2R\x9d8?\x91\xdfF\xa2R\x9c\xb9?\xa1\xdfF\xa2R\x9d9?\xa1\xdfF\xa2R\x9dx\x8a\x88" -> /BYTES/
InitPut /Table/107/2/"B\xfd\x10\x05\x00\x00\x00\x00\x00\x00\x00?\x91\xdfF\xa2R\x9d8?\x91\xdfF\xa2R\x9c\xb9?\xa1\xdfF\xa2R\x9d9?\xa1\xdfF\xa2R\x9dx\x8a\x88" -> /BYTES/
InitPut /Table/107/3/"B\xfd\x10\x00\x00\x00\x00\x00\x00\x01\x01?\xf0\x00\x00\x00\x00\x00\x00?\xf0\x00\x00\x00\x00\x00\x00\x8a\x88" -> /BYTES/

statement ok
CREATE INVERTED INDEX geog_idx ON b(geog)

statement ok
CREATE INVERTED INDEX geom_idx ON b(geom)

query T kvtrace
INSERT INTO b VALUES
  (3, 'POINT(1.0 1.0)', 'POINT(2.0 2.0)'),
  (4, 'LINESTRING(1.0 1.0, 2.0 2.0)', 'POINT(1.0 1.0)')
----
CPut /Table/106/1/3/0 -> /TUPLE/
InitPut /Table/106/2/"B\xfd\x10\x01D\x15@\x80K\xd5\x01?\x91\xdfF\xa2R\x9d9?\x91\xdfF\xa2R\x9d9\x8b\x88" -> /BYTES/
InitPut /Table/106/4/"B\xfd\x10\x00\x00\x00\x00\x00\x00\x01\x01@\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x00\x8b\x88" -> /BYTES/
CPut /Table/106/1/4/0 -> /TUPLE/
InitPut /Table/106/2/"B\xfd\x10\x01P\x00\x00\x00\x00\x00\x00?\x91\xdfF\xa2R\x9d8?\x91\xdfF\xa2R\x9c\xb9?\xa1\xdfF\xa2R\x9d9?\xa1\xdfF\xa2R\x9dx\x8c\x88" -> /BYTES/
InitPut /Table/106/2/"B\xfd\x10\x03\xff\xff\xfc\x00\x00\x00\x00?\x91\xdfF\xa2R\x9d8?\x91\xdfF\xa2R\x9c\xb9?\xa1\xdfF\xa2R\x9d9?\xa1\xdfF\xa2R\x9dx\x8c\x88" -> /BYTES/
InitPut /Table/106/2/"B\xfd\x10\x05\x00\x00\x00\x00\x00\x00\x00?\x91\xdfF\xa2R\x9d8?\x91\xdfF\xa2R\x9c\xb9?\xa1\xdfF\xa2R\x9d9?\xa1\xdfF\xa2R\x9dx\x8c\x88" -> /BYTES/
InitPut /Table/106/4/"B\xfd\x10\x00\x00\x00\x00\x00\x00\x01\x01?\xf0\x00\x00\x00\x00\x00\x00?\xf0\x00\x00\x00\x00\x00\x00\x8c\x88" -> /BYTES/

statement ok
CREATE TABLE ltable(
  k int primary key,
  geom geometry
)

statement ok
CREATE TABLE rtable(
  k int primary key,
  geom geometry,
  INVERTED INDEX geom_index(geom)
)

statement ok
EXPLAIN (DISTSQL)
SELECT ltable.k, rtable.k FROM ltable JOIN rtable@geom_index ON ST_Intersects(ltable.geom, rtable.geom)
