CREATE TABLE pattern ( pattern_id SERIAL PRIMARY KEY, pattern_name VARCHAR UNIQUE NOT NULL, delimiter VARCHAR(1), has_suffix BOOLEAN NOT NULL, has_short_abbreviation BOOLEAN NOT NULL ); INSERT INTO pattern (pattern_name, delimiter, has_suffix, has_short_abbreviation) VALUES ('postgresql_default', '_', TRUE, FALSE); INSERT INTO pattern (pattern_name, delimiter, has_suffix, has_short_abbreviation) VALUES ('snake_case_with_short_prefix', '_', FALSE, TRUE); CREATE TYPE CONSTRAINT_TYPE AS (constraint_name VARCHAR, constraint_type VARCHAR, table_name VARCHAR, constraint_schema VARCHAR, column_name VARCHAR, references_table VARCHAR); CREATE TABLE abbreviated_table ( abbreviated_table_name_id SERIAL PRIMARY KEY, table_name VARCHAR NOT NULL UNIQUE, abbreviated_name VARCHAR NOT NULL, schema_name VARCHAR NOT NULL );