Browse Source

[3968] Added ASC sorting for indexes by expiration.

Marcin Siodelski 9 years ago
parent
commit
640d3538c0

+ 2 - 2
src/bin/admin/scripts/mysql/dhcpdb_create.mysql

@@ -265,8 +265,8 @@ ALTER TABLE lease6
 # by the expiration time. One of the applications is to retrieve all
 # expired leases. However, these indexes can be also used to retrieve
 # leases in a given state regardless of the expiration time.
-CREATE INDEX lease4_by_state_expire ON lease4 (state, expire);
-CREATE INDEX lease6_by_state_expire ON lease6 (state, expire);
+CREATE INDEX lease4_by_state_expire ON lease4 (state ASC, expire ASC);
+CREATE INDEX lease6_by_state_expire ON lease6 (state ASC, expire ASC);
 
 # Create table holding mapping of the lease states to their names.
 # This is not used in queries from the DHCP server but rather in

+ 2 - 2
src/bin/admin/scripts/mysql/upgrade_3.0_to_4.0.sh.in

@@ -28,8 +28,8 @@ ALTER TABLE lease6
 # by the expiration time. One of the applications is to retrieve all
 # expired leases. However, these indexes can be also used to retrieve
 # leases in a given state regardless of the expiration time.
-CREATE INDEX lease4_by_state_expire ON lease4 (state, expire);
-CREATE INDEX lease6_by_state_expire ON lease6 (state, expire);
+CREATE INDEX lease4_by_state_expire ON lease4 (state ASC, expire ASC);
+CREATE INDEX lease6_by_state_expire ON lease6 (state ASC, expire ASC);
 
 # Create table holding mapping of the lease states to their names.
 # This is not used in queries from the DHCP server but rather in

+ 2 - 2
src/lib/dhcpsrv/mysql_lease_mgr.cc

@@ -143,7 +143,7 @@ TaggedStatement tagged_statements[] = {
                         "state "
                             "FROM lease4 "
                             "WHERE state != ? AND expire < ? "
-                            "ORDER BY expire "
+                            "ORDER BY expire ASC "
                             "LIMIT ?"},
     {MySqlLeaseMgr::GET_LEASE6_ADDR,
                     "SELECT address, duid, valid_lifetime, "
@@ -182,7 +182,7 @@ TaggedStatement tagged_statements[] = {
                         "state "
                             "FROM lease6 "
                             "WHERE state != ? AND expire < ? "
-                            "ORDER BY expire "
+                            "ORDER BY expire ASC "
                             "LIMIT ?"},
     {MySqlLeaseMgr::GET_VERSION,
                     "SELECT version, minor FROM schema_version"},

+ 2 - 2
src/lib/dhcpsrv/tests/schema_mysql_copy.h

@@ -220,8 +220,8 @@ const char* create_statement[] = {
     "ALTER TABLE lease6 "
         "ADD COLUMN state INT UNSIGNED DEFAULT 0",
 
-    "CREATE INDEX lease4_by_state_expire ON lease4 (state, expire)",
-    "CREATE INDEX lease6_by_state_expire ON lease6 (state, expire)",
+    "CREATE INDEX lease4_by_state_expire ON lease4 (state ASC, expire ASC)",
+    "CREATE INDEX lease6_by_state_expire ON lease6 (state ASC, expire ASC)",
 
     // Production schema includes the lease_state table and
     // lease_hwaddr_source tables which map to the values in lease4