- TABLES_QUERY =
"SELECT table_name\n FROM information_schema.tables\n WHERE table_type = 'BASE TABLE'\n AND table_schema = 'public'\n".freeze
- COLUMNS_QUERY =
" SELECT c.table_name,\n c.column_name AS name,\n c.ordinal_position AS pos,\n c.column_default AS default,\n c.is_nullable AS null,\n c.data_type AS type,\n c.is_identity,\n c.udt_name AS custom_type_name,\n c.character_maximum_length AS char_length,\n c.numeric_precision AS num_precision,\n c.numeric_scale AS num_scale,\n c.datetime_precision AS dt_precision,\n c.interval_type,\n e.data_type AS element_type,\n e.udt_name AS element_custom_type_name\n FROM information_schema.columns AS c\nLEFT JOIN information_schema.element_types AS e\n ON e.object_catalog = c.table_catalog\nAND e.object_schema = c.table_schema\nAND e.object_name = c.table_name\nAND e.object_type = 'TABLE'\nAND e.collection_type_identifier = c.dtd_identifier\n WHERE c.table_schema = 'public'\n".freeze
- INDEXES_QUERY =
" SELECT table_rel.relname AS table_name,\n pg_class.relname AS name,\n indkey AS column_positions,\n indisprimary AS primary,\n indisunique AS unique,\n indoption AS index_options,\n pg_get_expr(indpred, indrelid, true) AS condition,\n amname AS index_type,\n indexrelid AS index_oid\n FROM pg_class, pg_index\nLEFT JOIN pg_opclass\n ON pg_opclass.oid = ANY(pg_index.indclass::int[])\nLEFT JOIN pg_am\n ON pg_am.oid = pg_opclass.opcmethod\n JOIN pg_class AS table_rel\n ON table_rel.oid = pg_index.indrelid\n JOIN pg_namespace\n ON pg_namespace.oid = table_rel.relnamespace\n WHERE pg_class.oid = pg_index.indexrelid\nAND pg_namespace.nspname = 'public'\n GROUP BY table_name, name, column_positions, indisprimary, indisunique, index_options, condition, index_type, index_oid\n".freeze
- EXPRESSION_INDEXES_QUERY =
" WITH index_ids AS (SELECT unnest(?) AS index_id),\n elements AS (SELECT unnest(?) AS element)\n SELECT index_id,\n array_agg(pg_get_indexdef(index_id, element, 't')) AS definitions\n FROM index_ids, elements\nGROUP BY index_id;\n".freeze
- CONSTRAINTS_QUERY =
" SELECT owner_table.relname AS table_name,\n constr.conname AS name,\n pg_get_expr(conbin, conrelid, true) AS condition,\n referenced_table.relname AS referenced,\n conkey,\n confkey,\n confupdtype AS on_update,\n confdeltype AS on_delete,\n condeferrable AS deferrable,\n constr.contype AS type\n FROM pg_constraint AS constr\n JOIN pg_class AS owner_table\n ON owner_table.oid = constr.conrelid\nLEFT JOIN pg_class AS referenced_table\n ON referenced_table.oid = constr.confrelid\n WHERE contype IN ('c', 'f');\n".freeze
- ENUMS_QUERY =
" SELECT t.typname AS name,\n array_agg(e.enumlabel ORDER BY e.enumsortorder) AS values\n FROM pg_enum AS e\n JOIN pg_type AS t\nON t.oid = e.enumtypid\nGROUP BY name\n".freeze
- EXTENSIONS_QUERY =
"SELECT extname\n FROM pg_extension\n WHERE extname != 'plpgsql'\n".freeze
- VERSION =
'0.2.1'