<feed xmlns='http://www.w3.org/2005/Atom'>
<title>postgresql.git/src/include/commands/tablecmds.h, branch master</title>
<subtitle>This is the main PostgreSQL git repository.</subtitle>
<id>http://git.postgresql.org/cgit/postgresql.git/atom?h=master</id>
<link rel='self' href='http://git.postgresql.org/cgit/postgresql.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/'/>
<updated>2026-03-24T16:11:12Z</updated>
<entry>
<title>Don't include storage/lock.h in so many headers</title>
<updated>2026-03-24T16:11:12Z</updated>
<author>
<name>Álvaro Herrera</name>
</author>
<published>2026-03-24T16:11:12Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=2102ebb1953fe656a46819e11ff4204e2f918dda'/>
<id>urn:sha1:2102ebb1953fe656a46819e11ff4204e2f918dda</id>
<content type='text'>
Since storage/locktags.h was added by commit 322bab79744d, many headers
can be made leaner by depending on that instead of on storage/lock.h,
which has many other dependencies.

(In fact, some of these changes were possible even before that.)

Author: Álvaro Herrera &lt;alvherre@kurilemu.de&gt;
Reviewed-by: Bertrand Drouvot &lt;bertranddrouvot.pg@gmail.com&gt;
Discussion: https://postgr.es/m/abvrRZo52Yx9ZzWQ@ip-10-97-1-34.eu-west-3.compute.internal
</content>
</entry>
<entry>
<title>Update copyright for 2026</title>
<updated>2026-01-01T18:24:10Z</updated>
<author>
<name>Bruce Momjian</name>
</author>
<published>2026-01-01T18:24:10Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=451c43974f8e199097d97624a4952ad0973cea61'/>
<id>urn:sha1:451c43974f8e199097d97624a4952ad0973cea61</id>
<content type='text'>
Backpatch-through: 14
</content>
</entry>
<entry>
<title>Update various forward declarations to use typedef</title>
<updated>2025-09-15T09:04:10Z</updated>
<author>
<name>Peter Eisentraut</name>
</author>
<published>2025-09-15T08:48:30Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=d4d1fc527bdb333d818038081c17ed7d9b1697c1'/>
<id>urn:sha1:d4d1fc527bdb333d818038081c17ed7d9b1697c1</id>
<content type='text'>
There are a number of forward declarations that use struct but not the
customary typedef, because that could have led to repeat typedefs,
which was not allowed.  This is now allowed in C11, so we can update
these to provide the typedefs as well, so that the later uses of the
types look more consistent.

Reviewed-by: Chao Li &lt;li.evan.chao@gmail.com&gt;
Discussion: https://www.postgresql.org/message-id/flat/10d32190-f31b-40a5-b177-11db55597355@eisentraut.org
</content>
</entry>
<entry>
<title>Update copyright for 2025</title>
<updated>2025-01-01T16:21:55Z</updated>
<author>
<name>Bruce Momjian</name>
</author>
<published>2025-01-01T16:21:55Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=50e6eb731d98ab6d0e625a0b87fb327b172bbebd'/>
<id>urn:sha1:50e6eb731d98ab6d0e625a0b87fb327b172bbebd</id>
<content type='text'>
Backpatch-through: 13
</content>
</entry>
<entry>
<title>Reintroduce MAINTAIN privilege and pg_maintain predefined role.</title>
<updated>2024-03-13T19:49:26Z</updated>
<author>
<name>Nathan Bossart</name>
</author>
<published>2024-03-13T19:49:26Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=ecb0fd33720fab91df1207e85704f382f55e1eb7'/>
<id>urn:sha1:ecb0fd33720fab91df1207e85704f382f55e1eb7</id>
<content type='text'>
Roles with MAINTAIN on a relation may run VACUUM, ANALYZE, REINDEX,
REFRESH MATERIALIZE VIEW, CLUSTER, and LOCK TABLE on the relation.
Roles with privileges of pg_maintain may run those same commands on
all relations.

This was previously committed for v16, but it was reverted in
commit 151c22deee due to concerns about search_path tricks that
could be used to escalate privileges to the table owner.  Commits
2af07e2f74, 59825d1639, and c7ea3f4229 resolved these concerns by
restricting search_path when running maintenance commands.

Bumps catversion.

Reviewed-by: Jeff Davis
Discussion: https://postgr.es/m/20240305161235.GA3478007%40nathanxps13
</content>
</entry>
<entry>
<title>Update copyright for 2024</title>
<updated>2024-01-04T01:49:05Z</updated>
<author>
<name>Bruce Momjian</name>
</author>
<published>2024-01-04T01:49:05Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=29275b1d177096597675b5c6e7e7c9db2df8f4df'/>
<id>urn:sha1:29275b1d177096597675b5c6e7e7c9db2df8f4df</id>
<content type='text'>
Reported-by: Michael Paquier

