Skip to content

Commit

Permalink
Add DETACH,ATTACH,LIST,HASH,MODULUS and REMINDER to keywords list.
Browse files Browse the repository at this point in the history
  • Loading branch information
darold committed Nov 20, 2018
1 parent 9ba9d4d commit 2fac61c
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 24 deletions.
22 changes: 11 additions & 11 deletions lib/pgFormatter/Beautify.pm
Original file line number Diff line number Diff line change
Expand Up @@ -810,7 +810,7 @@ sub beautify {
$self->_new_line;
$self->_add_token( $token );
}
}
}

elsif ( $token eq '(' )
{
Expand Down Expand Up @@ -1200,7 +1200,7 @@ sub beautify {
$self->{ '_is_in_where' }-- if ($self->{ '_is_in_where' });
}

elsif ( $token =~ /^(?:BY)$/i and $last !~ /^(INCREMENT|OWNED|PARTITION)$/ )
elsif ( $token =~ /^(?:BY)$/i and $last !~ /^(?:INCREMENT|OWNED|PARTITION)$/i )
{
$self->_add_token( $token );
$self->_new_line;
Expand Down Expand Up @@ -2059,19 +2059,19 @@ sub set_dicts {
# Afterwards, when everything is ready, put it in $self->{'dict'}->{...}

my @pg_keywords = map { uc } qw(
ADD AFTER ALL ALTER ANALYSE ANALYZE AND ANY ARRAY AS ASC ASYMMETRIC AUTHORIZATION AUTO_INCREMENT
BACKWARD BEFORE BEGIN BERNOULLI BETWEEN BINARY BOTH BY BY CACHE CASCADE CASE CAST CHECK CHECKPOINT
ADD AFTER ALL ALTER ANALYSE ANALYZE AND ANY ARRAY AS ASC ASYMMETRIC AUTHORIZATION ATTACH AUTO_INCREMENT
BACKWARD BEFORE BEGIN BERNOULLI BETWEEN BINARY BOTH BY CACHE CASCADE CASE CAST CHECK CHECKPOINT
CLOSE CLUSTER COLLATE COLLATION COLUMN COMMENT COMMIT COMMITTED CONCURRENTLY CONFLICT CONSTRAINT
CONSTRAINT CONTINUE COPY COST CREATE CROSS CUBE CURRENT_DATE CURRENT_ROLE CURRENT_TIME CURRENT_TIMESTAMP
CURRENT_USER CURSOR CYCLE DATABASE DEALLOCATE DECLARE DEFAULT DEFERRABLE DEFERRED DEFINER DELETE DELIMITER
DESC DISTINCT DO DOMAIN DROP EACH ELSE ENCODING END EXCEPT EXCLUDING EXECUTE EXISTS EXPLAIN EXTENSION FALSE
FETCH FILTER FIRST FOR FOREIGN FORWARD FREEZE FROM FULL FUNCTION GRANT GROUP GROUPING HAVING IF ILIKE IMMUTABLE IN
DESC DETACH DISTINCT DO DOMAIN DROP EACH ELSE ENCODING END EXCEPT EXCLUDING EXECUTE EXISTS EXPLAIN EXTENSION FALSE
FETCH FILTER FIRST FOR FOREIGN FORWARD FREEZE FROM FULL FUNCTION GRANT GROUP GROUPING HAVING HASH IF ILIKE IMMUTABLE IN
INCLUDING INCREMENT INDEX INHERITS INITIALLY INNER INOUT INSERT INSTEAD INTERSECT INTO INVOKER IS ISNULL
ISOLATION JOIN KEY LANGUAGE LAST LATERAL LC_COLLATE LC_CTYPE LEADING LEAKPROOF LEFT LIKE LIMIT LISTEN LOAD
LOCALTIME LOCALTIMESTAMP LOCATION LOCK LOCKED LOGGED LOGIN LOOP MAPPING MAXVALUE MINVALUE MOVE NATURAL NEXT
ISOLATION JOIN KEY LANGUAGE LAST LATERAL LC_COLLATE LC_CTYPE LEADING LEAKPROOF LEFT LIKE LIMIT LIST LISTEN LOAD
LOCALTIME LOCALTIMESTAMP LOCATION LOCK LOCKED LOGGED LOGIN LOOP MAPPING MAXVALUE MINVALUE MODULUS MOVE NATURAL NEXT
NO NOCREATEDB NOCREATEROLE NOSUPERUSER NOT NOTIFY NOTNULL NOWAIT NULL OIDS ON ONLY OPEN OPERATOR OR ORDER
OUTER OVER OVERLAPS OWNER PARTITION PASSWORD PERFORM PLACING POLICY PRECEDING PREPARE PRIMARY PROCEDURE
REASSIGN RECURSIVE REFERENCES REINDEX RENAME REPEATABLE REPLACE REPLICA RESET RESTART RETURN RETURNING
OUTER OVER OVERLAPS OWNER PARTITION PASSWORD PERFORM PLACING POLICY PRECEDING PREPARE PRIMARY PROCEDURE RANGE
REASSIGN RECURSIVE REFERENCES REINDEX REMINDER RENAME REPEATABLE REPLACE REPLICA RESET RESTART RETURN RETURNING
RETURNS RETURNS REVOKE RIGHT ROLE ROLLBACK ROLLUP ROWS RULE SAVEPOINT SCHEMA SCROLL SECURITY SELECT SEQUENCE
SEQUENCE SERIALIZABLE SERVER SESSION_USER SET SETOF SETS SHOW SIMILAR SKIP SNAPSHOT SOME STABLE START STRICT
SYMMETRIC SYSTEM TABLE TABLESAMPLE TABLESPACE TEMPLATE TEMPORARY THEN TO TRAILING TRANSACTION TRIGGER TRUE
Expand All @@ -2089,7 +2089,7 @@ sub set_dicts {
HEADER HOLD HOUR IDENTIFIED IDENTITY IGNORE IMMEDIATE IMPLICIT INDEXES INFILE INHERIT INLINE INPUT INSENSITIVE
INT INTEGER KEYS KILL LABEL LARGE LEAST LEVEL LINES LOCAL LOW_PRIORITY MATCH MINUTE MODE MODIFY MONTH NAMES
NATIONAL NCHAR NONE NOTHING NULLIF NULLS OBJECT OF OFF OPERATOR OPTIMIZE OPTION OPTIONALLY OPTIONS OUT OUTFILE
OWNED PARSER PARTIAL PASSING PLANS PRECISION PREPARED PRESERVE PRIOR PRIVILEGES PROCEDURAL QUOTE RANGE READ
OWNED PARSER PARTIAL PASSING PLANS PRECISION PREPARED PRESERVE PRIOR PRIVILEGES PROCEDURAL QUOTE READ
REAL RECHECK REF REGEXP RELATIVE RELEASE RESTRICT RLIKE ROW SEARCH SECOND SEQUENCES SESSION SHARE SIMPLE
SMALLINT SONAME STANDALONE STATEMENT STATISTICS STATUS STORAGE STRAIGHT_JOIN SYSID TABLES TEMP TERMINATED
TREAT TRUSTED TYPES UNENCRYPTED UNKNOWN UNSIGNED UNTIL USE VALID VALIDATE VALIDATOR VALUE VARIABLES VARYING
Expand Down
25 changes: 17 additions & 8 deletions samples/ex35.sql
Original file line number Diff line number Diff line change
@@ -1,15 +1,24 @@
CREATE TABLE kbln (
id integer NOT NULL,
blank_series varchar(50) NOT NULL,
company_id varchar(8)) PARTITION BY
RANGE ( id);
company_id varchar(8)) partition by
range ( id);

CREATE TABLE kbln_p0 PARTITION OF kbln FOR
VALUES FROM ( MINVALUE) TO ( 500000) PARTITION BY HASH ( blank_series);
create table kbln_p0 partition of kbln for
values from ( minvalue) to ( 500000) partition by hash ( blank_series);

CREATE TABLE kbln_p0_1 PARTITION OF kbln_p0 FOR
VALUES WITH ( MODULUS 2, REMAINDER 0);
create table kbln_p0_1 partition of kbln_p0 for
values with ( modulus 2, remainder 0);

CREATE TABLE kbln_p0_2 PARTITION OF kbln_p0 FOR
VALUES WITH ( MODULUS 2, REMAINDER 1);
create table kbln_p0_2 partition of kbln_p0 for
values with ( modulus 2, remainder 1);

alter table t1 detach partition t1_a;
alter table t1 attach partition t1_a for values in (1, 2, 3);

CREATE TABLE kbln (
id integer NOT NULL,
blank_series varchar(50) NOT NULL,
company_id varchar(8)) partition by
list ( id);

22 changes: 17 additions & 5 deletions samples/expected/ex35.sql
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,25 @@ CREATE TABLE kbln (
)
PARTITION BY RANGE (id);

CREATE TABLE kbln_p0 OF kbln
CREATE TABLE kbln_p0 of kbln
FOR VALUES FROM (MINVALUE) TO (500000)
PARTITION BY HASH (blank_series);

CREATE TABLE kbln_p0_1 OF kbln_p0
FOR VALUES WITH (MODULUS 2, REMAINDER 0);
CREATE TABLE kbln_p0_1 of kbln_p0
FOR VALUES WITH (MODULUS 2, remainder 0);

CREATE TABLE kbln_p0_2 OF kbln_p0
FOR VALUES WITH (MODULUS 2, REMAINDER 1);
CREATE TABLE kbln_p0_2 of kbln_p0
FOR VALUES WITH (MODULUS 2, remainder 1);

ALTER TABLE t1 DETACH t1_a;

ALTER TABLE t1 ATTACH t1_a
FOR VALUES IN (1, 2, 3);

CREATE TABLE kbln (
id integer NOT NULL,
blank_series varchar(50) NOT NULL,
company_id varchar(8)
)
PARTITION BY LIST (id);

0 comments on commit 2fac61c

Please sign in to comment.