spatial index generated column bugfix && oms_view_bugfix

This commit is contained in:
wu-xingying
2024-07-11 10:23:55 +00:00
committed by ob-robot
parent 83a2af8369
commit 2e480d891a
9 changed files with 150 additions and 79 deletions

View File

@ -314,4 +314,61 @@ Outputs & filters:
(384213343210045440,MIN,MIN ; 384213343210045440,MAX,MAX), (383931868233334784,MIN,MIN ; 383931868233334784,MAX,MAX), (382805968326492160,MIN,MIN ; 382805968326492160,
MAX,MAX), (378302368699121664,MIN,MIN ; 378302368699121664,MAX,MAX), (360287970189639680,MIN,MIN ; 360287970189639680,MAX,MAX), (288230376151711744,MIN,
MIN ; 288230376151711744,MAX,MAX), (1152921504606846976,MIN,MIN ; 1152921504606846976,MAX,MAX), (383950835169648257,MIN,MIN ; 383950835169648257,MAX,MAX)
alter table t1 add c0 char(20) before g;
explain SELECT /*+ index(t1 g) */ * from t1 where ST_INTERSECTS(g,ST_GeomFromText('POINT(-1 -1)', 4326));
Query Plan
================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
------------------------------------------------
|0 |TABLE FULL SCAN|t1(g)|1 |159 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c0], [t1.g]), filter([ST_INTERSECTS(t1.g, ST_GeomFromText('POINT(-1 -1)', 4326))])
access([t1.c1], [t1.g], [t1.c0]), partitions(p0)
is_index_back=true, is_global_index=false, filter_before_indexback[false],
range_key([t1.__cellid_18], [t1.__mbr_18], [t1.c1]), range(383950835169648260,MIN,MIN ; 383950835169648260,MAX,MAX), (383950835169648272,MIN,MIN ;
383950835169648272,MAX,MAX), (383950835169648320,MIN,MIN ; 383950835169648320,MAX,MAX), (383950835169648384,MIN,MIN ; 383950835169648384,MAX,MAX), (383950835169647616,
MIN,MIN ; 383950835169647616,MAX,MAX), (383950835169644544,MIN,MIN ; 383950835169644544,MAX,MAX), (383950835169640448,MIN,MIN ; 383950835169640448,MAX,MAX),
(383950835169689600,MIN,MIN ; 383950835169689600,MAX,MAX), (383950835169886208,MIN,MIN ; 383950835169886208,MAX,MAX), (383950835170672640,MIN,MIN ; 383950835170672640,
MAX,MAX), (383950835173818368,MIN,MIN ; 383950835173818368,MAX,MAX), (383950835161235456,MIN,MIN ; 383950835161235456,MAX,MAX), (383950835144458240,MIN,
MIN ; 383950835144458240,MAX,MAX), (383950835077349376,MIN,MIN ; 383950835077349376,MAX,MAX), (383950835882655744,MIN,MIN ; 383950835882655744,MAX,MAX),
(383950839103881216,MIN,MIN ; 383950839103881216,MAX,MAX), (383950851988783104,MIN,MIN ; 383950851988783104,MAX,MAX), (383950903528390656,MIN,MIN ; 383950903528390656,
MAX,MAX), (383950834808913920,MIN,MIN ; 383950834808913920,MAX,MAX), (383950559931006976,MIN,MIN ; 383950559931006976,MAX,MAX), (383953858465890304,MIN,
MIN ; 383953858465890304,MAX,MAX), (383949460419379200,MIN,MIN ; 383949460419379200,MAX,MAX), (384002236977512448,MIN,MIN ; 384002236977512448,MAX,MAX),
(384213343210045440,MIN,MIN ; 384213343210045440,MAX,MAX), (383931868233334784,MIN,MIN ; 383931868233334784,MAX,MAX), (382805968326492160,MIN,MIN ; 382805968326492160,
MAX,MAX), (378302368699121664,MIN,MIN ; 378302368699121664,MAX,MAX), (360287970189639680,MIN,MIN ; 360287970189639680,MAX,MAX), (288230376151711744,MIN,
MIN ; 288230376151711744,MAX,MAX), (1152921504606846976,MIN,MIN ; 1152921504606846976,MAX,MAX), (383950835169648257,MIN,MIN ; 383950835169648257,MAX,MAX)
alter table t1 modify c0 varchar(20);
explain SELECT /*+ index(t1 g) */ * from t1 where ST_INTERSECTS(g,ST_GeomFromText('POINT(-1 -1)', 4326));
Query Plan
================================================
|ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)|
------------------------------------------------
|0 |TABLE FULL SCAN|t1(g)|1 |159 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c0], [t1.g]), filter([ST_INTERSECTS(t1.g, ST_GeomFromText('POINT(-1 -1)', 4326))])
access([t1.c1], [t1.g], [t1.c0]), partitions(p0)
is_index_back=true, is_global_index=false, filter_before_indexback[false],
range_key([t1.__cellid_18], [t1.__mbr_18], [t1.c1]), range(383950835169648260,MIN,MIN ; 383950835169648260,MAX,MAX), (383950835169648272,MIN,MIN ;
383950835169648272,MAX,MAX), (383950835169648320,MIN,MIN ; 383950835169648320,MAX,MAX), (383950835169648384,MIN,MIN ; 383950835169648384,MAX,MAX), (383950835169647616,
MIN,MIN ; 383950835169647616,MAX,MAX), (383950835169644544,MIN,MIN ; 383950835169644544,MAX,MAX), (383950835169640448,MIN,MIN ; 383950835169640448,MAX,MAX),
(383950835169689600,MIN,MIN ; 383950835169689600,MAX,MAX), (383950835169886208,MIN,MIN ; 383950835169886208,MAX,MAX), (383950835170672640,MIN,MIN ; 383950835170672640,
MAX,MAX), (383950835173818368,MIN,MIN ; 383950835173818368,MAX,MAX), (383950835161235456,MIN,MIN ; 383950835161235456,MAX,MAX), (383950835144458240,MIN,
MIN ; 383950835144458240,MAX,MAX), (383950835077349376,MIN,MIN ; 383950835077349376,MAX,MAX), (383950835882655744,MIN,MIN ; 383950835882655744,MAX,MAX),
(383950839103881216,MIN,MIN ; 383950839103881216,MAX,MAX), (383950851988783104,MIN,MIN ; 383950851988783104,MAX,MAX), (383950903528390656,MIN,MIN ; 383950903528390656,
MAX,MAX), (383950834808913920,MIN,MIN ; 383950834808913920,MAX,MAX), (383950559931006976,MIN,MIN ; 383950559931006976,MAX,MAX), (383953858465890304,MIN,
MIN ; 383953858465890304,MAX,MAX), (383949460419379200,MIN,MIN ; 383949460419379200,MAX,MAX), (384002236977512448,MIN,MIN ; 384002236977512448,MAX,MAX),
(384213343210045440,MIN,MIN ; 384213343210045440,MAX,MAX), (383931868233334784,MIN,MIN ; 383931868233334784,MAX,MAX), (382805968326492160,MIN,MIN ; 382805968326492160,
MAX,MAX), (378302368699121664,MIN,MIN ; 378302368699121664,MAX,MAX), (360287970189639680,MIN,MIN ; 360287970189639680,MAX,MAX), (288230376151711744,MIN,
MIN ; 288230376151711744,MAX,MAX), (1152921504606846976,MIN,MIN ; 1152921504606846976,MAX,MAX), (383950835169648257,MIN,MIN ; 383950835169648257,MAX,MAX)
drop table t1;
drop table if exists tab;
Warnings:
Note 1051 Unknown table 'test.tab'
CREATE TABLE tab(c1 int NOT NULL PRIMARY KEY,c2 POINT NOT NULL,c3 LINESTRING NOT NULL,c4 POLYGON NOT NULL,c5 GEOMETRY NOT NULL);
CREATE INDEX index3 ON tab(c3) ;
ALTER TABLE tab CHANGE COLUMN c3 c33 LINESTRING;
drop table tab;

