pgsql: pg_upgrade: Improve one log message

2023-08-23 Thread Peter Eisentraut
pg_upgrade: Improve one log message

The parenthesized plural is unnecessary here and inconsistent with
nearby similar messages.

Branch
--
REL_16_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/8fa09a11c994b85a4f4e6c09c5465f561b17c22b

Modified Files
--
src/bin/pg_upgrade/check.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)



pgsql: pg_upgrade: Improve one log message

2023-08-23 Thread Peter Eisentraut
pg_upgrade: Improve one log message

The parenthesized plural is unnecessary here and inconsistent with
nearby similar messages.

Branch
--
master

Details
---
https://git.postgresql.org/pg/commitdiff/f9f3bea168496990037c55dd6961010e1acbba92

Modified Files
--
src/bin/pg_upgrade/check.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)



pgsql: do: PG 16 relnotes: clarify last seq/index view names

2023-08-23 Thread Bruce Momjian
do:  PG 16 relnotes:  clarify last seq/index view names

Backpatch-through: 16 only

Branch
--
REL_16_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/7d8e7036177a9fce94a6b99a5a12d65568556fde

Modified Files
--
doc/src/sgml/release-16.sgml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)



pgsql: Meson: check for pg_config_paths.h left over from make

2023-08-23 Thread David Rowley
Meson: check for pg_config_paths.h left over from make

The meson build scripts attempt to find files left over from configure
and fail, mentioning that "make maintainer-clean" should be run to remove
these.  This seems to have been done for files generated from configure.
pg_config_paths.h is generated during the actual make build, so seems to
have been missed.  This would result in compilation using the wrong
pg_config_paths.h file.

Here we just add this file to generated_sources_ac so that meson errors
out if pg_config_paths.h exists.

Likely this wasn't noticed before because make maintainer-clean will
remove pg_config_paths.h, however, people using the MSVC build scripts
are more likely to run into issues and they have to manually remove
these files and pg_config_paths.h wasn't listed as a conflicting file to
remove in the meson log.

Backpatch-through: 16, where meson support was added
Discussion: 
https://postgr.es/m/caaphdvqjyoxzfmlkaowkfee7lor9_e6ua6ynmx9r8nxstcs...@mail.gmail.com

Branch
--
REL_16_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/5a16984ff1f3556f4bd29723e11d3594f41db90b

Modified Files
--
src/port/meson.build | 3 +++
1 file changed, 3 insertions(+)



pgsql: Meson: check for pg_config_paths.h left over from make

2023-08-23 Thread David Rowley
Meson: check for pg_config_paths.h left over from make

The meson build scripts attempt to find files left over from configure
and fail, mentioning that "make maintainer-clean" should be run to remove
these.  This seems to have been done for files generated from configure.
pg_config_paths.h is generated during the actual make build, so seems to
have been missed.  This would result in compilation using the wrong
pg_config_paths.h file.

Here we just add this file to generated_sources_ac so that meson errors
out if pg_config_paths.h exists.

Likely this wasn't noticed before because make maintainer-clean will
remove pg_config_paths.h, however, people using the MSVC build scripts
are more likely to run into issues and they have to manually remove
these files and pg_config_paths.h wasn't listed as a conflicting file to
remove in the meson log.

Backpatch-through: 16, where meson support was added
Discussion: 
https://postgr.es/m/caaphdvqjyoxzfmlkaowkfee7lor9_e6ua6ynmx9r8nxstcs...@mail.gmail.com

Branch
--
master

Details
---
https://git.postgresql.org/pg/commitdiff/6ff385f20c4ed2af707d523ceb2bea694668c123

Modified Files
--
src/port/meson.build | 3 +++
1 file changed, 3 insertions(+)



pgsql: ci: Make compute resources for CI configurable

2023-08-23 Thread Andres Freund
ci: Make compute resources for CI configurable

See prior commit for an explanation for the goal of the change and why it had
to be split into two commits.

Reviewed-by: Daniel Gustafsson 
Reviewed-by: Nazir Bilal Yavuz 
Discussion: 
https://postgr.es/m/20230808021541.7lbzdefvma7qm...@awork3.anarazel.de
Backpatch: 15-, where CI support was added

Branch
--
REL_16_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/e8a8cd05d4b9533cf5bff0f4a4ee83a40df62875

Modified Files
--
.cirrus.tasks.yml   | 45 -
.cirrus.yml | 73 +
src/tools/ci/README | 17 +
3 files changed, 90 insertions(+), 45 deletions(-)



pgsql: ci: Prepare to make compute resources for CI configurable

2023-08-23 Thread Andres Freund
ci: Prepare to make compute resources for CI configurable

cirrus-ci will soon restrict the amount of free resources every user gets (as
have many other CI providers). For most users of CI that should not be an
issue. But e.g. for cfbot it will be an issue.

To allow configuring different resources on a per-repository basis, introduce
infrastructure for overriding the task execution environment. Unfortunately
this is not entirely trivial, as yaml anchors have to be defined before their
use, and cirrus-ci only allows injecting additional contents at the end of
.cirrus.yml.

