postgresql/src/test/regress/sql
David Rowley b6002a796d Add Result Cache executor node
Here we add a new executor node type named "Result Cache".  The planner
can include this node type in the plan to have the executor cache the
results from the inner side of parameterized nested loop joins.  This
allows caching of tuples for sets of parameters so that in the event that
the node sees the same parameter values again, it can just return the
cached tuples instead of rescanning the inner side of the join all over
again.  Internally, result cache uses a hash table in order to quickly
find tuples that have been previously cached.

For certain data sets, this can significantly improve the performance of
joins.  The best cases for using this new node type are for join problems
where a large portion of the tuples from the inner side of the join have
no join partner on the outer side of the join.  In such cases, hash join
would have to hash values that are never looked up, thus bloating the hash
table and possibly causing it to multi-batch.  Merge joins would have to
skip over all of the unmatched rows.  If we use a nested loop join with a
result cache, then we only cache tuples that have at least one join
partner on the outer side of the join.  The benefits of using a
parameterized nested loop with a result cache increase when there are
fewer distinct values being looked up and the number of lookups of each
value is large.  Also, hash probes to lookup the cache can be much faster
than the hash probe in a hash join as it's common that the result cache's
hash table is much smaller than the hash join's due to result cache only
caching useful tuples rather than all tuples from the inner side of the
join.  This variation in hash probe performance is more significant when
the hash join's hash table no longer fits into the CPU's L3 cache, but the
result cache's hash table does.  The apparent "random" access of hash
buckets with each hash probe can cause a poor L3 cache hit ratio for large
hash tables.  Smaller hash tables generally perform better.

The hash table used for the cache limits itself to not exceeding work_mem
* hash_mem_multiplier in size.  We maintain a dlist of keys for this cache
and when we're adding new tuples and realize we've exceeded the memory
budget, we evict cache entries starting with the least recently used ones
until we have enough memory to add the new tuples to the cache.

For parameterized nested loop joins, we now consider using one of these
result cache nodes in between the nested loop node and its inner node.  We
determine when this might be useful based on cost, which is primarily
driven off of what the expected cache hit ratio will be.  Estimating the
cache hit ratio relies on having good distinct estimates on the nested
loop's parameters.

For now, the planner will only consider using a result cache for
parameterized nested loop joins.  This works for both normal joins and
also for LATERAL type joins to subqueries.  It is possible to use this new
node for other uses in the future.  For example, to cache results from
correlated subqueries.  However, that's not done here due to some
difficulties obtaining a distinct estimation on the outer plan to
calculate the estimated cache hit ratio.  Currently we plan the inner plan
before planning the outer plan so there is no good way to know if a result
cache would be useful or not since we can't estimate the number of times
the subplan will be called until the outer plan is generated.

The functionality being added here is newly introducing a dependency on
the return value of estimate_num_groups() during the join search.
Previously, during the join search, we only ever needed to perform
selectivity estimations.  With this commit, we need to use
estimate_num_groups() in order to estimate what the hit ratio on the
result cache will be.   In simple terms, if we expect 10 distinct values
and we expect 1000 outer rows, then we'll estimate the hit ratio to be
99%.  Since cache hits are very cheap compared to scanning the underlying
nodes on the inner side of the nested loop join, then this will
significantly reduce the planner's cost for the join.   However, it's
fairly easy to see here that things will go bad when estimate_num_groups()
incorrectly returns a value that's significantly lower than the actual
number of distinct values.  If this happens then that may cause us to make
use of a nested loop join with a result cache instead of some other join
type, such as a merge or hash join.  Our distinct estimations have been
known to be a source of trouble in the past, so the extra reliance on them
here could cause the planner to choose slower plans than it did previous
to having this feature.  Distinct estimations are also fairly hard to
estimate accurately when several tables have been joined already or when a
WHERE clause filters out a set of values that are correlated to the
expressions we're estimating the number of distinct value for.