View File

@ -284,4 +284,15 @@ insert into t1 values (8,'{"b":2}', ST_GeomFromText('POLYGON((0 0, 0 2, 2 2, 2
explain SELECT /*+ index(t1 g) */ * from t1 where ST_INTERSECTS(g,ST_GeomFromText('POINT(-1 -1)', 4326));
alter table t1 drop column j;
explain SELECT /*+ index(t1 g) */ * from t1 where ST_INTERSECTS(g,ST_GeomFromText('POINT(-1 -1)', 4326));
drop table t1;
alter table t1 add c0 char(20) before g;
explain SELECT /*+ index(t1 g) */ * from t1 where ST_INTERSECTS(g,ST_GeomFromText('POINT(-1 -1)', 4326));
alter table t1 modify c0 varchar(20);
explain SELECT /*+ index(t1 g) */ * from t1 where ST_INTERSECTS(g,ST_GeomFromText('POINT(-1 -1)', 4326));
drop table t1;
# bugfix:58073834
drop table if exists tab;
CREATE TABLE tab(c1 int NOT NULL PRIMARY KEY,c2 POINT NOT NULL,c3 LINESTRING NOT NULL,c4 POLYGON NOT NULL,c5 GEOMETRY NOT NULL);
CREATE INDEX index3 ON tab(c3) ;
ALTER TABLE tab CHANGE COLUMN c3 c33 LINESTRING;
drop table tab;