Expand description
SQL rendering helpers for the rewrite pass.
These functions produce canonical Postgres DDL strings from IR objects.
They are used both by the non-rewriting dispatcher in super and by the
online-rewrite submodules.
Output is canonical (deterministic spacing, lowercase keywords, schema-qualified names) so that two equal IR inputs produce byte-identical SQL — required by the plan-id hash in spec §6.6.
Functions§
- alter_
column_ set_ compression ALTER TABLE qname ALTER COLUMN name SET COMPRESSION {pglz|lz4|DEFAULT};- alter_
column_ set_ default ALTER TABLE qname ALTER COLUMN name {SET DEFAULT expr|DROP DEFAULT};- alter_
column_ set_ generated ALTER TABLE qname ALTER COLUMN name DROP EXPRESSION;- alter_
column_ set_ identity ALTER TABLE qname ALTER COLUMN name { ADD GENERATED ... AS IDENTITY | DROP IDENTITY };- alter_
column_ set_ nullable ALTER TABLE qname ALTER COLUMN name {SET|DROP} NOT NULL;- alter_
column_ set_ storage ALTER TABLE qname ALTER COLUMN name SET STORAGE {PLAIN|EXTERNAL|EXTENDED|MAIN};- alter_
column_ type ALTER TABLE qname ALTER COLUMN name TYPE T [USING expr];- alter_
sequence_ cache ALTER SEQUENCE qname CACHE n;- alter_
sequence_ cycle ALTER SEQUENCE qname { CYCLE | NO CYCLE };- alter_
sequence_ data_ type ALTER SEQUENCE qname AS T;- alter_
sequence_ increment ALTER SEQUENCE qname INCREMENT BY n;- alter_
sequence_ max_ value ALTER SEQUENCE qname { MAXVALUE n | NO MAXVALUE };- alter_
sequence_ min_ value ALTER SEQUENCE qname { MINVALUE n | NO MINVALUE };- alter_
sequence_ owned_ by ALTER SEQUENCE qname OWNED BY { table.col | NONE };- alter_
table_ add_ column ALTER TABLE qname ADD COLUMN ...;- alter_
table_ add_ constraint ALTER TABLE qname ADD CONSTRAINT ...;(validated form).- alter_
table_ add_ constraint_ not_ valid ALTER TABLE qname ADD CONSTRAINT ... NOT VALID;- alter_
table_ drop_ column ALTER TABLE qname DROP COLUMN name;- alter_
table_ drop_ constraint ALTER TABLE qname DROP CONSTRAINT name;- alter_
table_ set_ tablespace ALTER TABLE qname SET TABLESPACE name;- alter_
table_ validate_ constraint ALTER TABLE qname VALIDATE CONSTRAINT name;- column_
def - One column in
CREATE TABLEorALTER TABLE ADD COLUMN. - comment_
on_ column COMMENT ON COLUMN qname.col IS '...';- comment_
on_ constraint COMMENT ON CONSTRAINT name ON qname IS '...';- comment_
on_ index COMMENT ON INDEX qname IS '...';- comment_
on_ schema COMMENT ON SCHEMA name IS '...';(orIS NULLto clear).- comment_
on_ sequence COMMENT ON SEQUENCE qname IS '...';- comment_
on_ table COMMENT ON TABLE qname IS '...';- constraint_
def_ with_ name CONSTRAINT name <body>— used for both inline andADD CONSTRAINTforms.- create_
index CREATE [UNIQUE] INDEX [CONCURRENTLY] name ON table USING method (...) [INCLUDE (...)] [WHERE ...];- create_
schema CREATE SCHEMA name;- create_
sequence CREATE SEQUENCE schema.name AS T [INCREMENT BY n] ....- create_
table CREATE TABLE schema.name ( ... );with inline columns and constraints.- drop_
index DROP INDEX [CONCURRENTLY] name;- drop_
schema DROP SCHEMA name;- drop_
sequence DROP SEQUENCE schema.name;- drop_
table DROP TABLE schema.name;