Skip to content

Sync IvorySQL v5.6 with PostgreSQL 18.6 - #1719

Open
hs-liuxh wants to merge 324 commits into
IvorySQL:IVORY_REL_5_STABLEfrom
hs-liuxh:IVORY_REL_5_STABLE
Open

Sync IvorySQL v5.6 with PostgreSQL 18.6#1719
hs-liuxh wants to merge 324 commits into
IvorySQL:IVORY_REL_5_STABLEfrom
hs-liuxh:IVORY_REL_5_STABLE

Conversation

@hs-liuxh

@hs-liuxh hs-liuxh commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

This PR synchronizes IvorySQL v5.6 with upstream PostgreSQL 18.6 release

This pull request synchronizes IvorySQL IVORY_REL_5_STABLE with PostgreSQL REL_18_STABLE branch over the period 2026-05-13 to 2026-08-11, incorporating a total of 323 commits:

  • 246 commits are direct upstream changes from the official PostgreSQL repository, ranging from the initial commit "Fix stale COPY progress during logical replication table sync" to the latest included commit "Stamp 18.6."
  • The remaining commits are IvorySQL-specific patches that maintain and enhance Oracle compatibility while integrating upstream changes.

All integrated code has been thoroughly validated and successfully passes four core regression test suites(check-world; oracle-check-world; oracle-pg-check; oracle-check), ensuring functional correctness and stability after the sync.

close #1718

hs-liuxh and others added 30 commits August 19, 2026 10:39
Commit a70bce43fb added instructions on how to recover if PostgreSQL
refuses to issue new transaction IDs because of imminent wraparound,
but when describing how to find replication slots that should be dropped,
it referred to pg_stat_replication where it should have referenced
pg_replication_slots.

In passing, decorate references to views with <structname> tags.

Backpatch to all supported versions.

Reported-By: Sanjaya Waruna <sanjaya.waruna@gmail.com>
Author: Laurenz Albe <laurenz.albe@cybertec.at>
Reviewed-by: Robert Treat <rob@xzilla.net>
Reviewed-by: Fujii Masao <masao.fujii@gmail.com>
Discussion: https://postgr.es/m/176767268098.1084085.10345048667224193115@wrigleys.postgresql.org
Backpatch-through: 14
read_local_xlog_page_guts has the same race as logical_read_xlog_page:
RecoveryInProgress() can return true during promotion, impacting the
availability of the operations doing WAL page reads with this callback.

This problem is similar to eb4e7224a1c6 that has addressed the issue for
logical replication, impacting more areas of the code where this WAL
page callback can be used (same narrow window during promotion, same
availability issue):
- pg_walinspect.
- Slot advance (SQL function).
- Slot creation.

Repack workers (v19~) and 2PC files (since forever) can also use this
callback, but they are irrelevant as far as I know.  A test is added
with the SQL lookup functions.  This part relies on injection points,
and is backpatched down to v18, like the test added for eb4e7224a1c6.

This issue could probably be fixed as well in v14 and v15 for
pg_walinspect.  However, I also feel that there is a conservative
argument about consistency here due to the support of logical decoding
on standbys, so let's limit ourselves to v16 for now.  pg_walinspect is
used less in the field compared to the two other operations, making
addressing this problem less attractive in these two older branches.

Reported-by: Xuneng Zhou <xunengzhou@gmail.com>
Author: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Reviewed-by: Xuneng Zhou <xunengzhou@gmail.com>
Reviewed-by: Hayato Kuroda <kuroda.hayato@fujitsu.com>
Discussion: https://postgr.es/m/7daef094-abf3-4672-bc23-3df4763b16a3%40gmail.com
Backpatch-through: 16
This one has been forgotten in 8bf257aebac1.  Per report from buildfarm
member massasauga.

Backpatch-through: 14
OpenSSL 4.0.0 changed some parameters and returnvalues to const, so
we need to update our declarations and subsequently cast away const-
ness from a few callsites to make libpq build without warnings. This
is tested with OpenSSL 1.1.1 through 4.0.0 as well as with LibreSSL.
No functional change is introduced, this commit only allows postgres
to be compiled against OpenSSL 4.0.0 without warnings.

There is also an errormessage change in OpenSSL 4.0.0 which needed
to be covered by our testharness.

This will be backpatched to all supported branches since they are
all equally likely to be built against OpenSSL 4.0.0 as it becomes
available in distributions.  Backpatching will be done once it has
been in master for a few days without issues.

Author: Daniel Gustafsson <daniel@yesql.se>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Discussion: https://postgr.es/m/066B07BB-85FA-487C-BE8C-40F791CFC3C4@yesql.se
Backpatch-through: 14
Commit 0e1f1ed157e taught seg_out() to print the certainty indicator
on an interval's upper boundary, but it was back-patched only as far
as v14.  When upgrading from an older release, the old server prints
the one test_seg row exercising that case ('4.6 .. ~7.0') without the
indicator, so the pre- and post-upgrade dumps do not match.  Make
AdjustUpgrade.pm delete just that row; seg's comparison function does
distinguish the certainty indicators, so the otherwise identical row
'4.6 .. 7.0' is unaffected.

Back-patch to all supported branches.

Per buildfarm members crake and fairywren.

Discussion: https://postgr.es/m/5ccbdbde-6467-4a10-bf4d-0be73a05ce8d@dunslane.net
bt_normalize_tuple() uses VARSIZE() to get the size of varlena, even though
it's not yet known, that it has a 4-byte header.  Fix this by replacing a
accessor with a universal VARSIZE_ANY().

Backpatch to all supported versions.

