]> WPIA git - gigi.git/blob - src/club/wpia/gigi/database/upgrade/from_19.sql
add: handling of RA Agent Contract
[gigi.git] / src / club / wpia / gigi / database / upgrade / from_19.sql
1 DROP TYPE IF EXISTS "nameSchemaType";
2 CREATE TYPE "nameSchemaType" AS ENUM ('single', 'western');
3
4 DROP TABLE IF EXISTS "names";
5 CREATE TABLE "names" (
6   "id" serial NOT NULL,
7   "uid" int NOT NULL,
8   "type" "nameSchemaType" NOT NULL,
9   "created" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
10   "deleted" timestamp NULL DEFAULT NULL,
11   "deprecated" timestamp NULL DEFAULT NULL,
12   PRIMARY KEY ("id")
13 );
14
15
16 DROP TABLE IF EXISTS "nameParts";
17 DROP TYPE IF EXISTS "namePartType";
18 CREATE TYPE "namePartType" AS ENUM ('first-name', 'last-name', 'single-name', 'suffix');
19
20 CREATE TABLE "nameParts" (
21   "id" int NOT NULL,
22   "position" int NOT NULL,
23   "type" "namePartType" NOT NULL,
24   "value" varchar(255) NOT NULL
25 );
26
27 INSERT INTO "names" ("uid", "type") (SELECT "id" as "uid", 'western'::"nameSchemaType" AS "type" from users ORDER BY id);
28 INSERT INTO "nameParts" SELECT names.id, 1, 'first-name'::"namePartType", "fname" FROM "users" INNER JOIN "names" ON "names"."uid" = "users"."id";
29
30 INSERT INTO "nameParts" SELECT names.id, 2, 'first-name'::"namePartType", "mname" FROM "users" INNER JOIN "names" ON "names"."uid" = "users"."id" WHERE "mname" != '';
31 INSERT INTO "nameParts" SELECT names.id, 3, 'last-name'::"namePartType", "lname" FROM "users" INNER JOIN "names" ON "names"."uid" = "users"."id";
32 INSERT INTO "nameParts" SELECT names.id, 4, 'suffix'::"namePartType", "suffix" FROM "users" INNER JOIN "names" ON "names"."uid" = "users"."id" WHERE "suffix" != '';
33
34 UPDATE "notary" SET "to"=(SELECT "id" FROM "names" WHERE "uid"="notary"."to");
35
36 ALTER TABLE "users" ADD "preferredName" int;
37 UPDATE "users" SET "preferredName"=(SELECT "id" FROM "names" WHERE "uid"="users"."id");
38 ALTER TABLE "users" DROP "fname";
39 ALTER TABLE "users" DROP "mname";
40 ALTER TABLE "users" DROP "lname";
41 ALTER TABLE "users" DROP "suffix";