]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#3396] Modify leaseX expire columns to accept null
authorThomas Markwalder <tmark@isc.org>
Wed, 15 May 2024 14:04:22 +0000 (14:04 +0000)
committerThomas Markwalder <tmark@isc.org>
Tue, 21 May 2024 17:58:34 +0000 (13:58 -0400)
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
src/share/database/scripts/mysql/dhcpdb_create.mysql
src/share/database/scripts/mysql/upgrade_018_to_019.sh.in
src/share/database/scripts/mysql/upgrade_020_to_021.sh.in

index 27cd78f5ace8ab67bc64959f166744d79fb6e110..3dd2c7891422b2b2e384a721a1421b7471995a41 100644 (file)
--- 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.
index c71a00a930174a7b442864691dc8b1f108856d40..593f2a2822a1dff51bacaffa69677424f8762d9a 100644 (file)
@@ -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';
index b93144fc154ecd9dcee3595441b3779b124d40ef..8a9835d178c55dd60daf965ff5a2988955e51033 100644 (file)
@@ -57,6 +57,8 @@ mysql "$@" <<EOF
 -- 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);
index 125a50ab1b2bbe90f8f2fb69adada14998646d4f..980e452ca5f04c46134264afd8c335034dea3b86 100644 (file)
@@ -59,6 +59,10 @@ mysql "$@" <<EOF
 -- 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';