mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-20 07:03:23 +02:00
Commit b5febc1d1
added a contrib/btree_gist test case that has been
observed to fail in the buildfarm as a result of background auto-analyze
updating stats and changing the selected plan. Forestall that by
forcibly analyzing in foreground, instead. The new plan choice is
just as good for our purposes, since we really only care that an
index-only plan does not get selected.
Back-patch to 9.5, like the previous patch.
Discussion: https://postgr.es/m/14643.1539629304@sss.pgh.pa.us
50 lines
1.3 KiB
SQL
50 lines
1.3 KiB
SQL
-- inet check
|
|
|
|
CREATE TABLE inettmp (a inet);
|
|
|
|
\copy inettmp from 'data/inet.data'
|
|
|
|
SET enable_seqscan=on;
|
|
|
|
SELECT count(*) FROM inettmp WHERE a < '89.225.196.191';
|
|
|
|
SELECT count(*) FROM inettmp WHERE a <= '89.225.196.191';
|
|
|
|
SELECT count(*) FROM inettmp WHERE a = '89.225.196.191';
|
|
|
|
SELECT count(*) FROM inettmp WHERE a >= '89.225.196.191';
|
|
|
|
SELECT count(*) FROM inettmp WHERE a > '89.225.196.191';
|
|
|
|
CREATE INDEX inetidx ON inettmp USING gist ( a );
|
|
|
|
SET enable_seqscan=off;
|
|
|
|
SELECT count(*) FROM inettmp WHERE a < '89.225.196.191'::inet;
|
|
|
|
SELECT count(*) FROM inettmp WHERE a <= '89.225.196.191'::inet;
|
|
|
|
SELECT count(*) FROM inettmp WHERE a = '89.225.196.191'::inet;
|
|
|
|
SELECT count(*) FROM inettmp WHERE a >= '89.225.196.191'::inet;
|
|
|
|
SELECT count(*) FROM inettmp WHERE a > '89.225.196.191'::inet;
|
|
|
|
VACUUM ANALYZE inettmp;
|
|
|
|
-- gist_inet_ops lacks a fetch function, so this should not be index-only scan
|
|
EXPLAIN (COSTS OFF)
|
|
SELECT count(*) FROM inettmp WHERE a = '89.225.196.191'::inet;
|
|
|
|
SELECT count(*) FROM inettmp WHERE a = '89.225.196.191'::inet;
|
|
|
|
DROP INDEX inetidx;
|
|
|
|
CREATE INDEX ON inettmp USING gist (a gist_inet_ops, a inet_ops);
|
|
|
|
-- likewise here (checks for core planner bug)
|
|
EXPLAIN (COSTS OFF)
|
|
SELECT count(*) FROM inettmp WHERE a = '89.225.196.191'::inet;
|
|
|
|
SELECT count(*) FROM inettmp WHERE a = '89.225.196.191'::inet;
|