/* * ModeShape (http://www.modeshape.org) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.modeshape.sequencer.ddl.dialect.postgres; import java.util.Arrays; import java.util.List; import org.modeshape.sequencer.ddl.DdlConstants; import org.modeshape.sequencer.ddl.DdlTokenStream; import org.modeshape.sequencer.ddl.StandardDdlLexicon; /** * */ public interface PostgresDdlConstants extends DdlConstants { public static final String[] CUSTOM_KEYWORDS = {"SHOW", "LISTEN", "UNLISTEN", "REINDEX", "MOVE", "ABORT", "ANALYZE", "TRUNCATE", "REASSIGN", "RELEASE", "RESET", "REVOKE", "ROLLBACK", "FETCH", "EXPLAIN", "DISCARD", "COPY", "CLUSTER", "NOTIFY", "LOAD", "COMMENT", "LOCK", "SERVER", "SEARCH", "PARSER", "DICTIONARY", "WRAPPER", "PROCEDURAL", "CONVERSION", "AGGREGATE", "TEMPLATE", "MAPPING", "TRUSTED", "TRIGGER", "VACUUM", "FAMILTY", "BIGSERIAL", "BOX", "BOOLEAN", "BOX", "BYTEA", "CIDR", "CIRCLE", "FLOAT4", "FLOAT8", "INET", "INT2", "INT4", "INT8", "LINE", "LSEG", "MACADDR", "MONEY", "PATH", "POINT", "POLYGON", "SERIAL", "SERIAL4", "SERIAL8", "TEXT", "TIMESTAMPZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", "XML"}; interface PostgresStatementStartPhrases { static final String[] STMT_ALTER_AGGREGATE = {ALTER, "AGGREGATE"}; static final String[] STMT_ALTER_CONVERSION = {ALTER, "CONVERSION"}; static final String[] STMT_ALTER_DATABASE = {ALTER, "DATABASE"}; static final String[] STMT_ALTER_FOREIGN_DATA_WRAPPER = {ALTER, "FOREIGN", "DATA", "WRAPPER"}; static final String[] STMT_ALTER_FUNCTION = {ALTER, "FUNCTION"}; static final String[] STMT_ALTER_GROUP = {ALTER, "GROUP", DdlTokenStream.ANY_VALUE, DdlTokenStream.ANY_VALUE, DdlTokenStream.ANY_VALUE}; static final String[] STMT_ALTER_INDEX = {ALTER, "INDEX"}; static final String[] STMT_ALTER_LANGUAGE = {ALTER, "LANGUAGE"}; static final String[] STMT_ALTER_PROCEDURAL_LANGUAGE = {ALTER, "PROCEDURAL", "LANGUAGE"}; static final String[] STMT_ALTER_OPERATOR = {ALTER, "OPERATOR"}; static final String[] STMT_ALTER_OPERATOR_CLASS = {ALTER, "OPERATOR", "CLASS", DdlTokenStream.ANY_VALUE, DdlTokenStream.ANY_VALUE, DdlTokenStream.ANY_VALUE, DdlTokenStream.ANY_VALUE}; static final String[] STMT_ALTER_OPERATOR_FAMILY = {ALTER, "OPERATOR", "FAMILY", DdlTokenStream.ANY_VALUE, DdlTokenStream.ANY_VALUE, DdlTokenStream.ANY_VALUE, DdlTokenStream.ANY_VALUE}; static final String[] STMT_ALTER_ROLE = {ALTER, "ROLE"}; static final String[] STMT_ALTER_SCHEMA = {ALTER, "SCHEMA"}; static final String[] STMT_ALTER_SEQUENCE = {ALTER, "SEQUENCE"}; static final String[] STMT_ALTER_SERVER = {ALTER, "SERVER"}; static final String[] STMT_ALTER_TABLESPACE = {ALTER, "TABLESPACE"}; static final String[] STMT_ALTER_TEXT_SEARCH_CONFIGURATION = {ALTER, "TEXT", "SEARCH", "CONFIGURATION"}; static final String[] STMT_ALTER_TEXT_SEARCH_DICTIONARY = {ALTER, "TEXT", "SEARCH", "DICTIONARY"}; static final String[] STMT_ALTER_TEXT_SEARCH_PARSER = {ALTER, "TEXT", "SEARCH", "PARSER"}; static final String[] STMT_ALTER_TEXT_SEARCH_TEMPLATE = {ALTER, "TEXT", "SEARCH", "TEMPLATE"}; static final String[] STMT_ALTER_TEXT_SEARCH = {ALTER, "TEXT", "SEARCH"}; static final String[] STMT_ALTER_TRIGGER = {ALTER, "TRIGGER"}; static final String[] STMT_ALTER_TYPE = {ALTER, "TYPE"}; static final String[] STMT_ALTER_USER = {ALTER, "USER"}; static final String[] STMT_ALTER_USER_MAPPING = {ALTER, "USER", "MAPPING"}; static final String[] STMT_ALTER_VIEW = {ALTER, "VIEW"}; static final String[][] ALTER_PHRASES = {STMT_ALTER_AGGREGATE, STMT_ALTER_CONVERSION, STMT_ALTER_DATABASE, STMT_ALTER_FOREIGN_DATA_WRAPPER, STMT_ALTER_FUNCTION, STMT_ALTER_GROUP, STMT_ALTER_INDEX, STMT_ALTER_PROCEDURAL_LANGUAGE, STMT_ALTER_LANGUAGE, STMT_ALTER_OPERATOR_CLASS, STMT_ALTER_OPERATOR_FAMILY, STMT_ALTER_OPERATOR, STMT_ALTER_ROLE, STMT_ALTER_SCHEMA, STMT_ALTER_SEQUENCE, STMT_ALTER_SERVER, STMT_ALTER_TABLESPACE, STMT_ALTER_TEXT_SEARCH_CONFIGURATION, STMT_ALTER_TEXT_SEARCH_DICTIONARY, STMT_ALTER_TEXT_SEARCH_PARSER, STMT_ALTER_TEXT_SEARCH_TEMPLATE, STMT_ALTER_TEXT_SEARCH, STMT_ALTER_TRIGGER, STMT_ALTER_TYPE, STMT_ALTER_USER_MAPPING, STMT_ALTER_USER, STMT_ALTER_VIEW}; static final String[] STMT_CREATE_AGGREGATE = {CREATE, "AGGREGATE"}; static final String[] STMT_CREATE_CAST = {CREATE, "CAST"}; static final String[] STMT_CREATE_CONSTRAINT_TRIGGER = {CREATE, "CONSTRAINT", "TRIGGER"}; static final String[] STMT_CREATE_CONVERSION = {CREATE, "CONVERSION"}; static final String[] STMT_CREATE_DATABASE = {CREATE, "DATABASE"}; static final String[] STMT_CREATE_FOREIGN_DATA_WRAPPER = {CREATE, "FOREIGN", "DATA", "WRAPPER"}; static final String[] STMT_CREATE_FUNCTION = {CREATE, "FUNCTION"}; static final String[] STMT_CREATE_OR_REPLACE_FUNCTION = {CREATE, "OR", "REPLACE", "FUNCTION"}; static final String[] STMT_CREATE_GROUP = {CREATE, "GROUP"}; static final String[] STMT_CREATE_INDEX = {CREATE, "INDEX"}; static final String[] STMT_CREATE_UNIQUE_INDEX = {CREATE, "UNIQUE", "INDEX"}; static final String[] STMT_CREATE_LANGUAGE = {CREATE, "LANGUAGE"}; static final String[] STMT_CREATE_PROCEDURAL_LANGUAGE = {CREATE, "PROCEDURAL", "LANGUAGE"}; static final String[] STMT_CREATE_TRUSTED_PROCEDURAL_LANGUAGE = {CREATE, "TRUSTED", "PROCEDURAL", "LANGUAGE"}; static final String[] STMT_CREATE_OPERATOR = {CREATE, "OPERATOR"}; static final String[] STMT_CREATE_OPERATOR_CLASS = {CREATE, "OPERATOR", "CLASS"}; static final String[] STMT_CREATE_OPERATOR_FAMILY = {CREATE, "OPERATOR", "FAMILY"}; static final String[] STMT_CREATE_ROLE = {CREATE, "ROLE"}; static final String[] STMT_CREATE_RULE = {CREATE, "RULE"}; static final String[] STMT_CREATE_OR_REPLACE_RULE = {CREATE, "OR", "REPLACE", "RULE"}; static final String[] STMT_CREATE_TEMP_TABLE = {CREATE, "TEMP", TABLE}; static final String[] STMT_CREATE_GLOBAL_TEMP_TABLE = {CREATE, "GLOBAL", "TEMP", TABLE}; static final String[] STMT_CREATE_LOCAL_TEMP_TABLE = {CREATE, "LOCAL", "TEMP", TABLE}; static final String[] STMT_CREATE_SEQUENCE = {CREATE, "SEQUENCE"}; static final String[] STMT_CREATE_TEMP_SEQUENCE = {CREATE, "TEMP", "SEQUENCE"}; static final String[] STMT_CREATE_TEMPORARY_SEQUENCE = {CREATE, "TEMPORARY", "SEQUENCE"}; static final String[] STMT_CREATE_SERVER = {CREATE, "SERVER"}; static final String[] STMT_CREATE_TABLESPACE = {CREATE, "TABLESPACE"}; static final String[] STMT_CREATE_TEXT_SEARCH_CONFIGURATION = {CREATE, "TEXT", "SEARCH", "CONFIGURATION"}; static final String[] STMT_CREATE_TEXT_SEARCH_DICTIONARY = {CREATE, "TEXT", "SEARCH", "DICTIONARY"}; static final String[] STMT_CREATE_TEXT_SEARCH_PARSER = {CREATE, "TEXT", "SEARCH", "PARSER"}; static final String[] STMT_CREATE_TEXT_SEARCH_TEMPLATE = {CREATE, "TEXT", "SEARCH", "TEMPLATE"}; static final String[] STMT_CREATE_TEXT_SEARCH = {CREATE, "TEXT", "SEARCH"}; static final String[] STMT_CREATE_TRIGGER = {CREATE, "TRIGGER"}; static final String[] STMT_CREATE_TYPE = {CREATE, "TYPE"}; static final String[] STMT_CREATE_USER = {CREATE, "USER"}; static final String[] STMT_CREATE_USER_MAPPING = {CREATE, "USER", "MAPPING"}; static final String[][] CREATE_PHRASES = {STMT_CREATE_AGGREGATE, STMT_CREATE_CAST, STMT_CREATE_CONSTRAINT_TRIGGER, STMT_CREATE_CONVERSION, STMT_CREATE_DATABASE, STMT_CREATE_FOREIGN_DATA_WRAPPER, STMT_CREATE_FUNCTION, STMT_CREATE_OR_REPLACE_FUNCTION, STMT_CREATE_GROUP, STMT_CREATE_INDEX, STMT_CREATE_UNIQUE_INDEX, STMT_CREATE_PROCEDURAL_LANGUAGE, STMT_CREATE_TRUSTED_PROCEDURAL_LANGUAGE, STMT_CREATE_LANGUAGE, STMT_CREATE_OPERATOR_CLASS, STMT_CREATE_OPERATOR_FAMILY, STMT_CREATE_OPERATOR, STMT_CREATE_ROLE, STMT_CREATE_RULE, STMT_CREATE_OR_REPLACE_RULE, STMT_CREATE_TEMP_TABLE, STMT_CREATE_GLOBAL_TEMP_TABLE, STMT_CREATE_LOCAL_TEMP_TABLE, STMT_CREATE_SEQUENCE, STMT_CREATE_TEMP_SEQUENCE, STMT_CREATE_TEMPORARY_SEQUENCE, STMT_CREATE_SERVER, STMT_CREATE_TABLESPACE, STMT_CREATE_TEXT_SEARCH_CONFIGURATION, STMT_CREATE_TEXT_SEARCH_DICTIONARY, STMT_CREATE_TEXT_SEARCH_PARSER, STMT_CREATE_TEXT_SEARCH_TEMPLATE, STMT_CREATE_TEXT_SEARCH, STMT_CREATE_TRIGGER, STMT_CREATE_TYPE, STMT_CREATE_USER_MAPPING, STMT_CREATE_USER}; static final String[] STMT_DROP_AGGREGATE = {DROP, "AGGREGATE"}; static final String[] STMT_DROP_CAST = {DROP, "CAST"}; static final String[] STMT_DROP_CONSTRAINT_TRIGGER = {DROP, "CONSTRAINT", "TRIGGER"}; static final String[] STMT_DROP_CONVERSION = {DROP, "CONVERSION"}; static final String[] STMT_DROP_DATABASE = {DROP, "DATABASE"}; static final String[] STMT_DROP_FOREIGN_DATA_WRAPPER = {DROP, "FOREIGN", "DATA", "WRAPPER"}; static final String[] STMT_DROP_FUNCTION = {DROP, "FUNCTION"}; static final String[] STMT_DROP_GROUP = {DROP, "GROUP"}; static final String[] STMT_DROP_INDEX = {DROP, "INDEX"}; static final String[] STMT_DROP_LANGUAGE = {DROP, "LANGUAGE"}; static final String[] STMT_DROP_PROCEDURAL_LANGUAGE = {DROP, "PROCEDURAL", "LANGUAGE"}; static final String[] STMT_DROP_OPERATOR = {DROP, "OPERATOR"}; static final String[] STMT_DROP_OPERATOR_CLASS = {DROP, "OPERATOR", "CLASS"}; static final String[] STMT_DROP_OPERATOR_FAMILY = {DROP, "OPERATOR", "FAMILY"}; static final String[] STMT_DROP_OWNED_BY = {DROP, "OWNED", "BY"}; static final String[] STMT_DROP_ROLE = {DROP, "ROLE"}; static final String[] STMT_DROP_RULE = {DROP, "RULE"}; static final String[] STMT_DROP_SEQUENCE = {DROP, "SEQUENCE"}; static final String[] STMT_DROP_SERVER = {DROP, "SERVER"}; static final String[] STMT_DROP_TABLESPACE = {DROP, "TABLESPACE"}; static final String[] STMT_DROP_TEXT_SEARCH_CONFIGURATION = {DROP, "TEXT", "SEARCH", "CONFIGURATION"}; static final String[] STMT_DROP_TEXT_SEARCH_DICTIONARY = {DROP, "TEXT", "SEARCH", "DICTIONARY"}; static final String[] STMT_DROP_TEXT_SEARCH_PARSER = {DROP, "TEXT", "SEARCH", "PARSER"}; static final String[] STMT_DROP_TEXT_SEARCH_TEMPLATE = {DROP, "TEXT", "SEARCH", "TEMPLATE"}; static final String[] STMT_DROP_TEXT_SEARCH = {DROP, "TEXT", "SEARCH"}; static final String[] STMT_DROP_TRIGGER = {DROP, "TRIGGER"}; static final String[] STMT_DROP_TYPE = {DROP, "TYPE"}; static final String[] STMT_DROP_USER = {DROP, "USER"}; static final String[] STMT_DROP_USER_MAPPING = {DROP, "USER", "MAPPING"}; static final String[][] DROP_PHRASES = {STMT_DROP_AGGREGATE, STMT_DROP_CAST, STMT_DROP_CONSTRAINT_TRIGGER, STMT_DROP_CONVERSION, STMT_DROP_DATABASE, STMT_DROP_FOREIGN_DATA_WRAPPER, STMT_DROP_FUNCTION, STMT_DROP_GROUP, STMT_DROP_INDEX, STMT_DROP_PROCEDURAL_LANGUAGE, STMT_DROP_LANGUAGE, STMT_DROP_OPERATOR_CLASS, STMT_DROP_OPERATOR_FAMILY, STMT_DROP_OWNED_BY, STMT_DROP_OPERATOR, STMT_DROP_ROLE, STMT_DROP_RULE, STMT_DROP_SEQUENCE, STMT_DROP_SERVER, STMT_DROP_TABLESPACE, STMT_DROP_TEXT_SEARCH_CONFIGURATION, STMT_DROP_TEXT_SEARCH_DICTIONARY, STMT_DROP_TEXT_SEARCH_PARSER, STMT_DROP_TEXT_SEARCH_TEMPLATE, STMT_DROP_TEXT_SEARCH, STMT_DROP_TRIGGER, STMT_DROP_TYPE, STMT_DROP_USER_MAPPING, STMT_DROP_USER}; static final String[] STMT_SET_CONSTRAINTS = {"SET", "CONSTRAINTS"}; static final String[] STMT_SET_ROLE = {"SET", "ROLE"}; static final String[] STMT_SET_SESSION_AUTHORIZATION = {"SET", "SESSION", "AUTHORIZATION"}; static final String[] STMT_SET_TRANSACTION = {"SET", "TRANSACTION"}; static final String[][] SET_PHRASES = {STMT_SET_CONSTRAINTS, STMT_SET_ROLE, STMT_SET_SESSION_AUTHORIZATION, STMT_SET_TRANSACTION}; static final String[] STMT_ABORT = {"ABORT"}; static final String[] STMT_ANALYZE = {"ANALYZE"}; static final String[] STMT_CLUSTER = {"CLUSTER"}; static final String[] STMT_COMMENT_ON = {"COMMENT", "ON"}; static final String[] STMT_COMMIT = {"COMMIT"}; static final String[] STMT_COPY = {"COPY"}; static final String[] STMT_DEALLOCATE_PREPARE = {"DEALLOCATE", "PREPARE"}; static final String[] STMT_DEALLOCATE = {"DEALLOCATE"}; static final String[] STMT_DECLARE = {"DECLARE"}; static final String[] STMT_DISCARD = {"DISCARD"}; static final String[] STMT_EXPLAIN_ANALYZE = {"EXPLAIN", "ANALYZE"}; static final String[] STMT_EXPLAIN = {"EXPLAIN"}; static final String[] STMT_FETCH = {"FETCH"}; static final String[] STMT_LISTEN = {"LISTEN"}; static final String[] STMT_LOAD = {"LOAD"}; static final String[] STMT_LOCK_TABLE = {"LOCK", "TABLE"}; static final String[] STMT_MOVE = {"MOVE"}; static final String[] STMT_NOTIFY = {"NOTIFY"}; static final String[] STMT_PREPARE = {"PREPARE"}; static final String[] STMT_PREPARE_TRANSATION = {"PREPARE", "TRANSATION"}; static final String[] STMT_REASSIGN_OWNED = {"REASSIGN", "OWNED"}; static final String[] STMT_REINDEX = {"REINDEX"}; static final String[] STMT_RELEASE_SAVEPOINT = {"RELEASE", "SAVEPOINT"}; static final String[] STMT_REVOKE = {"REVOKE"}; static final String[] STMT_ROLLBACK = {"ROLLBACK"}; static final String[] STMT_ROLLBACK_PREPARED = {"ROLLBACK", "PREPARED"}; static final String[] STMT_ROLLBACK_TO_SAVEPOINT = {"ROLLBACK", "TO", "SAVEPOINT"}; static final String[] STMT_SELECT_INTO = {"SELECT", "INTO"}; static final String[] STMT_SHOW = {"SHOW"}; static final String[] STMT_TRUNCATE = {"TRUNCATE"}; static final String[] STMT_UNLISTEN = {"UNLISTEN"}; static final String[] STMT_VACUUM = {"VACUUM"}; // static final String[] STMT_VALUES = {"VALUES"}; static final String[][] MISC_PHRASES = {STMT_ABORT, STMT_ANALYZE, STMT_CLUSTER, STMT_COMMENT_ON, STMT_COMMIT, STMT_COPY, STMT_DEALLOCATE_PREPARE, STMT_DEALLOCATE, STMT_DECLARE, STMT_DISCARD, STMT_EXPLAIN_ANALYZE, STMT_EXPLAIN, STMT_FETCH, STMT_LISTEN, STMT_LOAD, STMT_LOCK_TABLE, STMT_MOVE, STMT_NOTIFY, STMT_PREPARE, STMT_PREPARE_TRANSATION, STMT_REASSIGN_OWNED, STMT_REINDEX, STMT_RELEASE_SAVEPOINT, STMT_REVOKE, STMT_ROLLBACK_TO_SAVEPOINT, STMT_ROLLBACK_PREPARED, STMT_ROLLBACK, STMT_SELECT_INTO, STMT_SHOW, STMT_TRUNCATE, STMT_UNLISTEN, STMT_VACUUM // , // STMT_VALUES }; // CREATE TABLE, CREATE VIEW, CREATE INDEX, CREATE SEQUENCE, CREATE TRIGGER and GRANT public final static String[] VALID_SCHEMA_CHILD_STMTS = {StandardDdlLexicon.TYPE_CREATE_TABLE_STATEMENT, StandardDdlLexicon.TYPE_CREATE_VIEW_STATEMENT, StandardDdlLexicon.TYPE_GRANT_ON_TABLE_STATEMENT, PostgresDdlLexicon.TYPE_CREATE_INDEX_STATEMENT, PostgresDdlLexicon.TYPE_CREATE_SEQUENCE_STATEMENT, PostgresDdlLexicon.TYPE_CREATE_TRIGGER_STATEMENT, PostgresDdlLexicon.TYPE_GRANT_ON_SEQUENCE_STATEMENT, PostgresDdlLexicon.TYPE_GRANT_ON_SCHEMA_STATEMENT}; public final static String[] COMPLEX_STMT_TYPES = {PostgresDdlLexicon.TYPE_CREATE_FUNCTION_STATEMENT}; } // SPEC Name Aliases Description // // X bigint int8 signed eight-byte integer // bigserial serial8 autoincrementing eight-byte integer // X bit [ (n) ] fixed-length bit string // X bit varying [ (n) ] varbit variable-length bit string // boolean bool logical Boolean (true/false) // box rectangular box on a plane // bytea binary data ("byte array") // X character varying [ (n) ] varchar [ (n) ] variable-length character string // X character [ (n) ] char [ (n) ] fixed-length character string // cidr IPv4 or IPv6 network address // circle circle on a plane // X date calendar date (year, month, day) // X double precision float8 double precision floating-point number (8 bytes) // inet IPv4 or IPv6 host address // X integer int, int4 signed four-byte integer // X interval [ fields ] [ (p) ] time span // line infinite line on a plane // lseg line segment on a plane // macaddr MAC (Media Access Control) address // money currency amount // X numeric [ (p, s) ] decimal [ (p, s) ] exact numeric of selectable precision // path geometric path on a plane // point geometric point on a plane // polygon closed geometric path on a plane // X real float4 single precision floating-point number (4 bytes) // X smallint int2 signed two-byte integer // serial serial4 auto incrementing four-byte integer // text variable-length character string // time [ (p) ] [ without time zone ] time of day (no time zone) // X time [ (p) ] with time zone timetz time of day, including time zone // timestamp [ (p) ] [ without time zone ] date and time (no time zone) // X timestamp [ (p) ] with time zone timestamptz date and time, including time zone // tsquery text search query // tsvector text search document // txid_snapshot user-level transaction ID snapshot // uuid universally unique identifier // X xml XML data // interval hour to minute interface PostgresDataTypes { static final String[] DTYPE_BIGSERIAL = {"BIGSERIAL"}; static final String[] DTYPE_BOX = {"BOX"}; static final String[] DTYPE_BYTEA = {"BYTEA"}; static final String[] DTYPE_CIDR = {"CIDR"}; static final String[] DTYPE_CIRCLE = {"CIRCLE"}; static final String[] DTYPE_INET = {"INET"}; static final String[] DTYPE_LINE = {"LINE"}; static final String[] DTYPE_LSEG = {"LSEG"}; static final String[] DTYPE_MACADDR = {"MACADDR"}; static final String[] DTYPE_MONEY = {"MONEY"}; static final String[] DTYPE_PATH = {"PATH"}; static final String[] DTYPE_POINT = {"POINT"}; static final String[] DTYPE_POLYGON = {"POLYGON"}; static final String[] DTYPE_SERIAL = {"SERIAL"}; static final String[] DTYPE_TEXT = {"TEXT"}; static final String[] DTYPE_TSQUERY = {"TSQUERY"}; static final String[] DTYPE_TSVECTOR = {"TSVECTOR"}; static final String[] DTYPE_TXID_SNAPSHOT = {"TXID_SNAPSHOT"}; static final String[] DTYPE_UUID = {"UUID"}; static final String[] DTYPE_XML = {"XML"}; static final String[] DTYPE_BOOLEAN = {"BOOLEAN"}; static final String[] DTYPE_BOOL = {"BOOL"}; static final String[] DTYPE_FLOAT4 = {"FLOAT4"}; static final String[] DTYPE_FLOAT8 = {"FLOAT8"}; static final String[] DTYPE_INT2 = {"INT2"}; static final String[] DTYPE_INT4 = {"INT4"}; static final String[] DTYPE_INT8 = {"INT8"}; static final String[] DTYPE_SERIAL4 = {"SERIAL4"}; static final String[] DTYPE_SERIAL8 = {"SERIAL8"}; static final String[] DTYPE_TIMESTAMPZ = {"TIMESTAMPZ"}; static final String[] DTYPE_VARBIT = {"VARBIT"}; static final List<String[]> CUSTOM_DATATYPE_START_PHRASES = Arrays.asList(DTYPE_BIGSERIAL, DTYPE_BOOL, DTYPE_BOOLEAN, DTYPE_BOX, DTYPE_BYTEA, DTYPE_CIDR, DTYPE_CIRCLE, DTYPE_FLOAT4, DTYPE_FLOAT8, DTYPE_INET, DTYPE_INT2, DTYPE_INT4, DTYPE_INT8, DTYPE_LINE, DTYPE_LSEG, DTYPE_MACADDR, DTYPE_MONEY, DTYPE_PATH, DTYPE_POINT, DTYPE_POLYGON, DTYPE_SERIAL, DTYPE_SERIAL4, DTYPE_SERIAL8, DTYPE_TEXT, DTYPE_TIMESTAMPZ, DTYPE_TSQUERY, DTYPE_TSVECTOR, DTYPE_TXID_SNAPSHOT, DTYPE_UUID, DTYPE_XML); static final List<String> CUSTOM_DATATYPE_START_WORDS = Arrays.asList("BIGSERIAL", "BOX", "BOOLEAN", "BOX", "BYTEA", "CIDR", "CIRCLE", "FLOAT4", "FLOAT8", "INET", "INT2", "INT4", "INT8", "LINE", "LSEG", "MACADDR", "MONEY", "PATH", "POINT", "POLYGON", "SERIAL", "SERIAL4", "SERIAL8", "TEXT", "TIMESTAMPZ", "TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", "UUID", "XML"); } }