From: Thomas Markwalder Date: Wed, 21 Jun 2023 14:01:24 +0000 (-0400) Subject: [#2909] More review fixes X-Git-Tag: Kea-2.4.0~148 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ce586ca1844bb100edbf7d8294c2a0b933177e14;p=thirdparty%2Fkea.git [#2909] More review fixes modified: src/bin/admin/tests/mysql_tests.sh.in src/share/database/scripts/mysql/dhcpdb_create.mysql src/share/database/scripts/mysql/upgrade_018_to_019.sh.in --- diff --git a/src/bin/admin/tests/mysql_tests.sh.in b/src/bin/admin/tests/mysql_tests.sh.in index e83075e458..55bbad3ad4 100644 --- a/src/bin/admin/tests/mysql_tests.sh.in +++ b/src/bin/admin/tests/mysql_tests.sh.in @@ -2824,7 +2824,7 @@ mysql_update_v6_addresses_to_binary() { # verify the upgrade mechanisms which convert empty duid values # # Initialize database to schema 1.0. - mysql -u"${db_user}" -p"${db_password}" "${db_name}" < "/home/tmark/labs/build/keadev/sandbox/git.mysql-2909/kea/src/bin/admin/tests/dhcpdb_create_1.0.mysql" + mysql -u"${db_user}" -p"${db_password}" "${db_name}" < "@abs_top_srcdir@/src/bin/admin/tests/dhcpdb_create_1.0.mysql" # Now upgrade to schema 18.0 mysql_upgrade_schema_to_version 18.0 diff --git a/src/share/database/scripts/mysql/dhcpdb_create.mysql b/src/share/database/scripts/mysql/dhcpdb_create.mysql index 67640acad3..53fdd0c28f 100644 --- a/src/share/database/scripts/mysql/dhcpdb_create.mysql +++ b/src/share/database/scripts/mysql/dhcpdb_create.mysql @@ -5685,7 +5685,9 @@ DROP INDEX lease6_by_binaddr ON lease6; UPDATE lease6 set binaddr = inet6_aton(address); ALTER TABLE lease6 DROP PRIMARY KEY, ADD PRIMARY KEY (binaddr); -- Wipe existing address column contents so we can change data type -UPDATE lease6 set address = '::'; +-- First remove the NULL constraint then set contents NULL +ALTER TABLE lease6 MODIFY COLUMN address VARCHAR(39) DEFAULT NULL; +UPDATE lease6 set address = NULL; -- Change address data type ALTER TABLE lease6 MODIFY COLUMN address BINARY(16); -- Copy the binary values back to address @@ -5700,7 +5702,9 @@ ALTER TABLE lease6 DROP COLUMN binaddr; ALTER TABLE ipv6_reservations ADD COLUMN binaddr BINARY(16); UPDATE ipv6_reservations set binaddr = inet6_aton(address); -- Wipe existing address column contents so we can change data type -UPDATE ipv6_reservations set address = '::'; +-- First remove the NULL constraint then set contents NULL +ALTER TABLE ipv6_reservations MODIFY COLUMN address VARCHAR(39) DEFAULT NULL; +UPDATE ipv6_reservations set address = NULL; ALTER TABLE ipv6_reservations MODIFY COLUMN address BINARY(16); UPDATE ipv6_reservations set address = binaddr; ALTER TABLE ipv6_reservations DROP COLUMN binaddr; 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 831bcbfd61..7f7557d767 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 @@ -61,7 +61,9 @@ DROP INDEX lease6_by_binaddr ON lease6; UPDATE lease6 set binaddr = inet6_aton(address); ALTER TABLE lease6 DROP PRIMARY KEY, ADD PRIMARY KEY (binaddr); -- Wipe existing address column contents so we can change data type -UPDATE lease6 set address = '::'; +-- First remove the NULL constraint then set contents NULL +ALTER TABLE lease6 MODIFY COLUMN address VARCHAR(39) DEFAULT NULL; +UPDATE lease6 set address = NULL; -- Change address data type ALTER TABLE lease6 MODIFY COLUMN address BINARY(16); -- Copy the binary values back to address @@ -76,7 +78,9 @@ ALTER TABLE lease6 DROP COLUMN binaddr; ALTER TABLE ipv6_reservations ADD COLUMN binaddr BINARY(16); UPDATE ipv6_reservations set binaddr = inet6_aton(address); -- Wipe existing address column contents so we can change data type -UPDATE ipv6_reservations set address = '::'; +-- First remove the NULL constraint then set contents NULL +ALTER TABLE ipv6_reservations MODIFY COLUMN address VARCHAR(39) DEFAULT NULL; +UPDATE ipv6_reservations set address = NULL; ALTER TABLE ipv6_reservations MODIFY COLUMN address BINARY(16); UPDATE ipv6_reservations set address = binaddr; ALTER TABLE ipv6_reservations DROP COLUMN binaddr;