Skip to content

Commit

Permalink
Update Derby reserved words
Browse files Browse the repository at this point in the history
Updated DerbyDatabase definition to use the set of keywords defined in
https://db.apache.org/derby/docs/10.2/ref/rrefkeywords29722.html

resolves liquibase#1031
  • Loading branch information
andrewhj committed Jul 8, 2021
1 parent 06c6a72 commit 78b5bf3
Show file tree
Hide file tree
Showing 43 changed files with 196 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ public DerbyDatabase() {
super.sequenceNextValueFunction = "NEXT VALUE FOR %s";
super.sequenceCurrentValueFunction = "(SELECT currentvalue FROM sys.syssequences WHERE sequencename = upper('%s'))";
determineDriverVersion();
//add reserved words from http://developer.mimer.com/validator/sql-reserved-words.tml
this.addReservedWords(Arrays.asList("ABSOLUTE", "ACTION", "ADD", "AFTER", "ALL", "ALLOCATE", "ALTER", "AND", "ANY", "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", "ASYMMETRIC", "AT", "ATOMIC", "AUTHORIZATION", "AVG", "BEFORE", "BEGIN", "BETWEEN", "BIGINT", "BINARY", "BIT", "BIT_LENGTH", "BLOB", "BOOLEAN", "BOTH", "BREADTH", "BY", "CALL", "CALLED", "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG", "CHAR", "CHARACTER", "CHARACTER_LENGTH", "CHAR_LENGTH", "CHECK", "CLOB", "CLOSE", "COALESCE", "COLLATE", "COLLATION", "COLUMN", "COMMIT", "CONDITION", "CONNECT", "CONNECTION", "CONSTRAINT", "CONSTRAINTS", "CONSTRUCTOR", "CONTAINS", "CONTINUE", "CONVERT", "CORRESPONDING", "COUNT", "CREATE", "CROSS", "CUBE", "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", "CURRENT_PATH", "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", "CURRENT_USER", "CURSOR", "CYCLE", "DATA", "DATE", "DAY", "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFERRABLE", "DEFERRED", "DELETE", "DEPTH", "DEREF", "DESC", "DESCRIBE", "DESCRIPTOR", "DETERMINISTIC", "DIAGNOSTICS", "DISCONNECT", "DISTINCT", "DO", "DOMAIN", "DOUBLE", "DROP", "DYNAMIC", "EACH", "ELEMENT", "ELSE", "ELSEIF", "END", "EQUALS", "ESCAPE", "EXCEPT", "EXCEPTION", "EXEC", "EXECUTE", "EXISTS", "EXIT", "EXTERNAL", "EXTRACT", "FALSE", "FETCH", "FILTER", "FIRST", "FLOAT", "FOR", "FOREIGN", "FOUND", "FREE", "FROM", "FULL", "FUNCTION", "GENERAL", "GET", "GLOBAL", "GO", "GOTO", "GRANT", "GROUP", "GROUPING", "HANDLER", "HAVING", "HOLD", "HOUR", "IDENTITY", "IF", "IMMEDIATE", "IN", "INDICATOR", "INITIALLY", "INNER", "INOUT", "INPUT", "INSENSITIVE", "INSERT", "INT", "INTEGER", "INTERSECT", "INTERVAL", "INTO", "IS", "ISOLATION", "ITERATE", "JOIN", "KEY", "LANGUAGE", "LARGE", "LAST", "LATERAL", "LEADING", "LEAVE", "LEFT", "LEVEL", "LIKE", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", "LOCATOR", "LOOP", "LOWER", "MAP", "MATCH", "MAX", "MEMBER", "MERGE", "METHOD", "MIN", "MINUTE", "MODIFIES", "MODULE", "MONTH", "MULTISET", "NAMES", "NATIONAL", "NATURAL", "NCHAR", "NCLOB", "NEW", "NEXT", "NO", "NONE", "NOT", "NULL", "NULLIF", "NUMERIC", "OBJECT", "OCTET_LENGTH", "OF", "OLD", "ON", "ONLY", "OPEN", "OPTION", "OR", "ORDER", "ORDINALITY", "OUT", "OUTER", "OUTPUT", "OVER", "OVERLAPS", "PAD", "PARAMETER", "PARTIAL", "PARTITION", "PATH", "POSITION", "PRECISION", "PREPARE", "PRESERVE", "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURE", "PUBLIC", "RANGE", "READ", "READS", "REAL", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "RELATIVE", "RELEASE", "REPEAT", "RESIGNAL", "RESTRICT", "RESULT", "RETURN", "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", "ROUTINE", "ROW", "ROWS", "SAVEPOINT", "SCHEMA", "SCOPE", "SCROLL", "SEARCH", "SECOND", "SECTION", "SELECT", "SENSITIVE", "SESSION", "SESSION_USER", "SET", "SETS", "SIGNAL", "SIMILAR", "SIZE", "SMALLINT", "SOME", "SPACE", "SPECIFIC", "SPECIFICTYPE", "SQL", "SQLCODE", "SQLERROR", "SQLEXCEPTION", "SQLSTATE", "SQLWARNING", "START", "STATE", "STATIC", "SUBMULTISET", "SUBSTRING", "SUM", "SYMMETRIC", "SYSTEM", "SYSTEM_USER", "TABLE", "TABLESAMPLE", "TEMPORARY", "THEN", "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TO", "TRAILING", "TRANSACTION", "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", "TRIM", "TRUE", "UNDER", "UNDO", "UNION", "UNIQUE", "UNKNOWN", "UNNEST", "UNTIL", "UPDATE", "UPPER", "USAGE", "USER", "USING", "VALUE", "VALUES", "VARCHAR", "VARYING", "VIEW", "WHEN", "WHENEVER", "WHERE", "WHILE", "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK", "WRITE", "YEAR", "ZONE"));
//add reserved words from https://db.apache.org/derby/docs/10.2/ref/rrefkeywords29722.html
this.addReservedWords(Arrays.asList("ADD", "ALL", "ALLOCATE", "ALTER", "AND", "ANY", "ARE", "AS", "ASC", "ASSERTION", "AT", "AUTHORIZATION", "AVG", "BEGIN", "BETWEEN", "BIGINT", "BIT", "BOOLEAN", "BOTH", "BY", "CALL", "CASCADE", "CASCADED", "CASE", "CAST", "CHAR", "CHARACTER", "CHECK", "CLOSE", "COALESCE", "COLLATE", "COLLATION", "COLUMN", "COMMIT", "CONNECT", "CONNECTION", "CONSTRAINT", "CONSTRAINTS", "CONTINUE", "CONVERT", "CORRESPONDING", "CREATE", "CURRENT", "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFERRABLE", "DEFERRED", "DELETE", "DESC", "DESCRIBE", "DIAGNOSTICS", "DISCONNECT", "DISTINCT", "DOUBLE", "DROP", "ELSE", "END", "END-EXEC", "ESCAPE", "EXCEPT", "EXCEPTION", "EXEC", "EXECUTE", "EXISTS", "EXPLAIN", "EXTERNAL", "FALSE", "FETCH", "FIRST", "FLOAT", "FOR", "FOREIGN", "FOUND", "FROM", "FULL", "FUNCTION", "GET", "GETCURRENTCONNECTION", "GLOBAL", "GO", "GOTO", "GRANT", "GROUP", "HAVING", "HOUR", "IDENTITY", "IMMEDIATE", "IN", "INDICATOR", "INITIALLY", "INNER", "INOUT", "INPUT", "INSENSITIVE", "INSERT", "INT", "INTEGER", "INTERSECT", "INTO", "IS", "ISOLATION", "JOIN", "KEY", "LAST", "LEFT", "LIKE", "LOWER", "LTRIM", "MATCH", "MAX", "MIN", "MINUTE", "NATIONAL", "NATURAL", "NCHAR", "NVARCHAR", "NEXT", "NO", "NOT", "NULL", "NULLIF", "NUMERIC", "OF", "ON", "ONLY", "OPEN", "OPTION", "OR", "ORDER", "OUTER", "OUTPUT", "OVERLAPS", "PAD", "PARTIAL", "PREPARE", "PRESERVE", "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURE", "PUBLIC", "READ", "REAL", "REFERENCES", "RELATIVE", "RESTRICT", "REVOKE", "RIGHT", "ROLLBACK", "ROWS", "RTRIM", "SCHEMA", "SCROLL", "SECOND", "SELECT", "SESSION_USER", "SET", "SMALLINT", "SOME", "SPACE", "SQL", "SQLCODE", "SQLERROR", "SQLSTATE", "SUBSTR", "SUBSTRING", "SUM", "SYSTEM_USER", "TABLE", "TEMPORARY", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TO", "TRANSACTION", "TRANSLATE", "TRANSLATION", "TRUE", "UNION", "UNIQUE", "UNKNOWN", "UPDATE", "UPPER", "USER", "USING", "VALUES", "VARCHAR", "VARYING", "VIEW", "WHENEVER", "WHERE", "WITH", "WORK", "WRITE", "XML", "XMLEXISTS", "XMLPARSE", "XMLQUERY", "XMLSERIALIZE", "YEAR"));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
-- Database: cockroachdb
-- Change Parameter: columnName=id
-- Change Parameter: tableName=person
CREATE SEQUENCE IF NOT EXISTS person_id_seq;
ALTER TABLE person ALTER COLUMN id SET NOT NULL;
ALTER TABLE person ALTER COLUMN id SET DEFAULT nextval('person_id_seq');
ALTER SEQUENCE person_id_seq OWNED BY person.id;
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
-- Database: cockroachdb
-- Change Parameter: columns=[column:[
-- name="id"
-- type="int"
-- ], ]
-- Change Parameter: tableName=person
ALTER TABLE person ADD id INTEGER;
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
-- Database: cockroachdb
-- Change Parameter: baseColumnNames=person_id
-- Change Parameter: baseTableName=address
-- Change Parameter: constraintName=fk_address_person
-- Change Parameter: referencedColumnNames=id
-- Change Parameter: referencedTableName=person
ALTER TABLE address ADD CONSTRAINT fk_address_person FOREIGN KEY (person_id) REFERENCES person (id);
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
-- Database: cockroachdb
-- Change Parameter: existingColumnName=state
-- Change Parameter: existingTableName=address
-- Change Parameter: newColumnName=abbreviation
-- Change Parameter: newTableName=state
CREATE TABLE state AS SELECT DISTINCT state AS abbreviation FROM address WHERE state IS NOT NULL;
ALTER TABLE state ALTER COLUMN abbreviation SET NOT NULL;
ALTER TABLE state ADD PRIMARY KEY (abbreviation);
ALTER TABLE address ADD CONSTRAINT FK_ADDRESS_STATE FOREIGN KEY (state) REFERENCES state (abbreviation);
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
-- Change Parameter: existingTableName=address
-- Change Parameter: newColumnName=abbreviation
-- Change Parameter: newTableName=state
CREATE TABLE "state" AS SELECT DISTINCT "state" AS abbreviation FROM address WHERE "state" IS NOT NULL;
ALTER TABLE "state" ALTER COLUMN abbreviation NOT NULL;
ALTER TABLE "state" ADD PRIMARY KEY (abbreviation);
ALTER TABLE address ADD CONSTRAINT FK_ADDRESS_STATE FOREIGN KEY ("state") REFERENCES "state" (abbreviation);
CREATE TABLE state AS SELECT DISTINCT state AS abbreviation FROM address WHERE state IS NOT NULL;
ALTER TABLE state ALTER COLUMN abbreviation NOT NULL;
ALTER TABLE state ADD PRIMARY KEY (abbreviation);
ALTER TABLE address ADD CONSTRAINT FK_ADDRESS_STATE FOREIGN KEY (state) REFERENCES state (abbreviation);
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- Database: cockroachdb
-- Change Parameter: columnName=id
-- Change Parameter: tableName=person
ALTER TABLE person ALTER COLUMN id SET NOT NULL;
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- Database: cockroachdb
-- Change Parameter: columnNames=id, name
-- Change Parameter: tableName=person
ALTER TABLE person ADD PRIMARY KEY (id, name);
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- Database: cockroachdb
-- Change Parameter: columnNames=id, name
-- Change Parameter: tableName=person
ALTER TABLE person ADD UNIQUE (id, name);
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- Database: cockroachdb
-- Change Parameter: incrementBy=371717
-- Change Parameter: sequenceName=seq_id
ALTER SEQUENCE seq_id INCREMENT BY 371717;
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- Database: mariadb
-- Change Parameter: incrementBy=371717
-- Change Parameter: sequenceName=seq_id
ALTER SEQUENCE seq_id INCREMENT BY 371717;
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
-- Database: cockroachdb
-- Change Parameter: columns=[column:[
-- name="id"
-- type="int"
-- ], ]
-- Change Parameter: tableName=person
CREATE INDEX ON person(id);
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
-- Database: cockroachdb
-- Change Parameter: sequenceName=seq_id
CREATE SEQUENCE IF NOT EXISTS seq_id;
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
-- Database: mariadb
-- Change Parameter: sequenceName=seq_id
CREATE SEQUENCE seq_id;
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
-- Database: cockroachdb
-- Change Parameter: columns=[column:[
-- name="id"
-- type="int"
-- ], ]
-- Change Parameter: tableName=person
CREATE TABLE person (id INTEGER);
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- Database: cockroachdb
-- Change Parameter: selectQuery=select id, name from person where id > 10
-- Change Parameter: viewName=v_person
CREATE VIEW v_person AS select id, name from person where id > 10;
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
-- Database: cockroachdb
-- Change Parameter: tableName=person
DELETE FROM person;
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- Database: cockroachdb
-- Change Parameter: columnName=id
-- Change Parameter: tableName=person
ALTER TABLE person DROP COLUMN id;
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- Database: cockroachdb
-- Change Parameter: columnName=id
-- Change Parameter: tableName=person
ALTER TABLE person ALTER COLUMN id DROP DEFAULT;
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- Database: cockroachdb
-- Change Parameter: baseTableName=person
-- Change Parameter: constraintName=fk_address_person
ALTER TABLE person DROP CONSTRAINT fk_address_person;
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
-- Database: cockroachdb
-- Change Parameter: indexName=idx_address
DROP INDEX idx_address;
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- Database: cockroachdb
-- Change Parameter: columnName=id
-- Change Parameter: tableName=person
ALTER TABLE person ALTER COLUMN id DROP NOT NULL;
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
-- Database: cockroachdb
-- Change Parameter: tableName=person
DO $$ DECLARE constraint_name varchar;
BEGIN
SELECT tc.CONSTRAINT_NAME into strict constraint_name
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
WHERE CONSTRAINT_TYPE = 'PRIMARY KEY'
AND TABLE_NAME = 'person' AND TABLE_SCHEMA = 'null';
EXECUTE 'alter table null.person drop constraint ' || constraint_name;
END $$;;
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
-- Database: cockroachdb
-- Change Parameter: procedureName=new_customer
DROP PROCEDURE new_customer;
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
-- Database: cockroachdb
-- Change Parameter: sequenceName=seq_id
DROP SEQUENCE seq_id CASCADE;
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
-- Database: mariadb
-- Change Parameter: sequenceName=seq_id
DROP SEQUENCE seq_id;
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
-- Database: cockroachdb
-- Change Parameter: tableName=person
DROP TABLE person;
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- Database: cockroachdb
-- Change Parameter: constraintName=const_name
-- Change Parameter: tableName=person
DROP INDEX const_name CASCADE;
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
-- Database: cockroachdb
-- Change Parameter: viewName=v_person
DROP VIEW v_person;
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
-- Database: cockroachdb
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
-- Database: cockroachdb
-- Change Parameter: columns=[column:[
-- name="id"
-- type="int"
-- ], ]
-- Change Parameter: tableName=person
INSERT INTO person (id) VALUES (NULL);
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
-- Database: cockroachdb
-- Change Parameter: column1Name=first_name
-- Change Parameter: column2Name=last_name
-- Change Parameter: finalColumnName=full_name
-- Change Parameter: finalColumnType=varchar(255)
-- Change Parameter: tableName=person
ALTER TABLE person ADD full_name VARCHAR(255);
UPDATE person SET full_name = first_name || 'null' || last_name;
ALTER TABLE person DROP COLUMN first_name;
ALTER TABLE person DROP COLUMN last_name;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
-- Database: cockroachdb
-- Change Parameter: columnName=id
-- Change Parameter: newDataType=int
-- Change Parameter: tableName=person
ALTER TABLE person ALTER COLUMN id TYPE INTEGER USING (id::INTEGER);
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
-- Database: cockroachdb
-- Change Parameter: newColumnName=full_name
-- Change Parameter: oldColumnName=name
-- Change Parameter: tableName=person
ALTER TABLE person RENAME COLUMN name TO full_name;
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- Database: cockroachdb
-- Change Parameter: newSequenceName=seq_id
-- Change Parameter: oldSequenceName=seq_id
ALTER SEQUENCE seq_id RENAME TO seq_id;
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- Database: mariadb
-- Change Parameter: newSequenceName=seq_id
-- Change Parameter: oldSequenceName=seq_id
ALTER SEQUENCE seq_id RENAME TO seq_id;
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- Database: cockroachdb
-- Change Parameter: newTableName=employee
-- Change Parameter: oldTableName=person
ALTER TABLE person RENAME TO employee;
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- Database: cockroachdb
-- Change Parameter: newViewName=v_person
-- Change Parameter: oldViewName=v_person
ALTER TABLE v_person RENAME TO v_person;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
-- Database: cockroachdb
-- Change Parameter: columnName=id
-- Change Parameter: remarks=A String
-- Change Parameter: tableName=person
COMMENT ON COLUMN person.id IS 'A String';
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- Database: cockroachdb
-- Change Parameter: remarks=A String
-- Change Parameter: tableName=person
COMMENT ON TABLE person IS 'A String';
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
-- Database: cockroachdb
-- Change Parameter: sql=insert into person (name) values ('Bob')
insert into person (name) values ('Bob');
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- Database: cockroachdb
-- Change Parameter: path=my/path/file.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
-- Database: cockroachdb
-- Change Parameter: columns=[column:[
-- name="id"
-- type="int"
-- ], ]
-- Change Parameter: tableName=person
UPDATE person SET id = NULL;

0 comments on commit 78b5bf3

Please sign in to comment.