| From: | Zhihong Yu <zyu(at)yugabyte(dot)com> | 
|---|---|
| To: | PostgreSQL Developers <pgsql-hackers(at)lists(dot)postgresql(dot)org> | 
| Subject: | Re: proposal: schema variables | 
| Date: | 2020-12-20 19:25:24 | 
| Message-ID: | CALNJ-vT=NtDjUyhqu-3UV3riciPeV+Bqx2Kw-pSAdHx8GTUgrg@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
Hi,
I took a look at the rebased patch.
+      <entry><structfield>varisnotnull</structfield></entry>
+      <entry><type>boolean</type></entry>
+      <entry></entry>
+      <entry>
+       True if the schema variable doesn't allow null value. The default
value is false.
I wonder whether the field can be named in positive tense: e.g.
varallowsnull with default of true.
+      <entry><structfield>vareoxaction</structfield></entry>
+       <literal>n</literal> = no action, <literal>d</literal> = drop the
variable,
+       <literal>r</literal> = reset the variable to its default value.
Looks like there is only one action allowed. I wonder if there is a
possibility of having two actions at the same time in the future.
+     The <application>PL/pgSQL</application> language has not packages
+     and then it has not package variables and package constants. The
'has not' -> 'has no'
+      a null value. A variable created as NOT NULL and without an
explicitely
explicitely -> explicitly
+       int         nnewmembers;
+       Oid        *oldmembers;
+       Oid        *newmembers;
I wonder if naming nnewmembers newmembercount would be more readable.
For pg_variable_aclcheck:
+       return ACLCHECK_OK;
+   else
+       return ACLCHECK_NO_PRIV;
The 'else' can be omitted.
+ * Ownership check for a schema variables (specified by OID).
'a schema variable' (no s)
For NamesFromList():
+       if (IsA(n, String))
+       {
+           result = lappend(result, n);
+       }
+       else
+           break;
There would be no more name if current n is not a String ?
+            * both variants, and returns InvalidOid with not_uniq flag,
when
'and return' (no s)
+               return InvalidOid;
+           }
+           else if (OidIsValid(varoid_without_attr))
'else' is not needed (since the if block ends with return).
For clean_cache_callback(),
+               if (hash_search(schemavarhashtab,
+                               (void *) &svar->varid,
+                               HASH_REMOVE,
+                               NULL) == NULL)
+                   elog(DEBUG1, "hash table corrupted");
Maybe add more information to the debug, such as var name.
Should we come out of the while loop in this scenario ?
Cheers
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Heikki Linnakangas | 2020-12-20 20:42:40 | Re: \gsetenv | 
| Previous Message | David Fetter | 2020-12-20 19:05:44 | Re: \gsetenv |