To deal with that, move the definition of the CI tasks to
.cirrus.tasks.yml. The main .cirrus.yml is loaded first, then, if defined, the
file referenced by the REPO_CI_CONFIG_GIT_URL variable, will be added,
followed by the contents of .cirrus.tasks.yml. That allows
REPO_CI_CONFIG_GIT_URL to override the yaml anchors defined in .cirrus.yml.

Unfortunately git's default merge / rebase strategy does not handle copied
files, just renamed ones. To avoid painful rebasing over this change, this
commit just renames .cirrus.yml to .cirrus.tasks.yml, without adding a new
.cirrus.yml. That's done in the followup commit, which moves the relevant
portion of .cirrus.tasks.yml to .cirrus.yml.  Until that is done,
REPO_CI_CONFIG_GIT_URL does not fully work.

The subsequent commit adds documentation for how to configure custom compute
resources to src/tools/ci/README

Reviewed-by: Daniel Gustafsson 
Reviewed-by: Nazir Bilal Yavuz 
Discussion: 
https://postgr.es/m/20230808021541.7lbzdefvma7qm...@awork3.anarazel.de
Backpatch: 15-, where CI support was added

Branch
--
master

Details
---
https://git.postgresql.org/pg/commitdiff/19cc96503d23c79900162396077a900e7507c4d3

Modified Files
--
.cirrus.star | 63 
.cirrus.yml => .cirrus.tasks.yml |  0
2 files changed, 63 insertions(+)



pgsql: ci: Prepare to make compute resources for CI configurable

2023-08-23 Thread Andres Freund
ci: Prepare to make compute resources for CI configurable

cirrus-ci will soon restrict the amount of free resources every user gets (as
have many other CI providers). For most users of CI that should not be an
issue. But e.g. for cfbot it will be an issue.

To allow configuring different resources on a per-repository basis, introduce
infrastructure for overriding the task execution environment. Unfortunately
this is not entirely trivial, as yaml anchors have to be defined before their
use, and cirrus-ci only allows injecting additional contents at the end of
.cirrus.yml.

To deal with that, move the definition of the CI tasks to
.cirrus.tasks.yml. The main .cirrus.yml is loaded first, then, if defined, the
file referenced by the REPO_CI_CONFIG_GIT_URL variable, will be added,
followed by the contents of .cirrus.tasks.yml. That allows
REPO_CI_CONFIG_GIT_URL to override the yaml anchors defined in .cirrus.yml.

Unfortunately git's default merge / rebase strategy does not handle copied
files, just renamed ones. To avoid painful rebasing over this change, this
commit just renames .cirrus.yml to .cirrus.tasks.yml, without adding a new
.cirrus.yml. That's done in the followup commit, which moves the relevant
portion of .cirrus.tasks.yml to .cirrus.yml.  Until that is done,
REPO_CI_CONFIG_GIT_URL does not fully work.

The subsequent commit adds documentation for how to configure custom compute
resources to src/tools/ci/README

Reviewed-by: Daniel Gustafsson 
Reviewed-by: Nazir Bilal Yavuz 
Discussion: 
https://postgr.es/m/20230808021541.7lbzdefvma7qm...@awork3.anarazel.de
Backpatch: 15-, where CI support was added

Branch
--
REL_16_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/9ed46c78a3625001a863bbcbfd5f1c696c1def46

Modified Files
--
.cirrus.star | 63 
.cirrus.yml => .cirrus.tasks.yml |  0
2 files changed, 63 insertions(+)



pgsql: ci: Make compute resources for CI configurable

2023-08-23 Thread Andres Freund
ci: Make compute resources for CI configurable

See prior commit for an explanation for the goal of the change and why it had
to be split into two commits.

Reviewed-by: Daniel Gustafsson 
Reviewed-by: Nazir Bilal Yavuz 
Discussion: 
https://postgr.es/m/20230808021541.7lbzdefvma7qm...@awork3.anarazel.de
Backpatch: 15-, where CI support was added

Branch
--
REL_15_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/e4693c68a497129ea3913148027a6cee3b522d5d

Modified Files
--
.cirrus.tasks.yml   | 45 -
.cirrus.yml | 73 +
src/tools/ci/README | 17 +
3 files changed, 90 insertions(+), 45 deletions(-)



pgsql: ci: Prepare to make compute resources for CI configurable

2023-08-23 Thread Andres Freund
ci: Prepare to make compute resources for CI configurable

cirrus-ci will soon restrict the amount of free resources every user gets (as
have many other CI providers). For most users of CI that should not be an
issue. But e.g. for cfbot it will be an issue.

To allow configuring different resources on a per-repository basis, introduce
infrastructure for overriding the task execution environment. Unfortunately
this is not entirely trivial, as yaml anchors have to be defined before their
use, and cirrus-ci only allows injecting additional contents at the end of
.cirrus.yml.

To deal with that, move the definition of the CI tasks to
.cirrus.tasks.yml. The main .cirrus.yml is loaded first, then, if defined, the
file referenced by the REPO_CI_CONFIG_GIT_URL variable, will be added,
followed by the contents of .cirrus.tasks.yml. That allows
REPO_CI_CONFIG_GIT_URL to override the yaml anchors defined in .cirrus.yml.

Unfortunately git's default merge / rebase strategy does not handle copied
files, just renamed ones. To avoid painful rebasing over this change, this
commit just renames .cirrus.yml to .cirrus.tasks.yml, without adding a new
.cirrus.yml. That's done in the followup commit, which moves the relevant
portion of .cirrus.tasks.yml to .cirrus.yml.  Until that is done,
REPO_CI_CONFIG_GIT_URL does not fully work.

The subsequent commit adds documentation for how to configure custom compute
resources to src/tools/ci/README

Reviewed-by: Daniel Gustafsson 
Reviewed-by: Nazir Bilal Yavuz 
Discussion: 
https://postgr.es/m/20230808021541.7lbzdefvma7qm...@awork3.anarazel.de
Backpatch: 15-, where CI support was added

Branch
--
REL_15_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/284465e1b95ef5f561b0fadead2468c0c63c0f82

Modified Files
--
.cirrus.star | 63 
.cirrus.yml => .cirrus.tasks.yml |  0
2 files changed, 63 insertions(+)



pgsql: ci: Make compute resources for CI configurable

2023-08-23 Thread Andres Freund
ci: Make compute resources for CI configurable

See prior commit for an explanation for the goal of the change and why it had
to be split into two commits.

Reviewed-by: Daniel Gustafsson 
Reviewed-by: Nazir Bilal Yavuz 
Discussion: 
https://postgr.es/m/20230808021541.7lbzdefvma7qm...@awork3.anarazel.de
Backpatch: 15-, where CI support was added

Branch
--
master

Details
---
https://git.postgresql.org/pg/commitdiff/a28166df8c5a00ec3d9b3550a4f6598593ebf873

Modified Files
--
.cirrus.tasks.yml   | 45 -
.cirrus.yml | 73 +
src/tools/ci/README | 17 +
3 files changed, 90 insertions(+), 45 deletions(-)



pgsql: Bump catversion for to_bin() and to_oct().

2023-08-23 Thread Nathan Bossart
Bump catversion for to_bin() and to_oct().

Missed in 260a1f18da.

Branch
--
master

Details
---
https://git.postgresql.org/pg/commitdiff/d7f249020a11a87cedad04fb071f3287321d5f20

Modified Files
--
src/include/catalog/catversion.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)



pgsql: Cache by-reference missing values in a long lived context

2023-08-23 Thread Andrew Dunstan
Cache by-reference missing values in a long lived context

Attribute missing values might be needed past the lifetime of the tuple
descriptors from which they are extracted. To avoid possibly using
pointers for by-reference values which might thus be left dangling, we
cache a datumCopy'd version of the datum in the TopMemoryContext. Since
we first search for the value this only needs to be done once per
session for any such value.

Original complaint from Tom Lane, idea for mitigation by Andrew Dunstan,
tweaked by Tom Lane.

Backpatch to version 11 where missing values were introduced.

Discussion: https://postgr.es/m/1306569.1687978...@sss.pgh.pa.us

Branch
--
REL_11_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/2d13dab048a7e0777875529620f81d32ce57dfd8

Modified Files
--
src/backend/access/common/heaptuple.c | 91 ++-
src/tools/pgindent/typedefs.list  |  1 +
2 files changed, 91 insertions(+), 1 deletion(-)



pgsql: ci: Move execution method of tasks into yaml templates

2023-08-23 Thread Andres Freund
ci: Move execution method of tasks into yaml templates

This is done in preparation for making the compute resources for CI
configurable. It also looks cleaner.

Reviewed-by: Daniel Gustafsson 
Discussion: 
https://postgr.es/m/20230808021541.7lbzdefvma7qm...@awork3.anarazel.de
Backpatch: 15-, where CI support was added

Branch
--
REL_16_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/cad461b044b521c5f80d180194d6e27dce82c424

Modified Files
--
.cirrus.yml | 85 +
1 file changed, 57 insertions(+), 28 deletions(-)



pgsql: ci: Don't specify amount of memory

2023-08-23 Thread Andres Freund
ci: Don't specify amount of memory

The number of CPUs is the cost-determining factor. Most instance types that
run tests have more memory/core than what we specified, there's no real
benefit in wasting that.

Reviewed-by: Daniel Gustafsson 
Discussion: 
https://postgr.es/m/20230808021541.7lbzdefvma7qm...@awork3.anarazel.de
Backpatch: 15-, where CI support was added

Branch
--
REL_16_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/5581a9a3953020dd9df18ffd00b788f296bd60e0

Modified Files
--
.cirrus.yml | 4 
1 file changed, 4 deletions(-)



