]> granicus.if.org Git - postgresql/commitdiff
Improve test case exercising the sorting path for hash index build.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 16 Jul 2016 20:25:43 +0000 (16:25 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 16 Jul 2016 20:25:43 +0000 (16:25 -0400)
On second thought, we should probably do at least a minimal check that
the constructed index is valid, since the big problem with the most
recent breakage was not whether the sorting was correct but that the
index had incorrect hash codes placed in it.

src/test/regress/expected/create_index.out
src/test/regress/sql/create_index.sql

index 0be5cf2dbea20d8893a80e0f60c58cdce887d003..989ebe523c7810919b0ec6d4d495dd386d8ddf7d 100644 (file)
@@ -2351,6 +2351,23 @@ DROP TABLE unlogged_hash_table;
 SET maintenance_work_mem = '1MB';
 CREATE INDEX hash_tuplesort_idx ON tenk1 USING hash (stringu1 name_ops) WITH (fillfactor = 10);
 WARNING:  hash indexes are not WAL-logged and their use is discouraged
+EXPLAIN (COSTS OFF)
+SELECT count(*) FROM tenk1 WHERE stringu1 = 'TVAAAA';
+                      QUERY PLAN                       
+-------------------------------------------------------
+ Aggregate
+   ->  Bitmap Heap Scan on tenk1
+         Recheck Cond: (stringu1 = 'TVAAAA'::name)
+         ->  Bitmap Index Scan on hash_tuplesort_idx
+               Index Cond: (stringu1 = 'TVAAAA'::name)
+(5 rows)
+
+SELECT count(*) FROM tenk1 WHERE stringu1 = 'TVAAAA';
+ count 
+-------
+    14
+(1 row)
+
 DROP INDEX hash_tuplesort_idx;
 RESET maintenance_work_mem;
 --
index 7e0bd84ff7f7f16b4bad3ef7869186b196e8c99a..b0ba4e62a81ef29b9c1c5995ece6815ac20cce99 100644 (file)
@@ -694,6 +694,9 @@ DROP TABLE unlogged_hash_table;
 -- maintenance_work_mem setting and fillfactor:
 SET maintenance_work_mem = '1MB';
 CREATE INDEX hash_tuplesort_idx ON tenk1 USING hash (stringu1 name_ops) WITH (fillfactor = 10);
+EXPLAIN (COSTS OFF)
+SELECT count(*) FROM tenk1 WHERE stringu1 = 'TVAAAA';
+SELECT count(*) FROM tenk1 WHERE stringu1 = 'TVAAAA';
 DROP INDEX hash_tuplesort_idx;
 RESET maintenance_work_mem;