Reported-by: Andres Freund <andres@anarazel.de>
Discussion: https://postgr.es/m/7ckc7oka4bvafkf5bwlqs6ygrhlsbhz25ppozfch7zbuxcx3rf%40e4pr4oqenalc
Author: Andrey Borodin <x4mmm@yandex-team.ru>
Reviewed-by: Alexander Korotkov <aekorotkov@gmail.com>
Backpatch-through: 14
Commit 2f70fdb removed the deprecated containment operator
~(aclitem[],aclitem) from the catalogs, but missed removing its entry
from the documentation.  (Arguably the blame should fall on c62dd80,
which added this entry in contravention of the longstanding policy
that we don't document deprecated aliases in the first place.)

Author: Shinya Kato <shinya11.kato@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/CAOzEurQSyR5psWukyhUz1LtxyO55C2Vfp0Fmt8w2jGKxhszQmQ@mail.gmail.com
Backpatch-through: 14
This commit reduces the number of expected output files for the "xml"
test from three to two (well, mostly one, see below for details).

xml_2.out existed to handle some differences in output due to libxml2
2.9.3, due to some error context missing (085423e).  This file is
removed, by tweaking the XML inputs to trigger the same error patterns
for the problematic 2.9.3 and other libxml2 versions.  This part is
authored by Tom Lane.

xml_1.out (no libxml2 support) is reduced in size by adding an \if query
that exits the test early.  This still checks NO_XML_SUPPORT() through
xmlin().  The rest of the test is skipped if XML input cannot be
handled by the backend.  This part has been written by me.

Author: Tom Lane <tgl@sss.pgh.pa.us>
Author: Michael Paquier <michael@paquier.xyz>
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Discussion: https://postgr.es/m/aiu6CXO67q-s70n5@paquier.xyz
Backpatch-through: 14
If a query has more than 7498 params, the ParameterDescription message
exceeds the 30000 byte limit on messages that are not specifically
marked as possibly being longer than that (VALID_LONG_MESSAGE_TYPE).
To fix, add ParameterDescription to the list.

Author: Ning Sun <classicning@gmail.com>
Discussion: https://www.postgresql.org/message-id/dbfb4b65-0aa8-470a-8b87-b6496160b28a@gmail.com
Backpatch-through: 14
Late-model clang complains that these functions should be labeled
with "format(printf, 2, 3)", and it's right.  But let's go a bit
further and also make use of varargs, to remove duplication and
allow these functions to be used with non-integer input values.

Since no good deed goes unpunished, I had to also adjust a couple
of call sites.  They weren't wrong as-is, since the size_t-sized
arguments were coerced to int on the way into diag3().  But
without that, we have to adjust the format strings.

The point of this is to suppress compiler warnings, so back-patch
into branches containing pg_bsd_indent, even though there's no
functional change.

Author: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Ayush Tiwari <ayushtiwari.slg01@gmail.com>
Discussion: https://postgr.es/m/1645041.1781283554@sss.pgh.pa.us
Backpatch-through: 16
Presently, the "Prev" link on the page for background workers sends
you to the middle of the previous chapter instead of the actual
previous page.  This appears to be caused by a libxml2 bug, but
regardless, a minimal fix is to change the link generation code to
use [position()=last()] instead of [last()] in the predicate on the
union of reverse axes.

Reviewed-by: Ayush Tiwari <ayushtiwari.slg01@gmail.com>
Discussion: https://postgr.es/m/aim4AZorFKaC7Wrf%40nathan
Backpatch-through: 14
Our handling of quoting within replication commands was pretty
sloppy, typically looking like
        appendStringInfo(&cmd, " SLOT \"%s\"", options->slotname);
This is fine as long as options->slotname doesn't contain a double
quote mark, but what if it does?  In principle this'd allow injection
of harmful options into replication commands, in the probably-unlikely
case that a slot name comes from untrustworthy input.  We ought to
clean that up.

Moreover, even the places that were trying to be more careful
generally got it wrong, because they used quoting subroutines
intended for SQL commands rather than something that will work
with the replication-command scanner repl_scanner.l.  For example,
several places naively use PQescapeLiteral() to quote option values
for replication commands.  If the string contains a backslash,
PQescapeLiteral() will produce E'...' literal syntax, which
repl_scanner.l doesn't recognize.  Another near miss was to use
quote_identifier() to quote identifiers.  That function won't quote
valid lowercase identifiers unless they match SQL keywords ... but in
this context, replication keywords are what matter.  Neither of these
errors seem to risk string injection, but they definitely can cause
syntax errors in replication commands that ought to be valid.

We can clean all this up by using simple quoting logic that just
doubles single or double quotes respectively.

Or at least, we could if repl_scanner.l handled doubled double quotes
in identifiers, but for some reason it doesn't!  So the first step in
this fix has to be to fix that.  (The fact that we'll later reject
slot names containing double quotes is very far short of justifying
this omission.)

Having done that, this patch runs around and applies correct
quoting in all places that generate replication commands containing
strings coming from outside the immediate context.  Probably some
of these places are safe because of restrictions elsewhere, but it
seems best to just quote all the time.

This was originally reported as a security bug, which it could be
if replication slot names or parameters were to originate from
untrustworthy sources.  But the security team concluded that that
was a very improbable situation, so we're just going to fix this
as a regular bug.

Reported-by: Team Dhiutsa
Author: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Ayush Tiwari <ayushtiwari.slg01@gmail.com>
Discussion: https://postgr.es/m/1648659.1781287310@sss.pgh.pa.us
Backpatch-through: 14
Attempting to restore a schema, a table or an index with
--only-statistics skipped all the statistics of the objects wanted.
Like for pg_dump, statistics should be included, so this created an
assymetry between dump and restore.

A second set of problems existed for --table and --index, where the
presence of --statistics skipped the restore of the stats of the
object(s) targetted.

This issue has been reported originally as related to an inconsistency
with the way extended stats restore is handled in Postgres v19, but the
issue is related to the restore of relation and attribute statistics in
v18.  Some TAP tests are added to cover all these cases.

Reported-by: Chao Li <li.evan.chao@gmail.com>
Author: Chao Li <li.evan.chao@gmail.com>
Author: Michael Paquier <michael@paquier.xyz>
Reviewed-by: Corey Huinker <corey.huinker@gmail.com>
Discussion: https://postgr.es/m/66E80CAB-527C-42B1-BB65-3F82CF4AD998@gmail.com
Backpatch-through: 18
The schema_only_with_statistics test scenario was referenced in
002_pg_dump.pl, but was associated to no command sequence since
0ed92cf50cc4.

Issue discovered while investigating a different bug.  Perhaps this
cleanup is not worth backpatching, but there is also an argument in
favor of reducing noise when touching this area of the code in stable
branches.

Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
Reviewed-by: Ayush Tiwari <ayushtiwari.slg01@gmail.com>
Discussion: https://postgr.es/m/ai-y0S7Z25NlrG_n@paquier.xyz
Backpatch-through: 18
The expression (len_diff * 10 * (an + 1)) used as the return value of
ltree_compare() is computed at int32 width.  With LTREE_MAX_LEVELS =
65535, the product can exceed INT32_MAX once an ltree has more than
~14,653 levels, which causes the result to wrap and invert its sign.
That corrupts btree ordering as well as the "magnitude" consumed by
ltree_penalty() for GiST page splits.

To fix, split ltree_compare() into two functions.  The new
ltree_compare_distance() function returns a float, which won't
overflow.  It's used by the ltree_penalty() caller.  All the other
callers only care about the sign of the return value, i.e. which of
the arguments is greater, so change ltree_compare() to not multiply
the result with (10 * (an + 1)), which avoids the overflow for those
callers.

Existing btree or GiST indexes on ltree columns containing values with
more than ~14,653 levels may be corrupt and should be REINDEXed.

Add a regression test based on the reporter's PoC.

Author: Ayush Tiwari <ayushtiwari.slg01@gmail.com>
Reported-by: 王跃林 <violin0613@tju.edu.cn>
Discussion: https://www.postgresql.org/message-id/AI6AnABgKW93Qbx1jVzi84r9.8.1781322625756.Hmail.3020001251%40tju.edu.cn
Backpatch-through: 14
The previous approach introduced by 0dd93de69e80 was weak in terms of
name matching, as an --index=foo could match with a table with the same
name but from a different schema, pulling in more data than necessary.

For example, imagine the following case:
CREATE SCHEMA s1;
CREATE SCHEMA s2;
CREATE TABLE s1.foo (id int);
INSERT INTO s1.foo SELECT generate_series(1,100);
ANALYZE s1.foo;
CREATE TABLE s2.bar (id int);
CREATE INDEX foo ON s2.bar(id);
INSERT INTO s2.bar SELECT generate_series(1,100);
ANALYZE s2.bar;

A targetted pg_restore --index=foo would grab the relation and attribute
stats of s1.foo on top of the index s2.foo, which is incorrect.  This
commit fixes this scenario by relying on a lookup of the dependencies of
a STATISTICS DATA TOC entry, checking if a TOC entry depends on an index
or another relkind before matching with the names of the objects wanted
for the restore.

Discussion: https://postgr.es/m/ajDBwpxs-otl585H@paquier.xyz
Backpatch-through: 18
The error path in ReorderBufferProcessTXN was not freeing
(reorderbuffer.c's representation of) a speculative insertion record
correctly.  In assert-enabled builds, this leads to an assertion
failure.  In production builds, I see no effect; there may be a small
transient leak, but in an improbable code path such as this, such a leak
is not of any significance.  For users running with assertions enabled,
the crash is annoying.

Fix by having ReorderBufferProcessTXN() free the speculative insert
ahead of freeing the rest of the transaction, and no longer try to
handle that insert as a separate argument to ReorderBufferResetTXN().

This code came in with commit 7259736 (14-era).  Backpatch all the
way back.

In branches 14-16, also backpatch the assertion that originally fails in
the problem scenario, which was added by dbed2e36625d (originally
backpatched to 17), that at the end of ReorderBufferReturnTXN() the
in-memory size of the transaction is zero.

Author: Vishal Prasanna <vishal.g@zohocorp.com>
Reviewed-by: Hayato Kuroda <kuroda.hayato@fujitsu.com>
Backpatch-through: 14
Discussion: https://postgr.es/m/19c7623e882.4080fd5426212.311756747309556767@zohocorp.com
The test did not wait for the standby to be connected to the primary.
This breaks one assumption at the beginning of the test, where the
primary is stopped to ensure that all its records are flushed to both
standbys before moving on with its next steps.

If standby_1 finishes ahead of standby_2, the test would be able work
fine as the former waits for the latter.  The opposite is not true,
standby_2 getting ahead of standby_1 would cause the test to fail on
timeout when standby_1 attempts to connect to standby_2.

This commit adds an additional polling query after the two standbys are
started, checking that both standbys are connected to the primary before
processing with the initial steps of the test.

Like 7185eddf0522, backpatch down to v14.

Author: Sergey Tatarintsev <s.tatarintsev@postgrespro.ru>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
Discussion: https://postgr.es/m/fea4190e-f8b5-4432-a52d-bcbee5f34366@postgrespro.ru
Backpatch-through: 14
Several calls of pgstat_count_io_op_time() have been used as data to
count negative values returned by pg_pread() or pg_pwrite(), leading to
an incorrect count reported, casting them back to uint64.

Most of the problematic calls updated here are adjusted so as we do not
report buggy negative numbers anymore.  In xlogrecovery.c, the spot
updated still counts short reads.  In xlog.c, after a WAL segment
initialization, I/O numbers are aggregated only after checking that the
operation has succeeded.

issues introduced by a051e71e28a1.

Reported-by: Peter Eisentraut <peter@eisentraut.org>
Author: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Reviewed-by: Ayush Tiwari <ayushtiwari.slg01@gmail.com>
Discussion: https://postgr.es/m/0db864e6-4477-4eba-b2be-d3523cc86564@eisentraut.org
Backpatch-through: 18
The current form of the catalog query picks up partitioned tables
with expression indexes that lack statistics.  However, since such
indexes never have statistics, there's no point in analyzing them.
To fix, adjust the relevant part of the query to skip partitioned
tables with expression indexes.  While at it, remove the nearby
stainherit check; entries for index expressions always have
stainherit = false.

Author: Baji Shaik <baji.pgdev@gmail.com>
Reviewed-by: Corey Huinker <corey.huinker@gmail.com>
Discussion: https://postgr.es/m/CA%2Bfm-RPE1tEc6CUUPDyRbYTz9tF5Kw47nnk-Zq%3DyYvanbsxyCQ%40mail.gmail.com
Backpatch-through: 18
Add check_stack_depth() to Jsonb_to_SV, SV_to_JsonbValue,
PLyObject_FromJsonbContainer, and PLyObject_ToJsonbValue.  Without
this, deeply nested JSONB values can crash the backend with SIGSEGV
instead of raising a proper error.

Also add CHECK_FOR_INTERRUPTS() to the while loop in SV_to_JsonbValue
that dereferences chains of Perl references, so that a circular
reference (e.g. $x = \$x) can be cancelled by the user instead of
spinning indefinitely.  (We looked at detecting such circular
references, but it seems more trouble than it's worth.)

Author: Aleksander Alekseev <aleksander@tigerdata.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/CAJ7c6TPbjkzUk4qJ5dHvDNEz0hBuFue3A-XWz_=897z+BC+z8A@mail.gmail.com
Backpatch-through: 14
If the call count test fails, you'll reasonably want to know what the
network trace looked like, but that information is currently swallowed.
Print it out instead.

Backpatch-through: 18
nmisch and others added 28 commits August 20, 2026 01:15
A grantee of amcheck function EXECUTE privilege could execute arbitrary
functions as the owners of expression indexes that depend on the search
path.  An expression like (lower(col)) was not vulnerable, because
lower() is resolved at CREATE INDEX time.  However, an expression
calling an sql-language or plpgsql-language function often was
vulnerable, even if it used search_path only to find objects in
pg_catalog.  The amcheck documentation has been warning about data
disclosure after such a GRANT, not about function execution.

This might cause new amcheck errors when index expressions rely on a
broader search_path.  Such indexes have seen errors during auto-analyze
since CVE-2018-1058 commit 582edc3, and
v17 amcheck always worked this way.  Hence, the risk is low.

Leave a comment on the one other sandbox entrance that doesn't empty
search_path.  In its case, the choice was valid.

Back-patch to v14 (all supported versions), but v17 was safe already.
Commit 2af07e2f749a9208ca1ed84fa1d8fe0e75833288 (v17) unintentionally
blocked the attack, and commit d70b17636ddf1ea2c71d1c7bc477372b36ccb66b
(v18) unintentionally removed that protection.  Hence, this adds to v17
just a test and a comment.  While emptying search_path became more
widespread in commit 2af07e2f749a9208ca1ed84fa1d8fe0e75833288 (v17),
none of its other changes blocked an attack available in v16, even when
considering GRANT.  For example, brin_summarize_range() has had an owner
check that GRANT does not override.

Reported-by: 王跃林 <violin0613@tju.edu.cn>
Reported-by: Jacob Brazeal <jacob.brazeal@gmail.com>
Backpatch-through: 14
Security: CVE-2026-14673

# Conflicts:
#	src/backend/utils/init/usercontext.c
This is needed so that all versions of pg_upgrade that migrate logical
replication slots can parse the new output_plugin_libraries GUC.

Backpatch-through: 17
Security: CVE-2026-6471
REPLICATION users were not previously subject to restrictions on output
plugin paths, so they were able to bypass LOAD-time protections during
logical decoding. Unfortunately, adding the standard LOAD restrictions
now would retroactively require all third-party output plugins to be
installed under the $libdir/plugins directory. This would prevent the
use of dynamic_library_path, introduce a wire incompatibility for
clients, and require all plugin authors to check that their libraries
are safe for use by any unprivileged user; we want to avoid that.

Instead, introduce an output_plugin_libraries GUC so that DBAs can
specify the output plugins that are trusted for use in logical decoding.
For simplicity, superusers are subject to the restriction as well
(though they're free to modify the GUC at will during a session, so no
power is actually lost).

The default setting is 'pgoutput, test_decoding'. If other third-party
plugins are in use, DBAs will need to modify this parameter after they
update. Some pointers have been added to the documentation to assist
with this.

Author: Jacob Champion <jacob.champion@enterprisedb.com>
Reported-by: Vladimir Tokarev <vladimirelitokarev@gmail.com>
Reported-by: Yu Kunpeng <yu443940816@live.com>
Reviewed-by: Álvaro Herrera <alvherre@kurilemu.de>
Reviewed-by: Noah Misch <noah@leadboat.com>
Reviewed-by: Robert Haas <robertmhaas@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Backpatch-through: 14
Security: CVE-2026-6471
When an EXECUTE or FETCH statement is executed, there are two portals:
an outer portal that is created for the EXECUTE or FETCH statement itself,
and an inner portal for the statement being executed on its behalf.
Before this commit, nothing checked that these two portals agreed on
the tuple descriptor of the rows being returned. This can be leveraged
to disclose server memory contents and achieve arbitrary code execution.

To prevent that, we can make use of an existing safety mechanism,
added by Tom Lane in commit 2f48ede,
which allows a tuplestore DestReceiver to be informed of the tupleDesc
required by the caller, and which will cause an ERROR to occur if
that doesn't match the tupleDesc of what emerges from the executor
(modulo dropped columns, which aren't an issue in the case at hand).

Reported-by: Ben Morris in collaboration with Claude and Anthropic Research
Reported-by: Peter Geoghegan <pg@bowt.ie>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Security: CVE-2026-16239
levenshtein() and levenshtein_less_equal() let the caller specify
the insertion, deletion, and substitution costs, and
fuzzystrmatch's corresponding SQL functions accept any 32-bit
integer for each.  Since the distances are calculated with 32-bit
arithmetic, large costs can cause overflows, thereby producing
nonsensical results.  Certain inputs to levenshtein_less_equal()
can even cause out-of-bounds writes.  To fix, use 64-bit arithmetic
instead, and error whenever the final result won't fit in the
returned 32-bit integer.

We may want to teach these functions to reject negative costs, too,
but that didn't seem appropriate for a security fix, and therefore
it is left as a future exercise.

Reported-by: Ben Morris in collaboration with Claude and Anthropic Research
Author: Nathan Bossart <nathandbossart@gmail.com>
Reviewed-by: Dean Rasheed <dean.a.rasheed@gmail.com>
Security: CVE-2026-15742
Backpatch-through: 14
This omission allowed roles without USAGE on a type to create range
types that depend on it, which could prevent the owner from
changing the type later.

Reported-by: Jingzhou Fu <fuboat@outlook.com>
Author: Nathan Bossart <nathandbossart@gmail.com>
Reviewed-by: Noah Misch <noah@leadboat.com>
Reviewed-by: Robert Haas <robertmhaas@gmail.com>
Security: CVE-2026-6470
Backpatch-through: 14
This omission allowed roles without USAGE on a type to create
stored expressions that depend on it, which could prevent the owner
from changing the type later.

The checks deliberately live in the command paths rather than the
dependency-recording routines.  Those routines also run whenever
the server re-derives an existing expression, and re-checking there
would break routine maintenance for an owner who has since lost
USAGE on a type its objects already reference.  (Checking in the
dependency-recording routines would also require additional
CommandCounterIncrement() calls to avoid spurious errors.)

The addition of a parameter to AlterDomainAddConstraint() breaks
ABI compatibility, but we are unaware of any impacted third-party
code.

Reported-by: Noah Misch <noah@leadboat.com>
Author: Nathan Bossart <nathandbossart@gmail.com>
Reviewed-by: Noah Misch <noah@leadboat.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Robert Haas <robertmhaas@gmail.com>
Security: CVE-2026-6470
Backpatch-through: 14
This omission allowed roles without USAGE on a type to create
tables that depend on it, which could prevent the owner from
changing the type later.

Reported-by: Nathan Bossart <nathandbossart@gmail.com>
Author: Nathan Bossart <nathandbossart@gmail.com>
Reviewed-by: Robert Haas <robertmhaas@gmail.com>
Security: CVE-2026-6470
Backpatch-through: 14
Role membership, role attribute, and database ownership changes may
impact the expected behavior of row-level security policies, but
currently the plan cache doesn't take notice.  To fix, register
syscache callbacks on pg_auth_members, pg_authid, and pg_database
that invalidate the role-dependent plans.  Changes to other
databases' pg_database rows are ignored.

Reported-by: Ilya Staroverov <i.staroverov@ftdata.ru>
Reported-by: Shinya Kato <shinya11.kato@gmail.com>
Author: Ilya Staroverov <i.staroverov@ftdata.ru>
Author: Shinya Kato <shinya11.kato@gmail.com>
Co-authored-by: Nathan Bossart <nathandbossart@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Security: CVE-2026-14666
Backpatch-through: 14

# Conflicts:
#	src/backend/utils/cache/plancache.c
When we implemented \if ... \endif in psql, we arranged to
save/restore the lexer's parenthesis depth counter across any chunk
of input that we're ignoring.  At the time, that was sufficient,
because no other part of PsqlScanState could need to be restored to
its prior value.  However, commit e717a9a and follow-ons added
more state fields that ought to be restored to their prior values.
A problem would only be observed if someone tries to \if out a
portion of a CREATE FUNCTION/PROCEDURE command that is relevant to
BEGIN/END matching, which seems like a pretty unusual usage, so the
lack of field reports isn't surprising.  Nonetheless it's a bug.

To fix, replace the simple counter field in ConditionalStack
entries with a pointer to a struct defined by psqlscan_int.h.
(In the back branches, keep the old field and associated functions
to minimize the risk of API/ABI breakage, even though it seems
unlikely that any third-party code is using this.  Making the
new struct private to psqlscan-related code should prevent API/ABI
issues for future additions of this type.)

In itself this is only a minor bug fix, but it's prerequisite
infrastructure for the fix for CVE-2026-6464, which will add
another such field.

Author: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Noah Misch <noah@leadboat.com>
Backpatch-through: 14
Security: CVE-2026-6464
If the COPY command fails before sending PGRES_COPY_IN, psql did
not realize that it ought to consume any in-line data following
the command.  Failing to do so leads to trying to execute that
data as SQL commands, which in the best case is wrong and in the
worst case is a SQL-injection hazard.

To fix:

1. Extend psqlscan.l to recognize COPY ... FROM STDIN.  This can
be done with a pretty simple extension to the logic that already
recognizes nested BEGIN blocks within CREATE FUNCTION et al.
But unlike that case, we need to consider and count multiple COPY
commands within a single query string (separated by "\;").  The
fallout from that is that psql_scan_reset must now always be called
before starting a new query string.  (The comment for it that claimed
we didn't need that because "the scan state must be INITIAL" was
really obsolete already, since it has long reset more state besides
start_state.)

2. Teach handleCopyIn() to read and discard data when passed
NULL for "conn".

3. Add logic to SendQuery() to call handleCopyIn() that way
if the query string contained COPY ... FROM STDIN command(s)
that remain unaccounted-for at the end.

Now that we have this counting logic, we can also detect
if the backend sends an unexpected PGRES_COPY_IN message.
That should never happen, but perhaps a malicious server
could try to extract data that way.

A side-effect of doing this is that we have to adjust a number of test
scripts that thought they needn't write "\." after a COPY FROM STDIN
that they expect to fail.  On the whole this is an improvement, since
there's now a uniform rule "write \. after COPY FROM STDIN, whether
you expect it to work or not".  But it is an annoying amount of test
churn.

A loose end in this patch is that if it has to skip data, it assumes
that that data is text not binary.  It seems unduly difficult to
detect whether the COPY command requested binary (we could handle the
old-style COPY BINARY ... syntax, but not the new style with format
options).  In practice, copying in-line binary data is unsupported
anyway, because there's no way to write an end marker: the textual
terminator sequence "\n\\.\n" could appear in binary data and there's
no provision for escaping it, so neither psql nor the server look for
it when in binary mode.

Reported-by: Alexander Lakhin <exclusion@gmail.com>
Author: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Noah Misch <noah@leadboat.com>
Backpatch-through: 14
Security: CVE-2026-6464

# Conflicts:
#	src/bin/psql/common.c
#	src/bin/psql/mainloop.c
#	src/include/fe_utils/psqlscan_int.h
This commit addresses two defects in this SQL function, the code
assuming that:
- The user-supplied string was long enough to contain a character of the
length implied by the first byte.  It is possible to provide in input
data that was able to disclose a few bytes of server memory, allowing
out-of-bound reads.
- Specific bytes had values within the expected range, using a set of
assertions to validate them.  The assertions could be triggered on
invalid input.  These are replaced by tests and error reports.

Reported-by: Hcamael <baiyjrh@gmail.com>
Author: Michael Paquier <michael@paquier.xyz>
Reviewed-by: Robert Haas <robertmhaas@gmail.com>
Backpatch-through: 14
Security: CVE-2026-18024
PGP encryption was using px_cipher_encrypt without checking if any
error was returned.  When OpenSSL is running in FIPS mode, or when
the legacy provider hasn't been loaded, not all ciphers which are
supported by the PGP code are available and fail the init step in
px_cipher_encrypt.  Since the PGP encryption failed to notice this
it XORed the non-encrypted block with the plaintext, effectively
disabling the encryption.

This was found due to a report of PGP encryption not respecting
the pgcrypto.builtin_crypto_enabled flag and allowing Blowfish
and DES.  This however turned out to be a false positive, since
the PGP code only use ciphers from OpenSSL and not the built in
ciphers.

Bug: #19457
Reported-by: Shishir Sharma <ansh01072001@gmail.com>
Reviewed-by: Jacob Champion <jacob.champion@enterprisedb.com>
Discussion: https://postgr.es/m/19457-4bab15c17aea36c7@postgresql.org
Security: CVE-2026-14663
Backpatch-through: 14
The previous commit raises an ERROR during PGP operations if OpenSSL
does not support the cipher in use. However, any existing messages
created with faulty encryption will no longer be accessible via
pgp_[sym|pub]_decrypt().

To help users out of this situation, add a new ignore-cipher-failure
option which reverts to the broken behavior during decryption only. A
faulty encryption wrapper, created by an OpenSSL configuration that does
not support the cipher, can then be stripped back off by that same
OpenSSL in order to safely reencrypt it. (Note that when OpenSSL does
support the cipher, corrupted messages will not be decrypted regardless
of the ignore-cipher-failure setting; this is unchanged.)

The new tests add a corrupted Blowfish message for both public- and
symmetric-key decryption, resulting in the following test matrix:

- Blowfish supported, default behavior:      fails to decrypt
- Blowfish supported, ignore-cipher-failure: fails to decrypt
- Blowfish unsupported, default behavior:    fails to load cipher
- Blowfish unsupported, ignore-cipher-failure: strips faulty encryption

The previous commit's change to the pubkey tests is expanded similarly:
correctly encrypted messages cannot be decrypted by an OpenSSL that does
not support the cipher, regardless of the option's setting, though the
failure mode will change.

Suggested-by: Noah Misch <noah@leadboat.com>
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Reviewed-by: Noah Misch <noah@leadboat.com>
Security: CVE-2026-14663
Backpatch-through: 14
This oversight in commit 71ea0d6795 allows a malicious server to
inject shell commands into plain-text dump output that are run at
restore time on the machine running psql.  To fix, interpret all
text after \unrestrict until the end of the line as its argument.

Reported-by: Lucas Velgus <velgusgus599@gmail.com>
Reported-by: Filip Janus <fjanus@redhat.com>
Reported-by: Daniel Bakker <daniel@jackds.nl>
Author: Nathan Bossart <nathandbossart@gmail.com>
Reviewed-by: Robert Haas <robertmhaas@gmail.com>
Reviewed-by: Noah Misch <noah@leadboat.com>
Security: CVE-2026-18408
Backpatch-through: 14
Starting with commit 011384ba45, calling to_date() or to_timestamp()
with "TMMonth" or other TM-prefixed format keyword, with the C locale,
would crash.

In REL_19_STABLE and above, pg_strupper(), pg_strlower(),
pg_strtitle(), and pg_strfold() functions have a special case for the
C locale, but that was missing in REL_18_STABLE.  On REL_18_STABLE,
the functions call the libc function even in C locale, even though the
native locale object is NULL.  On Linux, the underlying libc functions
will crash when called with NULL locale.  (On macOS, they reportedly
do not, but even then it's not clear if they will do what you'd
expect.)

This went unnoticed because until commit 011384ba45, we never called
these functions in C locale, all the callers had a special codepath
for C locale.  We could add a special path in the new callers too, but
it's an accident waiting to happen, so let's backport the C
locale-specific handling from REL_19_STABLE to REL_18_STABLE.  Older
versions did not have these functions at all, hence no problem.

This applies to REL_18_STABLE only.

Reported-by: Masashi Kamura <kamura.masashi@fujitsu.com>
Reviewed-by: Álvaro Herrera <alvherre@kurilemu.de>
Discussion: https://www.postgresql.org/message-id/OS9PR01MB1317436E07D06281AD1A0452F94DD2%40OS9PR01MB13174.jpnprd01.prod.outlook.com
Farewell, 18.5; we hardly knew ye.
@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 544 files, which is 394 over the limit of 150.

To get a review, reduce the PR to 150 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 9dfae356-75ff-4c3f-87d8-1d1efe1f419b

📥 Commits

Reviewing files that changed from the base of the PR and between a45b045 and 5dfb665.

⛔ Files ignored due to path filters (125)
  • contrib/amcheck/expected/check_btree.out is excluded by !**/*.out
  • contrib/btree_gist/expected/float4.out is excluded by !**/*.out
  • contrib/btree_gist/expected/float8.out is excluded by !**/*.out
  • contrib/btree_gist/expected/numeric.out is excluded by !**/*.out
  • contrib/dblink/expected/dblink.out is excluded by !**/*.out
  • contrib/fuzzystrmatch/expected/fuzzystrmatch.out is excluded by !**/*.out
  • contrib/hstore_plpython/expected/hstore_plpython.out is excluded by !**/*.out
  • contrib/intarray/expected/_int.out is excluded by !**/*.out
  • contrib/intarray/expected/ivy__int.out is excluded by !**/*.out
  • contrib/jsonb_plpython/expected/jsonb_plpython.out is excluded by !**/*.out
  • contrib/ltree/expected/ltree.out is excluded by !**/*.out
  • contrib/pg_surgery/expected/heap_surgery.out is excluded by !**/*.out
  • contrib/pgcrypto/expected/ivy-pgp-decrypt.out is excluded by !**/*.out
  • contrib/pgcrypto/expected/ivy-pgp-decrypt_1.out is excluded by !**/*.out
  • contrib/pgcrypto/expected/pgp-decrypt.out is excluded by !**/*.out
  • contrib/pgcrypto/expected/pgp-decrypt_1.out is excluded by !**/*.out
  • contrib/pgcrypto/expected/pgp-encrypt_1.out is excluded by !**/*.out
  • contrib/pgcrypto/expected/pgp-info.out is excluded by !**/*.out
  • contrib/pgcrypto/expected/pgp-pubkey-decrypt.out is excluded by !**/*.out
  • contrib/pgcrypto/expected/pgp-pubkey-decrypt_1.out is excluded by !**/*.out
  • contrib/postgres_fdw/expected/ivy_postgres_fdw.out is excluded by !**/*.out
  • contrib/postgres_fdw/expected/postgres_fdw.out is excluded by !**/*.out
  • contrib/seg/expected/seg.out is excluded by !**/*.out
  • contrib/test_decoding/expected/ivy_slot.out is excluded by !**/*.out
  • contrib/test_decoding/expected/permissions.out is excluded by !**/*.out
  • contrib/test_decoding/expected/slot.out is excluded by !**/*.out
  • contrib/test_decoding/expected/twophase.out is excluded by !**/*.out
  • contrib/test_decoding/expected/twophase_1.out is excluded by !**/*.out
  • contrib/xml2/expected/xml2.out is excluded by !**/*.out
  • contrib/xml2/expected/xml2_1.out is excluded by !**/*.out
  • src/include/catalog/pg_operator.dat is excluded by !**/*.dat
  • src/oracle_test/isolation/expected/ddl-dependency-locking.out is excluded by !**/*.out
  • src/oracle_test/isolation/expected/drop-owned-grant.out is excluded by !**/*.out
  • src/oracle_test/isolation/expected/eval-plan-qual-trigger.out is excluded by !**/*.out
  • src/oracle_test/isolation/expected/pub-concurrent-drop.out is excluded by !**/*.out
  • src/oracle_test/modules/injection_points/expected/reindex_concurrently_deferred.out is excluded by !**/*.out
  • src/oracle_test/modules/injection_points/expected/wait_cleanup.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/aggregates.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/alter_table.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/collate.icu.utf8.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/collate.linux.utf8.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/collate.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/collate.utf8.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/compression_pglz.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/constraints.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/copy.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/encoding.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/generated_stored.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/generated_virtual.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/gist.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/hash_part.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/indexing.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/interval_1.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/join.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/jsonb_jsonpath.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/money.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/object_address.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/partition_prune.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/privileges.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/psql.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/psql_pipeline.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/rangetypes.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/returning.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/rules.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/sqljson.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/sqljson_jsontable.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/sqljson_queryfuncs.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/stats_ext.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/stats_import.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/subselect.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/unicode.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/uuid.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/window.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/xml.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/xml_1.out is excluded by !**/*.out
  • src/oracle_test/regress/expected/xml_2.out is excluded by !**/*.out
  • src/pl/plperl/expected/plperl_array.out is excluded by !**/*.out
  • src/pl/plpython/expected/plpython_composite.out is excluded by !**/*.out
  • src/pl/plpython/expected/plpython_spi.out is excluded by !**/*.out
  • src/pl/plpython/expected/plpython_types.out is excluded by !**/*.out
  • src/test/isolation/expected/ddl-dependency-locking.out is excluded by !**/*.out
  • src/test/isolation/expected/drop-owned-grant.out is excluded by !**/*.out
  • src/test/isolation/expected/eval-plan-qual-trigger.out is excluded by !**/*.out
  • src/test/isolation/expected/merge-match-recheck.out is excluded by !**/*.out
  • src/test/isolation/expected/pub-concurrent-drop.out is excluded by !**/*.out
  • src/test/modules/injection_points/expected/reindex_concurrently_deferred.out is excluded by !**/*.out
  • src/test/modules/injection_points/expected/wait_cleanup.out is excluded by !**/*.out
  • src/test/regress/expected/aggregates.out is excluded by !**/*.out
  • src/test/regress/expected/alter_table.out is excluded by !**/*.out
  • src/test/regress/expected/collate.icu.utf8.out is excluded by !**/*.out
  • src/test/regress/expected/collate.linux.utf8.out is excluded by !**/*.out
  • src/test/regress/expected/collate.out is excluded by !**/*.out
  • src/test/regress/expected/collate.utf8.out is excluded by !**/*.out
  • src/test/regress/expected/compression_pglz.out is excluded by !**/*.out
  • src/test/regress/expected/constraints.out is excluded by !**/*.out
  • src/test/regress/expected/copy.out is excluded by !**/*.out
  • src/test/regress/expected/encoding.out is excluded by !**/*.out
  • src/test/regress/expected/generated_stored.out is excluded by !**/*.out
  • src/test/regress/expected/generated_virtual.out is excluded by !**/*.out
  • src/test/regress/expected/gist.out is excluded by !**/*.out
  • src/test/regress/expected/hash_part.out is excluded by !**/*.out
  • src/test/regress/expected/indexing.out is excluded by !**/*.out
  • src/test/regress/expected/join.out is excluded by !**/*.out
  • src/test/regress/expected/jsonb_jsonpath.out is excluded by !**/*.out
  • src/test/regress/expected/money.out is excluded by !**/*.out
  • src/test/regress/expected/object_address.out is excluded by !**/*.out
  • src/test/regress/expected/partition_prune.out is excluded by !**/*.out
  • src/test/regress/expected/privileges.out is excluded by !**/*.out
  • src/test/regress/expected/psql.out is excluded by !**/*.out
  • src/test/regress/expected/psql_pipeline.out is excluded by !**/*.out
  • src/test/regress/expected/rangetypes.out is excluded by !**/*.out
  • src/test/regress/expected/returning.out is excluded by !**/*.out
  • src/test/regress/expected/rules.out is excluded by !**/*.out
  • src/test/regress/expected/sqljson.out is excluded by !**/*.out
  • src/test/regress/expected/sqljson_jsontable.out is excluded by !**/*.out
  • src/test/regress/expected/sqljson_queryfuncs.out is excluded by !**/*.out
  • src/test/regress/expected/stats_ext.out is excluded by !**/*.out
  • src/test/regress/expected/stats_import.out is excluded by !**/*.out
  • src/test/regress/expected/subselect.out is excluded by !**/*.out
  • src/test/regress/expected/unicode.out is excluded by !**/*.out
  • src/test/regress/expected/uuid.out is excluded by !**/*.out
  • src/test/regress/expected/window.out is excluded by !**/*.out
  • src/test/regress/expected/xml.out is excluded by !**/*.out
  • src/test/regress/expected/xml_1.out is excluded by !**/*.out
  • src/test/regress/expected/xml_2.out is excluded by !**/*.out
📒 Files selected for processing (544)
  • .abi-compliance-history
  • .cirrus.tasks.yml
  • configure
  • configure.ac
  • contrib/amcheck/sql/check_btree.sql
  • contrib/amcheck/verify_common.c
  • contrib/amcheck/verify_gin.c
  • contrib/amcheck/verify_nbtree.c
  • contrib/btree_gist/btree_bit.c
  • contrib/btree_gist/btree_float4.c
  • contrib/btree_gist/btree_float8.c
  • contrib/btree_gist/btree_utils_num.c
  • contrib/btree_gist/btree_utils_num.h
  • contrib/btree_gist/btree_utils_var.c
  • contrib/btree_gist/data/float4.data
  • contrib/btree_gist/data/float8.data
  • contrib/btree_gist/sql/float4.sql
  • contrib/btree_gist/sql/float8.sql
  • contrib/dblink/dblink.c
  • contrib/dblink/sql/dblink.sql
  • contrib/dblink/t/001_auth_scram.pl
  • contrib/fuzzystrmatch/sql/fuzzystrmatch.sql
  • contrib/hstore_plperl/hstore_plperl.c
  • contrib/hstore_plpython/hstore_plpython.c
  • contrib/hstore_plpython/sql/hstore_plpython.sql
  • contrib/intarray/Makefile
  • contrib/intarray/_int_selfuncs.c
  • contrib/intarray/sql/_int.sql
  • contrib/intarray/sql/ivy__int.sql
  • contrib/jsonb_plperl/jsonb_plperl.c
  • contrib/jsonb_plpython/jsonb_plpython.c
  • contrib/jsonb_plpython/sql/jsonb_plpython.sql
  • contrib/ltree/ltree.h
  • contrib/ltree/ltree_gist.c
  • contrib/ltree/ltree_op.c
  • contrib/ltree/sql/ltree.sql
  • contrib/pg_prewarm/autoprewarm.c
  • contrib/pg_stat_statements/pg_stat_statements.c
  • contrib/pg_surgery/heap_surgery.c
  • contrib/pg_surgery/sql/heap_surgery.sql
  • contrib/pg_trgm/trgm_gist.c
  • contrib/pgcrypto/openssl.c
  • contrib/pgcrypto/pgp-cfb.c
  • contrib/pgcrypto/pgp-decrypt.c
  • contrib/pgcrypto/pgp-encrypt.c
  • contrib/pgcrypto/pgp-pgsql.c
  • contrib/pgcrypto/pgp-pubkey.c
  • contrib/pgcrypto/pgp.c
  • contrib/pgcrypto/pgp.h
  • contrib/pgcrypto/sql/ivy-pgp-decrypt.sql
  • contrib/pgcrypto/sql/pgp-decrypt.sql
  • contrib/pgcrypto/sql/pgp-pubkey-decrypt.sql
  • contrib/postgres_fdw/connection.c
  • contrib/postgres_fdw/option.c
  • contrib/postgres_fdw/postgres_fdw.c
  • contrib/postgres_fdw/sql/ivy_postgres_fdw.sql
  • contrib/postgres_fdw/sql/postgres_fdw.sql
  • contrib/postgres_fdw/t/001_auth_scram.pl
  • contrib/seg/seg.c
  • contrib/seg/sql/seg.sql
  • contrib/spi/refint.c
  • contrib/sslinfo/sslinfo.c
  • contrib/test_decoding/sql/ivy_slot.sql
  • contrib/test_decoding/sql/permissions.sql
  • contrib/test_decoding/sql/slot.sql
  • contrib/test_decoding/sql/twophase.sql
  • contrib/xml2/sql/xml2.sql
  • contrib/xml2/xpath.c
  • doc/src/sgml/amcheck.sgml
  • doc/src/sgml/config.sgml
  • doc/src/sgml/contrib-spi.sgml
  • doc/src/sgml/dblink.sgml
  • doc/src/sgml/ddl.sgml
  • doc/src/sgml/ecpg.sgml
  • doc/src/sgml/func.sgml
  • doc/src/sgml/logical-replication.sgml
  • doc/src/sgml/maintenance.sgml
  • doc/src/sgml/oauth-validators.sgml
  • doc/src/sgml/pgcrypto.sgml
  • doc/src/sgml/postgres-fdw.sgml
  • doc/src/sgml/ref/alter_table.sgml
  • doc/src/sgml/ref/copy.sgml
  • doc/src/sgml/ref/create_type.sgml
  • doc/src/sgml/ref/drop_subscription.sgml
  • doc/src/sgml/ref/pg_recvlogical.sgml
  • doc/src/sgml/ref/psql-ref.sgml
  • doc/src/sgml/release-18.sgml
  • doc/src/sgml/rules.sgml
  • doc/src/sgml/storage.sgml
  • doc/src/sgml/stylesheet-speedup-xhtml.xsl
  • meson.build
  • src/backend/access/gin/gininsert.c
  • src/backend/access/gin/ginvacuum.c
  • src/backend/access/hash/hash_xlog.c
  • src/backend/access/heap/heapam.c
  • src/backend/access/heap/heapam_xlog.c
  • src/backend/access/heap/hio.c
  • src/backend/access/heap/pruneheap.c
  • src/backend/access/heap/vacuumlazy.c
  • src/backend/access/heap/visibilitymap.c
  • src/backend/access/nbtree/nbtsearch.c
  • src/backend/access/transam/multixact.c
  • src/backend/access/transam/xlog.c
  • src/backend/access/transam/xlogreader.c
  • src/backend/access/transam/xlogrecovery.c
  • src/backend/access/transam/xlogutils.c
  • src/backend/backup/basebackup.c
  • src/backend/backup/basebackup_progress.c
  • src/backend/backup/basebackup_server.c
  • src/backend/catalog/dependency.c
  • src/backend/catalog/heap.c
  • src/backend/catalog/index.c
  • src/backend/catalog/namespace.c
  • src/backend/catalog/objectaddress.c
  • src/backend/catalog/pg_attrdef.c
  • src/backend/catalog/pg_constraint.c
  • src/backend/catalog/pg_depend.c
  • src/backend/catalog/pg_proc.c
  • src/backend/catalog/pg_publication.c
  • src/backend/catalog/pg_type.c
  • src/backend/commands/copyfromparse.c
  • src/backend/commands/copyto.c
  • src/backend/commands/event_trigger.c
  • src/backend/commands/explain.c
  • src/backend/commands/indexcmds.c
  • src/backend/commands/policy.c
  • src/backend/commands/sequence.c
  • src/backend/commands/statscmds.c
  • src/backend/commands/subscriptioncmds.c
  • src/backend/commands/tablecmds.c
  • src/backend/commands/trigger.c
  • src/backend/commands/typecmds.c
  • src/backend/commands/vacuum.c
  • src/backend/executor/execExprInterp.c
  • src/backend/executor/execTuples.c
  • src/backend/executor/nodeAppend.c
  • src/backend/executor/nodeHashjoin.c
  • src/backend/executor/nodeIndexonlyscan.c
  • src/backend/executor/nodeModifyTable.c
  • src/backend/executor/nodeWindowAgg.c
  • src/backend/jit/llvm/llvmjit.c
  • src/backend/jit/llvm/llvmjit_deform.c
  • src/backend/jit/llvm/llvmjit_expr.c
  • src/backend/libpq/auth-scram.c
  • src/backend/libpq/be-secure-openssl.c
  • src/backend/nodes/makefuncs.c
  • src/backend/nodes/queryjumblefuncs.c
  • src/backend/optimizer/path/allpaths.c
  • src/backend/optimizer/plan/analyzejoins.c
  • src/backend/optimizer/plan/planner.c
  • src/backend/optimizer/plan/subselect.c
  • src/backend/optimizer/prep/prepjointree.c
  • src/backend/optimizer/util/clauses.c
  • src/backend/parser/parse_agg.c
  • src/backend/parser/parse_coerce.c
  • src/backend/parser/parse_expr.c
  • src/backend/parser/parse_func.c
  • src/backend/parser/parse_oper.c
  • src/backend/parser/parse_relation.c
  • src/backend/parser/parse_target.c
  • src/backend/parser/parse_utilcmd.c
  • src/backend/partitioning/partbounds.c
  • src/backend/partitioning/partprune.c
  • src/backend/po/de.po
  • src/backend/po/ja.po
  • src/backend/po/ru.po
  • src/backend/postmaster/autovacuum.c
  • src/backend/postmaster/walsummarizer.c
  • src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
  • src/backend/replication/logical/logical.c
  • src/backend/replication/logical/reorderbuffer.c
  • src/backend/replication/logical/slotsync.c
  • src/backend/replication/logical/tablesync.c
  • src/backend/replication/logical/worker.c
  • src/backend/replication/repl_scanner.l
  • src/backend/replication/slot.c
  • src/backend/replication/walreceiver.c
  • src/backend/replication/walreceiverfuncs.c
  • src/backend/replication/walsender.c
  • src/backend/rewrite/rewriteDefine.c
  • src/backend/statistics/attribute_stats.c
  • src/backend/statistics/dependencies.c
  • src/backend/statistics/relation_stats.c
  • src/backend/storage/aio/read_stream.c
  • src/backend/storage/buffer/bufmgr.c
  • src/backend/storage/buffer/localbuf.c
  • src/backend/storage/ipc/procsignal.c
  • src/backend/storage/lmgr/proc.c
  • src/backend/tcop/backend_startup.c
  • src/backend/tcop/pquery.c
  • src/backend/tcop/utility.c
  • src/backend/tsearch/dict_synonym.c
  • src/backend/tsearch/spell.c
  • src/backend/tsearch/to_tsany.c
  • src/backend/tsearch/ts_parse.c
  • src/backend/utils/activity/backend_progress.c
  • src/backend/utils/activity/pgstat.c
  • src/backend/utils/activity/pgstat_function.c
  • src/backend/utils/activity/pgstat_replslot.c
  • src/backend/utils/activity/pgstat_shmem.c
  • src/backend/utils/activity/pgstat_xact.c
  • src/backend/utils/activity/wait_event_names.txt
  • src/backend/utils/adt/acl.c
  • src/backend/utils/adt/cash.c
  • src/backend/utils/adt/formatting.c
  • src/backend/utils/adt/int8.c
  • src/backend/utils/adt/json.c
  • src/backend/utils/adt/jsonpath_exec.c
  • src/backend/utils/adt/levenshtein.c
  • src/backend/utils/adt/like_match.c
  • src/backend/utils/adt/like_support.c
  • src/backend/utils/adt/numeric.c
  • src/backend/utils/adt/oracle_compat.c
  • src/backend/utils/adt/pg_locale.c
  • src/backend/utils/adt/pg_locale_builtin.c
  • src/backend/utils/adt/regexp.c
  • src/backend/utils/adt/rowtypes.c
  • src/backend/utils/adt/ruleutils.c
  • src/backend/utils/adt/selfuncs.c
  • src/backend/utils/adt/timestamp.c
  • src/backend/utils/adt/tsquery_util.c
  • src/backend/utils/adt/tsvector.c
  • src/backend/utils/adt/tsvector_op.c
  • src/backend/utils/adt/uuid.c
  • src/backend/utils/adt/varlena.c
  • src/backend/utils/adt/xml.c
  • src/backend/utils/cache/catcache.c
  • src/backend/utils/cache/funccache.c
  • src/backend/utils/cache/lsyscache.c
  • src/backend/utils/cache/plancache.c
  • src/backend/utils/cache/relcache.c
  • src/backend/utils/cache/ts_cache.c
  • src/backend/utils/cache/typcache.c
  • src/backend/utils/fmgr/funcapi.c
  • src/backend/utils/init/usercontext.c
  • src/backend/utils/misc/guc_tables.c
  • src/backend/utils/misc/postgresql.conf.sample
  • src/backend/utils/misc/stack_depth.c
  • src/backend/utils/mmgr/mcxt.c
  • src/backend/utils/resowner/resowner.c
  • src/bin/initdb/po/de.po
  • src/bin/initdb/po/ja.po
  • src/bin/initdb/po/ru.po
  • src/bin/initdb/po/sv.po
  • src/bin/pg_amcheck/po/de.po
  • src/bin/pg_amcheck/po/ru.po
  • src/bin/pg_archivecleanup/po/de.po
  • src/bin/pg_archivecleanup/po/ru.po
  • src/bin/pg_basebackup/pg_createsubscriber.c
  • src/bin/pg_basebackup/pg_recvlogical.c
  • src/bin/pg_basebackup/po/de.po
  • src/bin/pg_basebackup/po/ja.po
  • src/bin/pg_basebackup/po/ru.po
  • src/bin/pg_basebackup/receivelog.c
  • src/bin/pg_basebackup/streamutil.c
  • src/bin/pg_basebackup/streamutil.h
  • src/bin/pg_checksums/po/de.po
  • src/bin/pg_checksums/po/ru.po
  • src/bin/pg_combinebackup/Makefile
  • src/bin/pg_combinebackup/meson.build
  • src/bin/pg_combinebackup/po/de.po
  • src/bin/pg_combinebackup/po/ja.po
  • src/bin/pg_combinebackup/po/ru.po
  • src/bin/pg_combinebackup/reconstruct.c
  • src/bin/pg_combinebackup/t/012_vm_consistency.pl
  • src/bin/pg_config/po/de.po
  • src/bin/pg_config/po/ru.po
  • src/bin/pg_controldata/po/de.po
  • src/bin/pg_controldata/po/ru.po
  • src/bin/pg_ctl/po/de.po
  • src/bin/pg_ctl/po/ja.po
  • src/bin/pg_ctl/po/ru.po
  • src/bin/pg_dump/common.c
  • src/bin/pg_dump/dumputils.c
  • src/bin/pg_dump/dumputils.h
  • src/bin/pg_dump/parallel.c
  • src/bin/pg_dump/pg_backup_archiver.c
  • src/bin/pg_dump/pg_dump.c
  • src/bin/pg_dump/pg_dump.h
  • src/bin/pg_dump/po/de.po
  • src/bin/pg_dump/po/ja.po
  • src/bin/pg_dump/po/ru.po
  • src/bin/pg_dump/t/002_pg_dump.pl
  • src/bin/pg_resetwal/po/de.po
  • src/bin/pg_resetwal/po/ru.po
  • src/bin/pg_rewind/po/de.po
  • src/bin/pg_rewind/po/ja.po
  • src/bin/pg_rewind/po/ru.po
  • src/bin/pg_rewind/po/sv.po
  • src/bin/pg_test_fsync/po/de.po
  • src/bin/pg_test_fsync/po/ru.po
  • src/bin/pg_test_timing/po/de.po
  • src/bin/pg_test_timing/po/ja.po
  • src/bin/pg_test_timing/po/ru.po
  • src/bin/pg_upgrade/check.c
  • src/bin/pg_upgrade/po/de.po
  • src/bin/pg_upgrade/po/ru.po
  • src/bin/pg_upgrade/t/003_logical_slots.pl
  • src/bin/pg_verifybackup/po/de.po
  • src/bin/pg_verifybackup/po/ru.po
  • src/bin/pg_waldump/po/de.po
  • src/bin/pg_waldump/po/ru.po
  • src/bin/pg_walsummary/meson.build
  • src/bin/pg_walsummary/po/de.po
  • src/bin/pg_walsummary/po/ru.po
  • src/bin/pg_walsummary/t/002_blocks.pl
  • src/bin/pg_walsummary/t/003_tli_switch.pl
  • src/bin/pgbench/pgbench.c
  • src/bin/pgbench/t/002_pgbench_no_server.pl
  • src/bin/psql/command.c
  • src/bin/psql/common.c
  • src/bin/psql/common.h
  • src/bin/psql/copy.c
  • src/bin/psql/describe.c
  • src/bin/psql/mainloop.c
  • src/bin/psql/ora_psqlscanslash.h
  • src/bin/psql/ora_psqlscanslash.l
  • src/bin/psql/po/de.po
  • src/bin/psql/po/ru.po
  • src/bin/psql/psqlscanslash.h
  • src/bin/psql/psqlscanslash.l
  • src/bin/psql/startup.c
  • src/bin/psql/t/001_basic.pl
  • src/bin/psql/tab-complete.in.c
  • src/bin/psql/variables.c
  • src/bin/scripts/po/de.po
  • src/bin/scripts/po/ru.po
  • src/bin/scripts/t/100_vacuumdb.pl
  • src/bin/scripts/vacuumdb.c
  • src/common/blkreftable.c
  • src/common/unicode/case_test.c
  • src/common/unicode_case.c
  • src/common/unicode_norm.c
  • src/fe_utils/conditional.c
  • src/fe_utils/print.c
  • src/fe_utils/psqlscan.l
  • src/fe_utils/string_utils.c
  • src/include/access/heapam_xlog.h
  • src/include/access/visibilitymap.h
  • src/include/access/xlogutils.h
  • src/include/c.h
  • src/include/catalog/dependency.h
  • src/include/catalog/index.h
  • src/include/commands/defrem.h
  • src/include/commands/typecmds.h
  • src/include/executor/execScan.h
  • src/include/fe_utils/conditional.h
  • src/include/fe_utils/psqlscan.h
  • src/include/fe_utils/psqlscan_int.h
  • src/include/fe_utils/string_utils.h
  • src/include/nodes/parsenodes.h
  • src/include/optimizer/clauses.h
  • src/include/oracle_fe_utils/ora_psqlscan.h
  • src/include/parser/parse_relation.h
  • src/include/replication/logical.h
  • src/include/replication/walreceiver.h
  • src/include/storage/read_stream.h
  • src/include/tsearch/ts_type.h
  • src/include/utils/acl.h
  • src/include/utils/lsyscache.h
  • src/include/utils/numeric.h
  • src/include/utils/pgstat_internal.h
  • src/include/utils/rel.h
  • src/interfaces/ecpg/ecpglib/data.c
  • src/interfaces/ecpg/ecpglib/error.c
  • src/interfaces/ecpg/ecpglib/po/ru.po
  • src/interfaces/ecpg/include/ecpgerrno.h
  • src/interfaces/ecpg/oracle_test/expected/sql-bytea.c
  • src/interfaces/ecpg/oracle_test/expected/sql-bytea.stderr
  • src/interfaces/ecpg/oracle_test/sql/bytea.pgc
  • src/interfaces/ecpg/preproc/ecpg.trailer
  • src/interfaces/ecpg/preproc/po/ru.po
  • src/interfaces/ecpg/preproc/type.c
  • src/interfaces/ecpg/test/expected/sql-bytea.c
  • src/interfaces/ecpg/test/expected/sql-bytea.stderr
  • src/interfaces/ecpg/test/sql/bytea.pgc
  • src/interfaces/libpq-oauth/Makefile
  • src/interfaces/libpq-oauth/meson.build
  • src/interfaces/libpq-oauth/oauth-curl.c
  • src/interfaces/libpq-oauth/t/001_oauth.pl
  • src/interfaces/libpq-oauth/test-oauth-curl.c
  • src/interfaces/libpq/fe-misc.c
  • src/interfaces/libpq/fe-protocol3.c
  • src/interfaces/libpq/fe-secure-gssapi.c
  • src/interfaces/libpq/fe-secure-openssl.c
  • src/interfaces/libpq/fe-secure.c
  • src/interfaces/libpq/fe-trace.c
  • src/interfaces/libpq/libpq-int.h
  • src/interfaces/libpq/po/de.po
  • src/interfaces/libpq/po/ja.po
  • src/interfaces/libpq/po/ru.po
  • src/oracle_fe_utils/ora_psqlscan.l
  • src/oracle_test/isolation/isolation_schedule
  • src/oracle_test/isolation/specs/ddl-dependency-locking.spec
  • src/oracle_test/isolation/specs/drop-owned-grant.spec
  • src/oracle_test/isolation/specs/eval-plan-qual-trigger.spec
  • src/oracle_test/isolation/specs/pub-concurrent-drop.spec
  • src/oracle_test/modules/injection_points/Makefile
  • src/oracle_test/modules/injection_points/injection_points.c
  • src/oracle_test/modules/injection_points/injection_points.h
  • src/oracle_test/modules/injection_points/injection_stats.c
  • src/oracle_test/modules/injection_points/meson.build
  • src/oracle_test/modules/injection_points/specs/reindex_concurrently_deferred.spec
  • src/oracle_test/modules/injection_points/specs/wait_cleanup.spec
  • src/oracle_test/modules/oauth_validator/t/001_server.pl
  • src/oracle_test/modules/test_misc/meson.build
  • src/oracle_test/modules/test_misc/t/013_temp_obj_multisession.pl
  • src/oracle_test/perl/PostgreSQL/Test/AdjustUpgrade.pm
  • src/oracle_test/recovery/meson.build
  • src/oracle_test/recovery/t/004_timeline_switch.pl
  • src/oracle_test/recovery/t/035_standby_logical_decoding.pl
  • src/oracle_test/recovery/t/053_standby_login_event_trigger.pl
  • src/oracle_test/recovery/t/054_unlogged_sequence_promotion.pl
  • src/oracle_test/recovery/t/055_cascade_reconnect.pl
  • src/oracle_test/regress/sql/aggregates.sql
  • src/oracle_test/regress/sql/alter_table.sql
  • src/oracle_test/regress/sql/collate.icu.utf8.sql
  • src/oracle_test/regress/sql/collate.linux.utf8.sql
  • src/oracle_test/regress/sql/collate.sql
  • src/oracle_test/regress/sql/collate.utf8.sql
  • src/oracle_test/regress/sql/compression_pglz.sql
  • src/oracle_test/regress/sql/constraints.sql
  • src/oracle_test/regress/sql/copy.sql
  • src/oracle_test/regress/sql/copy2.sql
  • src/oracle_test/regress/sql/copyselect.sql
  • src/oracle_test/regress/sql/encoding.sql
  • src/oracle_test/regress/sql/generated_stored.sql
  • src/oracle_test/regress/sql/generated_virtual.sql
  • src/oracle_test/regress/sql/gist.sql
  • src/oracle_test/regress/sql/hash_part.sql
  • src/oracle_test/regress/sql/indexing.sql
  • src/oracle_test/regress/sql/join.sql
  • src/oracle_test/regress/sql/jsonb_jsonpath.sql
  • src/oracle_test/regress/sql/money.sql
  • src/oracle_test/regress/sql/object_address.sql
  • src/oracle_test/regress/sql/partition_prune.sql
  • src/oracle_test/regress/sql/privileges.sql
  • src/oracle_test/regress/sql/psql.sql
  • src/oracle_test/regress/sql/psql_pipeline.sql
  • src/oracle_test/regress/sql/rangetypes.sql
  • src/oracle_test/regress/sql/returning.sql
  • src/oracle_test/regress/sql/rowsecurity.sql
  • src/oracle_test/regress/sql/rules.sql
  • src/oracle_test/regress/sql/sqljson.sql
  • src/oracle_test/regress/sql/sqljson_jsontable.sql
  • src/oracle_test/regress/sql/sqljson_queryfuncs.sql
  • src/oracle_test/regress/sql/stats_ext.sql
  • src/oracle_test/regress/sql/stats_import.sql
  • src/oracle_test/regress/sql/subselect.sql
  • src/oracle_test/regress/sql/unicode.sql
  • src/oracle_test/regress/sql/uuid.sql
  • src/oracle_test/regress/sql/window.sql
  • src/oracle_test/regress/sql/xml.sql
  • src/oracle_test/ssl/t/001_ssltests.pl
  • src/oracle_test/subscription/t/021_twophase.pl
  • src/oracle_test/subscription/t/023_twophase_stream.pl
  • src/oracle_test/subscription/t/100_bugs.pl
  • src/pl/plisql/src/pl_exec.c
  • src/pl/plperl/SPI.xs
  • src/pl/plperl/plperl.c
  • src/pl/plperl/sql/plperl_array.sql
  • src/pl/plpgsql/src/pl_exec.c
  • src/pl/plpython/plpy_cursorobject.c
  • src/pl/plpython/plpy_spi.c
  • src/pl/plpython/plpy_typeio.c
  • src/pl/plpython/po/de.po
  • src/pl/plpython/po/ja.po
  • src/pl/plpython/po/ru.po
  • src/pl/plpython/sql/plpython_composite.sql
  • src/pl/plpython/sql/plpython_spi.sql
  • src/pl/plpython/sql/plpython_types.sql
  • src/pl/tcl/pltcl.c
  • src/port/pgmkdirp.c
  • src/test/isolation/isolation_schedule
  • src/test/isolation/specs/ddl-dependency-locking.spec
  • src/test/isolation/specs/drop-owned-grant.spec
  • src/test/isolation/specs/eval-plan-qual-trigger.spec
  • src/test/isolation/specs/merge-match-recheck.spec
  • src/test/isolation/specs/pub-concurrent-drop.spec
  • src/test/modules/injection_points/Makefile
  • src/test/modules/injection_points/injection_points.c
  • src/test/modules/injection_points/injection_points.h
  • src/test/modules/injection_points/injection_stats.c
  • src/test/modules/injection_points/meson.build
  • src/test/modules/injection_points/specs/reindex_concurrently_deferred.spec
  • src/test/modules/injection_points/specs/wait_cleanup.spec
  • src/test/modules/oauth_validator/t/001_server.pl
  • src/test/modules/test_misc/meson.build
  • src/test/modules/test_misc/t/013_temp_obj_multisession.pl
  • src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm
  • src/test/recovery/meson.build
  • src/test/recovery/t/004_timeline_switch.pl
  • src/test/recovery/t/035_standby_logical_decoding.pl
  • src/test/recovery/t/053_standby_login_event_trigger.pl
  • src/test/recovery/t/054_unlogged_sequence_promotion.pl
  • src/test/recovery/t/055_cascade_reconnect.pl
  • src/test/regress/sql/aggregates.sql
  • src/test/regress/sql/alter_table.sql
  • src/test/regress/sql/collate.icu.utf8.sql
  • src/test/regress/sql/collate.linux.utf8.sql
  • src/test/regress/sql/collate.sql
  • src/test/regress/sql/collate.utf8.sql
  • src/test/regress/sql/compression_pglz.sql
  • src/test/regress/sql/constraints.sql
  • src/test/regress/sql/copy.sql
  • src/test/regress/sql/copy2.sql
  • src/test/regress/sql/copyselect.sql
  • src/test/regress/sql/encoding.sql
  • src/test/regress/sql/generated_stored.sql
  • src/test/regress/sql/generated_virtual.sql
  • src/test/regress/sql/gist.sql
  • src/test/regress/sql/hash_part.sql
  • src/test/regress/sql/indexing.sql
  • src/test/regress/sql/join.sql
  • src/test/regress/sql/jsonb_jsonpath.sql
  • src/test/regress/sql/money.sql
  • src/test/regress/sql/object_address.sql
  • src/test/regress/sql/partition_prune.sql
  • src/test/regress/sql/privileges.sql
  • src/test/regress/sql/psql.sql
  • src/test/regress/sql/psql_pipeline.sql
  • src/test/regress/sql/rangetypes.sql
  • src/test/regress/sql/returning.sql
  • src/test/regress/sql/rowsecurity.sql
  • src/test/regress/sql/rules.sql
  • src/test/regress/sql/sqljson.sql
  • src/test/regress/sql/sqljson_jsontable.sql
  • src/test/regress/sql/sqljson_queryfuncs.sql
  • src/test/regress/sql/stats_ext.sql
  • src/test/regress/sql/stats_import.sql
  • src/test/regress/sql/subselect.sql
  • src/test/regress/sql/unicode.sql
  • src/test/regress/sql/uuid.sql
  • src/test/regress/sql/window.sql
  • src/test/regress/sql/xml.sql
  • src/test/ssl/t/001_ssltests.pl
  • src/test/subscription/t/021_twophase.pl
  • src/test/subscription/t/023_twophase_stream.pl
  • src/test/subscription/t/100_bugs.pl
  • src/timezone/data/tzdata.zi
  • src/tools/pg_bsd_indent/indent.c
  • src/tools/pg_bsd_indent/indent.h
  • src/tools/pg_bsd_indent/io.c
  • src/tools/pgindent/typedefs.list

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.