# 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
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
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;
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
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;