postgresql/src/test/regress/sql
Tom Lane c160b8928c Straighten out leakproofness markings on text comparison functions.
Since we introduced the idea of leakproof functions, texteq and textne
were marked leakproof but their sibling text comparison functions were
not.  This inconsistency seemed justified because texteq/textne just
relied on memcmp() and so could easily be seen to be leakproof, while
the other comparison functions are far more complex and indeed can
throw input-dependent errors.

However, that argument crashed and burned with the addition of
nondeterministic collations, because now texteq/textne may invoke
the exact same varstr_cmp() infrastructure as the rest.  It makes no
sense whatever to give them different leakproofness markings.

After a certain amount of angst we've concluded that it's all right
to consider varstr_cmp() to be leakproof, mostly because the other
choice would be disastrous for performance of many queries where
leakproofness matters.  The input-dependent errors should only be
reachable for corrupt input data, or so we hope anyway; certainly,
if they are reachable in practice, we've got problems with requirements
as basic as maintaining a btree index on a text column.

Hence, run around to all the SQL functions that derive from varstr_cmp()
and mark them leakproof.  This should result in a useful gain in
flexibility/performance for queries in which non-leakproofness degrades
the efficiency of the query plan.

Back-patch to v12 where nondeterministic collations were added.
While this isn't an essential bug fix given the determination
that varstr_cmp() is leakproof, we might as well apply it now that
we've been forced into a post-beta4 catversion bump.

