2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-31 05:55:28 +00:00

[#90] modification timestamps now use time zones

This commit is contained in:
Tomek Mrugalski
2021-06-08 19:11:50 +02:00
parent 7566b8944a
commit f652a7ce41

View File

@@ -38,7 +38,7 @@ psql "$@" >/dev/null <<EOF
START TRANSACTION;
-- Adding on update trigger in MySQL is as easy as using this column definition in CREATE TABLE:
-- modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-- modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-- Sadly, Postgres has its own convoluted way of doing this. Luckily, the update pattern is
-- the same in many tables, so we can define the trigger function once and the use it everywhere.
@@ -170,7 +170,7 @@ CREATE TABLE dhcp6_subnet (
subnet_prefix varchar(64) UNIQUE NOT NULL,
client_class varchar(128) DEFAULT NULL,
interface varchar(128) DEFAULT NULL,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
preferred_lifetime BIGINT DEFAULT NULL,
rapid_commit BOOLEAN DEFAULT NULL,
rebind_timer BIGINT DEFAULT NULL,
@@ -224,7 +224,7 @@ CREATE TABLE dhcp6_pool (
start_address inet NOT NULL,
end_address inet NOT NULL,
subnet_id BIGINT NOT NULL,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
client_class varchar(128) DEFAULT NULL,
require_client_classes TEXT DEFAULT NULL,
user_context JSON DEFAULT NULL,
@@ -245,7 +245,7 @@ CREATE TABLE dhcp6_pd_pool (
prefix_length SMALLINT NOT NULL,
delegated_prefix_length SMALLINT NOT NULL,
subnet_id BIGINT NOT NULL,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
excluded_prefix varchar(45) DEFAULT NULL,
excluded_prefix_length SMALLINT NOT NULL,
client_class varchar(128) DEFAULT NULL,
@@ -270,7 +270,7 @@ CREATE TRIGGER dhcp6_pd_pool_modification_ts_update
CREATE TABLE dhcp6_subnet_server (
subnet_id BIGINT NOT NULL,
server_id BIGINT NOT NULL,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (subnet_id, server_id),
CONSTRAINT fk_dhcp6_subnet_server_server_id FOREIGN KEY (server_id) REFERENCES dhcp6_server (id),
CONSTRAINT fk_dhcp6_subnet_server_subnet_id FOREIGN KEY (subnet_id) REFERENCES dhcp6_subnet (subnet_id),
@@ -290,7 +290,7 @@ CREATE TABLE dhcp6_global_parameter (
id SERIAL PRIMARY KEY NOT NULL,
name varchar(128) NOT NULL,
value TEXT NOT NULL,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
parameter_type SMALLINT NOT NULL,
CONSTRAINT fk_dhcp6_global_parameter_type FOREIGN KEY (parameter_type) REFERENCES parameter_data_type(id)
);
@@ -306,7 +306,7 @@ CREATE TRIGGER dhcp6_global_parameter_modification_ts_update
CREATE TABLE dhcp6_global_parameter_server (
parameter_id BIGINT NOT NULL,
server_id BIGINT NOT NULL,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (parameter_id, server_id),
CONSTRAINT fk_dhcp6_global_parameter_server_parameter_id FOREIGN KEY (parameter_id) REFERENCES dhcp6_global_parameter(id) ON DELETE CASCADE ON UPDATE NO ACTION,
CONSTRAINT fk_dhcp6_global_parameter_server_server_id FOREIGN KEY (server_id) REFERENCES dhcp6_server(id) ON DELETE CASCADE ON UPDATE NO ACTION
@@ -334,7 +334,7 @@ CREATE TRIGGER dhcp6_options_modification_ts_update
CREATE TABLE dhcp6_options_server (
option_id BIGINT NOT NULL,
server_id BIGINT NOT NULL,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (option_id, server_id),
CONSTRAINT fk_dhcp6_options_server_option_id FOREIGN KEY (option_id) REFERENCES dhcp6_options (option_id) ON DELETE CASCADE ON UPDATE NO ACTION,
CONSTRAINT fk_dhcp6_options_server_server_id FOREIGN KEY (server_id) REFERENCES dhcp6_server (id) ON DELETE CASCADE ON UPDATE NO ACTION
@@ -354,7 +354,7 @@ CREATE TABLE dhcp6_option_def (
name VARCHAR(128) NOT NULL,
space VARCHAR(128) NOT NULL,
type SMALLINT NOT NULL,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
is_array BOOLEAN NOT NULL,
encapsulate VARCHAR(128) NOT NULL,
record_types VARCHAR DEFAULT NULL,
@@ -371,7 +371,7 @@ CREATE TRIGGER dhcp6_option_def_modification_ts_update
CREATE TABLE dhcp6_option_def_server (
option_def_id BIGINT NOT NULL REFERENCES dhcp6_option_def (id) ON DELETE CASCADE ON UPDATE NO ACTION,
server_id BIGINT NOT NULL REFERENCES dhcp6_server (id) ON DELETE CASCADE ON UPDATE NO ACTION,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (option_def_id, server_id)
);
CREATE TRIGGER dhcp6_option_def_server_modification_ts_update
@@ -382,7 +382,7 @@ CREATE TRIGGER dhcp6_option_def_server_modification_ts_update
-- Now create two tables for audit revisions...
CREATE TABLE dhcp6_audit_revision (
id SERIAL PRIMARY KEY NOT NULL,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
log_message text DEFAULT NULL,
server_id BIGINT DEFAULT NULL
);
@@ -427,7 +427,7 @@ CREATE TABLE dhcp4_global_parameter (
id SERIAL PRIMARY KEY NOT NULL,
name varchar(128) NOT NULL,
value TEXT NOT NULL,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
parameter_type SMALLINT NOT NULL,
CONSTRAINT fk_dhcp6_global_parameter_type FOREIGN KEY (parameter_type) REFERENCES parameter_data_type(id)
);
@@ -442,7 +442,7 @@ CREATE TRIGGER dhcp4_global_parameter_modification_ts_update
CREATE TABLE dhcp4_global_parameter_server (
parameter_id BIGINT NOT NULL,
server_id BIGINT NOT NULL,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (parameter_id, server_id),
CONSTRAINT fk_dhcp4_global_parameter_server_parameter_id FOREIGN KEY (parameter_id) REFERENCES dhcp4_global_parameter(id) ON DELETE CASCADE ON UPDATE NO ACTION,
CONSTRAINT fk_dhcp4_global_parameter_server_server_id FOREIGN KEY (server_id) REFERENCES dhcp4_server(id) ON DELETE CASCADE ON UPDATE NO ACTION
@@ -510,7 +510,7 @@ CREATE TABLE dhcp4_subnet (
client_class varchar(128) DEFAULT NULL,
interface varchar(128) DEFAULT NULL,
match_client_id BOOLEAN DEFAULT NULL,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
next_server inet DEFAULT NULL,
rebind_timer BIGINT DEFAULT NULL,
relay TEXT DEFAULT NULL,
@@ -555,7 +555,7 @@ CREATE TABLE dhcp4_pool (
start_address inet NOT NULL,
end_address inet NOT NULL,
subnet_id BIGINT NOT NULL,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
client_class varchar(128) DEFAULT NULL,
require_client_classes TEXT DEFAULT NULL,
user_context JSON DEFAULT NULL,
@@ -573,7 +573,7 @@ CREATE TRIGGER dhcp4_pool_modification_ts_update
ALTER TABLE dhcp4_options
ADD COLUMN shared_network_name VARCHAR(128) DEFAULT NULL,
ADD COLUMN pool_id BIGINT DEFAULT NULL,
ADD COLUMN modification_ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
ADD COLUMN modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
ADD CONSTRAINT fk_dhcp4_options_pool FOREIGN KEY (pool_id) REFERENCES dhcp4_pool (id) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT fk_dhcp4_options_shared_network FOREIGN KEY (shared_network_name) REFERENCES dhcp4_shared_network (name) ON DELETE CASCADE ON UPDATE CASCADE;
@@ -590,7 +590,7 @@ CREATE TABLE dhcp4_option_def (
name VARCHAR(128) NOT NULL,
space VARCHAR(128) NOT NULL,
type SMALLINT NOT NULL,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
is_array BOOLEAN NOT NULL,
encapsulate VARCHAR(128) NOT NULL,
record_types VARCHAR DEFAULT NULL,
@@ -607,7 +607,7 @@ CREATE TRIGGER dhcp4_option_def_modification_ts_update
CREATE TABLE dhcp4_option_def_server (
option_def_id BIGINT NOT NULL REFERENCES dhcp6_option_def (id) ON DELETE CASCADE ON UPDATE NO ACTION,
server_id BIGINT NOT NULL REFERENCES dhcp4_server (id) ON DELETE CASCADE ON UPDATE NO ACTION,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (option_def_id, server_id)
);
CREATE TRIGGER dhcp4_option_def_server_modification_ts_update
@@ -619,7 +619,7 @@ CREATE TRIGGER dhcp4_option_def_server_modification_ts_update
CREATE TABLE dhcp4_options_server (
option_id BIGINT NOT NULL,
server_id BIGINT NOT NULL,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (option_id, server_id),
CONSTRAINT fk_dhcp6_options_server_option_id FOREIGN KEY (option_id) REFERENCES dhcp4_options (option_id) ON DELETE CASCADE ON UPDATE NO ACTION,
CONSTRAINT fk_dhcp6_options_server_server_id FOREIGN KEY (server_id) REFERENCES dhcp4_server (id) ON DELETE CASCADE ON UPDATE NO ACTION
@@ -634,7 +634,7 @@ CREATE TRIGGER dhcp4_options_server_modification_ts_update
-- Now create two tables for audit revisions...
CREATE TABLE dhcp4_audit_revision (
id SERIAL PRIMARY KEY NOT NULL,
modification_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
modification_ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
log_message text DEFAULT NULL,
server_id BIGINT DEFAULT NULL
);