pgsql: ci: Don't specify amount of memory

2023-08-23 Thread Andres Freund
ci: Don't specify amount of memory

The number of CPUs is the cost-determining factor. Most instance types that
run tests have more memory/core than what we specified, there's no real
benefit in wasting that.

Reviewed-by: Daniel Gustafsson 
Discussion: 
https://postgr.es/m/20230808021541.7lbzdefvma7qm...@awork3.anarazel.de
Backpatch: 15-, where CI support was added

Branch
--
REL_15_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/89daa5ae307a56017ce47e7dc652284ce547012a

Modified Files
--
.cirrus.yml | 3 ---
1 file changed, 3 deletions(-)



pgsql: ci: Use VMs for SanityCheck and CompilerWarnings

2023-08-23 Thread Andres Freund
ci: Use VMs for SanityCheck and CompilerWarnings

The main reason for this change is to reduce different ways of executing
tasks, making it easier to use custom compute resources for cfbot. A secondary
benefit is that the tasks seem slightly faster this way, apparently the
increased startup overhead is outweighed by reduced runtime overhead.

Reviewed-by: Daniel Gustafsson 
Discussion: 
https://postgr.es/m/20230808021541.7lbzdefvma7qm...@awork3.anarazel.de
Backpatch: 15-, where CI support was added

Branch
--
REL_15_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/4fdfd0629d77af19582ca4d59c0e7fe99619f048

Modified Files
--
.cirrus.yml | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)



pgsql: ci: Don't specify amount of memory

2023-08-23 Thread Andres Freund
ci: Don't specify amount of memory

The number of CPUs is the cost-determining factor. Most instance types that
run tests have more memory/core than what we specified, there's no real
benefit in wasting that.

Reviewed-by: Daniel Gustafsson 
Discussion: 
https://postgr.es/m/20230808021541.7lbzdefvma7qm...@awork3.anarazel.de
Backpatch: 15-, where CI support was added

Branch
--
master

Details
---
https://git.postgresql.org/pg/commitdiff/794e14e219c7997c7f59ea8b7923daee95d2a3a6

Modified Files
--
.cirrus.yml | 4 
1 file changed, 4 deletions(-)



pgsql: ci: Use VMs for SanityCheck and CompilerWarnings

2023-08-23 Thread Andres Freund
ci: Use VMs for SanityCheck and CompilerWarnings

The main reason for this change is to reduce different ways of executing
tasks, making it easier to use custom compute resources for cfbot. A secondary
benefit is that the tasks seem slightly faster this way, apparently the
increased startup overhead is outweighed by reduced runtime overhead.

Reviewed-by: Daniel Gustafsson 
Discussion: 
https://postgr.es/m/20230808021541.7lbzdefvma7qm...@awork3.anarazel.de
Backpatch: 15-, where CI support was added

Branch
--
master

Details
---
https://git.postgresql.org/pg/commitdiff/b2c91d841f1f58f6f553d9e6832fdfaedec00402

Modified Files
--
.cirrus.yml | 14 ++
1 file changed, 6 insertions(+), 8 deletions(-)



pgsql: ci: Move execution method of tasks into yaml templates

2023-08-23 Thread Andres Freund
ci: Move execution method of tasks into yaml templates

This is done in preparation for making the compute resources for CI
configurable. It also looks cleaner.

Reviewed-by: Daniel Gustafsson 
Discussion: 
https://postgr.es/m/20230808021541.7lbzdefvma7qm...@awork3.anarazel.de
Backpatch: 15-, where CI support was added

Branch
--
REL_15_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/462f4df0a86d2c497a1739f386835d246ea8645e

Modified Files
--
.cirrus.yml | 77 +++--
1 file changed, 55 insertions(+), 22 deletions(-)



pgsql: ci: Use VMs for SanityCheck and CompilerWarnings

2023-08-23 Thread Andres Freund
ci: Use VMs for SanityCheck and CompilerWarnings

The main reason for this change is to reduce different ways of executing
tasks, making it easier to use custom compute resources for cfbot. A secondary
benefit is that the tasks seem slightly faster this way, apparently the
increased startup overhead is outweighed by reduced runtime overhead.

Reviewed-by: Daniel Gustafsson 
Discussion: 
https://postgr.es/m/20230808021541.7lbzdefvma7qm...@awork3.anarazel.de
Backpatch: 15-, where CI support was added

Branch
--
REL_16_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/f518c909ead1be7c88ee1f53db13bdef7c50d1ca

Modified Files
--
.cirrus.yml | 14 ++
1 file changed, 6 insertions(+), 8 deletions(-)



pgsql: ci: Move execution method of tasks into yaml templates

2023-08-23 Thread Andres Freund
ci: Move execution method of tasks into yaml templates

This is done in preparation for making the compute resources for CI
configurable. It also looks cleaner.

Reviewed-by: Daniel Gustafsson 
Discussion: 
https://postgr.es/m/20230808021541.7lbzdefvma7qm...@awork3.anarazel.de
Backpatch: 15-, where CI support was added

Branch
--
master

Details
---
https://git.postgresql.org/pg/commitdiff/119ee6ab1b0081e339cac08d18ae625fcc77bcd1

Modified Files
--
.cirrus.yml | 85 +
1 file changed, 57 insertions(+), 28 deletions(-)



Re: pgsql: Add to_bin() and to_oct().

2023-08-23 Thread David Rowley
On Thu, 24 Aug 2023 at 02:50, Nathan Bossart  wrote:
>
> Add to_bin() and to_oct().

 src/include/catalog/pg_proc.dat   | 12 +

Did this maybe miss a catversion bump?

David




pgsql: Avoid use of Perl getprotobyname

2023-08-23 Thread Peter Eisentraut
Avoid use of Perl getprotobyname

getprotobyname returns undefined on some CI machines.  It's not clear
why.  The code overall still works, but it raises a warning.

In PostgreSQL C code, we always call socket() with 0 for the protocol
argument, so we should be able to do the same in Perl (since the Perl
documentation says that the arguments of the socket function are the
same as in C).  So do that, to avoid the issue.

Reviewed-by: Andrew Dunstan 
Discussion: 
https://www.postgresql.org/message-id/flat/06f899fd-1826-05ab-42d6-adeb1fd5e200%40eisentraut.org

Branch
--
master

Details
---
https://git.postgresql.org/pg/commitdiff/01226c682ce6cc130c1057fcd5b0f24b2b622d39

Modified Files
--
src/test/perl/PostgreSQL/Test/Cluster.pm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)



pgsql: Fix _bt_allequalimage() call within critical section.

2023-08-23 Thread Heikki Linnakangas
Fix _bt_allequalimage() call within critical section.

_bt_allequalimage() does complicated things, so it's not OK to call it
in a critical section. Per buildfarm failure on 'prion', which uses
-DRELCACHE_FORCE_RELEASE -DCATCACHE_FORCE_RELEASE options.

Discussion: 
https://www.postgresql.org/message-id/6e5bbc08-cdfc-b2b3-9e23-1a914b985...@iki.fi
Backpatch-through: 16, like commit ccadf73163 that introduced this

Branch
--
master

Details
---
https://git.postgresql.org/pg/commitdiff/bf8bf6d0bddbbaa9dc6c27b383f026273064d2a2

Modified Files
--
src/backend/access/nbtree/nbtree.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)



pgsql: Fix _bt_allequalimage() call within critical section.

2023-08-23 Thread Heikki Linnakangas
Fix _bt_allequalimage() call within critical section.

_bt_allequalimage() does complicated things, so it's not OK to call it
in a critical section. Per buildfarm failure on 'prion', which uses
-DRELCACHE_FORCE_RELEASE -DCATCACHE_FORCE_RELEASE options.

Discussion: 
https://www.postgresql.org/message-id/6e5bbc08-cdfc-b2b3-9e23-1a914b985...@iki.fi
Backpatch-through: 16, like commit ccadf73163 that introduced this

Branch
--
REL_16_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/c3b874c431bc5d1399c011e9e5ce1e30b756f930

Modified Files
--
src/backend/access/nbtree/nbtree.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)



pgsql: Add to_bin() and to_oct().

2023-08-23 Thread Nathan Bossart
Add to_bin() and to_oct().

This commit introduces functions for converting numbers to their
equivalent binary and octal representations.  Also, the base
conversion code for these functions and to_hex() has been moved to
a common helper function.

Co-authored-by: Eric Radman
Reviewed-by: Ian Barwick, Dag Lem, Vignesh C, Tom Lane, Peter Eisentraut, Kirk 
Wolak, Vik Fearing, John Naylor, Dean Rasheed
Discussion: https://postgr.es/m/Y6IyTQQ/TsD5wnsH%40vm3.eradman.com

Branch
--
master

Details
---
https://git.postgresql.org/pg/commitdiff/260a1f18dae8729f99cefe4e1f759193fd6bedd0

Modified Files
--
doc/src/sgml/func.sgml| 59 +++-
src/backend/utils/adt/varlena.c   | 86 ---
src/include/catalog/pg_proc.dat   | 12 +
src/test/regress/expected/strings.out | 62 -
src/test/regress/sql/strings.sql  | 15 +-
5 files changed, 204 insertions(+), 30 deletions(-)



pgsql: Use the buffer cache when initializing an unlogged index.

2023-08-23 Thread Heikki Linnakangas
Use the buffer cache when initializing an unlogged index.

Some of the ambuildempty functions used smgrwrite() directly, followed
by smgrimmedsync(). A few small problems with that:

Firstly, one is supposed to use smgrextend() when extending a
relation, not smgrwrite(). It doesn't make much difference in
production builds. smgrextend() updates the relation size cache, so
you miss that, but that's harmless because we never use the cached
relation size of an init fork. But if you compile with
CHECK_WRITE_VS_EXTEND, you get an assertion failure.

