Skip to content

Commit f8e3acf

Browse files
committed
first pass at bug repro
1 parent 69d8a95 commit f8e3acf

1 file changed

Lines changed: 91 additions & 0 deletions

File tree

testing/go/foreign_keys_test.go

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -988,6 +988,97 @@ func TestForeignKeys(t *testing.T) {
988988
},
989989
},
990990
},
991+
{
992+
Name: "merging",
993+
Focus: true,
994+
SetUpScript: []string{
995+
`CREATE TABLE "evaluation_job_config" (
996+
"tenant_id" varchar(256) NOT NULL,
997+
"id" varchar(256) NOT NULL,
998+
"project_id" varchar(256) NOT NULL,
999+
"job_filters" jsonb,
1000+
"created_at" timestamp DEFAULT now() NOT NULL,
1001+
"updated_at" timestamp DEFAULT now() NOT NULL,
1002+
CONSTRAINT "evaluation_job_config_tenant_id_project_id_id_pk" PRIMARY KEY("tenant_id","project_id","id")
1003+
);`,
1004+
`CREATE TABLE "evaluation_job_config_evaluator_relations" (
1005+
"tenant_id" varchar(256) NOT NULL,
1006+
"id" varchar(256) NOT NULL,
1007+
"project_id" varchar(256) NOT NULL,
1008+
"evaluation_job_config_id" text NOT NULL,
1009+
"evaluator_id" text NOT NULL,
1010+
"created_at" timestamp DEFAULT now() NOT NULL,
1011+
"updated_at" timestamp DEFAULT now() NOT NULL,
1012+
CONSTRAINT "eval_job_cfg_evaluator_rel_pk" PRIMARY KEY("tenant_id","project_id","id")
1013+
);`,
1014+
`CREATE TABLE "agent" (
1015+
"tenant_id" varchar(256) NOT NULL,
1016+
"id" varchar(256) NOT NULL,
1017+
"project_id" varchar(256) NOT NULL,
1018+
"name" varchar(256) NOT NULL,
1019+
"description" text,
1020+
"default_sub_agent_id" varchar(256),
1021+
"context_config_id" varchar(256),
1022+
"models" jsonb,
1023+
"status_updates" jsonb,
1024+
"prompt" text,
1025+
"stop_when" jsonb,
1026+
"created_at" timestamp DEFAULT now() NOT NULL,
1027+
"updated_at" timestamp DEFAULT now() NOT NULL,
1028+
CONSTRAINT "agent_tenant_id_project_id_id_pk" PRIMARY KEY("tenant_id","project_id","id")
1029+
);`,
1030+
`ALTER TABLE "evaluation_job_config" ADD CONSTRAINT "evaluation_job_config_project_fk" FOREIGN KEY ("tenant_id","project_id") REFERENCES "public"."projects"("tenant_id","id") ON DELETE cascade ON UPDATE no action;`,
1031+
`ALTER TABLE "evaluation_job_config_evaluator_relations" ADD CONSTRAINT "eval_job_cfg_evaluator_rel_job_cfg_fk" FOREIGN KEY ("tenant_id","project_id","evaluation_job_config_id") REFERENCES "public"."evaluation_job_config"("tenant_id","project_id","id") ON DELETE cascade ON UPDATE no action;`,
1032+
`INSERT INTO evaluation_job_config VALUES ('tenant1', 'jobconfig1', 'project1', '{"filter": "all"}', now(), now());`,
1033+
`INSERT INTO evaluation_job_config_evaluator_relations VALUES ('tenant1', 'rel1', 'project1', 'jobconfig1', 'evaluator1', now(), now());`,
1034+
`INSERT INTO agent VALUES ('tenant1', 'agent1', 'project1', 'Agent One', 'First agent', null, null, '{"model": "gpt-4"}', null, null, now(), now());`,
1035+
`SELECT DOLT_COMMIT('-am', 'initial tables')`,
1036+
`SELECT DOLT_BRANCH('feature')`,
1037+
`CREATE TABLE "triggers" (
1038+
"tenant_id" varchar(256) NOT NULL,
1039+
"id" varchar(256) NOT NULL,
1040+
"project_id" varchar(256) NOT NULL,
1041+
"agent_id" varchar(256) NOT NULL,
1042+
"name" varchar(256) NOT NULL,
1043+
"description" text,
1044+
"enabled" boolean DEFAULT true NOT NULL,
1045+
"input_schema" jsonb,
1046+
"output_transform" jsonb,
1047+
"message_template" text NOT NULL,
1048+
"authentication" jsonb,
1049+
"signing_secret" text,
1050+
"created_at" timestamp DEFAULT now() NOT NULL,
1051+
"updated_at" timestamp DEFAULT now() NOT NULL,
1052+
CONSTRAINT "triggers_tenant_id_project_id_agent_id_id_pk" PRIMARY KEY("tenant_id","project_id","agent_id","id")
1053+
);`,
1054+
`ALTER TABLE "triggers" ADD CONSTRAINT "triggers_agent_fk" FOREIGN KEY ("tenant_id","project_id","agent_id") REFERENCES "public"."agent"("tenant_id","project_id","id") ON DELETE cascade ON UPDATE no action;`,
1055+
},
1056+
Assertions: []ScriptTestAssertion{
1057+
{
1058+
Query: `ALTER TABLE ONLY public.hn_stories
1059+
ADD CONSTRAINT hn_stories_website_url_fkey FOREIGN KEY (website_url) REFERENCES public.websites(url) ON UPDATE SET DEFAULT;`,
1060+
Expected: []sql.Row{},
1061+
},
1062+
{
1063+
Query: "UPDATE public.websites SET url = 'http://fake.com' WHERE title = 'foo1';",
1064+
},
1065+
{
1066+
Query: "SELECT * FROM public.hn_stories where title = 'test1';",
1067+
Expected: []sql.Row{{"test1", nil}},
1068+
},
1069+
{
1070+
Query: "ALTER TABLE hn_stories ALTER COLUMN website_url SET DEFAULT (title);",
1071+
Expected: []sql.Row{},
1072+
},
1073+
{
1074+
Query: "UPDATE public.websites SET url = 'http://doltdb.com' WHERE title = 'foo2';",
1075+
},
1076+
{
1077+
Query: "SELECT * FROM public.hn_stories where title = 'test2';",
1078+
Expected: []sql.Row{{"test2", "test2"}},
1079+
},
1080+
},
1081+
},
9911082
},
9921083
)
9931084
}

0 commit comments

Comments
 (0)