From: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
---|---|
To: | "houzj(dot)fnst(at)fujitsu(dot)com" <houzj(dot)fnst(at)fujitsu(dot)com> |
Cc: | shveta malik <shveta(dot)malik(at)gmail(dot)com>, vignesh C <vignesh21(at)gmail(dot)com>, Ajin Cherian <itsajin(at)gmail(dot)com>, "wangw(dot)fnst(at)fujitsu(dot)com" <wangw(dot)fnst(at)fujitsu(dot)com>, Runqi Tian <runqidev(at)gmail(dot)com>, Peter Smith <smithpb2250(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, li jie <ggysxcq(at)gmail(dot)com>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, Japin Li <japinli(at)hotmail(dot)com>, rajesh singarapu <rajesh(dot)rs0541(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Zheng Li <zhengli10(at)gmail(dot)com> |
Subject: | Re: Support logical replication of DDLs |
Date: | 2023-04-12 11:23:35 |
Message-ID: | CAA4eK1JJYkwk1rz0O2J6OUK8qb3bZV5P7RwK933DKFkgu56nXQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general pgsql-hackers |
On Fri, Apr 7, 2023 at 8:52 AM houzj(dot)fnst(at)fujitsu(dot)com
<houzj(dot)fnst(at)fujitsu(dot)com> wrote:
>
Few comments on 0001
===================
1.
+ ConstrObjDomain,
+ ConstrObjForeignTable
+} ConstraintObjType;
These both object types don't seem to be supported by the first patch.
So, I don't see why these should be part of it.
2.
+append_string_object(ObjTree *tree, char *sub_fmt, char * object_name,
Extra space before object_name.
3. Is there a reason to keep format_type_detailed() in ddl_deparse.c
instead of defining it in format_type.c where other format functions
reside? Earlier, we were doing this deparsing as an extension, so it
makes sense to define it locally but not sure if that is required now.
4.
format_type_detailed()
{
...
+ /*
+ * Check if it's a regular (variable length) array type. As above,
+ * fixed-length array types such as "name" shouldn't get deconstructed.
+ */
+ array_base_type = typeform->typelem;
This comment gives incomplete information. I think it is better to
say: "We switch our attention to the array element type for certain
cases. See format_type_extended(). Then we can remove a similar
comment later in the function.
5.
+
+ switch (type_oid)
+ {
+ case INTERVALOID:
+ *typename = pstrdup("INTERVAL");
+ break;
+ case TIMESTAMPTZOID:
+ if (typemod < 0)
+ *typename = pstrdup("TIMESTAMP WITH TIME ZONE");
+ else
+ /* otherwise, WITH TZ is added by typmod. */
+ *typename = pstrdup("TIMESTAMP");
+ break;
+ case TIMESTAMPOID:
+ *typename = pstrdup("TIMESTAMP");
+ break;
In this switch case, use the type oid cases in the order of their value.
6.
+static inline char *
+get_type_storage(char storagetype)
We already have a function with the name storage_name() which does
exactly what this function is doing. Shall we expose that and use it?
7.
+static ObjTree *
+new_objtree(char *fmt)
+{
+ ObjTree *params;
+
+ params = palloc0(sizeof(ObjTree));
Here, the variable name params appear a bit odd. Shall we change it to
objtree or obj?
--
With Regards,
Amit Kapila.
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2023-04-12 12:04:49 | Re: lippq client library and openssl initialization: PQinitOpenSSL() |
Previous Message | Daniel Gustafsson | 2023-04-12 10:59:46 | Re: lippq client library and openssl initialization: PQinitOpenSSL() |
From | Date | Subject | |
---|---|---|---|
Next Message | Richard Guo | 2023-04-12 11:35:53 | Wrong results from Parallel Hash Full Join |
Previous Message | David Rowley | 2023-04-12 11:13:35 | Re: Unexpected (wrong?) result querying boolean partitioned table with NULL partition |