For now, the costing we perform during query planning for result caches
does put quite a bit of faith in the distinct estimations being accurate.
When these are accurate then we should generally see faster execution
times for plans containing a result cache.  However, in the real world, we
may find that we need to either change the costings to put less trust in
the distinct estimations being accurate or perhaps even disable this
feature by default.  There's always an element of risk when we teach the
query planner to do new tricks that it decides to use that new trick at
the wrong time and causes a regression.  Users may opt to get the old
behavior by turning the feature off using the enable_resultcache GUC.
Currently, this is enabled by default.  It remains to be seen if we'll
maintain that setting for the release.

Additionally, the name "Result Cache" is the best name I could think of
for this new node at the time I started writing the patch.  Nobody seems
to strongly dislike the name. A few people did suggest other names but no
other name seemed to dominate in the brief discussion that there was about
names. Let's allow the beta period to see if the current name pleases
enough people.  If there's some consensus on a better name, then we can
change it before the release.  Please see the 2nd discussion link below
for the discussion on the "Result Cache" name.

Author: David Rowley
Reviewed-by: Andy Fan, Justin Pryzby, Zhihong Yu
Tested-By: Konstantin Knizhnik
Discussion: https://postgr.es/m/CAApHDvrPcQyQdWERGYWx8J%2B2DLUNgXu%2BfOSbQ1UscxrunyXyrQ%40mail.gmail.com
Discussion: https://postgr.es/m/CAApHDvq=yQXr5kqhRviT2RhNKwToaWr9JAN5t+5_PzhuRJ3wvg@mail.gmail.com
2021-04-01 12:32:22 +13:00
..
.gitignore
advisory_lock.sql
aggregates.sql Add Result Cache executor node 2021-04-01 12:32:22 +13:00
alter_generic.sql Implement operator class parameters 2020-03-30 19:17:23 +03:00
alter_operator.sql Avoid unnecessary use of pg_strcasecmp for already-downcased identifiers. 2018-01-26 18:25:14 -05:00
alter_table.sql ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY 2021-03-25 18:00:28 -03:00
amutils.sql Add support for nearest-neighbor (KNN) searches to SP-GiST 2018-09-19 01:54:10 +03:00
arrays.sql Add trim_array() function. 2021-03-03 16:39:57 -05:00
async.sql Add new function pg_notification_queue_usage. 2015-07-17 09:12:03 -04:00
bit.sql Add bit_count SQL function 2021-03-23 10:13:58 +01:00
bitmapops.sql
boolean.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
box.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
brin.sql Properly detoast data in brin_form_tuple 2020-11-07 00:39:19 +01:00
brin_bloom.sql BRIN bloom indexes 2021-03-26 13:35:32 +01:00
brin_multi.sql BRIN minmax-multi indexes 2021-03-26 13:54:30 +01:00
btree_index.sql Don't consider newly inserted tuples in nbtree VACUUM. 2021-03-10 16:27:01 -08:00
case.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
char.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
circle.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
cluster.sql Avoid possible crash while finishing up a heap rewrite. 2021-03-23 11:24:16 -04:00
collate.icu.utf8.sql Revert "pg_collation_actual_version() -> pg_collation_current_version()." 2021-02-26 15:29:27 +13:00
collate.linux.utf8.sql Remove pg_collation.collversion. 2020-11-03 00:44:59 +13:00
collate.sql Account for collation when coercing the output of a SQL function. 2020-04-14 17:30:36 -04:00
combocid.sql Sanitize the term "combo CID" in code comments 2021-03-25 16:08:03 +09:00
comments.sql
compression.sql Fix interaction of TOAST compression with expression indexes. 2021-03-25 19:55:32 -04:00
conversion.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
copy2.sql Fix handling of redundant options with COPY for "freeze" and "header" 2020-10-05 09:43:17 +09:00
copydml.sql Extend a test case a little 2021-02-26 09:11:15 +01:00
copyselect.sql
create_aggregate.sql Introduce "anycompatible" family of polymorphic types. 2020-03-19 11:43:11 -04:00
create_am.sql Remove deprecated containment operators for built-in types 2020-11-03 10:43:12 +01: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 Routine usage information schema tables 2021-02-17 18:16:06 +01:00
create_index.sql Fix ORDER BY clause in new regression test of REINDEX CONCURRENTLY 2021-02-10 16:59:04 +09:00
create_index_spgist.sql Rename the "point is strictly above/below point" comparison operators. 2020-11-23 11:38:37 -05:00
create_misc.sql Remove gratuitous uses of deprecated SELECT INTO 2021-01-28 14:28:41 +01:00
create_operator.sql Remove support for postfix (right-unary) operators. 2020-09-17 19:38:05 -04:00
create_procedure.sql Support for OUT parameters in procedures 2020-10-05 09:21:43 +02:00
create_table.sql Fix assertion failure in check_new_partition_bound(). 2020-10-30 17:00:59 -04:00
create_table_like.sql Extended statistics on expressions 2021-03-27 00:01:11 +01:00
create_type.sql Allow ALTER TYPE to update an existing type's typsubscript value. 2020-12-11 18:58:21 -05:00
create_view.sql Allow an alias to be attached to a JOIN ... USING 2021-03-31 17:10:50 +02:00
date.sql Clean up date_part tests a bit 2021-03-29 17:53:30 +02: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 Un-hide most cascaded-drop details in regression test results. 2019-03-24 19:15:37 -04:00
domain.sql Remove undocumented IS [NOT] OF syntax. 2020-11-19 17:39:39 -05:00
drop_if_exists.sql Introduce the 'force' option for the Drop Database command. 2019-11-13 08:25:33 +05:30
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 Relax transactional restrictions on ALTER TYPE ... ADD VALUE (redux). 2018-10-09 12:51:01 +13:00
equivclass.sql Suppress unnecessary RelabelType nodes in more cases. 2020-02-26 18:14:12 -05:00
errors.sql Paper over regression failures in infinite_recurse() on PPC64 Linux. 2020-10-13 17:44:56 -04:00
event_trigger.sql Fix confusion about event trigger vs. plain function in plpgsql. 2020-02-19 14:45:17 -05:00
explain.sql Drop SERIALIZABLE workaround from parallel query tests. 2021-03-15 23:30:22 +13:00
expressions.sql Add some test cases to improve test coverage of parse_expr.c. 2019-07-05 23:56:34 -04:00
fast_default.sql Fix heap_getattr() handling of fast defaults. 2019-02-06 01:09:32 -08:00
float4.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
float8.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
foreign_data.sql Fix partitioned index creation with foreign partitions 2019-06-26 18:38:51 -04:00
foreign_key.sql Avoid creating duplicate cached plans for inherited FK constraints. 2021-03-10 14:22:31 -05:00
functional_deps.sql
generated.sql Allow a multi-row INSERT to specify DEFAULTs for a generated column. 2020-11-22 15:48:32 -05:00
geometry.sql Fix some typos, grammar and style in docs and comments 2021-02-24 16:13:17 +09:00
gin.sql Improve test coverage of ginvacuum.c. 2020-09-01 18:40:43 -04:00
gist.sql Add support for <-> (box, point) operator to GiST box_ops 2019-07-14 15:09:15 +03:00
groupingsets.sql Implement GROUP BY DISTINCT 2021-03-18 18:22:18 +01:00
guc.sql Give up on testing guc.c's behavior for "infinity" inputs. 2019-03-11 17:53:09 -04:00
hash_func.sql Multirange datatypes 2020-12-20 07:20:33 +03:00
hash_index.sql Add more tests for reloptions 2017-10-19 14:22:05 +02:00
hash_part.sql Fix typo in test comment. 2020-05-28 12:35:18 +03:00
horology.sql Clean up ancient test style 2020-12-15 22:03:39 +01: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 Allow UNLISTEN in hot-standby mode. 2019-01-25 21:14:49 -05:00
hs_standby_check.sql
hs_standby_disallowed.sql Allow UNLISTEN in hot-standby mode. 2019-01-25 21:14:49 -05:00
hs_standby_functions.sql Introduce xid8-based functions to replace txid_XXX. 2020-04-07 12:04:32 +12:00
identity.sql Forbid marking an identity column as nullable. 2021-03-12 11:08:42 -05:00
incremental_sort.sql Simplify loop logic in nodeIncrementalSort.c. 2021-02-15 10:17:58 -05:00
index_including.sql Fix nbtree high key "continuescan" row compare bug. 2019-03-31 17:24:04 -07:00
index_including_gist.sql Support for INCLUDE attributes in GiST indexes 2019-03-10 11:37:17 +03:00
indexing.sql Raise error on concurrent drop of partitioned index 2020-09-01 13:40:43 -04:00
indirect_toast.sql Clean up duplicate table and function names in regression tests. 2018-03-15 17:09:02 -04:00
inet.sql Add test case for abbrev(cidr) 2021-02-11 09:56:14 +01:00
infinite_recurse.sql Paper over regression failures in infinite_recurse() on PPC64 Linux. 2020-10-13 17:44:56 -04:00
inherit.sql Add regression tests for constraint errors in partitioned tables. 2020-03-23 15:06:11 -07:00
init_privs.sql Fix typos in comments. 2017-02-06 11:33:58 +02:00
insert.sql Accept slightly-filled pages for tuples larger than fillfactor. 2021-03-30 18:53:44 -07:00
insert_conflict.sql Don't mark partitioned indexes invalid unnecessarily 2018-12-05 13:31:51 -03:00
int2.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
int4.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
int8.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
interval.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
join.sql Add Result Cache executor node 2021-04-01 12:32:22 +13:00
join_hash.sql Fix representation of hash keys in Hash/HashJoin nodes. 2019-08-02 00:02:46 -07:00
json.sql Improve reporting for syntax errors in multi-line JSON data. 2021-03-01 16:44:17 -05:00
json_encoding.sql Allow Unicode escapes in any server encoding, not only UTF-8. 2020-03-06 14:17:43 -05:00
jsonb.sql Improve reporting for syntax errors in multi-line JSON data. 2021-03-01 16:44:17 -05:00
jsonb_jsonpath.sql Support for ISO 8601 in the jsonpath .datetime() method 2020-09-29 12:00:04 +03:00
jsonpath.sql Implement jsonpath .datetime() method 2019-09-25 22:51:51 +03:00
jsonpath_encoding.sql Allow Unicode escapes in any server encoding, not only UTF-8. 2020-03-06 14:17:43 -05:00
limit.sql WITH TIES: number of rows is optional and defaults to one 2020-05-18 19:28:46 -04:00
line.sql Improve test coverage of geometric types 2018-09-26 10:45:21 +02:00
lock.sql Revert "Accept relations of any kind in LOCK TABLE". 2020-11-06 16:17:56 -05:00
lseg.sql Improve test coverage of geometric types 2018-09-26 10:45:21 +02:00
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 Sanitize IF NOT EXISTS in EXPLAIN for CTAS and matviews 2020-12-30 21:23:24 +09:00
misc_functions.sql Avoid holding a directory FD open across assorted SRF calls. 2020-03-16 21:05:52 -04:00
misc_sanity.sql Add primary keys and unique constraints to system catalogs 2021-01-30 19:44:29 +01:00
money.sql Fix loss of fractional digits for large values in cash_numeric(). 2019-07-26 11:59:00 -04:00
multirangetypes.sql Fix selectivity estimation @> (anymultirange, anyrange) operator 2020-12-30 20:31:15 +03:00
name.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
namespace.sql Clean up duplicate role and schema names in regression tests. 2018-03-15 14:00:31 -04:00
numeric.sql Fix numeric_power() when the exponent is INT_MIN. 2021-01-05 11:15:28 +00:00
numeric_big.sql Fix corner-case loss of precision in numeric ln(). 2020-03-01 14:49:25 +00:00
numerology.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
object_address.sql Eliminate cache lookup errors in SQL functions for object addresses 2020-07-15 09:03:10 +09:00
oid.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
oidjoins.sql Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
opr_sanity.sql Multirange datatypes 2020-12-20 07:20:33 +03:00
partition_aggregate.sql Move per-agg and per-trans duplicate finding to the planner. 2020-11-24 10:45:00 +02:00
partition_info.sql Fix crash with pg_partition_root 2019-03-22 17:27:38 +09:00
partition_join.sql Copy editing: fix a bunch of misspellings and poor wording. 2020-09-21 12:43:42 -04:00
partition_prune.sql Add Result Cache executor node 2021-04-01 12:32:22 +13:00
password.sql Change default of password_encryption to scram-sha-256 2020-06-10 16:42:55 +02:00
path.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
pg_lsn.sql Add +(pg_lsn,numeric) and -(pg_lsn,numeric) operators. 2020-06-30 23:55:07 +09:00
plancache.sql Add generic_plans and custom_plans fields into pg_prepared_statements. 2020-07-20 11:55:50 +09:00
plpgsql.sql Remove PLPGSQL_DTYPE_ARRAYELEM datum type within pl/pgsql. 2021-01-04 12:14:37 -05:00
point.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
polygon.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
polymorphism.sql Multirange datatypes 2020-12-20 07:20:33 +03:00
portals.sql Fix failure in WHERE CURRENT OF after rewinding the referenced cursor. 2018-09-23 16:05:45 -04:00
portals_p2.sql
prepare.sql Add more tests for CREATE TABLE AS with WITH NO DATA 2019-02-07 09:21:57 +09:00
prepared_xacts.sql Remove unnecessary dependency on statement_timeout in prepared_xacts test. 2017-03-13 16:46:32 -04:00
privileges.sql Fix has_column_privilege function corner case 2021-03-31 13:55:25 -04:00
psql.sql Revert unstable test cases from commit 7d80441d2. 2021-01-05 19:03:56 -05:00
psql_crosstab.sql Fix incorrect error reporting for duplicate data in \crosstabview. 2016-12-25 16:04:45 -05:00
publication.sql Allow publishing partition changes via ancestors 2020-04-08 11:19:23 +02:00
random.sql Remove gratuitous uses of deprecated SELECT INTO 2021-01-28 14:28:41 +01:00
rangefuncs.sql Fix list-munging bug that broke SQL function result coercions. 2020-10-19 14:33:09 -04:00
rangetypes.sql Fix selectivity estimation @> (anymultirange, anyrange) operator 2020-12-30 20:31:15 +03: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 Fix misoptimization of "{1,1}" quantifiers in regular expressions. 2019-05-12 18:53:38 -04:00
regproc.sql Implement type regcollation 2020-03-18 21:21:00 +01:00
reindex_catalog.sql Fix rd_firstRelfilenodeSubid for nailed relations, in parallel workers. 2020-09-09 18:50:24 -07:00
reloptions.sql Add vacuum_truncate reloption. 2019-04-08 16:43:57 +09:00
replica_identity.sql Preserve replica identity index across ALTER TABLE rewrite 2020-03-13 11:57:06 +01:00
resultcache.sql Add Result Cache executor node 2021-04-01 12:32:22 +13:00
returning.sql Add support for INSERT ... ON CONFLICT DO NOTHING/UPDATE. 2015-05-08 05:43:10 +02:00
roleattributes.sql Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08:00
rowsecurity.sql Fix usage of whole-row variables in WCO and RLS policy expressions. 2019-09-12 18:29:45 -04:00
rowtypes.sql Add a couple of regression test cases related to array subscripting. 2020-12-07 11:10:21 -05:00
rules.sql Disallow converting an inheritance child table to a view. 2021-02-06 15:17:01 -05:00
sanity_check.sql Don't create relfilenode for relations without storage 2019-01-04 14:51:17 -03:00
security_label.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
select.sql Make some subquery-using test cases a bit more robust. 2018-10-14 14:02:59 -04:00
select_distinct.sql Disk-based Hash Aggregation. 2020-03-18 15:42:02 -07:00
select_distinct_on.sql
select_having.sql
select_implicit.sql Remove gratuitous uses of deprecated SELECT INTO 2021-01-28 14:28:41 +01:00
select_into.sql Sanitize IF NOT EXISTS in EXPLAIN for CTAS and matviews 2020-12-30 21:23:24 +09:00
select_parallel.sql Drop SERIALIZABLE workaround from parallel query tests. 2021-03-15 23:30:22 +13:00
select_views.sql Avoid locale-dependent output in select_views regression test. 2017-05-28 14:52:18 -04:00
sequence.sql Make command order in test more sensible 2019-10-22 10:35:54 +02:00
spgist.sql Repair double-free in SP-GIST rescan (bug #15378) 2018-09-11 18:14:19 +01:00
stats.sql Partially revert "Insert temporary debugging output in regression tests." 2019-08-11 18:55:32 -04:00
stats_ext.sql Stabilize stats_ext test with other collations 2021-03-27 18:26:56 +01:00
strings.sql Add unistr function 2021-03-29 11:56:53 +02:00
subscription.sql Fix Subscription test added by commit ce0fdbfe97. 2021-02-12 10:11:16 +05:30
subselect.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
sysviews.sql Fix "invalid spinlock number: 0" error in pg_stat_wal_receiver. 2021-02-18 23:28:15 +09:00
tablesample.sql Make tablesample work with partitioned tables. 2017-02-24 12:23:28 +05:30
temp.sql Fix misbehavior with expression indexes on ON COMMIT DELETE ROWS tables. 2019-12-01 13:09:26 -05:00
text.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
tid.sql Remove catalog function currtid() 2020-11-25 12:18:26 +09:00
tidrangescan.sql Add TID Range Scans to support efficient scanning ranges of TIDs 2021-02-27 22:59:36 +13:00
tidscan.sql Fix bug in Tid scan. 2020-02-07 22:06:31 +09:00
time.sql Add test coverage for EXTRACT() 2020-06-14 08:04:45 +02:00
timestamp.sql Add tests for date_part of epoch near upper bound of timestamp range 2021-03-30 22:05:18 +02:00
timestamptz.sql Add tests for date_part of epoch near upper bound of timestamp range 2021-03-30 22:05:18 +02:00
timetz.sql Stabilize timetz test across DST transitions. 2020-10-29 15:28:14 -04:00
transactions.sql Fix transaction.sql tests in higher isolation levels. 2021-03-17 17:26:20 +13:00
triggers.sql Fix use-after-free bug with AfterTriggersTableData.storeslot 2021-02-27 18:09:15 -03:00
truncate.sql Fix TRUNCATE .. CASCADE on partitions 2020-02-07 17:09:36 -03:00
tsdicts.sql Preserve integer and float values accurately in (de)serialize_deflist. 2020-03-10 12:30:02 -04:00
tsearch.sql Fix parsing of complex morphs to tsquery 2021-01-31 20:14:29 +03:00
tsrf.sql Fix handling of targetlist SRFs when scan/join relation is known empty. 2019-03-07 14:22:13 -05:00
tstypes.sql Fix assorted bugs by changing TS_execute's callback API to ternary logic. 2020-07-24 15:26:51 -04:00
tuplesort.sql Fix some typos, grammar and style in docs and comments 2021-02-24 16:13:17 +09:00
txid.sql Introduce xid8-based functions to replace txid_XXX. 2020-04-07 12:04:32 +12:00
type_sanity.sql Multirange datatypes 2020-12-20 07:20:33 +03:00
typed_table.sql Suppress less info in regression tests using DROP CASCADE. 2017-08-01 16:49:23 -04:00
unicode.sql Add SQL functions for Unicode normalization 2020-04-02 08:56:27 +02:00
union.sql Hash support for row types 2020-11-19 09:32:47 +01:00
updatable_views.sql Calculate extraUpdatedCols in query rewriter, not parser. 2020-10-28 13:47:02 -04:00
update.sql Introduce xid8-based functions to replace txid_XXX. 2020-04-07 12:04:32 +12:00
uuid.sql Add gen_random_uuid function 2019-07-14 14:30:27 +02:00
vacuum.sql Add option PROCESS_TOAST to VACUUM 2021-02-09 14:13:57 +09:00
varchar.sql Clean up ancient test style 2020-12-15 22:03:39 +01:00
window.sql Declare lead() and lag() using anycompatible not anyelement. 2020-11-04 15:08:37 -05:00
with.sql Enhanced cycle mark values 2021-02-27 08:13:24 +01:00
write_parallel.sql Enable parallelism in REFRESH MATERIALIZED VIEW. 2021-03-17 15:04:17 +13:00
xid.sql Introduce xid8-based functions to replace txid_XXX. 2020-04-07 12:04:32 +12:00
xml.sql Avoid failure when selecting a namespace node in XMLTABLE. 2019-10-25 15:22:45 -04:00
xmlmap.sql Fix cursor_to_xml in tableforest false mode 2017-05-03 21:41:10 -04:00