postgresql/src/test/regress/sql
Tom Lane 1fb57af920 Create the infrastructure for planner support functions.
Rename/repurpose pg_proc.protransform as "prosupport".  The idea is
still that it names an internal function that provides knowledge to
the planner about the behavior of the function it's attached to;
but redesign the API specification so that it's not limited to doing
just one thing, but can support an extensible set of requests.

The original purpose of simplifying a function call is handled by
the first request type to be invented, SupportRequestSimplify.
Adjust all the existing transform functions to handle this API,
and rename them fron "xxx_transform" to "xxx_support" to reflect
the potential generalization of what they do.  (Since we never
previously provided any way for extensions to add transform functions,
this change doesn't create an API break for them.)

Also add DDL and pg_dump support for attaching a support function to a
user-defined function.  Unfortunately, DDL access has to be restricted
to superusers, at least for now; but seeing that support functions
will pretty much have to be written in C, that limitation is just
theoretical.  (This support is untested in this patch, but a follow-on
patch will add cases that exercise it.)

Discussion: https://postgr.es/m/15193.1548028093@sss.pgh.pa.us
2019-02-09 18:08:48 -05:00
..
.gitignore Add a SECURITY LABEL command. 2010-09-27 20:55:27 -04:00
advisory_lock.sql Add transaction-level advisory locks. 2011-02-18 14:05:12 +09:00
aggregates.sql Postpone aggregate checks until after collation is assigned. 2019-01-17 06:46:10 +00:00
alter_generic.sql Clean up duplicate role and schema names in regression tests. 2018-03-15 14:00:31 -04: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 Create the infrastructure for planner support functions. 2019-02-09 18:08:48 -05:00
amutils.sql Add support for nearest-neighbor (KNN) searches to SP-GiST 2018-09-19 01:54:10 +03: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 Remove ruleutils.c's special case for BIT [VARYING] literals. 2018-09-11 16:32:25 -04:00
bitmapops.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
boolean.sql Expand AND/OR regression tests around NULL handling. 2018-03-13 16:12:31 -07:00
box.sql Improve test coverage of geometric types 2018-09-26 10:45:21 +02:00
brin.sql Fix BRIN cost estimation 2017-04-06 17:51:53 -03:00
btree_index.sql Skip full index scan during cleanup of B-tree indexes when possible 2018-04-04 19:29:00 +03:00
case.sql Fix interaction of CASE and ArrayCoerceExpr. 2018-10-30 15:26:11 -04:00
char.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
circle.sql Improve test coverage of geometric types 2018-09-26 10:45:21 +02:00
cluster.sql Ignore partitioned indexes where appropriate 2018-01-25 16:12:15 -03:00
collate.icu.utf8.sql Hide cascade messages in collate tests 2019-02-06 22:17:57 +01:00
collate.linux.utf8.sql Hide cascade messages in collate tests 2019-02-06 22:17:57 +01:00
collate.sql Avoid unnecessary use of pg_strcasecmp for already-downcased identifiers. 2018-01-26 18:25:14 -05:00
combocid.sql Fix locking a tuple updated by an aborted (sub)transaction 2016-09-09 15:54:29 -03:00
comments.sql Implement nested block comments in the backend and in psql. 2000-07-14 15:43:57 +00:00
conversion.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
copy2.sql Allow COPY FROM to filter data using WHERE conditions 2019-01-20 00:22:14 +01: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 Improve spelling of new FINALFUNC_MODIFY aggregate attribute. 2018-05-21 11:41:42 -04:00
create_am.sql Remove no-op GiST support functions in the core GiST opclasses. 2017-09-19 23:32:59 -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 Mop-up for letting VOID-returning SQL functions end with a SELECT. 2018-03-16 12:48:13 -04:00
create_index.sql Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08:00
create_misc.sql Improve regression test coverage of regress.c. 2018-02-27 12:13:14 -05:00
create_operator.sql Fix lexing of standard multi-character operators in edge cases. 2018-08-23 21:42:40 +01:00
create_procedure.sql Add collation assignment to CALL statement 2019-02-07 08:25:47 +01:00
create_table.sql Make regression test output locale-independent 2019-01-26 09:22:27 +01:00
create_table_like.sql Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08:00
create_type.sql Fix format_type() to restore its old behavior. 2018-03-01 11:37:46 -05:00
create_view.sql Clean up duplicate role and schema names in regression tests. 2018-03-15 14:00:31 -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 Regression tests for TOAST. 2011-04-25 09:48:10 -04:00
dependency.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
domain.sql Drop no-op CoerceToDomain nodes from expressions at planning time. 2018-12-13 13:24:43 -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 Relax transactional restrictions on ALTER TYPE ... ADD VALUE (redux). 2018-10-09 12:51:01 +13:00
equivclass.sql Reduce "X = X" to "X IS NOT NULL", if it's easy to do so. 2017-10-08 12:23:32 -04:00
errors.sql Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08:00
event_trigger.sql Test that event triggers work in functions and procedures 2018-10-10 22:41:12 +02:00
expressions.sql Improve expression evaluation test coverage. 2017-03-11 15:41:34 -08:00
fast_default.sql Fix heap_getattr() handling of fast defaults. 2019-02-06 01:09:32 -08:00
float4.sql Fix float-to-integer coercions to handle edge cases correctly. 2018-11-23 20:57:11 -05:00
float8.sql Adjust new test case for more portability. 2018-11-23 23:49:25 -05:00
foreign_data.sql Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08:00
foreign_key.sql Fix droppability of constraints upon partition detach 2019-01-24 14:09:56 -03:00
fsm.sql Avoid creation of the free space map for small heap relations, take 2. 2019-02-04 07:49:15 +05:30
functional_deps.sql Recognize functional dependency on primary keys. This allows a table's 2010-08-07 02:44:09 +00:00
geometry.sql Improve test coverage of geometric types 2018-09-26 10:45:21 +02:00
gin.sql Make GIN regression test stable. 2016-02-08 23:41:46 +09:00
gist.sql Add more tests for reloptions 2017-10-19 14:22:05 +02:00
groupingsets.sql Postpone aggregate checks until after collation is assigned. 2019-01-17 06:46:10 +00:00
guc.sql Re-add default_with_oids GUC to avoid breaking old dump files. 2019-01-14 15:30:24 -08:00
hash_func.sql Introduce 64-bit hash functions with a 64-bit seed. 2017-08-31 22:21:21 -04:00
hash_index.sql Add more tests for reloptions 2017-10-19 14:22:05 +02:00
hash_part.sql Use custom hash opclass for hash partition pruning 2018-04-13 12:27:22 -03:00
horology.sql Remove deprecated abstime, reltime, tinterval datatypes. 2018-10-11 11:59:15 -07: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 Allow read only connections during recovery, known as Hot Standby. 2009-12-19 01:32:45 +00:00
hs_standby_disallowed.sql Allow UNLISTEN in hot-standby mode. 2019-01-25 21:14:49 -05:00
hs_standby_functions.sql Remove all references to "xlog" from SQL-callable functions in pg_proc. 2017-02-09 15:10:09 -05:00
identity.sql Revert MERGE patch 2018-04-12 11:22:56 +01:00
index_including.sql Remove pg_constraint.conincluding 2018-09-03 12:59:26 -03:00
indexing.sql Detach constraints when partitions are detached 2019-01-24 00:01:32 -03:00
indirect_toast.sql Clean up duplicate table and function names in regression tests. 2018-03-15 17:09:02 -04:00
inet.sql Create an SP-GiST opclass for inet/cidr. 2016-08-23 15:16:30 -04:00
inherit.sql Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08:00
init_privs.sql Fix typos in comments. 2017-02-06 11:33:58 +02:00
insert.sql Use custom hash opclass for hash partition pruning 2018-04-13 12:27:22 -03:00
insert_conflict.sql Don't mark partitioned indexes invalid unnecessarily 2018-12-05 13:31:51 -03: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 integer-overflow problems in interval comparison. 2017-04-05 23:51:27 -04:00
join.sql In the planner, replace an empty FROM clause with a dummy RTE. 2019-01-28 17:54:23 -05:00
json.sql Fix another crash in json{b}_populate_recordset and json{b}_to_recordset. 2018-11-22 15:14:01 -05:00
json_encoding.sql Fix whitespace 2015-10-11 21:44:27 -04:00
jsonb.sql Fix another crash in json{b}_populate_recordset and json{b}_to_recordset. 2018-11-22 15:14:01 -05:00
limit.sql Add regression tests exercising more code paths in nodeLimit.c. 2017-08-11 17:28:01 -04:00
line.sql Improve test coverage of geometric types 2018-09-26 10:45:21 +02:00
lock.sql Add more infinite recursion detection while locking a view. 2018-04-17 16:59:17 +09: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 Remove useless and rather expensive stanza in matview regression test. 2017-05-03 19:37:01 -04:00
misc_functions.sql Add num_nulls() and num_nonnulls() to count NULL arguments. 2016-02-04 23:03:37 -05:00
misc_sanity.sql Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08:00
money.sql Fix precision and rounding issues in money multiplication and division. 2017-05-21 13:05:16 -04:00
name.sql Introduce parse_ident() 2016-03-18 18:16:14 +03:00
namespace.sql Clean up duplicate role and schema names in regression tests. 2018-03-15 14:00:31 -04:00
numeric.sql Make numeric power() handle NaNs according to the modern POSIX spec. 2018-05-17 11:10:50 -04:00
numeric_big.sql Fix corner-case loss of precision in numeric pow() calculation 2016-05-05 11:16:17 +01:00
numerology.sql Remove extra newlines at end and beginning of files, add missing newlines 2010-08-19 05:57:36 +00:00
object_address.sql Create the infrastructure for planner support functions. 2019-02-09 18:08:48 -05:00
oid.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
oidjoins.sql Create the infrastructure for planner support functions. 2019-02-09 18:08:48 -05:00
opr_sanity.sql Create the infrastructure for planner support functions. 2019-02-09 18:08:48 -05:00
partition_aggregate.sql Disable support for partitionwise joins in problematic cases. 2018-08-31 20:34:06 +09:00
partition_info.sql Add pg_partition_root to display top-most parent of a partition tree 2019-02-08 08:56:14 +09:00
partition_join.sql Disable support for partitionwise joins in problematic cases. 2018-08-31 20:34:06 +09:00
partition_prune.sql Improve performance of partition pruning remapping a little. 2018-11-15 13:34:16 -05:00
password.sql Don't allow logging in with empty password. 2017-08-07 17:03:42 +03:00
path.sql Improve test coverage of geometric types 2018-09-26 10:45:21 +02:00
pg_lsn.sql Tweak new regression test case for better portability. 2014-06-04 21:31:41 -04:00
plancache.sql Add plan_cache_mode setting 2018-07-16 13:35:41 +02:00
plpgsql.sql Support plpgsql variable names that conflict with unreserved SQL keywords. 2019-01-04 12:16:19 -05:00
point.sql Improve test coverage of geometric types 2018-09-26 10:45:21 +02:00
polygon.sql Improve test coverage of geometric types 2018-09-26 10:45:21 +02:00
polymorphism.sql Fix lexing of standard multi-character operators in edge cases. 2018-08-23 21:42:40 +01: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 Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
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 Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08:00
psql.sql Fix translation of special characters in psql's LaTeX output modes. 2018-11-26 17:32:51 -05:00
psql_crosstab.sql Fix incorrect error reporting for duplicate data in \crosstabview. 2016-12-25 16:04:45 -05:00
publication.sql psql: Improve display of "for all tables" publications 2017-06-15 10:46:41 -04:00
random.sql Remove extra newlines at end and beginning of files, add missing newlines 2010-08-19 05:57:36 +00:00
rangefuncs.sql Clean up duplicate table and function names in regression tests. 2018-03-15 17:09:02 -04:00
rangetypes.sql Fix typcache's failure to treat ranges as container types. 2017-10-20 17:12:27 -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
reloptions.sql Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08:00
replica_identity.sql Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08: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
rolenames.sql Add basic regression tests for default monitoring roles 2018-09-26 15:26:45 +09:00
rowsecurity.sql Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08:00
rowtypes.sql Allow RECORD and RECORD[] to be specified in function coldeflists. 2019-01-30 19:25:33 -05:00
rules.sql Further fixes for quoted-list GUC values in pg_dump and ruleutils.c. 2018-07-31 13:00:14 -04: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 Disable physical tlist if any Var would need multiple sortgroupref labels. 2016-05-26 14:52:30 -04:00
select_distinct_on.sql Fix assertion failure when a SELECT DISTINCT ON expression is volatile. 2009-09-12 00:04:59 +00:00
select_having.sql Make the behavior of HAVING without GROUP BY conform to the SQL spec. 2005-03-10 23:21:26 +00:00
select_implicit.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
select_into.sql Add more tests for CREATE TABLE AS with WITH NO DATA 2019-02-07 09:21:57 +09:00
select_parallel.sql Make some subquery-using test cases a bit more robust. 2018-10-14 14:02:59 -04:00
select_views.sql Avoid locale-dependent output in select_views regression test. 2017-05-28 14:52:18 -04:00
sequence.sql psql: Update \d sequence display 2017-09-29 13:37:30 -04:00
spgist.sql Repair double-free in SP-GIST rescan (bug #15378) 2018-09-11 18:14:19 +01:00
stats.sql Fix misapplication of pgstat_count_truncate to wrong relation. 2018-12-07 12:11:59 -05:00
stats_ext.sql Suppress less info in regression tests using DROP CASCADE. 2017-08-01 16:49:23 -04:00
strings.sql Repair bug in regexp split performance improvements. 2018-09-12 19:31:06 +01:00
subscription.sql Fix ALTER SUBSCRIPTION grammar ambiguity 2017-06-05 21:43:25 -04:00
subselect.sql Set scan direction appropriately for SubPlans (bug #15336) 2018-08-17 15:44:13 +01: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 Enforce non-parallel plan when calling current_schema() in newly-added test 2019-01-18 10:51:39 +09:00
text.sql Move checking an explicit VARIADIC "any" argument into the parser. 2013-07-18 11:52:12 -04:00
tidscan.sql Add a hash opclass for type "tid". 2018-12-30 15:40:04 -05:00
time.sql Please find attached two patches for documentation and regression tests 2006-07-06 01:46:38 +00:00
timestamp.sql Be more careful about out-of-range dates and timestamps. 2016-03-16 19:09:28 -04:00
timestamptz.sql Add a timezone-specific variant of date_trunc(). 2018-11-14 15:41:07 -05:00
timetz.sql Please find attached two patches for documentation and regression tests 2006-07-06 01:46:38 +00:00
transactions.sql Clean up duplicate table and function names in regression tests. 2018-03-15 17:09:02 -04:00
triggers.sql Fix ALTER TRIGGER ... RENAME, broken in WITH OIDS removal. 2019-01-21 09:13:43 -08:00
truncate.sql Fix FK checks of TRUNCATE involving partitioned tables 2018-07-12 12:09:08 -04:00
tsdicts.sql Improve regression test coverage for src/backend/tsearch/spell.c. 2018-04-13 13:49:52 -04:00
tsearch.sql Remove tsearch test contained russian characters, missed in 2018-04-05 20:05:04 +03:00
tsrf.sql Fix create_scan_plan's handling of sortgrouprefs for physical tlists. 2018-07-11 15:25:28 -04: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 Set proargmodes for satisfies_hash_partition. 2017-11-17 11:53:00 -05:00
typed_table.sql Suppress less info in regression tests using DROP CASCADE. 2017-08-01 16:49:23 -04:00
union.sql Fix UNION/INTERSECT/EXCEPT over no columns. 2017-12-22 12:08:06 -05:00
updatable_views.sql Fix INSERT ON CONFLICT UPDATE through a view that isn't just SELECT *. 2018-08-04 19:38:58 -04:00
update.sql Repair bogus handling of multi-assignment Params in upper plan levels. 2018-12-12 13:49:41 -05:00
uuid.sql Fix whitespace issues found by git diff --check, add gitattributes 2013-11-10 14:48:29 -05:00
vacuum.sql Add option SKIP_LOCKED to VACUUM and ANALYZE 2018-10-04 09:00:33 +09:00
varchar.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
window.sql Order active window clauses for greater reuse of Sort nodes. 2018-09-14 17:35:42 +01:00
with.sql Revert MERGE patch 2018-04-12 11:22:56 +01:00
write_parallel.sql Allow DML commands that create tables to use parallel query. 2017-10-05 11:40:48 -04:00
xml.sql Set correct context for XPath evaluation 2018-06-21 15:56:11 -04:00
xmlmap.sql Fix cursor_to_xml in tableforest false mode 2017-05-03 21:41:10 -04:00