From: Thomas Markwalder Date: Wed, 15 May 2024 14:04:22 +0000 (+0000) Subject: [#3396] Modify leaseX expire columns to accept null X-Git-Tag: Kea-2.6.0~59 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1cab163b8841255868863cfb4571595db17f6d63;p=thirdparty%2Fkea.git [#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 --- 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 "$@" <