2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-09-03 15:35:17 +00:00

[master] Merge branch 'trac3451'

This commit is contained in:
Marcin Siodelski
2014-06-04 15:33:23 +02:00

View File

@@ -54,9 +54,6 @@ const size_t MAX_PARAMETERS_IN_QUERY = 13;
/// @brief Defines a single query /// @brief Defines a single query
struct TaggedStatement { struct TaggedStatement {
/// Query index
PgSqlLeaseMgr::StatementIndex index;
/// Number of parameters for a given query /// Number of parameters for a given query
int nbparams; int nbparams;
@@ -89,119 +86,134 @@ const size_t OID_VARCHAR = 1043;
/// that the order columns appear in statement body must match the order they /// that the order columns appear in statement body must match the order they
/// that the occur in the table. This does not apply to the where clause. /// that the occur in the table. This does not apply to the where clause.
TaggedStatement tagged_statements[] = { TaggedStatement tagged_statements[] = {
{PgSqlLeaseMgr::DELETE_LEASE4, 1, // DELETE_LEASE4
{ OID_INT8 }, { 1, { OID_INT8 },
"delete_lease4", "delete_lease4",
"DELETE FROM lease4 WHERE address = $1"}, "DELETE FROM lease4 WHERE address = $1"},
{PgSqlLeaseMgr::DELETE_LEASE6, 1,
{ OID_VARCHAR }, // DELETE_LEASE6
"delete_lease6", { 1, { OID_VARCHAR },
"DELETE FROM lease6 WHERE address = $1"}, "delete_lease6",
{PgSqlLeaseMgr::GET_LEASE4_ADDR, 1, "DELETE FROM lease6 WHERE address = $1"},
{ OID_INT8 },
"get_lease4_addr", // GET_LEASE4_ADDR
"SELECT address, hwaddr, client_id, " { 1, { OID_INT8 },
"valid_lifetime, extract(epoch from expire)::bigint, subnet_id, " "get_lease4_addr",
"fqdn_fwd, fqdn_rev, hostname " "SELECT address, hwaddr, client_id, "
"FROM lease4 " "valid_lifetime, extract(epoch from expire)::bigint, subnet_id, "
"WHERE address = $1"}, "fqdn_fwd, fqdn_rev, hostname "
{PgSqlLeaseMgr::GET_LEASE4_CLIENTID, 1, "FROM lease4 "
{ OID_BYTEA }, "WHERE address = $1"},
"get_lease4_clientid",
"SELECT address, hwaddr, client_id, " // GET_LEASE4_CLIENTID
"valid_lifetime, extract(epoch from expire)::bigint, subnet_id, " { 1, { OID_BYTEA },
"fqdn_fwd, fqdn_rev, hostname " "get_lease4_clientid",
"FROM lease4 " "SELECT address, hwaddr, client_id, "
"WHERE client_id = $1"}, "valid_lifetime, extract(epoch from expire)::bigint, subnet_id, "
{PgSqlLeaseMgr::GET_LEASE4_CLIENTID_SUBID, 2, "fqdn_fwd, fqdn_rev, hostname "
{ OID_BYTEA, OID_INT8 }, "FROM lease4 "
"get_lease4_clientid_subid", "WHERE client_id = $1"},
"SELECT address, hwaddr, client_id, "
"valid_lifetime, extract(epoch from expire)::bigint, subnet_id, " // GET_LEASE4_CLIENTID_SUBID
"fqdn_fwd, fqdn_rev, hostname " { 2, { OID_BYTEA, OID_INT8 },
"FROM lease4 " "get_lease4_clientid_subid",
"WHERE client_id = $1 AND subnet_id = $2"}, "SELECT address, hwaddr, client_id, "
{PgSqlLeaseMgr::GET_LEASE4_HWADDR, 1, "valid_lifetime, extract(epoch from expire)::bigint, subnet_id, "
{ OID_BYTEA }, "fqdn_fwd, fqdn_rev, hostname "
"get_lease4_hwaddr", "FROM lease4 "
"SELECT address, hwaddr, client_id, " "WHERE client_id = $1 AND subnet_id = $2"},
"valid_lifetime, extract(epoch from expire)::bigint, subnet_id, "
"fqdn_fwd, fqdn_rev, hostname " // GET_LEASE4_HWADDR
"FROM lease4 " { 1, { OID_BYTEA },
"WHERE hwaddr = $1"}, "get_lease4_hwaddr",
{PgSqlLeaseMgr::GET_LEASE4_HWADDR_SUBID, 2, "SELECT address, hwaddr, client_id, "
{ OID_BYTEA, OID_INT8 }, "valid_lifetime, extract(epoch from expire)::bigint, subnet_id, "
"get_lease4_hwaddr_subid", "fqdn_fwd, fqdn_rev, hostname "
"SELECT address, hwaddr, client_id, " "FROM lease4 "
"valid_lifetime, extract(epoch from expire)::bigint, subnet_id, " "WHERE hwaddr = $1"},
"fqdn_fwd, fqdn_rev, hostname "
"FROM lease4 " // GET_LEASE4_HWADDR_SUBID
"WHERE hwaddr = $1 AND subnet_id = $2"}, { 2, { OID_BYTEA, OID_INT8 },
{PgSqlLeaseMgr::GET_LEASE6_ADDR, 2, "get_lease4_hwaddr_subid",
{ OID_VARCHAR, OID_INT2 }, "SELECT address, hwaddr, client_id, "
"get_lease6_addr", "valid_lifetime, extract(epoch from expire)::bigint, subnet_id, "
"SELECT address, duid, valid_lifetime, " "fqdn_fwd, fqdn_rev, hostname "
"extract(epoch from expire)::bigint, subnet_id, pref_lifetime, " "FROM lease4 "
"lease_type, iaid, prefix_len, fqdn_fwd, fqdn_rev, hostname " "WHERE hwaddr = $1 AND subnet_id = $2"},
"FROM lease6 "
"WHERE address = $1 AND lease_type = $2"}, // GET_LEASE6_ADDR
{PgSqlLeaseMgr::GET_LEASE6_DUID_IAID, 3, { 2, { OID_VARCHAR, OID_INT2 },
{ OID_BYTEA, OID_INT8, OID_INT2 }, "get_lease6_addr",
"get_lease6_duid_iaid", "SELECT address, duid, valid_lifetime, "
"SELECT address, duid, valid_lifetime, " "extract(epoch from expire)::bigint, subnet_id, pref_lifetime, "
"extract(epoch from expire)::bigint, subnet_id, pref_lifetime, " "lease_type, iaid, prefix_len, fqdn_fwd, fqdn_rev, hostname "
"lease_type, iaid, prefix_len, fqdn_fwd, fqdn_rev, hostname " "FROM lease6 "
"FROM lease6 " "WHERE address = $1 AND lease_type = $2"},
"WHERE duid = $1 AND iaid = $2 AND lease_type = $3"},
{PgSqlLeaseMgr::GET_LEASE6_DUID_IAID_SUBID, 4, // GET_LEASE6_DUID_IAID
{ OID_INT2, OID_BYTEA, OID_INT8, OID_INT8 }, { 3, { OID_BYTEA, OID_INT8, OID_INT2 },
"get_lease6_duid_iaid_subid", "get_lease6_duid_iaid",
"SELECT address, duid, valid_lifetime, " "SELECT address, duid, valid_lifetime, "
"extract(epoch from expire)::bigint, subnet_id, pref_lifetime, " "extract(epoch from expire)::bigint, subnet_id, pref_lifetime, "
"lease_type, iaid, prefix_len, fqdn_fwd, fqdn_rev, hostname " "lease_type, iaid, prefix_len, fqdn_fwd, fqdn_rev, hostname "
"FROM lease6 " "FROM lease6 "
"WHERE lease_type = $1 " "WHERE duid = $1 AND iaid = $2 AND lease_type = $3"},
"AND duid = $2 AND iaid = $3 AND subnet_id = $4"},
{PgSqlLeaseMgr::GET_VERSION, 0, // GET_LEASE6_DUID_IAID_SUBID
{ OID_NONE }, { 4, { OID_INT2, OID_BYTEA, OID_INT8, OID_INT8 },
"get_version", "get_lease6_duid_iaid_subid",
"SELECT version, minor FROM schema_version"}, "SELECT address, duid, valid_lifetime, "
{PgSqlLeaseMgr::INSERT_LEASE4, 9, "extract(epoch from expire)::bigint, subnet_id, pref_lifetime, "
{ OID_INT8, OID_BYTEA, OID_BYTEA, OID_INT8, OID_TIMESTAMP, OID_INT8, "lease_type, iaid, prefix_len, fqdn_fwd, fqdn_rev, hostname "
"FROM lease6 "
"WHERE lease_type = $1 "
"AND duid = $2 AND iaid = $3 AND subnet_id = $4"},
// GET_VERSION
{ 0, { OID_NONE },
"get_version",
"SELECT version, minor FROM schema_version"},
// INSERT_LEASE4
{ 9, { OID_INT8, OID_BYTEA, OID_BYTEA, OID_INT8, OID_TIMESTAMP, OID_INT8,
OID_BOOL, OID_BOOL, OID_VARCHAR }, OID_BOOL, OID_BOOL, OID_VARCHAR },
"insert_lease4", "insert_lease4",
"INSERT INTO lease4(address, hwaddr, client_id, " "INSERT INTO lease4(address, hwaddr, client_id, "
"valid_lifetime, expire, subnet_id, fqdn_fwd, fqdn_rev, hostname) " "valid_lifetime, expire, subnet_id, fqdn_fwd, fqdn_rev, hostname) "
"VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)"}, "VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)"},
{PgSqlLeaseMgr::INSERT_LEASE6, 12,
{ OID_VARCHAR, OID_BYTEA, OID_INT8, OID_TIMESTAMP, OID_INT8, // INSERT_LEASE6
OID_INT8, OID_INT2, OID_INT8, OID_INT2, OID_BOOL, OID_BOOL, { 12, { OID_VARCHAR, OID_BYTEA, OID_INT8, OID_TIMESTAMP, OID_INT8,
OID_VARCHAR }, OID_INT8, OID_INT2, OID_INT8, OID_INT2, OID_BOOL, OID_BOOL,
"insert_lease6", OID_VARCHAR },
"INSERT INTO lease6(address, duid, valid_lifetime, " "insert_lease6",
"expire, subnet_id, pref_lifetime, " "INSERT INTO lease6(address, duid, valid_lifetime, "
"lease_type, iaid, prefix_len, fqdn_fwd, fqdn_rev, hostname) " "expire, subnet_id, pref_lifetime, "
"VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12)"}, "lease_type, iaid, prefix_len, fqdn_fwd, fqdn_rev, hostname) "
{PgSqlLeaseMgr::UPDATE_LEASE4, 10, "VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12)"},
{ OID_INT8, OID_BYTEA, OID_BYTEA, OID_INT8, OID_TIMESTAMP, OID_INT8,
OID_BOOL, OID_BOOL, OID_VARCHAR, OID_INT8 }, // UPDATE_LEASE4
"update_lease4", { 10, { OID_INT8, OID_BYTEA, OID_BYTEA, OID_INT8, OID_TIMESTAMP, OID_INT8,
"UPDATE lease4 SET address = $1, hwaddr = $2, " OID_BOOL, OID_BOOL, OID_VARCHAR, OID_INT8 },
"client_id = $3, valid_lifetime = $4, expire = $5, " "update_lease4",
"subnet_id = $6, fqdn_fwd = $7, fqdn_rev = $8, hostname = $9 " "UPDATE lease4 SET address = $1, hwaddr = $2, "
"WHERE address = $10"}, "client_id = $3, valid_lifetime = $4, expire = $5, "
{PgSqlLeaseMgr::UPDATE_LEASE6, 13, "subnet_id = $6, fqdn_fwd = $7, fqdn_rev = $8, hostname = $9 "
{ OID_VARCHAR, OID_BYTEA, OID_INT8, OID_TIMESTAMP, OID_INT8, OID_INT8, "WHERE address = $10"},
OID_INT2, OID_INT8, OID_INT2, OID_BOOL, OID_BOOL, OID_VARCHAR,
OID_VARCHAR }, // UPDATE_LEASE6
"update_lease6", { 13, { OID_VARCHAR, OID_BYTEA, OID_INT8, OID_TIMESTAMP, OID_INT8, OID_INT8,
"UPDATE lease6 SET address = $1, duid = $2, " OID_INT2, OID_INT8, OID_INT2, OID_BOOL, OID_BOOL, OID_VARCHAR,
"valid_lifetime = $3, expire = $4, subnet_id = $5, " OID_VARCHAR },
"pref_lifetime = $6, lease_type = $7, iaid = $8, " "update_lease6",
"prefix_len = $9, fqdn_fwd = $10, fqdn_rev = $11, hostname = $12 " "UPDATE lease6 SET address = $1, duid = $2, "
"WHERE address = $13"}, "valid_lifetime = $3, expire = $4, subnet_id = $5, "
"pref_lifetime = $6, lease_type = $7, iaid = $8, "
"prefix_len = $9, fqdn_fwd = $10, fqdn_rev = $11, hostname = $12 "
"WHERE address = $13"},
// End of list sentinel // End of list sentinel
{PgSqlLeaseMgr::NUM_STATEMENTS, 0, { 0 }, NULL, NULL} { 0, { 0 }, NULL, NULL}
}; };
}; };