Go to file
Peter Eisentraut 20e58105ba Separate equalRowTypes() from equalTupleDescs()
This introduces a new function equalRowTypes() that is effectively a
subset of equalTupleDescs() but only compares the number of attributes
and attribute name, type, typmod, and collation.  This is enough for
most existing uses of equalTupleDescs(), which are changed to use the
new function.  The only remaining callers of equalTupleDescs() are
those that really want to check the full tuple descriptor as such,
without concern about record or row or record type semantics.

The existing function hashTupleDesc() is renamed to hashRowType(),
because it now corresponds more to equalRowTypes().

The purpose of this change is to be clearer about the semantics of the
equality asked for by each caller.  (At least one caller had a comment
that questioned whether equalTupleDescs() was too restrictive.)  For
example, 4f622503d6 removed attstattarget from the tuple descriptor
structure.  It was not fully clear at the time how this should affect
equalTupleDescs().  Now the answer is clear: By their own definitions,
equalRowTypes() does not care, and equalTupleDescs() just compares
whatever is in the tuple descriptor but does not care why it is in
there.

Reviewed-by: Tomas Vondra <tomas.vondra@enterprisedb.com>
Discussion: https://www.postgresql.org/message-id/flat/f656d6d9-6660-4518-a006-2f65cafbebd1%40eisentraut.org
2024-03-17 05:58:04 +01:00
config Remove AIX support 2024-02-28 15:17:23 +04:00
contrib Fix contrib/pg_visibility/meson.build 2024-03-14 13:38:44 +02:00
doc Login event trigger documentation wordsmithing 2024-03-14 23:35:35 +01:00
src Separate equalRowTypes() from equalTupleDescs() 2024-03-17 05:58:04 +01:00
.cirrus.star Remove duplicate words in docs and code comments. 2023-10-09 09:18:47 +05:30
.cirrus.tasks.yml ci: Use a RAM disk and more CPUs on FreeBSD. 2024-03-13 14:58:27 +13:00
.cirrus.yml ci: Make compute resources for CI configurable 2023-08-23 15:15:28 -07:00
.dir-locals.el Make Emacs perl-mode indent more like perltidy. 2019-01-13 11:32:31 -08:00
.editorconfig Add .editorconfig 2019-12-18 09:13:13 +01:00
.git-blame-ignore-revs Add a few recent commits to .git-blame-ignore-revs. 2024-03-05 14:15:06 -06:00
.gitattributes Remove non-existing file from .gitattributes 2024-02-16 11:39:09 +01:00
.gitignore Update top-level .gitignore. 2022-12-04 15:23:00 -05:00
COPYRIGHT Update copyright for 2024 2024-01-03 20:49:05 -05:00
GNUmakefile.in Combine headerscheck and cpluspluscheck scripts 2024-03-10 07:56:17 +01:00
HISTORY Canonicalize some URLs 2020-02-10 20:47:50 +01:00
Makefile Remove AIX support 2024-02-28 15:17:23 +04:00
README.md Convert README to Markdown. 2024-02-28 14:53:52 -06:00
aclocal.m4 autoconf: Move export_dynamic determination to configure 2022-12-06 18:55:28 -08:00
configure Add --copy-file-range option to pg_upgrade. 2024-03-06 12:01:01 +13:00
configure.ac Add --copy-file-range option to pg_upgrade. 2024-03-06 12:01:01 +13:00
meson.build meson: macos: Avoid warnings on Sonoma 2024-03-13 01:40:53 -07:00
meson_options.txt Add backend support for injection points 2024-01-22 10:15:50 +09:00

README.md

PostgreSQL Database Management System

This directory contains the source code distribution of the PostgreSQL database management system.

PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions. This distribution also contains C language bindings.

Copyright and license information can be found in the file COPYRIGHT.

General documentation about this version of PostgreSQL can be found at: https://www.postgresql.org/docs/devel/
In particular, information about building PostgreSQL from the source code can be found at: https://www.postgresql.org/docs/devel/installation.html

The latest version of this software, and related software, may be obtained at https://www.postgresql.org/download/. For more information look at our web site located at https://www.postgresql.org/.