postgresql/src/test/regress/sql
Tom Lane f47408cdc1 Fix check for conflicting session- vs transaction-level locks.
We have an implementation restriction that PREPARE TRANSACTION can't
handle cases where both session-lifespan and transaction-lifespan locks
are held on the same lockable object.  (That's because we'd otherwise
need to acquire a new PROCLOCK entry during post-prepare cleanup, which
is an operation that might fail.  The situation can only arise with odd
usages of advisory locks, so removing the restriction is probably not
worth the amount of effort it would take.)  AtPrepare_Locks attempted
to enforce this, but its logic was many bricks shy of a load, because
it only detected cases where the session and transaction locks had the
same lockmode.  Locks of different modes on the same object would lead
to the rather unhelpful message "PANIC: we seem to have dropped a bit
somewhere".

To fix, build a transient hashtable with one entry per locktag,
not one per locktag + mode, and use that to detect conflicts.

Per bug #17122 from Alexander Pyhalov.  This bug is ancient,
so back-patch to all supported branches.

Discussion: https://postgr.es/m/17122-04f3c32098a62233@postgresql.org
2021-07-24 18:35:52 -04:00
..
.gitignore
advisory_lock.sql
aggregates.sql Fix behavior of float aggregates for single Inf or NaN inputs. 2020-06-13 13:43:40 -04: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 Fix unexpected error messages for various flavors of ALTER TABLE 2021-07-14 17:15:18 +09: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 Fix integer-overflow corner cases in substring() functions. 2021-01-04 18:32:40 -05: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 Properly detoast data in brin_form_tuple 2020-11-07 00:40:06 +01:00
btree_index.sql Don't consider newly inserted tuples in nbtree VACUUM. 2021-03-10 16:26:58 -08:00
case.sql Fix interaction of CASE and ArrayCoerceExpr. 2018-10-30 15:26:11 -04:00
char.sql
circle.sql Fix circle_in to accept "(x,y),r" as it's advertised to do. 2020-04-07 20:50:28 -04:00
cluster.sql Avoid possible crash while finishing up a heap rewrite. 2021-03-23 11:24:16 -04:00
collate.icu.utf8.sql Enable hash partitioning of text arrays 2020-11-04 12:46:38 +01:00
collate.linux.utf8.sql Allow to_date/to_timestamp to recognize non-English month/day names. 2020-03-03 11:06:47 -05:00
collate.sql Fix old bug with coercing the result of a COLLATE expression. 2021-04-12 14:37:22 -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 Introduce "anycompatible" family of polymorphic types. 2020-03-19 11:43:11 -04:00
create_am.sql Fix rare deadlock failure in create_am regression test. 2020-09-04 12:40:28 -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 Un-hide most cascaded-drop details in regression test results. 2019-03-24 19:15:37 -04:00
create_index.sql Add test for CREATE INDEX CONCURRENTLY with not-so-immutable predicate 2021-06-28 11:17:12 +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 ANALYZE a_star and its children to avoid plan instability in tests. 2019-09-27 11:28:24 -04:00
create_operator.sql Use factorial rather than numeric_fac in create_operator.sql. 2020-09-18 18:03:44 -04:00
create_procedure.sql Add collation assignment to CALL statement 2019-02-07 08:25:47 +01:00
create_table.sql Assign collations in partition bound expressions. 2020-09-28 14:12:38 -04:00
create_table_like.sql Ensure that expandTableLikeClause() re-examines the same table. 2020-12-01 14:02:27 -05:00
create_type.sql Fix oversight in ALTER TYPE: typmodin/typmodout must propagate to arrays. 2020-07-31 17:11:28 -04:00
create_view.sql Improve test coverage of ruleutils.c. 2019-12-06 17:40:30 -05:00
date.sql Remove explicit error handling for obsolete date/time values 2019-06-30 10:27:35 +02:00
dbsize.sql Fix incorrect return value in pg_size_pretty(bigint) 2021-07-09 14:04:49 +12: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 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 Reject SELECT ... GROUP BY GROUPING SETS (()) FOR UPDATE. 2021-06-01 11:12:56 -04:00
event_trigger.sql Fix pg_identify_object_as_address() with event triggers 2021-04-28 11:18:17 +09:00
explain.sql Fix explain regression test failure. 2020-08-22 01:50:43 +09: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 Don't set a fast default for anything but a plain table 2021-06-18 07:44:58 -04: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 unexpected error messages for various flavors of ALTER TABLE 2021-07-14 17:15:18 +09:00
foreign_key.sql Have ALTER CONSTRAINT recurse on partitioned tables 2021-05-05 12:14:21 -04:00
functional_deps.sql
generated.sql Disallow whole-row variables in GENERATED expressions. 2021-05-21 15:12:19 -04:00
geometry.sql Add missing commutators for distance operators 2019-07-14 14:55:01 +03:00
gin.sql Fix code for re-finding scan position in a multicolumn GIN index. 2020-08-27 17:36:13 -04:00
gist.sql Add support for <-> (box, point) operator to GiST box_ops 2019-07-14 15:09:15 +03:00
groupingsets.sql Second attempt to stabilize 05c02589. 2020-12-27 12:11:58 -08: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 typo in test comment. 2020-05-28 12:35:18 +03:00
horology.sql Prevent internal overflows in date-vs-timestamp and related comparisons. 2020-10-07 17:10:26 -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 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 Fix planner failure in some cases of sorting by an aggregate. 2021-04-20 11:32:02 -04: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 sort support routine for the inet data type. 2019-08-01 09:34:14 -07: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 Fix typo in test comment. 2020-05-28 12:35:18 +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 functions gcd() and lcm() for integer and numeric types. 2020-01-25 14:00:59 +00:00
int8.sql Add functions gcd() and lcm() for integer and numeric types. 2020-01-25 14:00:59 +00:00
interval.sql Fix integer-overflow edge case detection in interval_mul and pgbench. 2019-11-07 11:22:58 -05:00
join.sql Avoid creating a RESULT RTE that's marked LATERAL. 2021-07-09 13:38:24 -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 Allow Unicode escapes in any server encoding, not only UTF-8. 2020-03-06 14:17:43 -05:00
jsonb.sql Remove "invalid concatenation of jsonb objects" error case. 2020-12-21 13:11:51 -05:00
jsonb_jsonpath.sql Support for ISO 8601 in the jsonpath .datetime() method 2020-09-29 12:00:12 +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 Remove useless and rather expensive stanza in matview regression test. 2017-05-03 19:37:01 -04: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 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 Fix numeric_mul() overflow due to too many digits after decimal point. 2021-07-10 12:46:13 +01:00
numeric_big.sql Fix corner-case loss of precision in numeric ln(). 2020-03-01 14:49:25 +00: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 Fix findoidjoins to recognize oidvector columns. 2020-05-09 16:28:20 -04:00
opr_sanity.sql Do pre-release housekeeping on catalog data. 2020-05-12 13:03:43 -04:00
partition_aggregate.sql Rename enable_incrementalsort for clarity 2020-07-05 11:42:29 +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 Fix hash partition pruning with asymmetric partition sets. 2021-01-28 13:41:55 -05:00
password.sql Fix use of term "verifier" 2019-10-12 21:41:59 +02: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 Introduce "anycompatible" family of polymorphic types. 2020-03-19 11:43:11 -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 Work around cross-version-upgrade issues created by commit 9e38c2bb5. 2020-11-10 18:32:36 -05: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 Fix check for conflicting session- vs transaction-level locks. 2021-07-24 18:35:52 -04:00
privileges.sql Reduce runtime of privileges.sql test under CLOBBER_CACHE_ALWAYS. 2021-05-11 20:59:45 -04:00
psql.sql Ignore attempts to \gset into specially treated variables. 2020-11-09 07:32:12 -08: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
rangefuncs.sql Fix list-munging bug that broke SQL function result coercions. 2020-10-19 14:33:10 -04:00
rangetypes.sql Introduce "anycompatible" family of polymorphic types. 2020-03-19 11:43:11 -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 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:32 -07:00
reloptions.sql Improve stability of test with vacuum_truncate in reloptions.sql 2021-04-02 09:44:50 +09:00
replica_identity.sql Preserve replica identity index across ALTER TABLE rewrite 2020-03-13 11:57:06 +01: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 misbehavior of DROP OWNED BY with duplicate polroles entries. 2021-06-18 18:00:09 -04:00
rowtypes.sql Allow extracting fields from a ROW() expression in more cases. 2019-10-28 15:08:24 -04: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
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 Fix mis-planning of repeated application of a projection. 2021-05-31 12:03:00 -04: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 Disallow CREATE STATISTICS on system catalogs 2021-01-15 23:32:54 +01:00
strings.sql Fix integer-overflow corner cases in substring() functions. 2021-01-04 18:32:40 -05:00
subscription.sql Don't allow to set replication slot_name as ''. 2021-07-19 11:04:21 +05:30
subselect.sql Be more careful about the shape of hashable subplan clauses. 2020-08-14 22:14:03 -04:00
sysviews.sql Fix "invalid spinlock number: 0" error in pg_stat_wal_receiver. 2021-02-18 23:28:58 +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 Move checking an explicit VARIADIC "any" argument into the parser. 2013-07-18 11:52:12 -04:00
tid.sql Fix crashes with currtid() and currtid2() 2020-06-01 10:32:06 +09:00
tidscan.sql Fix bug in Tid scan. 2020-02-07 22:06:31 +09:00
time.sql Reject "23:59:60.nnn" in datetime input. 2020-06-04 16:42:23 -04:00
timestamp.sql Fix out-of-bound memory access for interval -> char conversion 2021-04-12 11:31:26 +09:00
timestamptz.sql Avoid low-probability regression test failures in timestamp[tz] tests. 2019-12-22 18:00:22 -05:00
timetz.sql Stabilize timetz test across DST transitions. 2020-10-29 15:28:28 -04:00
transactions.sql Fix bug in COMMIT AND CHAIN command. 2021-02-19 21:58:43 +09:00
triggers.sql Fix pg_dump for disabled triggers on partitioned tables 2021-07-16 17:29:22 -04: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 assorted bugs by changing TS_execute's callback API to ternary logic. 2020-07-24 15:26:51 -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 Fix assorted bugs by changing TS_execute's callback API to ternary logic. 2020-07-24 15:26:51 -04:00
tuplesort.sql Try to stabilize results of new tuplesort regression test. 2019-12-14 15:01:56 -05:00
txid.sql Introduce xid8-based functions to replace txid_XXX. 2020-04-07 12:04:32 +12:00
type_sanity.sql Introduce "anycompatible" family of polymorphic types. 2020-03-19 11:43:11 -04: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 Repair issues with faulty generation of merge-append plans. 2019-05-09 16:53:05 -04:00
updatable_views.sql Calculate extraUpdatedCols in query rewriter, not parser. 2020-10-28 13:47:02 -04:00
update.sql Fix mishandling of resjunk columns in ON CONFLICT ... UPDATE tlists. 2021-05-10 11:02:29 -04:00
uuid.sql Add gen_random_uuid function 2019-07-14 14:30:27 +02:00
vacuum.sql Propagate ALTER TABLE ... SET STORAGE to indexes 2020-05-08 08:39:17 +02:00
varchar.sql
window.sql Selectively include window frames in expression walks/mutates. 2019-10-03 10:54:52 +01:00
with.sql Reject cases where a query in WITH rewrites to just NOTIFY. 2021-07-09 11:02:26 -04:00
write_parallel.sql Allow DML commands that create tables to use parallel query. 2017-10-05 11:40:48 -04: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