From: Francis Dupont Date: Wed, 24 May 2023 08:17:05 +0000 (+0200) Subject: [#2869] Checkpoint: added statements X-Git-Tag: Kea-2.5.0~40 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a4ea9faff55b8a48ffdcd4d1b3102f609d9106bd;p=thirdparty%2Fkea.git [#2869] Checkpoint: added statements --- diff --git a/src/lib/dhcpsrv/mysql_lease_mgr.cc b/src/lib/dhcpsrv/mysql_lease_mgr.cc index a9f0f15970..9acd7d4b24 100644 --- a/src/lib/dhcpsrv/mysql_lease_mgr.cc +++ b/src/lib/dhcpsrv/mysql_lease_mgr.cc @@ -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 diff --git a/src/lib/dhcpsrv/mysql_lease_mgr.h b/src/lib/dhcpsrv/mysql_lease_mgr.h index c7cf421dd9..6cc9bd4ec9 100644 --- a/src/lib/dhcpsrv/mysql_lease_mgr.h +++ b/src/lib/dhcpsrv/mysql_lease_mgr.h @@ -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 }; diff --git a/src/lib/dhcpsrv/pgsql_lease_mgr.cc b/src/lib/dhcpsrv/pgsql_lease_mgr.cc index 6ee99d6745..8541a52f67 100644 --- a/src/lib/dhcpsrv/pgsql_lease_mgr.cc +++ b/src/lib/dhcpsrv/pgsql_lease_mgr.cc @@ -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 } }; diff --git a/src/lib/dhcpsrv/pgsql_lease_mgr.h b/src/lib/dhcpsrv/pgsql_lease_mgr.h index 8b60e4231f..7d4e0d7306 100644 --- a/src/lib/dhcpsrv/pgsql_lease_mgr.h +++ b/src/lib/dhcpsrv/pgsql_lease_mgr.h @@ -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 };