Re: Relation bulk write facility
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Heikki Linnakangas <hlinnaka@iki.fi>
Cc: Michael Paquier <michael@paquier.xyz>, Robert Haas <robertmhaas@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, Noah Misch <noah@leadboat.com>, Thomas Munro <thomas.munro@gmail.com>, Peter Smith <smithpb2250@gmail.com>, vignesh C <vignesh21@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>, Melanie Plageman <melanieplageman@gmail.com>
Date: 2024-02-28T09:26:42Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Relax fsyncing at end of a bulk load that was not WAL-logged
- 68f199cea3b1 17.0 landed
- 077ad4bd76b1 18.0 landed
-
Fix cross-version upgrade tests after f0827b443.
- e8aecc5c2ce1 17.0 landed
-
Remove AIX support
- 0b16bb8776bb 17.0 landed
-
Fix compiler warning on typedef redeclaration
- d360e3cc60e3 17.0 landed
-
Introduce a new smgr bulk loading facility.
- 8af256524893 17.0 landed
Hi,
On 2024-02-28 00:24:01 +0400, Heikki Linnakangas wrote:
> Here's a patch to fully remove AIX support.
Thomas mentioned to me that cfbot failed with this applied:
https://cirrus-ci.com/task/6348635416297472
https://api.cirrus-ci.com/v1/artifact/task/6348635416297472/log/tmp_install/log/initdb-template.log
initdb: error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory
While I couldn't reproduce the failure, I did notice that locally with the
patch applied, system libpq ended up getting used. Which isn't pre-installed
in the CI environment, explaining the failure.
The problem is due to this hunk:
> @@ -401,10 +376,6 @@ install-lib-static: $(stlib) installdirs-lib
>
> install-lib-shared: $(shlib) installdirs-lib
> ifdef soname
> -# we don't install $(shlib) on AIX
> -# (see http://archives.postgresql.org/message-id/52EF20B2E3209443BC37736D00C3C1380A6E79FE@EXADV1.host.magwien.gv.at)
> -ifneq ($(PORTNAME), aix)
> - $(INSTALL_SHLIB) $< '$(DESTDIR)$(libdir)/$(shlib)'
> ifneq ($(PORTNAME), cygwin)
> ifneq ($(PORTNAME), win32)
> ifneq ($(shlib), $(shlib_major))
So the versioned name didn't end up getting installed anymore, leading to
broken symlinks in the install directory.
> diff --git a/src/bin/pg_basebackup/t/010_pg_basebackup.pl b/src/bin/pg_basebackup/t/010_pg_basebackup.pl
> index 86cc01a640b..fc6b00224f6 100644
> --- a/src/bin/pg_basebackup/t/010_pg_basebackup.pl
> +++ b/src/bin/pg_basebackup/t/010_pg_basebackup.pl
> @@ -400,9 +400,6 @@ is(scalar(@tblspc_tars), 1, 'one tablespace tar was created');
> SKIP:
> {
> my $tar = $ENV{TAR};
> - # don't check for a working tar here, to accommodate various odd
> - # cases such as AIX. If tar doesn't work the init_from_backup below
> - # will fail.
> skip "no tar program available", 1
> if (!defined $tar || $tar eq '');
Maybe better to not remove the whole comment, just the reference to AIX?
> diff --git a/src/test/regress/sql/sanity_check.sql b/src/test/regress/sql/sanity_check.sql
> index 7f338d191c6..2e9d5ebef3f 100644
> --- a/src/test/regress/sql/sanity_check.sql
> +++ b/src/test/regress/sql/sanity_check.sql
> @@ -21,12 +21,15 @@ SELECT relname, relkind
> AND relfilenode <> 0;
>
> --
> --- When ALIGNOF_DOUBLE==4 (e.g. AIX), the C ABI may impose 8-byte alignment on
> +-- When MAXIMUM_ALIGNOF==8 but ALIGNOF_DOUBLE==4, the C ABI may impose 8-byte alignment
> -- some of the C types that correspond to TYPALIGN_DOUBLE SQL types. To ensure
> -- catalog C struct layout matches catalog tuple layout, arrange for the tuple
> -- offset of each fixed-width, attalign='d' catalog column to be divisible by 8
> -- unconditionally. Keep such columns before the first NameData column of the
> -- catalog, since packagers can override NAMEDATALEN to an odd number.
> +-- (XXX: I'm not sure if any of the supported platforms have MAXIMUM_ALIGNOF==8 and
> +-- ALIGNOF_DOUBLE==4. Perhaps we should just require that
> +-- ALIGNOF_DOUBLE==MAXIMUM_ALIGNOF)
> --
> WITH check_columns AS (
> SELECT relname, attname,
I agree, this should be an error, and we should then remove the test.
Greetings,
Andres Freund