Discussion: https://postgr.es/m/31481.1568303470@sss.pgh.pa.us
2019-09-21 16:56:30 -04:00
..
.gitignore
advisory_lock.sql
aggregates.sql Don't remove surplus columns from GROUP BY for inheritance parents 2019-07-03 23:44:54 +12:00
alter_generic.sql Un-hide most cascaded-drop details in regression test results. 2019-03-24 19:15:37 -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 Remove dead encoding-conversion functions. 2019-07-05 14:17:27 -04: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
boolean.sql Expand AND/OR regression tests around NULL handling. 2018-03-13 16:12:31 -07:00
box.sql Add support for <-> (box, point) operator to SP-GiST box_ops 2019-07-14 15:09:23 +03:00
brin.sql Fix BRIN cost estimation 2017-04-06 17:51:53 -03:00
btree_index.sql Split up a couple of long-running regression test scripts. 2019-04-11 16:15:54 -04:00
case.sql Fix interaction of CASE and ArrayCoerceExpr. 2018-10-30 15:26:11 -04:00
char.sql
circle.sql Back off output precision in circle.sql regression test. 2019-08-25 12:14:50 -04:00
cluster.sql Ignore partitioned indexes where appropriate 2018-01-25 16:12:15 -03:00
collate.icu.utf8.sql Fix random regression failure in test case "collate.icu.utf8" 2019-08-14 13:37:48 +09:00
collate.linux.utf8.sql Run UTF8-requiring collation tests by default 2019-07-31 09:46:51 +02:00
collate.sql Un-hide most cascaded-drop details in regression test results. 2019-03-24 19:15:37 -04: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 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
create_aggregate.sql Implement OR REPLACE option for CREATE AGGREGATE. 2019-03-19 01:16:50 +00:00
create_am.sql Stop using spelling "nonexistant". 2019-06-08 10:12:26 -07: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 Un-hide most cascaded-drop details in regression test results. 2019-03-24 19:15:37 -04:00
create_index.sql Fix handling of expressions and predicates in REINDEX CONCURRENTLY 2019-07-29 09:58:49 +09:00
create_index_spgist.sql Provide stable test for NULL-values in KNN SP-GiST 2019-09-20 15:33:45 +03: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 Install dependencies to prevent dropping partition key columns. 2019-07-22 14:55:40 -04:00
create_table_like.sql Generated columns 2019-03-30 08:15:57 +01:00
create_type.sql Fix format_type() to restore its old behavior. 2018-03-01 11:37:46 -05:00
create_view.sql Fix incorrect printing of queries with duplicated join names. 2019-06-12 19:43:08 -04:00
date.sql Remove explicit error handling for obsolete date/time values 2019-06-30 10:27:35 +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 Drop no-op CoerceToDomain nodes from expressions at planning time. 2018-12-13 13:24:43 -05:00
drop_if_exists.sql Improve error reporting for DROP FUNCTION/PROCEDURE/AGGREGATE/ROUTINE. 2019-03-21 11:52:08 -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 Un-hide most cascaded-drop details in regression test results. 2019-03-24 19:15:37 -04: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 Improve coverage of utils/float.h 2019-08-28 12:28:16 +09:00
float8.sql Un-hide most cascaded-drop details in regression test results. 2019-03-24 19:15:37 -04:00
foreign_data.sql Fix partitioned index creation with foreign partitions 2019-06-26 18:38:51 -04:00
foreign_key.sql Check that partitions are not in use when dropping constraints 2019-07-23 17:22:15 -04:00
functional_deps.sql
generated.sql Convert ExecComputeStoredGenerated to use tuple slots 2019-05-22 18:41:53 +02:00
geometry.sql Add missing commutators for distance operators 2019-07-14 14:55:01 +03:00
gin.sql Make GIN regression test stable. 2016-02-08 23:41:46 +09:00
gist.sql Add support for <-> (box, point) operator to GiST box_ops 2019-07-14 15:09:15 +03:00
groupingsets.sql Add missing (COSTS OFF) to EXPLAIN added in previous commit. 2019-07-25 14:52:36 -07: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 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 Fix failure with textual partition hash keys. 2019-04-15 16:47:09 -04:00
horology.sql Support for SSSSS datetime format pattern 2019-09-16 21:14:56 +03: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 Remove all references to "xlog" from SQL-callable functions in pg_proc. 2017-02-09 15:10:09 -05:00
identity.sql Make identity sequence management more robust 2019-07-22 12:07:10 +02: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 Avoid order-of-execution problems with ALTER TABLE ADD PRIMARY KEY. 2019-04-23 12:25:27 -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 sort support routine for the inet data type. 2019-08-01 09:34:14 -07:00
inherit.sql Disallow changing an inherited column's type if not all parents changed. 2019-08-18 17:11:57 -04:00
init_privs.sql Fix typos in comments. 2017-02-06 11:33:58 +02:00
insert.sql Add tests for error message generation in partition tuple routing 2019-05-06 21:44:24 +09: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 Allow functions-in-FROM to be pulled up if they reduce to constants. 2019-08-01 18:50:22 -04:00
join_hash.sql Fix representation of hash keys in Hash/HashJoin nodes. 2019-08-02 00:02:46 -07:00
json.sql Remove unnecessary test dependency on the contents of pg_pltemplate. 2019-08-21 10:43:23 -04:00
json_encoding.sql Fix whitespace 2015-10-11 21:44:27 -04:00
jsonb.sql Remove unnecessary test dependency on the contents of pg_pltemplate. 2019-08-21 10:43:23 -04:00
jsonb_jsonpath.sql Fix bogus handling of XQuery regex option flags. 2019-09-17 15:39:51 -04:00
jsonpath.sql Fix some minor spec-compliance issues in jsonpath lexer. 2019-09-20 14:22:58 -04:00
jsonpath_encoding.sql Fix some minor spec-compliance issues in jsonpath lexer. 2019-09-20 14:22:58 -04: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 Build out the planner support function infrastructure. 2019-02-09 18:32:23 -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 loss of fractional digits for large values in cash_numeric(). 2019-07-26 11:59:00 -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
object_address.sql Warn if wal_level is too low when creating a publication. 2019-07-13 10:35:34 +12:00
oid.sql
oidjoins.sql Rework the pg_statistic_ext catalog 2019-06-16 01:20:31 +02:00
opr_sanity.sql Straighten out leakproofness markings on text comparison functions. 2019-09-21 16:56:30 -04:00
partition_aggregate.sql Avoid crash in partitionwise join planning under GEQO. 2019-03-30 12:48:32 -04:00
partition_info.sql Fix crash with pg_partition_root 2019-03-22 17:27:38 +09:00
partition_join.sql Fix typos in regression test comments. 2019-08-29 18:45:00 +09:00
partition_prune.sql Fix SIGSEGV in pruning for ScalarArrayOp with constant-null array. 2019-08-09 13:20:28 -04:00
password.sql Fix buffer overflow when parsing SCRAM verifiers in backend 2019-06-17 21:48:17 +09:00
path.sql Improve test coverage of geometric types 2018-09-26 10:45:21 +02:00
pg_lsn.sql Add min() and max() aggregates for pg_lsn 2019-07-05 12:21:11 +09:00
plancache.sql Add plan_cache_mode setting 2018-07-16 13:35:41 +02:00
plpgsql.sql Move plpgsql error-trapping tests to a new module-specific test file. 2019-04-11 15:09:28 -04:00
point.sql Change floating-point output format for improved performance. 2019-02-13 15:20:33 +00:00
polygon.sql Fix double-word typos 2019-06-13 10:03:56 -04: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
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 Use checkAsUser for selectivity estimator checks, if it's set. 2019-05-06 11:54:32 +01:00
psql.sql Improve coverage of psql for backslash commands with \if and \elif 2019-09-12 10:35:13 +09:00
psql_crosstab.sql Fix incorrect error reporting for duplicate data in \crosstabview. 2016-12-25 16:04:45 -05:00
publication.sql Warn if wal_level is too low when creating a publication. 2019-07-13 10:35:34 +12:00
random.sql
rangefuncs.sql Fix improper interaction of FULL JOINs with lateral references. 2019-04-08 16:09:26 -04:00
rangetypes.sql Fix daterange canonicalization for +/- infinity. 2019-07-18 13:41:10 -07: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 Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
reindex_catalog.sql Remove reindex_catalog test from test schedules. 2019-05-10 12:44:31 -07:00
reloptions.sql Add vacuum_truncate reloption. 2019-04-08 16:43:57 +09: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
rowsecurity.sql Fix usage of whole-row variables in WCO and RLS policy expressions. 2019-09-12 18:29:45 -04:00
rowtypes.sql Stop using spelling "nonexistant". 2019-06-08 10:12:26 -07:00
rules.sql Re-order some regression test scripts for more parallelism. 2019-04-11 18:16:50 -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
select_having.sql
select_implicit.sql
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 Partially revert "Insert temporary debugging output in regression tests." 2019-08-11 18:55:32 -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 Partially revert "Insert temporary debugging output in regression tests." 2019-08-11 18:55:32 -04:00
stats_ext.sql Fix intermittent self-test failures caused by the stats_ext test. 2019-09-15 13:13:59 +01:00
strings.sql Fix issues around strictness of SIMILAR TO. 2019-09-07 14:21:59 -04:00
subscription.sql Fix regression tests to use only global names beginning with "regress_". 2019-06-29 11:09:03 -04:00
subselect.sql Fix choice of comparison operators for cross-type hashed subplans. 2019-08-05 11:20:31 -04: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 Fix random regression failure in test case "temp" 2019-08-13 10:55:19 +09:00
text.sql
tidscan.sql Add a hash opclass for type "tid". 2018-12-30 15:40:04 -05:00
time.sql
timestamp.sql Support for FF1-FF6 datetime format patterns 2019-09-16 21:14:32 +03:00
timestamptz.sql Support for FF1-FF6 datetime format patterns 2019-09-16 21:14:32 +03:00
timetz.sql Fix some incorrect parsing of time with time zone strings 2019-08-07 18:16:31 +09:00
transactions.sql Improve new AND CHAIN tests 2019-09-09 10:30:22 +02:00
triggers.sql Prevent possible double-free when update trigger returns old tuple. 2019-08-15 20:04:19 -04:00
truncate.sql Un-hide most cascaded-drop details in regression test results. 2019-03-24 19:15:37 -04:00
tsdicts.sql Improve regression test coverage for src/backend/tsearch/spell.c. 2018-04-13 13:49:52 -04:00
tsearch.sql Allow functions-in-FROM to be pulled up if they reduce to constants. 2019-08-01 18:50:22 -04: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 More float test and portability fixes. 2019-02-13 19:35:50 +00:00
txid.sql Add a txid_status function. 2017-03-24 12:00:53 -04:00
type_sanity.sql Harden tableam against nonexistant / wrong kind of AMs. 2019-04-04 17:39:39 -07:00
typed_table.sql Suppress less info in regression tests using DROP CASCADE. 2017-08-01 16:49:23 -04:00
union.sql Repair issues with faulty generation of merge-append plans. 2019-05-09 16:53:05 -04:00
updatable_views.sql Add test case exercising formerly-unreached code in inheritance_planner. 2019-03-31 15:49:06 -04:00
update.sql Fix system column accesses in ON CONFLICT ... RETURNING. 2019-07-24 18:45:58 -07:00
uuid.sql Add gen_random_uuid function 2019-07-14 14:30:27 +02:00
vacuum.sql Fix "ANALYZE t, t" inside a transaction block. 2019-08-10 11:30:11 -04:00
varchar.sql
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 Accept XML documents when xmloption = content, as required by SQL:2006+. 2019-03-23 16:51:37 -04:00
xmlmap.sql Fix cursor_to_xml in tableforest false mode 2017-05-03 21:41:10 -04:00