mirror of
https://github.com/postgres/postgres.git
synced 2025-12-16 16:42:29 +03:00
Use the term "radix tree" instead of "suffix tree" for SP-GiST text opclass.
What we have implemented is a radix tree (or a radix trie or a patricia trie), but the docs and code comments incorrectly called it a "suffix tree". Alexander Korotkov
This commit is contained in:
@@ -110,15 +110,15 @@ CREATE TABLE kd_point_tbl AS SELECT * FROM quad_point_tbl;
|
||||
|
||||
CREATE INDEX sp_kd_ind ON kd_point_tbl USING spgist (p kd_point_ops);
|
||||
|
||||
CREATE TABLE suffix_text_tbl AS
|
||||
CREATE TABLE radix_text_tbl AS
|
||||
SELECT name AS t FROM road WHERE name !~ '^[0-9]';
|
||||
|
||||
INSERT INTO suffix_text_tbl
|
||||
INSERT INTO radix_text_tbl
|
||||
SELECT 'P0123456789abcdef' FROM generate_series(1,1000);
|
||||
INSERT INTO suffix_text_tbl VALUES ('P0123456789abcde');
|
||||
INSERT INTO suffix_text_tbl VALUES ('P0123456789abcdefF');
|
||||
INSERT INTO radix_text_tbl VALUES ('P0123456789abcde');
|
||||
INSERT INTO radix_text_tbl VALUES ('P0123456789abcdefF');
|
||||
|
||||
CREATE INDEX sp_suff_ind ON suffix_text_tbl USING spgist (t);
|
||||
CREATE INDEX sp_radix_ind ON radix_text_tbl USING spgist (t);
|
||||
|
||||
--
|
||||
-- Test GiST and SP-GiST indexes
|
||||
@@ -194,31 +194,31 @@ SELECT count(*) FROM quad_point_tbl WHERE p >^ '(5000, 4000)';
|
||||
|
||||
SELECT count(*) FROM quad_point_tbl WHERE p ~= '(4585, 365)';
|
||||
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'P0123456789abcdef';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef';
|
||||
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'P0123456789abcde';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde';
|
||||
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'P0123456789abcdefF';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF';
|
||||
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t < 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Ct ';
|
||||
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~<~ 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Ct ';
|
||||
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t <= 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Ct ';
|
||||
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~<=~ 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Ct ';
|
||||
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec Ct ';
|
||||
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth St ';
|
||||
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t >= 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth St ';
|
||||
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~>=~ 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth St ';
|
||||
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t > 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth St ';
|
||||
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~>~ 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth St ';
|
||||
|
||||
-- Now check the results from plain indexscan
|
||||
SET enable_seqscan = OFF;
|
||||
@@ -382,56 +382,56 @@ SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)';
|
||||
SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'P0123456789abcdef';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'P0123456789abcdef';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'P0123456789abcde';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'P0123456789abcde';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'P0123456789abcdefF';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'P0123456789abcdefF';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t < 'Aztec Ct ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t < 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Ct ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~<~ 'Aztec Ct ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~<~ 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Ct ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t <= 'Aztec Ct ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t <= 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Ct ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~<=~ 'Aztec Ct ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~<=~ 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Ct ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'Aztec Ct ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec Ct ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'Worth St ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth St ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t >= 'Worth St ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t >= 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth St ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~>=~ 'Worth St ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~>=~ 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth St ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t > 'Worth St ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t > 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth St ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~>~ 'Worth St ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~>~ 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth St ';
|
||||
|
||||
-- Now check the results from bitmap indexscan
|
||||
SET enable_seqscan = OFF;
|
||||
@@ -511,56 +511,56 @@ SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)';
|
||||
SELECT count(*) FROM kd_point_tbl WHERE p ~= '(4585, 365)';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'P0123456789abcdef';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'P0123456789abcdef';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdef';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'P0123456789abcde';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'P0123456789abcde';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcde';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'P0123456789abcdefF';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'P0123456789abcdefF';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'P0123456789abcdefF';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t < 'Aztec Ct ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t < 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t < 'Aztec Ct ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~<~ 'Aztec Ct ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~<~ 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~<~ 'Aztec Ct ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t <= 'Aztec Ct ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t <= 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t <= 'Aztec Ct ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~<=~ 'Aztec Ct ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~<=~ 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~<=~ 'Aztec Ct ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'Aztec Ct ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec Ct ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'Aztec Ct ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'Worth St ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t = 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t = 'Worth St ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t >= 'Worth St ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t >= 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t >= 'Worth St ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~>=~ 'Worth St ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~>=~ 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~>=~ 'Worth St ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t > 'Worth St ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t > 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t > 'Worth St ';
|
||||
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~>~ 'Worth St ';
|
||||
SELECT count(*) FROM suffix_text_tbl WHERE t ~>~ 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth St ';
|
||||
SELECT count(*) FROM radix_text_tbl WHERE t ~>~ 'Worth St ';
|
||||
|
||||
RESET enable_seqscan;
|
||||
RESET enable_indexscan;
|
||||
|
||||
Reference in New Issue
Block a user