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