wiki.techinc.nl/maintenance/sqlite/archives/patch-logging-log_title-varbinary.sql
Ammar Abdulhamid b9094b0248 Migrate logging to abstract schema
Some changes needed for the migration:

Postgres:
 - Add default to five fields that have it in MySQL
 - Make log_params not nullable
 - Change log_comment_id and log_actor type to big integer
 - Change log_namespace to integer
 - Drop logging_actor_time index

MySQL/SQLite
 - Change log_title to varbinary/BLOB

Bug: T230428
Bug: T164898
Change-Id: Iad59d2a78f61d93637917ca320d3e173863ce5e1
2020-12-11 21:40:28 +00:00

42 lines
1.3 KiB
SQL

CREATE TABLE /*_*/logging_temp (
log_id INTEGER NOT NULL,
log_type BLOB DEFAULT '' NOT NULL,
log_action BLOB DEFAULT '' NOT NULL,
log_timestamp BLOB DEFAULT '19700101000000' NOT NULL,
log_actor BIGINT UNSIGNED NOT NULL,
log_namespace INTEGER DEFAULT 0 NOT NULL,
log_title BLOB DEFAULT '' NOT NULL,
log_page INTEGER UNSIGNED DEFAULT NULL,
log_comment_id BIGINT UNSIGNED NOT NULL,
log_params BLOB NOT NULL,
log_deleted SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
PRIMARY KEY(log_id)
);
INSERT INTO /*_*/logging_temp
SELECT log_id, log_type, log_action, log_timestamp, log_actor, log_namespace, log_title, log_page, log_comment_id, log_params, log_deleted
FROM /*_*/logging;
DROP TABLE /*_*/logging;
ALTER TABLE /*_*/logging_temp RENAME TO /*_*/logging;
CREATE INDEX type_time ON /*_*/logging (log_type, log_timestamp);
CREATE INDEX actor_time ON /*_*/logging (log_actor, log_timestamp);
CREATE INDEX page_time ON /*_*/logging (
log_namespace, log_title, log_timestamp
);
CREATE INDEX times ON /*_*/logging (log_timestamp);
CREATE INDEX log_actor_type_time ON /*_*/logging (
log_actor, log_type, log_timestamp
);
CREATE INDEX log_page_id_time ON /*_*/logging (log_page, log_timestamp);
CREATE INDEX log_type_action ON /*_*/logging (
log_type, log_action, log_timestamp
);