mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-23 23:03:10 -06:00
Rename column
Prepare statements
This commit is contained in:
parent
ae09b09a8b
commit
5c921476f9
|
|
@ -1,11 +1,11 @@
|
|||
-- +goose Up
|
||||
-- +goose StatementBegin
|
||||
ALTER TABLE device_devices ADD COLUMN last_used_ts BIGINT NOT NULL;
|
||||
ALTER TABLE device_devices ADD COLUMN last_seen_ts BIGINT NOT NULL;
|
||||
ALTER TABLE device_devices ADD COLUMN ip TEXT;
|
||||
-- +goose StatementEnd
|
||||
|
||||
-- +goose Down
|
||||
-- +goose StatementBegin
|
||||
ALTER TABLE device_devices DROP COLUMN last_used_ts;
|
||||
ALTER TABLE device_devices DROP COLUMN last_seen_ts;
|
||||
ALTER TABLE device_devices DROP COLUMN ip;
|
||||
-- +goose StatementEnd
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ CREATE TABLE IF NOT EXISTS device_devices (
|
|||
-- The display name, human friendlier than device_id and updatable
|
||||
display_name TEXT,
|
||||
-- The time the device was last used, as a unix timestamp (ms resolution).
|
||||
last_used_ts BIGINT NOT NULL,
|
||||
last_seen_ts BIGINT NOT NULL,
|
||||
-- The last seen IP address of this device
|
||||
ip TEXT
|
||||
|
||||
|
|
@ -92,6 +92,9 @@ const deleteDevicesSQL = "" +
|
|||
const selectDevicesByIDSQL = "" +
|
||||
"SELECT device_id, localpart, display_name FROM device_devices WHERE device_id = ANY($1)"
|
||||
|
||||
const updateDeviceLastSeen = "" +
|
||||
"UPDATE device_devices SET last_seen_ts = $1, ip = $2 WHERE device_id = $3"
|
||||
|
||||
type devicesStatements struct {
|
||||
insertDeviceStmt *sql.Stmt
|
||||
selectDeviceByTokenStmt *sql.Stmt
|
||||
|
|
@ -99,6 +102,7 @@ type devicesStatements struct {
|
|||
selectDevicesByLocalpartStmt *sql.Stmt
|
||||
selectDevicesByIDStmt *sql.Stmt
|
||||
updateDeviceNameStmt *sql.Stmt
|
||||
updateDeviceLastSeenStmt *sql.Stmt
|
||||
deleteDeviceStmt *sql.Stmt
|
||||
deleteDevicesByLocalpartStmt *sql.Stmt
|
||||
deleteDevicesStmt *sql.Stmt
|
||||
|
|
@ -137,6 +141,9 @@ func (s *devicesStatements) prepare(db *sql.DB, server gomatrixserverlib.ServerN
|
|||
if s.selectDevicesByIDStmt, err = db.Prepare(selectDevicesByIDSQL); err != nil {
|
||||
return
|
||||
}
|
||||
if s.updateDeviceLastSeenStmt, err = db.Prepare(updateDeviceLastSeen); err != nil {
|
||||
return
|
||||
}
|
||||
s.serverName = server
|
||||
return
|
||||
}
|
||||
|
|
@ -287,3 +294,10 @@ func (s *devicesStatements) selectDevicesByLocalpart(
|
|||
|
||||
return devices, rows.Err()
|
||||
}
|
||||
|
||||
func (s *devicesStatements) updateDeviceLastSeen(ctx context.Context, txn *sql.Tx, deviceID, ipAddr string) error {
|
||||
lastSeenTs := time.Now().UnixNano() / 1000000
|
||||
stmt := sqlutil.TxStmt(txn, s.updateDeviceLastSeenStmt)
|
||||
_, err := stmt.ExecContext(ctx, lastSeenTs, ipAddr, deviceID)
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,13 +8,13 @@ CREATE TABLE device_devices (
|
|||
localpart TEXT ,
|
||||
created_ts BIGINT,
|
||||
display_name TEXT,
|
||||
last_used_ts BIGINT,
|
||||
last_seen_ts BIGINT,
|
||||
ip TEXT,
|
||||
UNIQUE (localpart, device_id)
|
||||
);
|
||||
INSERT
|
||||
INTO device_devices (
|
||||
access_token, session_id, device_id, localpart, created_ts, display_name, last_used_ts, ip
|
||||
access_token, session_id, device_id, localpart, created_ts, display_name, last_seen_ts, ip
|
||||
) SELECT
|
||||
access_token, session_id, device_id, localpart, created_ts, display_name, created_ts, ''
|
||||
FROM device_devices_tmp;
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ CREATE TABLE IF NOT EXISTS device_devices (
|
|||
localpart TEXT ,
|
||||
created_ts BIGINT,
|
||||
display_name TEXT,
|
||||
last_used_ts BIGINT,
|
||||
last_seen_ts BIGINT,
|
||||
ip TEXT,
|
||||
|
||||
UNIQUE (localpart, device_id)
|
||||
|
|
@ -78,6 +78,9 @@ const deleteDevicesSQL = "" +
|
|||
const selectDevicesByIDSQL = "" +
|
||||
"SELECT device_id, localpart, display_name FROM device_devices WHERE device_id IN ($1)"
|
||||
|
||||
const updateDeviceLastSeen = "" +
|
||||
"UPDATE device_devices SET last_seen_ts = $1, ip = $2 WHERE device_id = $3"
|
||||
|
||||
type devicesStatements struct {
|
||||
db *sql.DB
|
||||
writer sqlutil.Writer
|
||||
|
|
@ -88,6 +91,7 @@ type devicesStatements struct {
|
|||
selectDevicesByIDStmt *sql.Stmt
|
||||
selectDevicesByLocalpartStmt *sql.Stmt
|
||||
updateDeviceNameStmt *sql.Stmt
|
||||
updateDeviceLastSeenStmt *sql.Stmt
|
||||
deleteDeviceStmt *sql.Stmt
|
||||
deleteDevicesByLocalpartStmt *sql.Stmt
|
||||
serverName gomatrixserverlib.ServerName
|
||||
|
|
@ -127,6 +131,9 @@ func (s *devicesStatements) prepare(db *sql.DB, writer sqlutil.Writer, server go
|
|||
if s.selectDevicesByIDStmt, err = db.Prepare(selectDevicesByIDSQL); err != nil {
|
||||
return
|
||||
}
|
||||
if s.updateDeviceLastSeenStmt, err = db.Prepare(updateDeviceLastSeen); err != nil {
|
||||
return
|
||||
}
|
||||
s.serverName = server
|
||||
return
|
||||
}
|
||||
|
|
@ -292,3 +299,10 @@ func (s *devicesStatements) selectDevicesByID(ctx context.Context, deviceIDs []s
|
|||
}
|
||||
return devices, rows.Err()
|
||||
}
|
||||
|
||||
func (s *devicesStatements) updateDeviceLastSeen(ctx context.Context, txn *sql.Tx, deviceID, ipAddr string) error {
|
||||
lastSeenTs := time.Now().UnixNano() / 1000000
|
||||
stmt := sqlutil.TxStmt(txn, s.updateDeviceLastSeenStmt)
|
||||
_, err := stmt.ExecContext(ctx, lastSeenTs, ipAddr, deviceID)
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue