fix a couple of queries

This commit is contained in:
Grant Limberg 2025-05-07 11:57:28 -07:00
parent af3f8b00a4
commit 7c88b3f124

View file

@ -494,8 +494,6 @@ void CV2::initializeMembers()
"nm.last_authorized_time, nm.last_deauthorized_time, nm.remote_trace_level, nm.remote_trace_target, "
"nm.revision, nm.capabilities, nm.tags "
"FROM network_memberships_ctl nm "
"INNER JOIN devices d "
" ON nm.device_id = d.id "
"INNER JOIN networks n "
" ON nm.network_id = n.id "
"WHERE n.controller_id = '%s'", _myAddressStr.c_str());
@ -972,7 +970,7 @@ void CV2::onlineNotificationThread() {
std::string memberId(memTmp);
try {
pqxx::row r = w2.exec_params1("SELECT device_id, network_id FROM device_networks WHERE network_id = $1 AND device_id = $2",
pqxx::row r = w2.exec_params1("SELECT device_id, network_id FROM network_memberships_ctl WHERE network_id = $1 AND device_id = $2",
networkId, memberId);
} catch (pqxx::unexpected_rows &e) {
continue;
@ -986,12 +984,8 @@ void CV2::onlineNotificationThread() {
{ipAddr, ts},
};
// upsert into devices table
std::string device_insert = "INSERT INTO devices (id, last_seen) VALUES ('"+w2.esc(memberId)+"', '"+w2.esc(record.dump())+"'::JSONB) "
"ON CONFLICT (id) DO UPDATE SET last_seen = last_seen || EXCLUDED.last_seen";
pipe.insert(device_insert);
std::string device_network_insert = "INSERT INTO device_networks (device_id, network_id, last_seen) "
std::string device_network_insert = "INSERT INTO network_memberships_ctl (device_id, network_id, last_seen) "
"VALUES ('"+w2.esc(memberId)+"', '"+w2.esc(networkId)+"', '"+w2.esc(record.dump())+"'::JSONB) "
"ON CONFLICT (device_id, network_id) DO UPDATE SET last_seen = last_seen || EXCLUDED.last_seen";
pipe.insert(device_network_insert);