Secondly, the smgrwrite() calls were performed before WAL-logging, so
the page image written to disk had 0/0 as the LSN, not the LSN of the
WAL record. That's also harmless in practice, but seems sloppy.

Thirdly, it's better to use the buffer cache, because then you don't
need to smgrimmedsync() the relation to disk, which adds latency.
Bypassing the cache makes sense for bulk operations like index
creation, but not when you're just initializing an empty index.
Creation of unlogged tables is hardly performance bottleneck in any
real world applications, but nevertheless.

Backpatch to v16, but no further. These issues should be harmless in
practice, so better to not rock the boat in older branches.

Reviewed-by: Robert Haas
Discussion: 
https://www.postgresql.org/message-id/6e5bbc08-cdfc-b2b3-9e23-1a914b985...@iki.fi

Branch
--
REL_16_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/6bc1fd4e60e9556ba5e04710049fdf42e3134f47

Modified Files
--
contrib/bloom/blinsert.c  | 29 ++
contrib/bloom/bloom.h |  2 +-
contrib/bloom/blutils.c   |  8 ++--
src/backend/access/nbtree/nbtree.c| 41 ++--
src/backend/access/spgist/spginsert.c | 71 ---
5 files changed, 62 insertions(+), 89 deletions(-)



pgsql: Use the buffer cache when initializing an unlogged index.

2023-08-23 Thread Heikki Linnakangas
Use the buffer cache when initializing an unlogged index.

Some of the ambuildempty functions used smgrwrite() directly, followed
by smgrimmedsync(). A few small problems with that:

Firstly, one is supposed to use smgrextend() when extending a
relation, not smgrwrite(). It doesn't make much difference in
production builds. smgrextend() updates the relation size cache, so
you miss that, but that's harmless because we never use the cached
relation size of an init fork. But if you compile with
CHECK_WRITE_VS_EXTEND, you get an assertion failure.

Secondly, the smgrwrite() calls were performed before WAL-logging, so
the page image written to disk had 0/0 as the LSN, not the LSN of the
WAL record. That's also harmless in practice, but seems sloppy.

Thirdly, it's better to use the buffer cache, because then you don't
need to smgrimmedsync() the relation to disk, which adds latency.
Bypassing the cache makes sense for bulk operations like index
creation, but not when you're just initializing an empty index.
Creation of unlogged tables is hardly performance bottleneck in any
real world applications, but nevertheless.

Backpatch to v16, but no further. These issues should be harmless in
practice, so better to not rock the boat in older branches.

Reviewed-by: Robert Haas
Discussion: 
https://www.postgresql.org/message-id/6e5bbc08-cdfc-b2b3-9e23-1a914b985...@iki.fi

Branch
--
master

Details
---
https://git.postgresql.org/pg/commitdiff/ccadf73163ca88bdaa74b8223d4dde05d17f550b

Modified Files
--
contrib/bloom/blinsert.c  | 29 ++
contrib/bloom/bloom.h |  2 +-
contrib/bloom/blutils.c   |  8 ++--
src/backend/access/nbtree/nbtree.c| 41 ++--
src/backend/access/spgist/spginsert.c | 71 ---
5 files changed, 62 insertions(+), 89 deletions(-)



pgsql: doc: Replace list of drivers and PLs with wiki link

2023-08-23 Thread Daniel Gustafsson
doc: Replace list of drivers and PLs with wiki link

The list of external language drivers and procedural languages was
never complete or exhaustive, and rather than attempting to manage
it the content has migrated to the wiki.  This replaces the tables
altogether with links to the wiki as we regularly get requests for
adding various projects,  which we reject without any clear policy
for why or how the content should be managed.

The threads linked to below are the most recent discussions about
this, the archives contain many more.

Backpatch to all supported branches since the list on the wiki
applies to all branches.

Author: Jonathan Katz 
Discussion: 
https://postgr.es/m/169165415312.635.10247434927885764...@wrigleys.postgresql.org
Discussion: 
https://postgr.es/m/169177958824.635.11087800083040275...@wrigleys.postgresql.org
Backpatch-through: v11

Branch
--
REL_11_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/c176d97895be92ceb1454a3b7e14bffe7b7da364

Modified Files
--
doc/src/sgml/external-projects.sgml | 158 
1 file changed, 18 insertions(+), 140 deletions(-)



pgsql: doc: Replace list of drivers and PLs with wiki link

2023-08-23 Thread Daniel Gustafsson
doc: Replace list of drivers and PLs with wiki link

The list of external language drivers and procedural languages was
never complete or exhaustive, and rather than attempting to manage
it the content has migrated to the wiki.  This replaces the tables
altogether with links to the wiki as we regularly get requests for
adding various projects,  which we reject without any clear policy
for why or how the content should be managed.

The threads linked to below are the most recent discussions about
this, the archives contain many more.

Backpatch to all supported branches since the list on the wiki
applies to all branches.

