removed an obsolete script
[mir.git] / dbscripts / updates / update20021213.sql
1 -- update script 2002-12-12 by Zapata
2 -- * introduces sequences and primary keys for comment_status, article_type and language
3 -- * adds is_html to comment
4 -- The first operation will fail the second time this script is run,
5 --   so running this script when it isn't needed can't do any harm.
6 --
7 -- IMPORTANT: after running this script, run the update_all_sequences script as well
8
9 BEGIN TRANSACTION;
10
11 -- task 1: add sequenced and unique id's to comment_status 
12
13   CREATE SEQUENCE "comment_status_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1;
14
15   ALTER TABLE "comment_status" RENAME TO comment_status_old;
16
17   CREATE TABLE "comment_status" (
18         "id" integer DEFAULT nextval('comment_status_id_seq') NOT NULL,
19         "name" character varying(40) NOT NULL,
20         CONSTRAINT "comment_status_pkey" PRIMARY KEY ("id")
21   );
22
23   INSERT INTO "comment_status" ("id", "name")
24   SELECT "id", "name"
25   FROM "comment_status_old";
26
27   UPDATE pg_class
28   SET
29     relowner = (SELECT relowner FROM pg_class WHERE relname='comment_status_old'),
30     relacl =   (SELECT relacl FROM pg_class WHERE relname='comment_status_old')
31   WHERE 
32     relname = 'comment_status' or relname='comment_status_id_seq';
33
34   DROP TABLE "comment_status_old";
35
36
37   
38 -- task 2: add sequenced and unique id's to article_type
39
40   CREATE SEQUENCE "article_type_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ;
41
42   ALTER TABLE "article_type" RENAME TO "article_type_old";
43
44   CREATE TABLE "article_type" (
45         "id" integer DEFAULT nextval('article_type_id_seq') NOT NULL,
46         "name" character varying(40) NOT NULL,
47         CONSTRAINT "article_type_pkey" PRIMARY KEY ("id")
48   );
49
50   INSERT INTO "article_type" ("id", "name")
51   SELECT "id", "name"
52   FROM "article_type_old";
53
54   UPDATE pg_class
55   SET
56     relowner = (SELECT relowner FROM pg_class WHERE relname='article_type_old'),
57     relacl =   (SELECT relacl FROM pg_class WHERE relname='article_type_old')
58   WHERE 
59     relname = 'article_type' or relname= 'article_type_id_seq';
60   
61   DROP TABLE "article_type_old";
62   
63
64 -- task 3: add sequenced and unique id's to language
65
66   CREATE SEQUENCE "language_id_seq" start 1 increment 1 maxvalue 2147483647 minvalue 1 cache 1 ;
67
68   ALTER TABLE "language" RENAME TO "language_old";
69   DROP INDEX language_pkey;
70   
71   CREATE TABLE "language" (
72     "id" integer DEFAULT nextval('language_id_seq') NOT NULL,
73     "name" character varying(40) NOT NULL,
74     "code" character varying(2) NOT NULL,
75     Constraint "language_pkey" Primary Key ("id")
76   );
77
78   INSERT INTO "language" ("id", "name", "code")
79   SELECT "id", "name", "code"
80   FROM "language_old";
81
82   UPDATE  pg_class
83   SET
84     relowner = (SELECT relowner FROM pg_class WHERE relname='language_old'),
85     relacl =   (SELECT relacl FROM pg_class WHERE relname='language_old')
86   WHERE 
87     relname = 'language' or relname='language_id_seq';
88   
89   DROP TABLE "language_old";
90
91   
92 -- task 4: add is_html to table comment
93   
94   ALTER TABLE "comment" RENAME TO "comment_old";
95   DROP INDEX comment_pkey;
96   
97   CREATE TABLE "comment" (
98     "id" integer DEFAULT nextval('comment_id_seq') NOT NULL,
99     "title" character varying(80) NOT NULL,
100     "creator" character varying(80) NOT NULL,
101     "description" text NOT NULL,
102     "main_url" character varying(255),
103     "email" character varying(80),
104     "address" character varying(80),
105     "phone" character varying(20),
106     "webdb_create" timestamp with time zone NOT NULL,
107     "is_published" boolean DEFAULT '1' NOT NULL,
108     "to_language" integer DEFAULT '0' NOT NULL,
109     "to_media" integer NOT NULL,
110     "to_comment_status" smallint,
111     "checksum" integer,
112     "is_html" boolean DEFAULT '0' NOT NULL,
113     Constraint "comment_pkey" Primary Key ("id")
114   );
115   
116   INSERT INTO "comment" (
117     "id", 
118     "title", 
119     "creator",
120     "description",
121     "main_url",
122     "email",
123     "address",
124     "phone",
125     "webdb_create",
126     "is_published",
127     "to_language",
128     "to_media",
129     "to_comment_status",
130     "checksum",
131     "is_html"
132   )
133   SELECT
134     "id", 
135     "title", 
136     "creator",
137     "description",
138     "main_url",
139     "email",
140     "address",
141     "phone",
142     "webdb_create",
143     "is_published",
144     "to_language",
145     "to_media",
146     "to_comment_status",
147     "checksum",
148     '0'
149   FROM "comment_old";
150
151   UPDATE  pg_class
152   SET
153     relowner = (SELECT relowner FROM pg_class WHERE relname='comment_old'),
154     relacl =   (SELECT relacl FROM pg_class WHERE relname='comment_old')
155   WHERE 
156     relname = 'comment';
157   
158   DROP TABLE "comment_old";
159
160   CREATE  INDEX "comment_checksum_index" on "comment" using btree ( "checksum" "int4_ops" );
161   CREATE  INDEX "idx_comment_to_media" on "comment" using btree ( "to_media" "int4_ops" );
162   create index idx_comment_webdb_create on comment(webdb_create);
163   CREATE  INDEX "idx_comment_tomedia_ispublished" on "comment" using btree ( "to_media" "int4_ops", "is_published" "bool_ops" );
164   CREATE UNIQUE INDEX "idx_comment_id" on "comment" using btree ( "id" "int4_ops" );
165   
166 -- that's it!
167   
168 COMMIT TRANSACTION;