From 1cab163b8841255868863cfb4571595db17f6d63 Mon Sep 17 00:00:00 2001 From: Thomas Markwalder Date: Wed, 15 May 2024 14:04:22 +0000 Subject: [PATCH] [#3396] Modify leaseX expire columns to accept null src/share/database/scripts/mysql/dhcpdb_create.mysql Change expire column in lease4 and lease6 to accept NULL src/share/database/scripts/mysql/upgrade_018_to_019.sh.in Change expire column in lease6 to accept NULL src/share/database/scripts/mysql/upgrade_020_to_021.sh.in Change expire column in lease4 and lease6 to accept NULL Added ChangeLog entry --- ChangeLog | 9 +++++++++ src/share/database/scripts/mysql/dhcpdb_create.mysql | 6 ++++++ .../database/scripts/mysql/upgrade_018_to_019.sh.in | 2 ++ .../database/scripts/mysql/upgrade_020_to_021.sh.in | 4 ++++ 4 files changed, 21 insertions(+) diff --git a/ChangeLog b/ChangeLog index 27cd78f5ac..3dd2c78914 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2235. [bug] tmark + Remove defaulted on-update behavior from 'expire' + columns in lease4 and lease6 tables for MySQL/Mariadb + lease databases. Corrects an issue when upgrading from + releases prior to Kea 2.4.0 to Kea 2.4.0 or later with + Mariadb version 10.10 or later that causes all existing + v6 leases to expire immediately. + (Gitlab #3396) + 2234. [build] andrei Code migrated from mysql_ssl_set which was deprecated in MySQL 8.0.35 to mysql_options. diff --git a/src/share/database/scripts/mysql/dhcpdb_create.mysql b/src/share/database/scripts/mysql/dhcpdb_create.mysql index c71a00a930..593f2a2822 100644 --- a/src/share/database/scripts/mysql/dhcpdb_create.mysql +++ b/src/share/database/scripts/mysql/dhcpdb_create.mysql @@ -5680,6 +5680,8 @@ UPDATE schema_version -- We have to play some games to make lease address -- binary, primary key and retain its place as first -- column. +-- Turn off Mariadb default/on-update for expire column +ALTER TABLE lease6 MODIFY expire timestamp NULL; -- Store binary values for address in binaddr column DROP INDEX lease6_by_binaddr ON lease6; UPDATE lease6 set binaddr = inet6_aton(address); @@ -5855,6 +5857,10 @@ UPDATE schema_version -- Add subnet id and address index for lease6. CREATE INDEX lease6_by_subnet_id_address ON lease6 (subnet_id, address ASC); +-- Turn off Mariadb default/on-update for expire column +ALTER TABLE lease4 MODIFY expire timestamp NULL; +ALTER TABLE lease6 MODIFY expire timestamp NULL; + -- Update the schema version number. UPDATE schema_version SET version = '21', minor = '0'; diff --git a/src/share/database/scripts/mysql/upgrade_018_to_019.sh.in b/src/share/database/scripts/mysql/upgrade_018_to_019.sh.in index b93144fc15..8a9835d178 100644 --- a/src/share/database/scripts/mysql/upgrade_018_to_019.sh.in +++ b/src/share/database/scripts/mysql/upgrade_018_to_019.sh.in @@ -57,6 +57,8 @@ mysql "$@" <