]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#2886] fix schema order for pool_id and binaddr
authorRazvan Becheriu <razvan@isc.org>
Mon, 29 May 2023 10:36:15 +0000 (13:36 +0300)
committerRazvan Becheriu <razvan@isc.org>
Mon, 29 May 2023 19:21:51 +0000 (19:21 +0000)
src/bin/admin/tests/mysql_tests.sh.in
src/bin/admin/tests/pgsql_tests.sh.in
src/lib/dhcpsrv/alloc_engine.cc
src/lib/dhcpsrv/flq_allocator.cc
src/lib/dhcpsrv/memfile_lease_mgr.cc
src/share/database/scripts/mysql/dhcpdb_create.mysql
src/share/database/scripts/mysql/upgrade_017_to_018.sh.in
src/share/database/scripts/pgsql/dhcpdb_create.pgsql
src/share/database/scripts/pgsql/upgrade_016_to_017.sh.in

index 882b8a7ed896b0420f67ef620e75318a730062db..21b22e5777d4ee91608f825384f546085e04e039 100644 (file)
@@ -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
index dd9ca643690ed17f61eec32fc3c81de37f487133..dde10aaa1a78c299df496cc762da186af20ceb87 100644 (file)
@@ -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"
index 9abac9f4ecef1b3ed25e77154d26568ccd3b15d9..61bbe614b0a5165e7370c66e2357ca2d81a893b3 100644 (file)
@@ -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<int64_t>(1));
+                static_cast<int64_t>(-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<int64_t>(-1));
+                static_cast<int64_t>(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.
index e5eb03255eafe2154b587f7475043cdb27b4620d..682df3265df896f902e6ddbe8c9dea0c40149089 100644 (file)
@@ -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<Pool6>(pool);
     if (!pool6) {
         // Something is gravely wrong here
index a4b8bda20dcea72e092fa17cffea4bd0bffe920e..317814505efffbd682be753c2c93be0c9cc34639 100644 (file)
@@ -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<SubnetIdIndexTag>();
 
@@ -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<SubnetIdPoolIdIndexTag>();
 
index 2f07a01bf01534105592ed5ef2d84784d9a87083..259e703d887ae4569ee4c0d92192ecfb71b69d2f 100644 (file)
@@ -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';
index 8af3720ad385c7511f0068f78f67a3871b7fe349..b6dc35af7a329b41e204c0ca87461698ae674b7d 100644 (file)
@@ -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';
index f68651d4aeb6b9039d3fd65673de08c9a5ace95d..d474ae4d90425e424e893b539465875ca6055f1b 100644 (file)
@@ -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';
index a78cdf1795279b1be847c1bff0211da27642d9f6..845e9ea543caa3481848a30d3a8720073beaac7f 100644 (file)
@@ -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';