Discussion: https://postgr.es/m/ZZKTDPxBBMt3C0J9@paquier.xyz

Backpatch-through: 12
</content>
</entry>
<entry>
<title>Move BuildDescForRelation() from tupdesc.c to tablecmds.c</title>
<updated>2023-10-05T14:20:46Z</updated>
<author>
<name>Peter Eisentraut</name>
</author>
<published>2023-10-05T14:17:16Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=04e485273b56bec0e4637f97c587eca26cf823f0'/>
<id>urn:sha1:04e485273b56bec0e4637f97c587eca26cf823f0</id>
<content type='text'>
BuildDescForRelation() main job is to convert ColumnDef lists to
pg_attribute/tuple descriptor arrays, which is really mostly an
internal subroutine of DefineRelation() and some related functions,
which is more the remit of tablecmds.c and doesn't have much to do
with the basic tuple descriptor interfaces in tupdesc.c.  This is also
supported by observing the header includes we can remove in tupdesc.c.
By moving it over, we can also (in the future) make
BuildDescForRelation() use more internals of tablecmds.c that are not
sensible to be exposed in tupdesc.c.

Discussion: https://www.postgresql.org/message-id/flat/52a125e4-ff9a-95f5-9f61-b87cf447e4da@eisentraut.org
</content>
</entry>
<entry>
<title>Revert MAINTAIN privilege and pg_maintain predefined role.</title>
<updated>2023-07-07T18:25:13Z</updated>
<author>
<name>Nathan Bossart</name>
</author>
<published>2023-07-07T18:25:13Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=151c22deee66a3390ca9a1c3675e29de54ae73fc'/>
<id>urn:sha1:151c22deee66a3390ca9a1c3675e29de54ae73fc</id>
<content type='text'>
This reverts the following commits: 4dbdb82513, c2122aae63,
5b1a879943, 9e1e9d6560, ff9618e82a, 60684dd834, 4441fc704d,
and b5d6382496.  A role with the MAINTAIN privilege may be able to
use search_path tricks to escalate privileges to the table owner.
Unfortunately, it is too late in the v16 development cycle to apply
the proposed fix, i.e., restricting search_path when running
maintenance commands.

Bumps catversion.

Reviewed-by: Jeff Davis
Discussion: https://postgr.es/m/E1q7j7Y-000z1H-Hr%40gemulon.postgresql.org
Backpatch-through: 16
</content>
</entry>
<entry>
<title>Fix cache lookup hazards introduced by ff9618e82a.</title>
<updated>2023-06-22T22:48:20Z</updated>
<author>
<name>Nathan Bossart</name>
</author>
<published>2023-06-22T22:48:20Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=4dbdb82513b65ab3a29e431f0233009c8a0fa890'/>
<id>urn:sha1:4dbdb82513b65ab3a29e431f0233009c8a0fa890</id>
<content type='text'>
ff9618e82a introduced has_partition_ancestor_privs(), which is used
to check whether a user has MAINTAIN on any partition ancestors.
This involves syscache lookups, and presently this function does
not take any relation locks, so it is likely subject to the same
kind of cache lookup failures that were fixed by 19de0ab23c.

To fix this problem, this commit partially reverts ff9618e82a.
Specifically, it removes the partition-related changes, including
the has_partition_ancestor_privs() function mentioned above.  This
means that MAINTAIN on a partitioned table is no longer sufficient
to perform maintenance commands on its partitions.  This is more
like how privileges for maintenance commands work on supported
versions.  Privileges are checked for each partition, so a command
that flows down to all partitions might refuse to process them
(e.g., if the current user doesn't have MAINTAIN on the partition).

In passing, adjust a few related comments and error messages, and
add a test for the privilege checks for CLUSTER on a partitioned
table.

Reviewed-by: Michael Paquier, Jeff Davis
Discussion: https://postgr.es/m/20230613211246.GA219055%40nathanxps13
</content>
</entry>
<entry>
<title>Revert "Catalog NOT NULL constraints" and fallout</title>
<updated>2023-04-12T17:29:21Z</updated>
<author>
<name>Alvaro Herrera</name>
</author>
<published>2023-04-12T17:29:21Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=9ce04b50e120275afbc03ca0b80839dde3da8308'/>
<id>urn:sha1:9ce04b50e120275afbc03ca0b80839dde3da8308</id>
<content type='text'>
This reverts commit e056c557aef4 and minor later fixes thereof.

There's a few problems in this new feature -- most notably regarding
pg_upgrade behavior, but others as well.  This new feature is not in any
way critical on its own, so instead of scrambling to fix it we revert it
and try again in early 17 with these issues in mind.

Discussion: https://postgr.es/m/3801207.1681057430@sss.pgh.pa.us
</content>
</entry>
</feed>
