Re: Add Boolean node
Peter Eisentraut <peter.eisentraut@enterprisedb.com>
From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2022-01-03T11:04:52Z
Lists: pgsql-hackers
Attachments
- v2-0001-Refactor-AlterRole.patch (text/plain) patch v2-0001
- v2-0002-Rename-value-node-fields.patch (text/plain) patch v2-0002
- v2-0003-Add-Boolean-node.patch (text/plain) patch v2-0003
On 27.12.21 10:02, Peter Eisentraut wrote: > This patch adds a new node type Boolean, to go alongside the "value" > nodes Integer, Float, String, etc. This seems appropriate given that > Boolean values are a fundamental part of the system and are used a lot. > > Before, SQL-level Boolean constants were represented by a string with > a cast, and internal Boolean values in DDL commands were usually > represented by Integer nodes. This takes the place of both of these > uses, making the intent clearer and having some amount of type safety. Here is an update of this patch set based on the feedback. First, I added a patch that makes some changes in AlterRole() that my original patch might have broken or at least made more confusing. Unlike in CreateRole(), we use three-valued logic here, so that a variable like issuper would have 0 = no, 1 = yes, -1 = not specified, keep previous value. I'm simplifying this, by instead using the dissuper etc. variables to track whether a setting was specified. This makes everything a bit simpler and makes the subsequent patch easier. Second, I added the suggest by Tom Lane to rename to fields in the used-to-be-Value nodes to be different in each node type (ival, fval, etc.). I agree that this makes things a bit cleaner and reduces the changes of mixups. And third, the original patch that introduces the Boolean node with some small changes based on the feedback.
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add Boolean node
- 941460fcf731 15.0 landed
-
Rename value node fields
- c4cc2850f4d1 15.0 landed
-
Refactor AlterRole()
- 93415a3b5ac8 15.0 landed