postgresql/src/test/regress/sql
Alvaro Herrera 7526e10224 BRIN auto-summarization
Previously, only VACUUM would cause a page range to get initially
summarized by BRIN indexes, which for some use cases takes too much time
since the inserts occur.  To avoid the delay, have brininsert request a
summarization run for the previous range as soon as the first tuple is
inserted into the first page of the next range.  Autovacuum is in charge
of processing these requests, after doing all the regular vacuuming/
analyzing work on tables.

This doesn't impose any new tasks on autovacuum, because autovacuum was
already in charge of doing summarizations.  The only actual effect is to
change the timing, i.e. that it occurs earlier.  For this reason, we
don't go any great lengths to record these requests very robustly; if
they are lost because of a server crash or restart, they will happen at
a later time anyway.

Most of the new code here is in autovacuum, which can now be told about
"work items" to process.  This can be used for other things such as GIN
pending list cleaning, perhaps visibility map bit setting, both of which
are currently invoked during vacuum, but do not really depend on vacuum
taking place.

The requests are at the page range level, a granularity for which we did
not have SQL-level access; we only had index-level summarization
requests via brin_summarize_new_values().  It seems reasonable to add
SQL-level access to range-level summarization too, so add a function
brin_summarize_range() to do that.

Authors: Álvaro Herrera, based on sketch from Simon Riggs.
Reviewed-by: Thomas Munro.
Discussion: https://postgr.es/m/20170301045823.vneqdqkmsd4as4ds@alvherre.pgsql
2017-04-01 14:00:53 -03:00
..
.gitignore
abstime.sql
advisory_lock.sql
aggregates.sql Fix sharing Agg transition state of DISTINCT or ordered aggs. 2016-12-20 09:20:17 +02:00
alter_generic.sql Implement multivariate n-distinct coefficients 2017-03-24 14:06:10 -03:00
alter_operator.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
alter_table.sql Give partitioned table "p" in regression tests a less generic name. 2017-03-07 11:32:33 -05:00
amutils.sql Add SQL-accessible functions for inspecting index AM properties. 2016-08-13 18:31:14 -04:00
arrays.sql Improve expression evaluation test coverage. 2017-03-11 15:41:34 -08:00
async.sql Add new function pg_notification_queue_usage. 2015-07-17 09:12:03 -04:00
bit.sql
bitmapops.sql
boolean.sql Improve expression evaluation test coverage. 2017-03-11 15:41:34 -08:00
box.sql Fix support for some operators (&<, &>, $<|, |&>) in box operator class 2017-03-21 16:23:10 +03:00
brin.sql BRIN auto-summarization 2017-04-01 14:00:53 -03:00
btree_index.sql Add test cases for indexam operations not currently covered. 2014-11-19 19:47:43 +02:00
case.sql Faster expression evaluation and targetlist projection. 2017-03-25 14:52:06 -07:00
char.sql
circle.sql
cluster.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
collate.icu.utf8.sql Remove ICU tests from default run 2017-03-25 00:30:26 -04:00
collate.linux.utf8.sql ICU support 2017-03-23 15:28:48 -04:00
collate.sql Show sort ordering options in EXPLAIN output. 2015-01-16 18:19:00 -05:00
combocid.sql Fix locking a tuple updated by an aborted (sub)transaction 2016-09-09 15:54:29 -03:00
comments.sql
conversion.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
copy2.sql Support "COPY view FROM" for views with INSTEAD OF INSERT triggers. 2016-11-10 14:13:43 -05:00
copydml.sql COPY (INSERT/UPDATE/DELETE .. RETURNING ..) 2015-11-27 19:11:22 +03:00
copyselect.sql Have \copy go through SendQuery 2012-01-25 18:22:00 -03:00
create_aggregate.sql Fix type-safety problem with parallel aggregate serial/deserialization. 2016-06-22 16:52:41 -04:00
create_am.sql Fix broken dependency-mongering for index operator classes/families. 2016-04-13 23:33:31 -04:00
create_cast.sql Make CREATE TYPE print warnings if a datatype's I/O functions are volatile. 2014-11-05 11:44:06 -05:00
create_function_3.sql Allow referring to functions without arguments when unique 2017-03-14 23:55:19 -04:00
create_index.sql Reset the proper GUC in create_index test. 2017-01-18 16:33:54 -05:00
create_misc.sql
create_operator.sql Allow named parameters to be specified using => in addition to := 2015-03-10 11:09:41 -04:00
create_table.sql Allow partitioned tables to be dropped without CASCADE 2017-03-06 15:50:53 +05:30
create_table_like.sql Fix CREATE TABLE ... LIKE ... WITH OIDS. 2016-12-22 16:23:38 -05:00
create_type.sql Fix pg_dump to dump shell types. 2015-08-04 19:34:12 -04:00
create_view.sql Make new expression eval code reject references to dropped columns. 2017-03-28 18:05:14 -04:00
date.sql Allow negative years in make_date to represent BC years 2017-01-19 09:45:38 -03:00
dbsize.sql Add pg_size_bytes() to parse human-readable size strings. 2016-02-20 09:57:27 +00:00
delete.sql
dependency.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
domain.sql Avoid caching expression state trees for domain constraints across queries. 2015-11-29 18:18:42 -05:00
drop_if_exists.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
drop_operator.sql Fix DROP OPERATOR to reset oprcom/oprnegate links to the dropped operator. 2016-03-25 12:33:16 -04:00
enum.sql Support renaming an existing value of an enum type. 2016-09-07 16:11:56 -04:00
equivclass.sql Improve RLS planning by marking individual quals with security levels. 2017-01-18 12:58:20 -05:00
errors.sql Spelling fixes in code comments 2017-03-14 12:58:39 -04:00
event_trigger.sql Remove objname/objargs split for referring to objects 2017-03-06 13:31:47 -05:00
expressions.sql Improve expression evaluation test coverage. 2017-03-11 15:41:34 -08:00
float4.sql
float8.sql Improve regression tests for degree-based trigonometric functions. 2016-04-19 16:47:21 -04:00
foreign_data.sql Add IF NOT EXISTS for CREATE SERVER and CREATE USER MAPPING 2017-03-20 16:40:45 -04:00
foreign_key.sql Check for pending trigger events on far end when dropping an FK constraint. 2016-11-25 13:44:47 -05:00
functional_deps.sql
geometry.sql Add geometry/range functions to support BRIN inclusion 2015-05-05 15:22:24 -03:00
gin.sql Make GIN regression test stable. 2016-02-08 23:41:46 +09:00
gist.sql Fix potential platform dependence in gist regression test. 2015-08-25 11:43:37 -04:00
groupingsets.sql Attempt to stabilize grouping sets regression test plans. 2017-03-27 05:56:33 +01:00
guc.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
hash_index.sql Improve regression test coverage for hash indexes. 2016-10-18 15:57:58 -04:00
horology.sql Make to_timestamp() and to_date() range-check fields of their input. 2016-09-28 14:36:17 -04:00
hs_primary_extremes.sql Remove all references to "xlog" from SQL-callable functions in pg_proc. 2017-02-09 15:10:09 -05:00
hs_primary_setup.sql Remove all references to "xlog" from SQL-callable functions in pg_proc. 2017-02-09 15:10:09 -05:00
hs_standby_allowed.sql Better fix for sequence access in hot standby test 2017-01-04 08:47:18 -05:00
hs_standby_check.sql
hs_standby_disallowed.sql
hs_standby_functions.sql Remove all references to "xlog" from SQL-callable functions in pg_proc. 2017-02-09 15:10:09 -05:00
indirect_toast.sql Fix typos in comments. 2017-02-06 11:33:58 +02:00
inet.sql Create an SP-GiST opclass for inet/cidr. 2016-08-23 15:16:30 -04:00
inherit.sql Don't scan partitioned tables. 2017-03-21 09:48:04 -04:00
init_privs.sql Fix typos in comments. 2017-02-06 11:33:58 +02:00
insert.sql Fix improper NULL handling in list partitioning code. 2017-03-27 10:51:46 -04:00
insert_conflict.sql Revert "Allow ON CONFLICT .. DO NOTHING on a partitioned table." 2017-03-31 16:48:21 -04:00
int2.sql Add documentation and regression tests concerning rounding of numerics. 2015-07-03 17:04:39 -04:00
int4.sql Add documentation and regression tests concerning rounding of numerics. 2015-07-03 17:04:39 -04:00
int8.sql Add documentation and regression tests concerning rounding of numerics. 2015-07-03 17:04:39 -04:00
interval.sql Fix interval_transform so it doesn't throw away non-no-op casts. 2016-12-27 15:43:54 -05:00
join.sql Add explicit ORDER BY to a few tests that exercise hash-join code. 2017-02-08 16:58:21 -08:00
json.sql Fix unstable regression test result. 2017-03-31 20:29:30 -04:00
json_encoding.sql Fix whitespace 2015-10-11 21:44:27 -04:00
jsonb.sql Fix unstable regression test result. 2017-03-31 20:24:21 -04:00
large_object.sql pg_upgrade: Fix large object COMMENTS, SECURITY LABELS 2017-03-06 17:03:57 -05:00
limit.sql Fix failure to mark all aggregates with appropriate transtype. 2016-07-02 13:23:12 -04:00
line.sql Revert "Tweak "line" test to avoid negative zeros on some platforms" 2013-10-25 15:50:31 -04:00
lock.sql Add a basic atomic ops API abstracting away platform/architecture details. 2014-09-25 23:49:05 +02:00
lseg.sql
macaddr.sql Allow input format xxxx-xxxx-xxxx for macaddr type 2014-10-21 16:16:39 -04:00
macaddr8.sql Add support for EUI-64 MAC addresses as macaddr8 2017-03-15 11:16:25 -04:00
matview.sql Fix typos in comments. 2017-02-06 11:33:58 +02:00
misc_functions.sql Add num_nulls() and num_nonnulls() to count NULL arguments. 2016-02-04 23:03:37 -05:00
money.sql Register missing money operators in system catalogs 2017-01-17 12:36:02 -05:00
name.sql Introduce parse_ident() 2016-03-18 18:16:14 +03:00
namespace.sql Regression tests for SCHEMA commands 2013-12-11 20:45:15 +00:00
numeric.sql Speed up SUM calculation in numeric aggregates. 2016-09-02 11:51:49 +03:00
numeric_big.sql Fix corner-case loss of precision in numeric pow() calculation 2016-05-05 11:16:17 +01:00
numerology.sql
object_address.sql Implement multivariate n-distinct coefficients 2017-03-24 14:06:10 -03:00
oid.sql
oidjoins.sql Update oidjoins regression test for 9.6. 2016-06-22 17:12:55 -04:00
opr_sanity.sql Fix type-safety problem with parallel aggregate serial/deserialization. 2016-06-22 16:52:41 -04:00
password.sql Add regression tests for passwords. 2017-03-07 14:25:52 +02:00
path.sql
pg_lsn.sql Tweak new regression test case for better portability. 2014-06-04 21:31:41 -04:00
plancache.sql Change plan caching to honor, not resist, changes in search_path. 2013-01-25 14:14:41 -05:00
plpgsql.sql Add transition table support to plpgsql. 2017-03-31 23:30:08 -05:00
point.sql Fix gist_box_same and gist_point_consistent to handle fuzziness correctly. 2013-02-08 18:03:17 -05:00
polygon.sql regression tests: remove polygon diagrams 2015-03-19 22:10:52 -04:00
polymorphism.sql Fix incorrect handling of polymorphic aggregates used as window functions. 2016-10-09 12:49:37 -04:00
portals.sql Fix some interrelated planner issues with initPlans and Param munging. 2016-07-01 20:06:05 -04:00
portals_p2.sql
prepare.sql
prepared_xacts.sql Remove unnecessary dependency on statement_timeout in prepared_xacts test. 2017-03-13 16:46:32 -04:00
privileges.sql Altering default privileges on schemas 2017-03-28 18:58:55 +03:00
psql.sql Support \if ... \elif ... \else ... \endif in psql scripting. 2017-03-30 12:59:24 -04:00
psql_crosstab.sql Fix incorrect error reporting for duplicate data in \crosstabview. 2016-12-25 16:04:45 -05:00
publication.sql Add COMMENT and SECURITY LABEL support for publications and subscriptions 2017-03-24 23:44:23 -04:00
random.sql
rangefuncs.sql Make new expression eval code reject references to dropped columns. 2017-03-28 18:05:14 -04:00
rangetypes.sql Fix tqueue.c's range-remapping code. 2016-07-29 14:13:19 -04:00
regex.linux.utf8.sql Make locale-dependent regex character classes work for large char codes. 2016-09-05 17:06:29 -04:00
regex.sql Implement regexp_match(), a simplified alternative to regexp_matches(). 2016-08-17 18:33:01 -04:00
regproc.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
reltime.sql
replica_identity.sql Fix typos in comments. 2017-02-06 11:33:58 +02:00
returning.sql Add support for INSERT ... ON CONFLICT DO NOTHING/UPDATE. 2015-05-08 05:43:10 +02:00
roleattributes.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
rolenames.sql Fix typos in comments. 2017-02-06 11:33:58 +02:00
rowsecurity.sql Add explicit ORDER BY to a few tests that exercise hash-join code. 2017-02-08 16:58:21 -08:00
rowtypes.sql Improve expression evaluation test coverage. 2017-03-11 15:41:34 -08:00
rules.sql Fix a couple of problems in pg_get_statisticsextdef 2017-03-27 01:03:50 -03:00
sanity_check.sql Change the relkind for partitioned tables from 'P' to 'p'. 2017-03-10 13:15:47 -05:00
security_label.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
select.sql Expose explain's SUMMARY option 2017-03-08 15:14:03 -05:00
select_distinct.sql Disable physical tlist if any Var would need multiple sortgroupref labels. 2016-05-26 14:52:30 -04:00
select_distinct_on.sql
select_having.sql
select_implicit.sql
select_into.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
select_parallel.sql Add a Gather Merge executor node. 2017-03-09 07:49:29 -05:00
select_views.sql Improve qual pushdown for RLS and SB views 2015-04-27 12:29:42 -04:00
sequence.sql Add CREATE SEQUENCE AS <data type> clause 2017-02-10 15:34:35 -05:00
spgist.sql Add test cases for indexam operations not currently covered. 2014-11-19 19:47:43 +02:00
stats.sql Make stats regression test robust in the face of parallel query. 2016-03-04 16:20:49 -05:00
stats_ext.sql Rework the stats_ext test 2017-03-27 12:43:04 -03:00
strings.sql Fix regexp_matches() handling of zero-length matches. 2013-07-31 11:31:22 -04:00
subscription.sql Remember to drop roles created by regression tests. 2017-03-25 17:25:28 -04:00
subselect.sql Fix placement of initPlans when forcibly materializing a subplan. 2017-02-02 19:11:32 -05:00
sysviews.sql Invent pg_hba_file_rules view to show the content of pg_hba.conf. 2017-01-30 18:00:26 -05:00
tablesample.sql Make tablesample work with partitioned tables. 2017-02-24 12:23:28 +05:30
temp.sql
text.sql Move checking an explicit VARIADIC "any" argument into the parser. 2013-07-18 11:52:12 -04:00
tidscan.sql Improve regression test coverage for TID scanning. 2017-03-20 12:30:23 -04:00
time.sql
timestamp.sql Be more careful about out-of-range dates and timestamps. 2016-03-16 19:09:28 -04:00
timestamptz.sql Fix timestamptz regression test to still work with latest IANA zone data. 2017-03-09 17:20:33 -05:00
timetz.sql
tinterval.sql
transactions.sql Fix subtransaction cleanup after an outer-subtransaction portal fails. 2015-09-04 13:37:14 -04:00
triggers.sql Add transition table support to plpgsql. 2017-03-31 23:30:08 -05:00
truncate.sql Fix relcache reference leak. 2017-03-07 11:27:21 -05:00
tsdicts.sql Spelling fixes 2017-03-14 12:58:39 -04:00
tsearch.sql Ensure that a tsquery like '!foo' matches empty tsvectors. 2017-01-26 12:18:07 -05:00
tsrf.sql Support hashed aggregation with grouping sets. 2017-03-27 04:20:54 +01:00
tstypes.sql Ensure that a tsquery like '!foo' matches empty tsvectors. 2017-01-26 12:18:07 -05:00
txid.sql Add a txid_status function. 2017-03-24 12:00:53 -04:00
type_sanity.sql Implement multivariate n-distinct coefficients 2017-03-24 14:06:10 -03:00
typed_table.sql
union.sql Fix Assert failure induced by commit 215b43cdc. 2017-01-19 18:20:58 -05:00
updatable_views.sql Use non-conflicting table names in new regression test case. 2017-01-24 19:02:22 -05:00
update.sql Allow partitioned tables to be dropped without CASCADE 2017-03-06 15:50:53 +05:30
uuid.sql Fix whitespace issues found by git diff --check, add gitattributes 2013-11-10 14:48:29 -05:00
vacuum.sql Fix relcache reference leak. 2017-03-07 11:27:21 -05:00
varchar.sql
window.sql Allow pushdown of WHERE quals into subqueries with window functions. 2014-06-27 23:08:08 -07:00
with.sql Add infrastructure to support EphemeralNamedRelation references. 2017-03-31 23:17:18 -05:00
without_oid.sql
xml.sql Support XMLTABLE query expression 2017-03-08 12:40:26 -03:00
xmlmap.sql Add regression tests for XML mapping of domains 2013-03-13 22:42:57 -04:00