summaryrefslogtreecommitdiffstats
path: root/database/postgresql/sql-schema.sql
diff options
context:
space:
mode:
Diffstat (limited to 'database/postgresql/sql-schema.sql')
-rw-r--r--database/postgresql/sql-schema.sql15
1 files changed, 15 insertions, 0 deletions
diff --git a/database/postgresql/sql-schema.sql b/database/postgresql/sql-schema.sql
index dc75a82..6634344 100644
--- a/database/postgresql/sql-schema.sql
+++ b/database/postgresql/sql-schema.sql
@@ -95,6 +95,21 @@ CREATE TABLE lastlog (
);
CREATE UNIQUE INDEX lastlog_sessionkey ON lastlog(sessionkey);
+-- View lastlog_update: A view with columns which is allowed to be updated
+CREATE VIEW lastlog_update AS
+ SELECT sessionkey, sessionstatus, macaddr, logout, session_deleted, session_duration,
+ bytes_sent, bytes_received
+ FROM lastlog;
+CREATE RULE lastlog_allow_update
+ AS ON UPDATE TO lastlog_update
+ DO INSTEAD UPDATE lastlog
+ SET sessionstatus = NEW.sessionstatus, macaddr = NEW.macaddr,
+ logout = NEW.logout, session_deleted = NEW.session_deleted,
+ session_duration = NEW.session_duration,
+ bytes_sent = NEW.bytes_sent, bytes_received = NEW.bytes_received
+ WHERE sessionkey = OLD.sessionkey
+ AND sessionstatus = OLD.sessionstatus;
+
-- Table macaddr_history: This keeps an overview over which MAC addresses a session
-- have used, in case the client changes the MAC address.
CREATE TABLE macaddr_history (