From: Razvan Becheriu Date: Mon, 29 May 2023 10:36:15 +0000 (+0300) Subject: [#2886] fix schema order for pool_id and binaddr X-Git-Tag: Kea-2.3.8~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bd079a7d350e5097b641ecb607745579ffb17c47;p=thirdparty%2Fkea.git [#2886] fix schema order for pool_id and binaddr --- diff --git a/src/bin/admin/tests/mysql_tests.sh.in b/src/bin/admin/tests/mysql_tests.sh.in index 882b8a7ed8..21b22e5777 100644 --- a/src/bin/admin/tests/mysql_tests.sh.in +++ b/src/bin/admin/tests/mysql_tests.sh.in @@ -359,7 +359,7 @@ mysql_upgrade_12_to_13_test() { # Check lease6Dump*(). run_command \ - mysql_execute "INSERT INTO lease6 VALUES('::10',20,30,(SELECT FROM_UNIXTIME(1678900000)),40,50,1,60,70,1,1,'one,example,com',80,90,16,0,'{ \"a\": 1, \"b\": 2 }',NULL,0)" + mysql_execute "INSERT INTO lease6 VALUES('::10',20,30,(SELECT FROM_UNIXTIME(1678900000)),40,50,1,60,70,1,1,'one,example,com',80,90,16,0,'{ \"a\": 1, \"b\": 2 }',0, NULL)" assert_eq 0 "${EXIT_CODE}" 'INSERT INTO lease6 failed, expected exit code %d, actual %d' assert_str_eq '' "${OUTPUT}" @@ -767,9 +767,21 @@ mysql_upgrade_17_to_18_test() { run_statement "hosts_255_long_dhcp_identifier" "$qry" #lease6 duid should support 130 long strings. - qry="insert into lease6 values('::10',12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890,30,(SELECT FROM_UNIXTIME(1642000000)),40,50,1,60,70,1,1,'one.example.com',80,90,16,0,NULL,NULL,0)" + qry="insert into lease6 values('::10',12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890,30,(SELECT FROM_UNIXTIME(1642000000)),40,50,1,60,70,1,1,'one.example.com',80,90,16,0,NULL,0,NULL)" run_statement "lease6_130_long_duid" "$qry" + #lease4_pool_stat new table. + run_command \ + mysql -u"${db_user}" -p"${db_password}" "${db_name}" -e \ + 'SELECT subnet_id, pool_id, state, leases FROM lease4_pool_stat' + assert_eq 0 "${EXIT_CODE}" "lease4_pool_stat table is missing or broken. (expected status code %d, returned %d)" + + #lease6_pool_stat new table. + run_command \ + mysql -u"${db_user}" -p"${db_password}" "${db_name}" -e \ + 'SELECT subnet_id, pool_id, lease_type, state, leases FROM lease6_pool_stat' + assert_eq 0 "${EXIT_CODE}" "lease6_pool_stat table is missing or broken. (expected status code %d, returned %d)" + #lease6 new binaddr column. qry="select binaddr from lease6" run_statement "lease6" "$qry" @@ -792,18 +804,6 @@ mysql_upgrade_17_to_18_test() { mysql -u"${db_user}" -p"${db_password}" "${db_name}" -e \ 'SELECT extended_info_id, remote_id, lease_addr FROM lease6_remote_id' assert_eq 0 "${EXIT_CODE}" "lease6_remote_id table is missing or broken. (expected status code %d, returned %d)" - - #lease4_pool_stat new table. - run_command \ - mysql -u"${db_user}" -p"${db_password}" "${db_name}" -e \ - 'SELECT subnet_id, pool_id, state, leases FROM lease4_pool_stat' - assert_eq 0 "${EXIT_CODE}" "lease4_pool_stat table is missing or broken. (expected status code %d, returned %d)" - - #lease6_pool_stat new table. - run_command \ - mysql -u"${db_user}" -p"${db_password}" "${db_name}" -e \ - 'SELECT subnet_id, pool_id, lease_type, state, leases FROM lease6_pool_stat' - assert_eq 0 "${EXIT_CODE}" "lease6_pool_stat table is missing or broken. (expected status code %d, returned %d)" } mysql_upgrade_test() { @@ -1591,9 +1591,9 @@ mysql_lease6_dump_test() { # Insert the reference record insert_sql="\ -insert into lease6 values('::10',203,30,(SELECT FROM_UNIXTIME(1642000000)),40,50,1,60,70,1,1,'one.example.com',80,90,16,0,NULL,NULL,0);\ -insert into lease6 values('::11',213,30,(SELECT FROM_UNIXTIME(1643210000)),40,50,1,60,70,1,1,'',80,90,1,1,'{ }',NULL,0);\ -insert into lease6 values('::12',223,30,(SELECT FROM_UNIXTIME(1643212345)),40,50,1,60,70,1,1,'three,example,com',80,90,4,2,'{ \"a\": 1, \"b\": \"c\" }',NULL,0)" +insert into lease6 values('::10',203,30,(SELECT FROM_UNIXTIME(1642000000)),40,50,1,60,70,1,1,'one.example.com',80,90,16,0,NULL,0,NULL);\ +insert into lease6 values('::11',213,30,(SELECT FROM_UNIXTIME(1643210000)),40,50,1,60,70,1,1,'',80,90,1,1,'{ }',0,NULL);\ +insert into lease6 values('::12',223,30,(SELECT FROM_UNIXTIME(1643212345)),40,50,1,60,70,1,1,'three,example,com',80,90,4,2,'{ \"a\": 1, \"b\": \"c\" }',0,NULL)" run_command \ mysql_execute "$insert_sql" @@ -1851,7 +1851,7 @@ mysql_lease4_stat_test() { # Assigned state count should be 1 qry="select leases from lease4_pool_stat where subnet_id = 1 and pool_id = 2 and state = 0" - run_statement "#18" "$qry" 1 + run_statement "#19" "$qry" 1 # Let's wipe the whole database mysql_wipe diff --git a/src/bin/admin/tests/pgsql_tests.sh.in b/src/bin/admin/tests/pgsql_tests.sh.in index dd9ca64369..dde10aaa1a 100644 --- a/src/bin/admin/tests/pgsql_tests.sh.in +++ b/src/bin/admin/tests/pgsql_tests.sh.in @@ -387,7 +387,7 @@ pgsql_upgrade_7_0_to_8_0_test() { # Check lease6Dump*(). run_command \ - pgsql_execute "INSERT INTO lease6 VALUES('::10',E'\\\\x3230',30,TO_TIMESTAMP(1678900000),40,50,1,60,70,'t','t','one,example,com',0,E'\\\\x3830',16,0,'{ \"a\": 1, \"b\": 2 }',NULL)" + pgsql_execute "INSERT INTO lease6 VALUES('::10',E'\\\\x3230',30,TO_TIMESTAMP(1678900000),40,50,1,60,70,'t','t','one,example,com',0,E'\\\\x3830',16,0,'{ \"a\": 1, \"b\": 2 }',0,NULL)" assert_eq 0 "${EXIT_CODE}" 'INSERT INTO lease6 failed, expected exit code %d, actual %d' assert_str_eq '' "${OUTPUT}" @@ -829,6 +829,16 @@ pgsql_upgrade_15_to_16_test() { } pgsql_upgrade_16_to_17_test() { + # Added lease4_pool_stat table + run_command \ + pgsql_execute "SELECT subnet_id, pool_id, state, leases FROM lease4_pool_stat" + assert_eq 0 "${EXIT_CODE}" "lease4_pool_stat table is missing or broken. (expected status code %d, returned %d)" + + # Added lease6_pool_stat table + run_command \ + pgsql_execute "SELECT subnet_id, pool_id, lease_type, state, leases FROM lease6_pool_stat" + assert_eq 0 "${EXIT_CODE}" "lease6_pool_stat table is missing or broken. (expected status code %d, returned %d)" + # Added binaddr column to lease6 run_command \ pgsql_execute "select binaddr from lease6" @@ -843,16 +853,6 @@ pgsql_upgrade_16_to_17_test() { run_command \ pgsql_execute "select extended_info_id, remote_id, lease_addr from lease6_remote_id" assert_eq 0 "${EXIT_CODE}" "lease6_remote_id table is missing or broken. (expected status code %d, returned %d)" - - # Added lease4_pool_stat table - run_command \ - pgsql_execute "SELECT subnet_id, pool_id, state, leases FROM lease4_pool_stat" - assert_eq 0 "${EXIT_CODE}" "lease4_pool_stat table is missing or broken. (expected status code %d, returned %d)" - - # Added lease6_pool_stat table - run_command \ - pgsql_execute "SELECT subnet_id, pool_id, lease_type, state, leases FROM lease6_pool_stat" - assert_eq 0 "${EXIT_CODE}" "lease6_pool_stat table is missing or broken. (expected status code %d, returned %d)" } pgsql_upgrade_test() { @@ -1046,9 +1046,9 @@ pgsql_lease6_dump_test() { # Because shell evaluates the double quoted string one more time, they need to be doubled. # Otherwise, the value is interpreted as ASCII instead of raw bytes. insert_sql="\ -insert into lease6 values('::10',E'\\\\x323033',30,TO_TIMESTAMP(1642000000),40,50,1,60,70,'t','t','one.example.com',0,decode(encode('80','hex'),'hex'),90,16,'',NULL); \ -insert into lease6 values('::11',E'\\\\x323133',30,TO_TIMESTAMP(1643210000),40,50,1,60,70,'t','t','',1,decode(encode('80','hex'),'hex'),90,1,'{ }',NULL); \ -insert into lease6 values('::12',E'\\\\x323233',30,TO_TIMESTAMP(1643212345),40,50,1,60,70,'t','t','three,example,com',2,decode(encode('80','hex'),'hex'),90,4,'{ \"a\": 1, \"b\": \"c\" }',NULL)" +insert into lease6 values('::10',E'\\\\x323033',30,TO_TIMESTAMP(1642000000),40,50,1,60,70,'t','t','one.example.com',0,decode(encode('80','hex'),'hex'),90,16,'',0,NULL); \ +insert into lease6 values('::11',E'\\\\x323133',30,TO_TIMESTAMP(1643210000),40,50,1,60,70,'t','t','',1,decode(encode('80','hex'),'hex'),90,1,'{ }',0,NULL); \ +insert into lease6 values('::12',E'\\\\x323233',30,TO_TIMESTAMP(1643212345),40,50,1,60,70,'t','t','three,example,com',2,decode(encode('80','hex'),'hex'),90,4,'{ \"a\": 1, \"b\": \"c\" }',0,NULL)" run_command \ pgsql_execute "$insert_sql" diff --git a/src/lib/dhcpsrv/alloc_engine.cc b/src/lib/dhcpsrv/alloc_engine.cc index 9abac9f4ec..61bbe614b0 100644 --- a/src/lib/dhcpsrv/alloc_engine.cc +++ b/src/lib/dhcpsrv/alloc_engine.cc @@ -2212,7 +2212,7 @@ AllocEngine::extendLease6(ClientContext6& ctx, Lease6Ptr lease) { "pool" : "pd-pool", pool->getID(), ctx.currentIA().type_ == Lease::TYPE_NA ? "assigned-nas" : "assigned-pds")), - static_cast(1)); + static_cast(-1)); } // Add it to the removed leases list. @@ -3205,7 +3205,7 @@ AllocEngine::reclaimDeclined(const Lease6Ptr& lease) { stats_mgr.addValue(StatsMgr::generateName("subnet", subnet->getID(), StatsMgr::generateName("pool" , pool->getID(), "reclaimed-declined-addresses")), - static_cast(-1)); + static_cast(1)); } } @@ -3288,7 +3288,6 @@ AllocEngine::labelNetworkOrSubnet(SubnetPtr subnet) { return(ss.str()); } - } // namespace dhcp } // namespace isc @@ -4158,7 +4157,6 @@ AllocEngine::getOfferLft(const ClientContext4& ctx) { return (offer_lft.unspecified() ? 0 : offer_lft.get()); } - uint32_t AllocEngine::getValidLft(const ClientContext4& ctx) { // If it's BOOTP, use infinite valid lifetime. diff --git a/src/lib/dhcpsrv/flq_allocator.cc b/src/lib/dhcpsrv/flq_allocator.cc index e5eb03255e..682df3265d 100644 --- a/src/lib/dhcpsrv/flq_allocator.cc +++ b/src/lib/dhcpsrv/flq_allocator.cc @@ -63,7 +63,7 @@ FreeLeaseQueueAllocator::pickAddressInternal(const ClientClasses& client_classes return (pool_type_ == Lease::TYPE_V4 ? IOAddress::IPV4_ZERO_ADDRESS() : IOAddress::IPV6_ZERO_ADDRESS()); } // Get a random pool from the available ones. - auto pool = pools[available[getRandomNumber(available.size() - 1)]]; + auto const& pool = pools[available[getRandomNumber(available.size() - 1)]]; // Get or create the pool state. auto pool_state = getPoolState(pool); @@ -114,7 +114,7 @@ FreeLeaseQueueAllocator::pickPrefixInternal(const ClientClasses& client_classes, return (IOAddress::IPV6_ZERO_ADDRESS()); } // Get a random pool from the available ones. - auto pool = pools[available[getRandomNumber(available.size() - 1)]]; + auto const& pool = pools[available[getRandomNumber(available.size() - 1)]]; pool6 = boost::dynamic_pointer_cast(pool); if (!pool6) { // Something is gravely wrong here diff --git a/src/lib/dhcpsrv/memfile_lease_mgr.cc b/src/lib/dhcpsrv/memfile_lease_mgr.cc index a4b8bda20d..317814505e 100644 --- a/src/lib/dhcpsrv/memfile_lease_mgr.cc +++ b/src/lib/dhcpsrv/memfile_lease_mgr.cc @@ -516,7 +516,6 @@ private: // Set lower and upper bounds based on select mode Lease4StorageSubnetIdPoolIdIndex::const_iterator lower; Lease4StorageSubnetIdPoolIdIndex::const_iterator upper; - switch (getSelectMode()) { case ALL_SUBNET_POOLS: lower = idx.begin(); @@ -702,7 +701,6 @@ private: /// - Lease::STATE_DEFAULT (i.e. assigned) /// - Lease::STATE_DECLINED virtual void startSubnets() { - // Get the subnet_id index const Lease6StorageSubnetIdIndex& idx = storage6_.get(); @@ -828,7 +826,6 @@ private: /// - Lease::STATE_DEFAULT (i.e. assigned) /// - Lease::STATE_DECLINED virtual void startSubnetPools() { - // Get the subnet_id index const Lease6StorageSubnetIdPoolIdIndex& idx = storage6_.get(); diff --git a/src/share/database/scripts/mysql/dhcpdb_create.mysql b/src/share/database/scripts/mysql/dhcpdb_create.mysql index 2f07a01bf0..259e703d88 100644 --- a/src/share/database/scripts/mysql/dhcpdb_create.mysql +++ b/src/share/database/scripts/mysql/dhcpdb_create.mysql @@ -5188,31 +5188,6 @@ ALTER TABLE lease6 UPDATE lease6 SET duid = UNHEX('000000') WHERE duid = UNHEX('00'); --- Add the binary version of the IPv6 address for v6 BLQ prefix filter. -ALTER TABLE lease6 - ADD COLUMN binaddr BINARY(16) DEFAULT NULL; -CREATE INDEX lease6_by_binaddr ON lease6 (binaddr ASC); - --- Create table for v6 BLQ by-relay-id. -CREATE TABLE lease6_relay_id ( - extended_info_id INT UNSIGNED NOT NULL AUTO_INCREMENT, - relay_id VARBINARY(130) NOT NULL, - lease_addr BINARY(16) NOT NULL, - PRIMARY KEY (extended_info_id), - INDEX key_lease6_relay_id_by_id (relay_id, lease_addr ASC), - INDEX key_lease6_relay_id_by_address (lease_addr) -) ENGINE = INNODB; - --- Create table for v6 BLQ by-remote-id. -CREATE TABLE lease6_remote_id ( - extended_info_id INT UNSIGNED NOT NULL AUTO_INCREMENT, - remote_id VARBINARY(255) NOT NULL, - lease_addr BINARY(16) NOT NULL, - PRIMARY KEY (extended_info_id), - INDEX key_lease6_remote_id_by_id (remote_id, lease_addr ASC), - INDEX key_lease6_remote_id_by_address (lease_addr) -) ENGINE = INNODB; - # Add pool_id column to the lease4 table. ALTER TABLE lease4 ADD COLUMN pool_id INT UNSIGNED NOT NULL DEFAULT 0; @@ -5671,6 +5646,31 @@ INSERT INTO lease6_pool_stat (subnet_id, pool_id, lease_type, state, leases) SELECT subnet_id, pool_id, lease_type, state, count(*) FROM lease6 WHERE state = 0 OR state = 1 GROUP BY subnet_id, pool_id, lease_type, state; +-- Add the binary version of the IPv6 address for v6 BLQ prefix filter. +ALTER TABLE lease6 + ADD COLUMN binaddr BINARY(16) DEFAULT NULL; +CREATE INDEX lease6_by_binaddr ON lease6 (binaddr ASC); + +-- Create table for v6 BLQ by-relay-id. +CREATE TABLE lease6_relay_id ( + extended_info_id INT UNSIGNED NOT NULL AUTO_INCREMENT, + relay_id VARBINARY(130) NOT NULL, + lease_addr BINARY(16) NOT NULL, + PRIMARY KEY (extended_info_id), + INDEX key_lease6_relay_id_by_id (relay_id, lease_addr ASC), + INDEX key_lease6_relay_id_by_address (lease_addr) +) ENGINE = INNODB; + +-- Create table for v6 BLQ by-remote-id. +CREATE TABLE lease6_remote_id ( + extended_info_id INT UNSIGNED NOT NULL AUTO_INCREMENT, + remote_id VARBINARY(255) NOT NULL, + lease_addr BINARY(16) NOT NULL, + PRIMARY KEY (extended_info_id), + INDEX key_lease6_remote_id_by_id (remote_id, lease_addr ASC), + INDEX key_lease6_remote_id_by_address (lease_addr) +) ENGINE = INNODB; + -- Update the schema version number. UPDATE schema_version SET version = '18', minor = '0'; diff --git a/src/share/database/scripts/mysql/upgrade_017_to_018.sh.in b/src/share/database/scripts/mysql/upgrade_017_to_018.sh.in index 8af3720ad3..b6dc35af7a 100644 --- a/src/share/database/scripts/mysql/upgrade_017_to_018.sh.in +++ b/src/share/database/scripts/mysql/upgrade_017_to_018.sh.in @@ -76,31 +76,6 @@ ALTER TABLE lease6 UPDATE lease6 SET duid = UNHEX('000000') WHERE duid = UNHEX('00'); --- Add the binary version of the IPv6 address for v6 BLQ prefix filter. -ALTER TABLE lease6 - ADD COLUMN binaddr BINARY(16) DEFAULT NULL; -CREATE INDEX lease6_by_binaddr ON lease6 (binaddr ASC); - --- Create table for v6 BLQ by-relay-id. -CREATE TABLE lease6_relay_id ( - extended_info_id INT UNSIGNED NOT NULL AUTO_INCREMENT, - relay_id VARBINARY(130) NOT NULL, - lease_addr BINARY(16) NOT NULL, - PRIMARY KEY (extended_info_id), - INDEX key_lease6_relay_id_by_id (relay_id, lease_addr ASC), - INDEX key_lease6_relay_id_by_address (lease_addr) -) ENGINE = INNODB; - --- Create table for v6 BLQ by-remote-id. -CREATE TABLE lease6_remote_id ( - extended_info_id INT UNSIGNED NOT NULL AUTO_INCREMENT, - remote_id VARBINARY(255) NOT NULL, - lease_addr BINARY(16) NOT NULL, - PRIMARY KEY (extended_info_id), - INDEX key_lease6_remote_id_by_id (remote_id, lease_addr ASC), - INDEX key_lease6_remote_id_by_address (lease_addr) -) ENGINE = INNODB; - # Add pool_id column to the lease4 table. ALTER TABLE lease4 ADD COLUMN pool_id INT UNSIGNED NOT NULL DEFAULT 0; @@ -559,6 +534,31 @@ INSERT INTO lease6_pool_stat (subnet_id, pool_id, lease_type, state, leases) SELECT subnet_id, pool_id, lease_type, state, count(*) FROM lease6 WHERE state = 0 OR state = 1 GROUP BY subnet_id, pool_id, lease_type, state; +-- Add the binary version of the IPv6 address for v6 BLQ prefix filter. +ALTER TABLE lease6 + ADD COLUMN binaddr BINARY(16) DEFAULT NULL; +CREATE INDEX lease6_by_binaddr ON lease6 (binaddr ASC); + +-- Create table for v6 BLQ by-relay-id. +CREATE TABLE lease6_relay_id ( + extended_info_id INT UNSIGNED NOT NULL AUTO_INCREMENT, + relay_id VARBINARY(130) NOT NULL, + lease_addr BINARY(16) NOT NULL, + PRIMARY KEY (extended_info_id), + INDEX key_lease6_relay_id_by_id (relay_id, lease_addr ASC), + INDEX key_lease6_relay_id_by_address (lease_addr) +) ENGINE = INNODB; + +-- Create table for v6 BLQ by-remote-id. +CREATE TABLE lease6_remote_id ( + extended_info_id INT UNSIGNED NOT NULL AUTO_INCREMENT, + remote_id VARBINARY(255) NOT NULL, + lease_addr BINARY(16) NOT NULL, + PRIMARY KEY (extended_info_id), + INDEX key_lease6_remote_id_by_id (remote_id, lease_addr ASC), + INDEX key_lease6_remote_id_by_address (lease_addr) +) ENGINE = INNODB; + -- Update the schema version number. UPDATE schema_version SET version = '18', minor = '0'; diff --git a/src/share/database/scripts/pgsql/dhcpdb_create.pgsql b/src/share/database/scripts/pgsql/dhcpdb_create.pgsql index f68651d4ae..d474ae4d90 100644 --- a/src/share/database/scripts/pgsql/dhcpdb_create.pgsql +++ b/src/share/database/scripts/pgsql/dhcpdb_create.pgsql @@ -5637,27 +5637,6 @@ UPDATE schema_version UPDATE lease6 SET duid = E'\\x000000' WHERE duid = E'\\x00'; --- Add the binary version of the IPv6 address for v6 BLQ prefix filter. -ALTER TABLE lease6 - ADD COLUMN binaddr BYTEA DEFAULT NULL; -CREATE INDEX lease6_by_binaddr ON lease6 (binaddr ASC); - --- Create table for v6 BLQ by-relay-id. -CREATE TABLE lease6_relay_id ( - extended_info_id SERIAL PRIMARY KEY NOT NULL, - relay_id BYTEA NOT NULL, - lease_addr BYTEA NOT NULL); -CREATE INDEX lease6_relay_id_by_id ON lease6_relay_id (relay_id, lease_addr ASC); -CREATE INDEX lease6_relay_id_by_address ON lease6_relay_id (lease_addr); - --- Create table for v6 BLQ by-remote-id. -CREATE TABLE lease6_remote_id ( - extended_info_id SERIAL PRIMARY KEY NOT NULL, - remote_id BYTEA NOT NULL, - lease_addr BYTEA NOT NULL); -CREATE INDEX lease6_remote_id_by_id ON lease6_remote_id (remote_id, lease_addr ASC); -CREATE INDEX lease6_remote_id_by_address ON lease6_remote_id (lease_addr); - -- Add pool_id column to the lease4 table. ALTER TABLE lease4 ADD COLUMN pool_id BIGINT NOT NULL DEFAULT 0; @@ -6130,6 +6109,27 @@ INSERT INTO lease6_pool_stat (subnet_id, pool_id, lease_type, state, leases) SELECT subnet_id, pool_id, lease_type, state, count(*) FROM lease6 WHERE state = 0 OR state = 1 GROUP BY subnet_id, pool_id, lease_type, state; +-- Add the binary version of the IPv6 address for v6 BLQ prefix filter. +ALTER TABLE lease6 + ADD COLUMN binaddr BYTEA DEFAULT NULL; +CREATE INDEX lease6_by_binaddr ON lease6 (binaddr ASC); + +-- Create table for v6 BLQ by-relay-id. +CREATE TABLE lease6_relay_id ( + extended_info_id SERIAL PRIMARY KEY NOT NULL, + relay_id BYTEA NOT NULL, + lease_addr BYTEA NOT NULL); +CREATE INDEX lease6_relay_id_by_id ON lease6_relay_id (relay_id, lease_addr ASC); +CREATE INDEX lease6_relay_id_by_address ON lease6_relay_id (lease_addr); + +-- Create table for v6 BLQ by-remote-id. +CREATE TABLE lease6_remote_id ( + extended_info_id SERIAL PRIMARY KEY NOT NULL, + remote_id BYTEA NOT NULL, + lease_addr BYTEA NOT NULL); +CREATE INDEX lease6_remote_id_by_id ON lease6_remote_id (remote_id, lease_addr ASC); +CREATE INDEX lease6_remote_id_by_address ON lease6_remote_id (lease_addr); + -- Update the schema version number. UPDATE schema_version SET version = '17', minor = '0'; diff --git a/src/share/database/scripts/pgsql/upgrade_016_to_017.sh.in b/src/share/database/scripts/pgsql/upgrade_016_to_017.sh.in index a78cdf1795..845e9ea543 100644 --- a/src/share/database/scripts/pgsql/upgrade_016_to_017.sh.in +++ b/src/share/database/scripts/pgsql/upgrade_016_to_017.sh.in @@ -40,27 +40,6 @@ START TRANSACTION; UPDATE lease6 SET duid = E'\\\\x000000' WHERE duid = E'\\\\x00'; --- Add the binary version of the IPv6 address for v6 BLQ prefix filter. -ALTER TABLE lease6 - ADD COLUMN binaddr BYTEA DEFAULT NULL; -CREATE INDEX lease6_by_binaddr ON lease6 (binaddr ASC); - --- Create table for v6 BLQ by-relay-id. -CREATE TABLE lease6_relay_id ( - extended_info_id SERIAL PRIMARY KEY NOT NULL, - relay_id BYTEA NOT NULL, - lease_addr BYTEA NOT NULL); -CREATE INDEX lease6_relay_id_by_id ON lease6_relay_id (relay_id, lease_addr ASC); -CREATE INDEX lease6_relay_id_by_address ON lease6_relay_id (lease_addr); - --- Create table for v6 BLQ by-remote-id. -CREATE TABLE lease6_remote_id ( - extended_info_id SERIAL PRIMARY KEY NOT NULL, - remote_id BYTEA NOT NULL, - lease_addr BYTEA NOT NULL); -CREATE INDEX lease6_remote_id_by_id ON lease6_remote_id (remote_id, lease_addr ASC); -CREATE INDEX lease6_remote_id_by_address ON lease6_remote_id (lease_addr); - -- Add pool_id column to the lease4 table. ALTER TABLE lease4 ADD COLUMN pool_id BIGINT NOT NULL DEFAULT 0; @@ -533,6 +512,27 @@ INSERT INTO lease6_pool_stat (subnet_id, pool_id, lease_type, state, leases) SELECT subnet_id, pool_id, lease_type, state, count(*) FROM lease6 WHERE state = 0 OR state = 1 GROUP BY subnet_id, pool_id, lease_type, state; +-- Add the binary version of the IPv6 address for v6 BLQ prefix filter. +ALTER TABLE lease6 + ADD COLUMN binaddr BYTEA DEFAULT NULL; +CREATE INDEX lease6_by_binaddr ON lease6 (binaddr ASC); + +-- Create table for v6 BLQ by-relay-id. +CREATE TABLE lease6_relay_id ( + extended_info_id SERIAL PRIMARY KEY NOT NULL, + relay_id BYTEA NOT NULL, + lease_addr BYTEA NOT NULL); +CREATE INDEX lease6_relay_id_by_id ON lease6_relay_id (relay_id, lease_addr ASC); +CREATE INDEX lease6_relay_id_by_address ON lease6_relay_id (lease_addr); + +-- Create table for v6 BLQ by-remote-id. +CREATE TABLE lease6_remote_id ( + extended_info_id SERIAL PRIMARY KEY NOT NULL, + remote_id BYTEA NOT NULL, + lease_addr BYTEA NOT NULL); +CREATE INDEX lease6_remote_id_by_id ON lease6_remote_id (remote_id, lease_addr ASC); +CREATE INDEX lease6_remote_id_by_address ON lease6_remote_id (lease_addr); + -- Update the schema version number. UPDATE schema_version SET version = '17', minor = '0';