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

From: Peter Smith <smithpb2250(at)gmail(dot)com>
To: Japin Li <japinli(at)hotmail(dot)com>
Cc: "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Tomas Vondra <tomas(at)vondra(dot)me>, "Aya Iwata (Fujitsu)" <iwata(dot)aya(at)fujitsu(dot)com>, Timur Magomedov <t(dot)magomedov(at)postgrespro(dot)ru>, shveta malik <shveta(dot)malik(at)gmail(dot)com>
Subject: Re: [WIP]Vertical Clustered Index (columnar store extension) - take2
Date: 2025-07-28 21:00:58
Message-ID: CAHut+PtU+a5t0Wfuh4QNnoY9BrLaYSdU8Zh6g-u270qvMH1=eQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Jul 22, 2025 at 8:12 PM Japin Li <japinli(at)hotmail(dot)com> wrote:
>
...
>
> 1.
> I encountered another crash while checking VCI's internal relations.
>
> rm -rf demo
> initdb -D demo
> cat <<EOF >demo/postgresql.auto.conf
> shared_preload_libraries = 'vci'
> max_worker_processes = '20'
> EOF
>
> pg_ctl -D demo start
>
> cat <<EOF | psql postgres
> CREATE EXTENSION vci;
> CREATE TABLE t (id int, info text);
> CREATE INDEX ON t USING vci (id);
> SELECT relname FROM pg_class WHERE relname ~ '^vci_*' LIMIT 1 \gset
> SELECT * FROM :relname;
> \d+ :relname
> REFRESH MATERIALIZED VIEW :relname;
> EOF
>
> VCI's definition of internal relations as materialized views lacks the
> corresponding view bodies.
>

Fixed in v15.

> + /*
> + * @see
> + * https://www.postgresql.jp/document/9.4/html/catalog-pg-rewrite.html
> + */
> + new_rel_reltup->relhasrules = true;
> +
> + new_rel->rd_att->tdtypeid = new_type_oid;
> +
> + InsertPgClassTuple(pg_class, new_rel, new_oid, (Datum) 0, (Datum) 0);
>
> Given that VCI's internal relations are materialized views, are VCI workers
> responsible for their periodic refreshment?
>
> Or is it by design that users are unable to read the internal relations?

Updated README in v15.

>
> 2.
> +#ifdef WIN32
> + char *dir_name = "base\\" PG_TEMP_FILES_DIR;
> +#endif
> +
> +#ifdef __sparc__
> + char *dir_name = "base/" PG_TEMP_FILES_DIR;
> +#endif
>
> I think it's also possible to use the second format on Windows.
> And what happens if neither WIN32 nor __sparc__ are defined?
>

Modified in v15.

======
Kind Regards,
Peter Smith.
Fujitsu Australia

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Sami Imseih 2025-07-28 21:02:33 Re: track generic and custom plans in pg_stat_statements
Previous Message Jean-Christophe Arnu 2025-07-28 20:57:58 Re: restore_command return code behaviour