Re: [WIP]Vertical Clustered Index (columnar store extension) - take2
Peter Smith <smithpb2250@gmail.com>
From: Peter Smith <smithpb2250@gmail.com>
To: Timur Magomedov <t.magomedov@postgrespro.ru>
Cc: Tomas Vondra <tomas@vondra.me>,
"Aya Iwata (Fujitsu)" <iwata.aya@fujitsu.com>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2025-07-01T03:17:54Z
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 →
-
Mark ItemPointer arguments as const throughout
- e1ac846f3d28 19 (unreleased) cited
-
Reorganize GUC structs
- a13833c35f9e 19 (unreleased) cited
-
Eliminate XLOG_HEAP2_VISIBLE from vacuum phase III
- add323da40a6 19 (unreleased) cited
-
Update various forward declarations to use typedef
- d4d1fc527bdb 19 (unreleased) cited
-
Pathify RHS unique-ification for semijoin planning
- 24225ad9aafc 19 (unreleased) cited
-
Revert "Don't lock partitions pruned by initial pruning"
- 1722d5eb05d8 18.0 cited
-
For inplace update, send nontransactional invalidations.
- 243e9b40f1b2 18.0 cited
-
Remove nearly-unused SizeOfIptrData macro.
- 8023b5827fba 10.0 cited
On Sat, Jun 28, 2025 at 12:24 AM Timur Magomedov
<t.magomedov@postgrespro.ru> wrote:
...
> Thanks for updates.
> I was trying to move some code from Postgres core patch to contrib/vci.
> Started with moving VCI options from StdRdOptions struct and
> reloptions.c, reloptions.h files into contrib/vci like Tomas suggested
> earlier. Getting new relopt kind using add_reloption_kind() instead of
> hardcoded RELOPT_KIND_VCI and so on, just like in contrib/bloom.
>
> During this work I've found that those VCI-specific options,
> "vci_column_ids" and "vci_dropped_column_ids", are only read in case
> vci_IsExtendedToMoreThan32Columns() is true. And
> vci_IsExtendedToMoreThan32Columns() itself checks if vci_column_ids
> option is non-empty string to return true. AFAIK no one sets those
> options and vci_IsExtendedToMoreThan32Columns() always returns false.
>
> There are comments in code mentioning that one can create VCI index
> with more than 32 columns using vci_create(). However, there is no such
> a function anywhere. I guess it is now impossible to create VCI index
> with more than 32 (INDEX_MAX_KEYS) columns. Maybe the options were used
> to store column information for indexes created with vci_create() but
> this function has gone.
>
> So, giving the ideas above, can we remove those vci_column_ids,
> vci_dropped_column_ids options and all the code that assumes
> vci_IsExtendedToMoreThan32Columns() to be true? This would make core
> patch a bit shorter, specifically there will be no changes in
> reloptions.{c,h} files and no changes in StdRdOptions struct in rel.h.
>
Hi Timur.
Thanks for reporting this! Your idea seems correct to me.
AFAICT, those relops were intended for supporting >32 vci indexes,
which is only possible when the VCI index is created using
“vci_create()” function, but that function does not exist in the VCI
implementation posted to OSS. So, I agree with you – since those
relops are not currently needed they can just be removed. I will
confirm this understanding with the original patch devs and, if
correct, I will address this in a future patch version.
======
Kind Regards,
Peter Smith.
Fujitsu Australia.