Re: [WIP]Vertical Clustered Index (columnar store extension) - take2

Peter Smith <smithpb2250@gmail.com>

From: Peter Smith <smithpb2250@gmail.com>
To: Tomas Vondra <tomas@vondra.me>
Cc: "Aya Iwata (Fujitsu)" <iwata.aya@fujitsu.com>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2025-05-26T05:07:25Z
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 →
  1. Mark ItemPointer arguments as const throughout

  2. Reorganize GUC structs

  3. Eliminate XLOG_HEAP2_VISIBLE from vacuum phase III

  4. Update various forward declarations to use typedef

  5. Pathify RHS unique-ification for semijoin planning

  6. Revert "Don't lock partitions pruned by initial pruning"

  7. For inplace update, send nontransactional invalidations.

  8. Remove nearly-unused SizeOfIptrData macro.

Attachments

Hi Tomas.

Thankyou for your extremely valuable post [1]. We are analysing your
review comments and feedback, and will respond later.

Meanwhile, I am attaching updated patches to address the reported
build problems:

> I also tried to build 0002, but unfortunately that fails with:
>
> executor/vci_executor.c: In function ‘vci_setup_executor_hook’:
> executor/vci_executor.c:115:28: error: assignment to
> ‘ExecutorStart_hook_type’ {aka ‘void (*)(QueryDesc *, int)’} from
> incompatible pointer type ‘_Bool (*)(QueryDesc *, int)’
> [-Wincompatible-pointer-types]
>   115 |         ExecutorStart_hook = vci_executor_start_routine;
>       |                            ^
> executor/vci_executor.c: In function ‘vci_executor_start_routine’:
> executor/vci_executor.c:161:28: error: void value not ignored as it
> ought to be
>   161 |                 plan_valid = executor_start_prev(queryDesc, eflags);
>       |                            ^
> executor/vci_executor.c:163:28: error: void value not ignored as it
> ought to be
>   163 |                 plan_valid = standard_ExecutorStart(queryDesc,
> eflags);
>       |                            ^
> make: *** [../../src/Makefile.global:973: executor/vci_executor.o] Error 1
>
> The extension is not added to contrib/Makefile, so "make world" does not
> trigger this failure.


patch v3-0001.
- Only some whitespace issues are addressed

patch v3-0002.
- Fixed the contrib/Makefile to include vci
- Fixed a build error (due to recent commit [2])
- The vci.sgml file is removed (now in patch 0003)

patch v3-0003
- New patch just for the docs.

======
[1] https://www.postgresql.org/message-id/a748aa6b-c7e6-4d02-a590-ab404d590448%40vondra.me
[2] https://github.com/postgres/postgres/commit/1722d5eb05d8e5d2e064cd1798abcae4f296ca9d

Kind Regards,
Peter Smith.
Fujitsu Australia