pg.ddx.io pgsql-hackers@postgresql.org mailing list archive
help / color / mirror / Atom feed From: Jeff Davis <pgsql@j-davis.com>
To: jian he <jian.universality@gmail.com>
To: Corey Huinker <corey.huinker@gmail.com>
Cc: Matthias van de Meent <boekewurm+postgres@gmail.com>
Cc: Bruce Momjian <bruce@momjian.us>
Cc: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Nathan Bossart <nathandbossart@gmail.com>
Cc: Magnus Hagander <magnus@hagander.net>
Cc: Stephen Frost <sfrost@snowman.net>
Cc: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Cc: Peter Smith <smithpb2250@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Cc: Tomas Vondra <tomas.vondra@enterprisedb.com>
Cc: alvherre@alvh.no-ip.org
Subject: Re: Statistics Import and Export
Date: Fri, 11 Oct 2024 16:10:34 -0700
Message-ID: <e0660898b696b0bb77030f8b850d662ad3c663d2.camel@j-davis.com> (raw )
In-Reply-To: <CACJufxHeRNu9EJM-XsfhuSo87_3oRaPMuPcqdsH_D9-W4dLJOg@mail.gmail.com >
References: <e8135244d99e6bc388853598cb0ec4bf59085494.camel@j-davis.com >
<1798867.1712376328@sss.pgh.pa.us >
<CADkLM=dA0tOc_fGDoiRsF41XFFH2_S3D5kibcbw9H948KdsS-A@mail.gmail.com >
<CADkLM=eE2BD-40uGMOpJs19inYJ2PSY+21srXT0K49NseBe30w@mail.gmail.com >
<20240417165053.GA3253364@nathanxps13 >
<0943da4616837682c65e4620050b8b1e86fe3503.camel@j-davis.com >
<3156140.1713817153@sss.pgh.pa.us >
<1d70aabacd379ed8f9a7db1bf4ca22d1f5cd943f.camel@j-davis.com >
<3228677.1713844341@sss.pgh.pa.us >
<CAEze2WiX_YWEhe4iLSLHEkSJimE0=wU1cGhmPikurZGOTrh1tg@mail.gmail.com >
<ZileJQ2wl-Y63VWt@momjian.us >
<CAEze2WjM8QDZUJa7G4_Om2B76nFMw5RYz+1D+J=VMpr6aN3BJQ@mail.gmail.com >
<CADkLM=dHYkDa-raQrahd5-PkO_=aw1RuffUxVAfEnEyX5ZOB5A@mail.gmail.com >
<CADkLM=cQgghMJOS8EcAVBwRO4s1dUVtxGZv5gLPfZkQ1nL1gzA@mail.gmail.com >
<10f251857a13cfc799079ba89d50b135c974a18e.camel@j-davis.com >
<CADkLM=dse9b6VYkgt8MMe3htt=tD1bZOdk3KvH=3Gt17LqSVXA@mail.gmail.com >
<1a8ec76a863539ec2f849f247ee0e99dff8303e2.camel@j-davis.com >
<CADkLM=dNQzmdsWfXVVDBqv7gHsa-7dk3v13AqrAzBoJWTMrWEA@mail.gmail.com >
<CADkLM=ccvjLJeGnWzbH8N=2aBNpnL5HnwC4Ny2LqFVJyGH5ZKw@mail.gmail.com >
<e2f8ad0da0096d4efaf68a6a441cc1931fa5cd80.camel@j-davis.com >
<CADkLM=c9gnYMkQCyh1+R56VrCkVWbu8-SCpmHepkbAJHMcVuuA@mail.gmail.com >
<CADkLM=f_SNcxfPC-XbwcHgCdS6FPSNo-=UZq08AWFYoBCDcxOg@mail.gmail.com >
<85eaf260a4be2e08376145a9d6a69d9d74e89daa.camel@j-davis.com >
<CADkLM=evyx0L96XxrLSUDVS+iXgHszLbWMrGwVbBnNVO1ejfJA@mail.gmail.com >
<CADkLM=cJMEYrP8o4dbAqm_mW=ks63sXi1VXy94ybev0BNLm7_g@mail.gmail.com >
<e0c1284347ab88860bdaf75a8188df075f592d98.camel@j-davis.com >
<CADkLM=chb8YT+OD40aDDj1MGz52FMw6-SW3atgEpsw6Rp-3mhg@mail.gmail.com >
<c2e39c70c229cf59eb430431b08e9abfffe43b08.camel@j-davis.com >
<CADkLM=e0jM7m0GFV44nNtvL22CtnFUu+pekppCVE=DOBe58RTQ@mail.gmail.com >
<e1c15b4eb1472f5bba9d61315b3fc2fb7484d8a4.camel@j-davis.com >
<9e068620350f0158e791fc0b9a68df896d4402c6.camel@j-davis.com >
<CADkLM=eu72o_=s2ARNe8yB-16AUm+_iU0tq_ALeeUUxCCqJkOQ@mail.gmail.com >
<11bb2c7403d4a7421fe8b09df6737aa83976266e.camel@j-davis.com >
<CACJufxHrJb3L66kzYWeFvN_7RNROaHKUo_JuXK6B64c+TkWOhA@mail.gmail.com >
<CADkLM=edhVxHr5OGZHnUeoMkjFYNpE==puOKbB1E_7j1=QsbBw@mail.gmail.com >
<CACJufxGmdV-9c7M_fs-2mGBMj1XiVqdOkW0NvibmpBJqedo1uQ@mail.gmail.com >
<CADkLM=eErgzn7ECDpwFcptJKOk9SxZEk5Pot4d94eVTZsvj3gw@mail.gmail.com >
<CACJufxHeRNu9EJM-XsfhuSo87_3oRaPMuPcqdsH_D9-W4dLJOg@mail.gmail.com >
On Mon, 2024-09-23 at 08:57 +0800, jian he wrote:
> newtup = heap_modify_tuple_by_cols(ctup, tupdesc, ncols,
> replaces, nulls);
>
> you just directly declared "bool nulls[3] = {false, false,
> false};"
Those must be false (not NULL), because in pg_class those are non-NULL
attributes. They must be set to something whenever we update.
> if any of (RELPAGES_ARG, RELTUPLES_ARG, RELALLVISIBLE_ARG)
> is null, should you set that null[position] to true?
If the corresponding SQL argument is NULL, we leave the existing value
unchanged, we don't set it to NULL.
> otherwise, i am confused with the variable nulls.
>
> Looking at other usage of heap_modify_tuple_by_cols, "ncols" cannot
> be
> dynamic, it should be a fixed value?
> The current implementation works, because the (bool[3] nulls) is
> always false, never changed.
> if nulls becomes {false, false, true} then "ncols" must be 3, cannot
> be 2.
heap_modify_tuple_by_cols() uses ncols to specify the length of the
values/isnull arrays. The "replaces" is an array of attribute numbers
to replace (in contrast to plain heap_modify_tuple(), which uses an
array of booleans).
We are going to replace a maximum of 3 attributes, so the arrays have a
maximum size of 3. Predeclaring the arrays to be 3 elements is just
fine even if we only use the first 1-2 elements -- it avoids a needless
heap allocation/free.
Regards,
Jeff Davis
view thread (543+ messages) latest in thread
Message-ID: <e0660898b696b0bb77030f8b850d662ad3c663d2.camel@j-davis.com>
Permalink: ../e0660898b696b0bb77030f8b850d662ad3c663d2.camel@j-davis.com/
Also on: postgresql.org/message-id/e0660898b696b0bb77030f8b850d662ad3c663d2.camel@j-davis.com
copy link · copy postgr.es
reply Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: pgsql@j-davis.com, jian.universality@gmail.com, corey.huinker@gmail.com, boekewurm+postgres@gmail.com, bruce@momjian.us, tgl@sss.pgh.pa.us, nathandbossart@gmail.com, magnus@hagander.net, sfrost@snowman.net, ashutosh.bapat.oss@gmail.com, smithpb2250@gmail.com, pgsql-hackers@lists.postgresql.org, tomas.vondra@enterprisedb.com, alvherre@alvh.no-ip.org
Subject: Re: Statistics Import and Export
In-Reply-To: <e0660898b696b0bb77030f8b850d662ad3c663d2.camel@j-davis.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox