From: Kees Monshouwer Date: Fri, 11 Apr 2014 14:47:14 +0000 (+0200) Subject: gpgsql schema update improvements X-Git-Tag: rec-3.6.0-rc1~65^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=70005f1e19c2c2e61b1ec607da2ae95350a8a2ac;p=thirdparty%2Fpdns.git gpgsql schema update improvements --- diff --git a/modules/gpgsqlbackend/Makefile.am b/modules/gpgsqlbackend/Makefile.am index 06bdc354af..96cafb3c3a 100644 --- a/modules/gpgsqlbackend/Makefile.am +++ b/modules/gpgsqlbackend/Makefile.am @@ -2,7 +2,7 @@ AM_CPPFLAGS=-I@PGSQL_incdir@ @THREADFLAGS@ lib_LTLIBRARIES = libgpgsqlbackend.la EXTRA_DIST=OBJECTFILES OBJECTLIBS \ - schema.pgsql.sql nodnssec-3.x_to_3.4_schema.pgsql.sql + schema.pgsql.sql nodnssec-3.x_to_3.4_schema.pgsql.sql dnssec-3.x_to_3.4_schema.pgsql.sql libgpgsqlbackend_la_SOURCES=gpgsqlbackend.cc gpgsqlbackend.hh \ spgsql.hh spgsql.cc diff --git a/modules/gpgsqlbackend/dnssec-3.x_to_3.4_schema.pgsql.sql b/modules/gpgsqlbackend/dnssec-3.x_to_3.4_schema.pgsql.sql new file mode 100644 index 0000000000..eaaaa5b949 --- /dev/null +++ b/modules/gpgsqlbackend/dnssec-3.x_to_3.4_schema.pgsql.sql @@ -0,0 +1,31 @@ +/* Uncomment next 2 lines for versions <= 3.3 */ +/* ALTER TABLE domains ADD CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT))); */ +/* ALTER TABLE tsigkeys ADD CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT))); */ + +ALTER TABLE records ADD disabled BOOL DEFAULT 'f'; +ALTER TABLE records ALTER COLUMN auth SET DEFAULT 't'; +ALTER TABLE records ALTER COLUMN type TYPE VARCHAR(10); +ALTER TABLE supermasters ALTER COLUMN ip TYPE INET USING ip::INET; +ALTER TABLE supermasters ADD CONSTRAINT supermasters_pkey PRIMARY KEY (ip, nameserver); + +CREATE INDEX recordorder ON records (domain_id, ordername text_pattern_ops); +DROP INDEX IF EXISTS orderindex; + + +CREATE TABLE comments ( + id SERIAL PRIMARY KEY, + domain_id INT NOT NULL, + name VARCHAR(255) NOT NULL, + type VARCHAR(10) NOT NULL, + modified_at INT NOT NULL, + account VARCHAR(40) DEFAULT NULL, + comment VARCHAR(65535) NOT NULL, + CONSTRAINT domain_exists + FOREIGN KEY(domain_id) REFERENCES domains(id) + ON DELETE CASCADE, + CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT))) +); + +CREATE INDEX comments_domain_id_idx ON comments (domain_id); +CREATE INDEX comments_name_type_idx ON comments (name, type); +CREATE INDEX comments_order_idx ON comments (domain_id, modified_at); diff --git a/modules/gpgsqlbackend/nodnssec-3.x_to_3.4_schema.pgsql.sql b/modules/gpgsqlbackend/nodnssec-3.x_to_3.4_schema.pgsql.sql index 0b58eac87f..8067e141ea 100644 --- a/modules/gpgsqlbackend/nodnssec-3.x_to_3.4_schema.pgsql.sql +++ b/modules/gpgsqlbackend/nodnssec-3.x_to_3.4_schema.pgsql.sql @@ -1,7 +1,12 @@ -ALTER table records ADD disabled BOOL DEFAULT 'f'; -ALTER table records ADD ordername VARCHAR(255); -ALTER table records ADD auth BOOL DEFAULT 't'; -ALTER table records ALTER COLUMN type TYPE VARCHAR(10); +/* Uncomment next line for versions <= 3.3 */ +/* ALTER TABLE domains ADD CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT))); */ + +ALTER TABLE records ADD disabled BOOL DEFAULT 'f'; +ALTER TABLE records ADD ordername VARCHAR(255); +ALTER TABLE records ADD auth BOOL DEFAULT 't'; +ALTER TABLE records ALTER COLUMN type TYPE VARCHAR(10); +ALTER TABLE supermasters ALTER COLUMN ip TYPE INET USING ip::INET; +ALTER TABLE supermasters ADD CONSTRAINT supermasters_pkey PRIMARY KEY (ip, nameserver); CREATE INDEX recordorder ON records (domain_id, ordername text_pattern_ops); diff --git a/modules/gpgsqlbackend/schema.pgsql.sql b/modules/gpgsqlbackend/schema.pgsql.sql index 3423e8df0d..7d49efcaed 100644 --- a/modules/gpgsqlbackend/schema.pgsql.sql +++ b/modules/gpgsqlbackend/schema.pgsql.sql @@ -3,7 +3,7 @@ CREATE TABLE domains ( name VARCHAR(255) NOT NULL, master VARCHAR(128) DEFAULT NULL, last_check INT DEFAULT NULL, - type VARCHAR(10) NOT NULL, + type VARCHAR(6) NOT NULL, notified_serial INT DEFAULT NULL, account VARCHAR(40) DEFAULT NULL, CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT))) diff --git a/pdns/docs/pdns.xml b/pdns/docs/pdns.xml index affd0d2e82..268614e483 100644 --- a/pdns/docs/pdns.xml +++ b/pdns/docs/pdns.xml @@ -12461,29 +12461,7 @@ create index recordorder on records (domain_id, ordername text_pattern_ops); For gpgsql backend with nodnssec schema: For gpgsql backend with dnssec schema: - -ALTER TABLE records ADD disabled BOOLEAN DEFAULT 'f'; -ALTER TABLE records ALTER COLUMN auth SET DEFAULT 't'; - - -CREATE TABLE comments ( - id SERIAL PRIMARY KEY, - domain_id INT NOT NULL, - name VARCHAR(255) NOT NULL, - type VARCHAR(10) NOT NULL, - modified_at INT NOT NULL, - account VARCHAR(40) DEFAULT NULL, - comment VARCHAR(65535) NOT NULL, - CONSTRAINT domain_exists - FOREIGN KEY(domain_id) REFERENCES domains(id) - ON DELETE CASCADE, - CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT))) -); - -CREATE INDEX comments_domain_id_idx ON comments (domain_id); -CREATE INDEX comments_name_type_idx ON comments (name, type); -CREATE INDEX comments_order_idx ON comments (domain_id, modified_at); - + For gsqlite3 backend with nodnssec schema: For gsqlite3 backend with dnssec schema: