]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#2869] Checkpoint: added statements
authorFrancis Dupont <fdupont@isc.org>
Wed, 24 May 2023 08:17:05 +0000 (10:17 +0200)
committerFrancis Dupont <fdupont@isc.org>
Thu, 6 Jul 2023 20:11:32 +0000 (22:11 +0200)
src/lib/dhcpsrv/mysql_lease_mgr.cc
src/lib/dhcpsrv/mysql_lease_mgr.h
src/lib/dhcpsrv/pgsql_lease_mgr.cc
src/lib/dhcpsrv/pgsql_lease_mgr.h

index a9f0f15970b31599d6d9626bb4e949c735f4a00b..9acd7d4b24c895639e48f7f145812062ce5cba92 100644 (file)
@@ -477,6 +477,40 @@ tagged_statements = { {
                     "SELECT leases "
                         "FROM lease6_stat_by_client_class "
                         "WHERE client_class = ? AND lease_type = ?"},
+    {MySqlLeaseMgr::WIPE_RELAY_ID6,
+                    "DELETE FROM lease6_relay_id"},
+    {MySqlLeaseMgr::WIPE_REMOTE_ID6,
+                    "DELETE FROM lease6_remote_id"},
+    {MySqlLeaseMgr::DELETE_RELAY_ID6,
+                    "DELETE FROM lease6_relay_id WHERE lease_addr = ?"},
+    {MySqlLeaseMgr::DELETE_REMOTE_ID6,
+                    "DELETE FROM lease6_remote_id WHERE lease_addr = ?"},
+    {MySqlLeaseMgr::ADD_RELAY_ID6,
+                    "INSERT INTO lease6_relay_id(relay_id, lease_addr) "
+                         "VALUES (?, ?)"},
+    {MySqlLeaseMgr::ADD_REMOTE_ID6,
+                    "INSERT INTO lease6_remote_id(remote_id, lease_addr) "
+                         "VALUES (?, ?)"},
+    {MySqlLeaseMgr::GET_RELAY_ID6,
+                    "SELECT lease_addr FROM lease6_relay_id "
+                        "WHERE relay_id = ? AND lease_addr > ? "
+                        "ORDER BY lease_addr "
+                        "LIMIT ?"},
+    {MySqlLeaseMgr::GET_REMOTE_ID6,
+                    "SELECT lease_addr FROM lease6_remote_id "
+                        "WHERE remote_id = ? AND lease_addr > ? "
+                        "ORDER BY lease_addr "
+                        "LIMIT ?"},
+    {MySqlLeaseMgr::GET_RELAY_ID6_LINK,
+                    "SELECT lease_addr FROM lease6_relay_id "
+                        "WHERE relay_id = ? AND lease_addr BETWEEN ? AND ? "
+                        "ORDER BY lease_addr "
+                        "LIMIT ?"},
+    {MySqlLeaseMgr::GET_REMOTE_ID6_LINK,
+                    "SELECT lease_addr FROM lease6_remote_id "
+                        "WHERE remote_id = ? AND lease_addr BETWEEN ? AND ? "
+                        "ORDER BY lease_addr "
+                        "LIMIT ?"},
 } };  // tagged_statements
 
 }  // namespace
index c7cf421dd9aef31a99b098d56b7a0365bcede64b..6cc9bd4ec9ef5b2fd8ccda6daad11661012454b7 100644 (file)
@@ -768,6 +768,16 @@ public:
         IS_JSON_SUPPORTED,           // Checks if JSON support is enabled in the database.
         GET_LEASE4_COUNT_BY_CLASS,   // Fetches the IPv4 lease count for a given class.
         GET_LEASE6_COUNT_BY_CLASS,   // Fetches the IPv6 lease count for given class and lease type.
+        WIPE_RELAY_ID6,              // Wipe the lease6_relay_id table
+        WIPE_REMOTE_ID6,             // Wipe the lease6_remote_id table
+        DELETE_RELAY_ID6,            // Delete a lease6_relay_id entry by address
+        DELETE_REMOTE_ID6,           // Delete a lease6_remote_id entry by address
+        ADD_RELAY_ID6,               // Add a lease6_relay_id entry
+        ADD_REMOTE_ID6,              // Add a lease6_remote_id entry
+        GET_RELAY_ID6,               // Get lease6_relay_id entries
+        GET_REMOTE_ID6,              // Get lease6_remote_id entries
+        GET_RELAY_ID6_LINK,          // Get lease6_relay_id entries by link
+        GET_REMOTE_ID6_LINK,         // Get lease6_remote_id entries by link
         NUM_STATEMENTS               // Number of statements
     };
 
index 6ee99d674586169c3348c3e34ab69185c3de60b4..8541a52f675f2feccd293e55e8f604d733271935 100644 (file)
@@ -554,6 +554,70 @@ PgSqlTaggedStatement tagged_statements[] = {
           "FROM lease6_stat_by_client_class "
           "WHERE client_class = $1 AND lease_type = $2" },
 
+    // WIPE_RELAY_ID6
+    { 0, { OID_NONE },
+      "wipe_relay_id6",
+      "DELETE FROM lease6_relay_id"},
+
+    // WIPE_REMOTE_ID6
+    { 0, { OID_NONE },
+      "wipe_remote_id6",
+      "DELETE FROM lease6_remote_id"},
+
+    // DELETE_RELAY_ID6
+    { 1, { OID_BYTEA },
+      "delete_relay_id6",
+      "DELETE FROM lease6_relay_id WHERE lease_addr = $1"},
+
+    // DELETE_REMOTE_ID6
+    { 1, { OID_BYTEA },
+      "delete_remote_id6",
+      "DELETE FROM lease6_remote_id WHERE lease_addr = $1"},
+
+    // ADD_RELAY_ID6
+    { 2, { OID_BYTEA, OID_BYTEA },
+      "add_relay_id6",
+      "INSERT INTO lease6_relay_id(relay_id, lease_addr) "
+      "VALUES ($1, $2)"},
+
+    // ADD_REMOTE_ID6
+    { 2, { OID_BYTEA, OID_BYTEA },
+      "add_remote_id6",
+      "INSERT INTO lease6_remote_id(remote_id, lease_addr) "
+      "VALUES ($1, $2)"},
+
+    // GET_RELAY_ID6
+    { 3, { OID_BYTEA, OID_BYTEA, OID_INT8 },
+      "get_relay_id6",
+      "SELECT lease_addr FROM lease6_relay_id "
+      "WHERE relay_id = $1 AND lease_addr > $2 "
+      "ORDER BY lease_addr "
+      "LIMIT $3"},
+
+    // GET_REMOTE_ID6
+    { 3, { OID_BYTEA, OID_BYTEA, OID_INT8 },
+      "get_remote_id6",
+      "SELECT lease_addr FROM lease6_remote_id "
+      "WHERE remote_id = $1 AND lease_addr > $2 "
+      "ORDER BY lease_addr "
+      "LIMIT $3"},
+
+    // GET_RELAY_ID6_LINK
+    { 4, { OID_BYTEA, OID_BYTEA, OID_BYTEA, OID_INT8 },
+      "get_relay_id6_link",
+      "SELECT lease_addr FROM lease6_relay_id "
+      "WHERE relay_id = $1 AND lease_addr BETWEEN $2 and $3 "
+      "ORDER BY lease_addr "
+      "LIMIT $4"},
+
+    // GET_REMOTE_ID6_LINK
+    { 4, { OID_BYTEA, OID_BYTEA, OID_BYTEA, OID_INT8 },
+      "get_remote_id6_link",
+      "SELECT lease_addr FROM lease6_remote_id "
+      "WHERE remote_id = $1 AND lease_addr BETWEEN $2 and $3 "
+      "ORDER BY lease_addr "
+      "LIMIT $4"},
+
     // End of list sentinel
     { 0,  { 0 }, NULL, NULL }
 };
index 8b60e4231f380ae6bd8c203efa65658e91c3cc6a..7d4e0d73069a579caa357ba2b3313f9443421df2 100644 (file)
@@ -744,6 +744,16 @@ public:
         IS_JSON_SUPPORTED,           // Checks if JSON support is enabled in the database.
         GET_LEASE4_COUNT_BY_CLASS,   // Fetches the IPv4 lease count for a given class.
         GET_LEASE6_COUNT_BY_CLASS,   // Fetches the IPv6 lease count for given class and lease type.
+        WIPE_RELAY_ID6,              // Wipe the lease6_relay_id table
+        WIPE_REMOTE_ID6,             // Wipe the lease6_remote_id table
+        DELETE_RELAY_ID6,            // Delete a lease6_relay_id entry by address
+        DELETE_REMOTE_ID6,           // Delete a lease6_remote_id entry by address
+        ADD_RELAY_ID6,               // Add a lease6_relay_id entry
+        ADD_REMOTE_ID6,              // Add a lease6_remote_id entry
+        GET_RELAY_ID6,               // Get lease6_relay_id entries
+        GET_REMOTE_ID6,              // Get lease6_remote_id entries
+        GET_RELAY_ID6_LINK,          // Get lease6_relay_id entries by link
+        GET_REMOTE_ID6_LINK,         // Get lease6_remote_id entries by link
         NUM_STATEMENTS               // Number of statements
     };