Author: Jonathan Katz 
Discussion: 
https://postgr.es/m/169165415312.635.10247434927885764...@wrigleys.postgresql.org
Discussion: 
https://postgr.es/m/169177958824.635.11087800083040275...@wrigleys.postgresql.org
Backpatch-through: v11

Branch
--
REL_12_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/2607380c955d2b8a8a6e06ced7ec2007705e102d

Modified Files
--
doc/src/sgml/external-projects.sgml | 158 
1 file changed, 18 insertions(+), 140 deletions(-)



pgsql: doc: Replace list of drivers and PLs with wiki link

2023-08-23 Thread Daniel Gustafsson
doc: Replace list of drivers and PLs with wiki link

The list of external language drivers and procedural languages was
never complete or exhaustive, and rather than attempting to manage
it the content has migrated to the wiki.  This replaces the tables
altogether with links to the wiki as we regularly get requests for
adding various projects,  which we reject without any clear policy
for why or how the content should be managed.

The threads linked to below are the most recent discussions about
this, the archives contain many more.

Backpatch to all supported branches since the list on the wiki
applies to all branches.

Author: Jonathan Katz 
Discussion: 
https://postgr.es/m/169165415312.635.10247434927885764...@wrigleys.postgresql.org
Discussion: 
https://postgr.es/m/169177958824.635.11087800083040275...@wrigleys.postgresql.org
Backpatch-through: v11

Branch
--
REL_13_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/07e70143b89097f5f6aff0c2aaa913a4f42500fa

Modified Files
--
doc/src/sgml/external-projects.sgml | 158 
1 file changed, 18 insertions(+), 140 deletions(-)



pgsql: doc: Replace list of drivers and PLs with wiki link

2023-08-23 Thread Daniel Gustafsson
doc: Replace list of drivers and PLs with wiki link

The list of external language drivers and procedural languages was
never complete or exhaustive, and rather than attempting to manage
it the content has migrated to the wiki.  This replaces the tables
altogether with links to the wiki as we regularly get requests for
adding various projects,  which we reject without any clear policy
for why or how the content should be managed.

The threads linked to below are the most recent discussions about
this, the archives contain many more.

Backpatch to all supported branches since the list on the wiki
applies to all branches.

Author: Jonathan Katz 
Discussion: 
https://postgr.es/m/169165415312.635.10247434927885764...@wrigleys.postgresql.org
Discussion: 
https://postgr.es/m/169177958824.635.11087800083040275...@wrigleys.postgresql.org
Backpatch-through: v11

Branch
--
REL_14_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/832be40c4912703d41317f853e7f552b4b0708ec

Modified Files
--
doc/src/sgml/external-projects.sgml | 158 
1 file changed, 18 insertions(+), 140 deletions(-)



pgsql: doc: Replace list of drivers and PLs with wiki link

2023-08-23 Thread Daniel Gustafsson
doc: Replace list of drivers and PLs with wiki link

The list of external language drivers and procedural languages was
never complete or exhaustive, and rather than attempting to manage
it the content has migrated to the wiki.  This replaces the tables
altogether with links to the wiki as we regularly get requests for
adding various projects,  which we reject without any clear policy
for why or how the content should be managed.

The threads linked to below are the most recent discussions about
this, the archives contain many more.

Backpatch to all supported branches since the list on the wiki
applies to all branches.

Author: Jonathan Katz 
Discussion: 
https://postgr.es/m/169165415312.635.10247434927885764...@wrigleys.postgresql.org
Discussion: 
https://postgr.es/m/169177958824.635.11087800083040275...@wrigleys.postgresql.org
Backpatch-through: v11

Branch
--
REL_15_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/f4f63577b665f85916c8ec85ec70b7fd8a8cad1d

Modified Files
--
doc/src/sgml/external-projects.sgml | 158 
1 file changed, 18 insertions(+), 140 deletions(-)



pgsql: doc: Replace list of drivers and PLs with wiki link

2023-08-23 Thread Daniel Gustafsson
doc: Replace list of drivers and PLs with wiki link

The list of external language drivers and procedural languages was
never complete or exhaustive, and rather than attempting to manage
it the content has migrated to the wiki.  This replaces the tables
altogether with links to the wiki as we regularly get requests for
adding various projects,  which we reject without any clear policy
for why or how the content should be managed.

The threads linked to below are the most recent discussions about
this, the archives contain many more.

Backpatch to all supported branches since the list on the wiki
applies to all branches.

Author: Jonathan Katz 
Discussion: 
https://postgr.es/m/169165415312.635.10247434927885764...@wrigleys.postgresql.org
Discussion: 
https://postgr.es/m/169177958824.635.11087800083040275...@wrigleys.postgresql.org
Backpatch-through: v11

Branch
--
REL_16_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/5fd424c87a86dd19d6cb15a18d1662ffc7368de1

Modified Files
--
doc/src/sgml/external-projects.sgml | 158 
1 file changed, 18 insertions(+), 140 deletions(-)



pgsql: doc: Replace list of drivers and PLs with wiki link

