23 lines
1.7 KiB
SQL
23 lines
1.7 KiB
SQL
-- Durable access evidence written atomically by the gateway realtime snapshot writer.
|
|
ALTER TABLE vehicle_realtime_snapshot ADD COLUMN access_first_seen_at DATETIME(3) NULL AFTER event_id;
|
|
ALTER TABLE vehicle_realtime_snapshot ADD COLUMN access_previous_received_at DATETIME(3) NULL AFTER access_first_seen_at;
|
|
ALTER TABLE vehicle_realtime_snapshot ADD COLUMN access_latest_received_at DATETIME(3) NULL AFTER access_previous_received_at;
|
|
ALTER TABLE vehicle_realtime_snapshot ADD COLUMN access_report_interval_ms BIGINT UNSIGNED NULL AFTER access_latest_received_at;
|
|
ALTER TABLE vehicle_realtime_snapshot ADD COLUMN access_sample_count BIGINT UNSIGNED NOT NULL DEFAULT 0 AFTER access_report_interval_ms;
|
|
ALTER TABLE vehicle_realtime_snapshot ADD COLUMN access_latest_event_id VARCHAR(64) NOT NULL DEFAULT '' AFTER access_sample_count;
|
|
ALTER TABLE vehicle_realtime_snapshot ADD COLUMN access_first_seen_source VARCHAR(32) NOT NULL DEFAULT '' AFTER access_latest_event_id;
|
|
|
|
UPDATE vehicle_realtime_snapshot
|
|
SET access_first_seen_at = COALESCE(access_first_seen_at, received_at, updated_at),
|
|
access_latest_received_at = COALESCE(access_latest_received_at, received_at, updated_at),
|
|
access_sample_count = IF(access_sample_count = 0, 1, access_sample_count),
|
|
access_latest_event_id = IF(access_latest_event_id = '', event_id, access_latest_event_id),
|
|
access_first_seen_source = IF(access_first_seen_source = '', 'snapshot_backfill', access_first_seen_source)
|
|
WHERE access_first_seen_at IS NULL
|
|
OR access_latest_received_at IS NULL
|
|
OR access_sample_count = 0
|
|
OR access_latest_event_id = ''
|
|
OR access_first_seen_source = '';
|
|
|
|
CREATE INDEX idx_access_latest ON vehicle_realtime_snapshot(access_latest_received_at, vin);
|