Skip to content

Commit 55c6bea

Browse files
committed
feat: add metaschema_public.enum table schema
- Add enum table with id, database_id, schema_id, name, values text[], plus standard metadata columns - FKs to database and schema tables, UNIQUE(schema_id, name) - Indexes on schema_id and database_id - Deploy/revert/verify migration files - Update pgpm.plan and compiled SQL
1 parent 8144027 commit 55c6bea

5 files changed

Lines changed: 88 additions & 0 deletions

File tree

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
-- Deploy schemas/metaschema_public/tables/enum/table to pg
2+
3+
-- requires: schemas/metaschema_public/schema
4+
-- requires: schemas/metaschema_public/tables/database/table
5+
-- requires: schemas/metaschema_public/tables/schema/table
6+
-- requires: schemas/metaschema_public/types/object_category
7+
8+
BEGIN;
9+
10+
CREATE TABLE metaschema_public.enum (
11+
id uuid PRIMARY KEY DEFAULT uuid_generate_v4 (),
12+
database_id uuid NOT NULL,
13+
schema_id uuid NOT NULL,
14+
name text NOT NULL,
15+
16+
label text,
17+
description text,
18+
19+
values text[] NOT NULL DEFAULT '{}',
20+
21+
smart_tags jsonb,
22+
23+
category metaschema_public.object_category NOT NULL DEFAULT 'app',
24+
module text NULL,
25+
scope int NULL,
26+
27+
tags citext[] NOT NULL DEFAULT '{}',
28+
29+
CONSTRAINT db_fkey FOREIGN KEY (database_id) REFERENCES metaschema_public.database (id) ON DELETE CASCADE,
30+
CONSTRAINT schema_fkey FOREIGN KEY (schema_id) REFERENCES metaschema_public.schema (id) ON DELETE CASCADE,
31+
32+
UNIQUE (schema_id, name)
33+
);
34+
35+
COMMENT ON CONSTRAINT db_fkey ON metaschema_public.enum IS E'@omit manyToMany';
36+
COMMENT ON CONSTRAINT schema_fkey ON metaschema_public.enum IS E'@omit manyToMany';
37+
38+
CREATE INDEX enum_schema_id_idx ON metaschema_public.enum ( schema_id );
39+
CREATE INDEX enum_database_id_idx ON metaschema_public.enum ( database_id );
40+
41+
COMMIT;

packages/metaschema-schema/pgpm.plan

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,4 @@ schemas/metaschema_public/tables/view_table/table [schemas/metaschema_public/sch
2828
schemas/metaschema_public/tables/view_grant/table [schemas/metaschema_public/schema schemas/metaschema_public/tables/view/table schemas/metaschema_public/tables/database/table] 2026-01-23T00:00:00Z devin <devin@cognition.ai> # add schemas/metaschema_public/tables/view_grant/table
2929
schemas/metaschema_public/tables/view_rule/table [schemas/metaschema_public/schema schemas/metaschema_public/tables/view/table schemas/metaschema_public/tables/database/table] 2026-01-23T00:00:00Z devin <devin@cognition.ai> # add schemas/metaschema_public/tables/view_rule/table
3030
schemas/metaschema_public/tables/default_privilege/table [schemas/metaschema_public/schema schemas/metaschema_public/tables/schema/table schemas/metaschema_public/tables/database/table] 2026-02-27T00:00:00Z Constructive <developers@constructive.io> # add schemas/metaschema_public/tables/default_privilege/table
31+
schemas/metaschema_public/tables/enum/table [schemas/metaschema_public/schema schemas/metaschema_public/tables/database/table schemas/metaschema_public/tables/schema/table schemas/metaschema_public/types/object_category] 2026-03-15T00:00:00Z devin <devin@cognition.ai> # add schemas/metaschema_public/tables/enum/table
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
-- Revert schemas/metaschema_public/tables/enum/table from pg
2+
3+
BEGIN;
4+
5+
DROP TABLE metaschema_public.enum;
6+
7+
COMMIT;

packages/metaschema-schema/sql/metaschema-schema--0.15.5.sql

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,3 +508,35 @@ COMMENT ON CONSTRAINT db_fkey ON metaschema_public.unique_constraint IS '@omit m
508508
CREATE INDEX unique_constraint_table_id_idx ON metaschema_public.unique_constraint (table_id);
509509

510510
CREATE INDEX unique_constraint_database_id_idx ON metaschema_public.unique_constraint (database_id);
511+
512+
CREATE TABLE metaschema_public.enum (
513+
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
514+
database_id uuid NOT NULL,
515+
schema_id uuid NOT NULL,
516+
name text NOT NULL,
517+
label text,
518+
description text,
519+
values text[] NOT NULL DEFAULT '{}',
520+
smart_tags jsonb,
521+
category metaschema_public.object_category NOT NULL DEFAULT 'app',
522+
module text NULL,
523+
scope int NULL,
524+
tags citext[] NOT NULL DEFAULT '{}',
525+
CONSTRAINT db_fkey
526+
FOREIGN KEY(database_id)
527+
REFERENCES metaschema_public.database (id)
528+
ON DELETE CASCADE,
529+
CONSTRAINT schema_fkey
530+
FOREIGN KEY(schema_id)
531+
REFERENCES metaschema_public.schema (id)
532+
ON DELETE CASCADE,
533+
UNIQUE (schema_id, name)
534+
);
535+
536+
COMMENT ON CONSTRAINT db_fkey ON metaschema_public.enum IS '@omit manyToMany';
537+
538+
COMMENT ON CONSTRAINT schema_fkey ON metaschema_public.enum IS '@omit manyToMany';
539+
540+
CREATE INDEX enum_schema_id_idx ON metaschema_public.enum (schema_id);
541+
542+
CREATE INDEX enum_database_id_idx ON metaschema_public.enum (database_id);
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
-- Verify schemas/metaschema_public/tables/enum/table on pg
2+
3+
BEGIN;
4+
5+
SELECT verify_table ('metaschema_public.enum');
6+
7+
ROLLBACK;

0 commit comments

Comments
 (0)