2023-08-23 Thread Daniel Gustafsson
doc: Replace list of drivers and PLs with wiki link

The list of external language drivers and procedural languages was
never complete or exhaustive, and rather than attempting to manage
it the content has migrated to the wiki.  This replaces the tables
altogether with links to the wiki as we regularly get requests for
adding various projects,  which we reject without any clear policy
for why or how the content should be managed.

The threads linked to below are the most recent discussions about
this, the archives contain many more.

Backpatch to all supported branches since the list on the wiki
applies to all branches.

Author: Jonathan Katz 
Discussion: 
https://postgr.es/m/169165415312.635.10247434927885764...@wrigleys.postgresql.org
Discussion: 
https://postgr.es/m/169177958824.635.11087800083040275...@wrigleys.postgresql.org
Backpatch-through: v11

Branch
--
master

Details
---
https://git.postgresql.org/pg/commitdiff/ee99330a0b39c47a7ac44c6c8fdd74e3da841ba5

Modified Files
--
doc/src/sgml/external-projects.sgml | 158 
1 file changed, 18 insertions(+), 140 deletions(-)



Re: pgsql: Fix pg_dump assertion failure when dumping pg_catalog.

2023-08-23 Thread Peter Eisentraut

On 22.08.23 22:08, Jeff Davis wrote:

Fix pg_dump assertion failure when dumping pg_catalog.

Commit 396d348b04 did not account for the default collation.

Also, use pg_log_warning() instead of Assert().


Looking at this:

pg_log_warning("invalid collation \"%s\"", qcollname);

qcollname is already a quoted identifier, so this message would be 
doubly quoted.  Maybe you should use collinfo->dobj.name in the messages.


Also, for

pg_fatal("unrecognized collation provider '%c'", collprovider[0]);

use double quotes.





pgsql: doc: Add more ICU rules examples

2023-08-23 Thread Peter Eisentraut
doc: Add more ICU rules examples

In particular, add an example EBCDIC collation.

Author: Daniel Verite 
Discussion: 
https://www.postgresql.org/message-id/flat/35cc1684-e516-4a01-a256-351632d47...@manitou-mail.org

Branch
--
master

Details
---
https://git.postgresql.org/pg/commitdiff/17ec2c5dfa8dc6fee3df749d214238d34ee681c9

Modified Files
--
doc/src/sgml/charset.sgml  | 58 +-
doc/src/sgml/ref/create_collation.sgml | 13 +++-
doc/src/sgml/ref/create_database.sgml  |  4 +--
3 files changed, 62 insertions(+), 13 deletions(-)



pgsql: doc: Add more ICU rules examples

2023-08-23 Thread Peter Eisentraut
doc: Add more ICU rules examples

In particular, add an example EBCDIC collation.

Author: Daniel Verite 
Discussion: 
https://www.postgresql.org/message-id/flat/35cc1684-e516-4a01-a256-351632d47...@manitou-mail.org

Branch
--
REL_16_STABLE

Details
---
https://git.postgresql.org/pg/commitdiff/103df207a71e74d64173edcb7bacec872933755b

Modified Files
--
doc/src/sgml/charset.sgml  | 58 +-
doc/src/sgml/ref/create_collation.sgml | 13 +++-
doc/src/sgml/ref/create_database.sgml  |  4 +--
3 files changed, 62 insertions(+), 13 deletions(-)



pgsql: Fix wording in comment

2023-08-23 Thread Daniel Gustafsson
Fix wording in comment

The comment for the DSM_OP_CREATE paramater read "the a new handle"
which is confusing. Fix by rewording to indicate what the parameter
means for DSM_OP_CREATE.

Reported-by: Junwang Zhao 
Discussion: 
https://postgr.es/m/caeg8a3j2bc197ym-m_ykoxb9ox2enn-qnkneosaohysw2nc...@mail.gmail.com

Branch
--
master

Details
---
https://git.postgresql.org/pg/commitdiff/27a36f79b6d15cb2b267d16084007aa9d6917aec

Modified Files
--
src/backend/storage/ipc/dsm_impl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)



pgsql: pg_upgrade: Avoid shadowing global var in function

2023-08-23 Thread Daniel Gustafsson
pg_upgrade: Avoid shadowing global var in function

The new_cluster parameter in check_for_new_tablespace_dir was
shadowing the globally defined new_cluster variable, causing
compiler warnings when running with -Wshadow. The function is
only applicable to the new cluster, so remove the parameter
rather than rename to match check_new_cluster_is_empty which
also only applies to the new cluster.

Author: Peter Smith 
Discussion: 
https://postgr.es/m/cahut+pvs_phlntwy1ytgxv0o1twm4ivckbqfzpoqrdsm2ce...@mail.gmail.com

Branch
--
master

Details
---
https://git.postgresql.org/pg/commitdiff/d0e408313536d4d4a0fb4516f2596adbe06a0e60

Modified Files
--
src/bin/pg_upgrade/check.c | 8 
1 file changed, 4 insertions(+), 4 deletions(-)