@@ -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