Re: Making jsonb_agg() faster - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Making jsonb_agg() faster
Date
Msg-id 2329959.1765047648@sss.pgh.pa.us
Whole thread Raw
In response to Re: Making jsonb_agg() faster  (Chao Li <li.evan.chao@gmail.com>)
Responses Re: Making jsonb_agg() faster
List pgsql-hackers
Chao Li <li.evan.chao@gmail.com> writes:
> On Dec 6, 2025, at 07:14, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> I'd kind of like to get this pushed soon, because it keeps getting
>> sideswiped ... does anyone have further comments?

> My only nit commit is still about the hard-coded 12:
> I commented this before and you explained. But I still think it may deserve a comment for why 12 is here, otherwise
futurereader may also get the same confusion as when I first time read this code. 

I've been thinking of that as an independent issue.  But what I'm
inclined to do is add a symbol to date.h, say like

diff --git a/src/include/utils/date.h b/src/include/utils/date.h
index 7316ac0ff17..2aca785b65d 100644
--- a/src/include/utils/date.h
+++ b/src/include/utils/date.h
@@ -30,6 +30,14 @@ typedef struct
     int32        zone;            /* numeric time zone, in seconds */
 } TimeTzADT;

+/*
+ * sizeof(TimeTzADT) will be 16 on most platforms due to alignment padding.
+ * However, timetz's typlen is 12 according to pg_type.  In most places
+ * we can get away with using sizeof(TimeTzADT), but where it's important
+ * to match the declared typlen, use TIMETZ_TYPLEN.
+ */
+#define TIMETZ_TYPLEN        12
+
 /*
  * Infinity and minus infinity must be the max and min values of DateADT.
  */

and then use that.  (I poked around in other code using TimeTzADT,
and could not find any other places where we have hard-wired "12",
which seems a bit surprising perhaps.  But pretty much all the
references to sizeof(TimeTzADT) are in palloc's, where it's fine.)

            regards, tom lane



pgsql-hackers by date:

Previous
From: Mihail Nikalayeu
Date:
Subject: Re: Adding REPACK [concurrently]
Next
From: Kirill Reshke
Date:
Subject: Re: [PATCH] Fix typo in psql \copy command documentation