http://www.mediawiki.org/wiki/Special:Code/MediaWiki/76397
Revision: 76397 Author: ialex Date: 2010-11-09 17:41:00 +0000 (Tue, 09 Nov 2010) Log Message: ----------- Moved testRunner[|.ora|.postgres].sql to [|oracle/|postgres/]archives/ so that they can be called through DatabaseBase::patchPath(), much simplier Modified Paths: -------------- trunk/phase3/maintenance/tests/testHelpers.inc Added Paths: ----------- trunk/phase3/maintenance/archives/patch-testrun.sql trunk/phase3/maintenance/oracle/archives/patch-testrun.sql trunk/phase3/maintenance/postgres/archives/patch-testrun.sql Removed Paths: ------------- trunk/phase3/maintenance/testRunner.ora.sql trunk/phase3/maintenance/testRunner.postgres.sql trunk/phase3/maintenance/testRunner.sql Copied: trunk/phase3/maintenance/archives/patch-testrun.sql (from rev 76383, trunk/phase3/maintenance/testRunner.sql) =================================================================== --- trunk/phase3/maintenance/archives/patch-testrun.sql (rev 0) +++ trunk/phase3/maintenance/archives/patch-testrun.sql 2010-11-09 17:41:00 UTC (rev 76397) @@ -0,0 +1,35 @@ +-- +-- Optional tables for parserTests recording mode +-- With --record option, success data will be saved to these tables, +-- and comparisons of what's changed from the previous run will be +-- displayed at the end of each run. +-- +-- These tables currently require MySQL 5 (or maybe 4.1?) for subselects. +-- + +drop table if exists /*$wgDBprefix*/testitem; +drop table if exists /*$wgDBprefix*/testrun; + +create table /*$wgDBprefix*/testrun ( + tr_id int not null auto_increment, + + tr_date char(14) binary, + tr_mw_version blob, + tr_php_version blob, + tr_db_version blob, + tr_uname blob, + + primary key (tr_id) +) engine=InnoDB; + +create table /*$wgDBprefix*/testitem ( + ti_run int not null, + ti_name varchar(255), + ti_success bool, + + unique key (ti_run, ti_name), + key (ti_run, ti_success), + + foreign key (ti_run) references /*$wgDBprefix*/testrun(tr_id) + on delete cascade +) engine=InnoDB; Copied: trunk/phase3/maintenance/oracle/archives/patch-testrun.sql (from rev 76383, trunk/phase3/maintenance/testRunner.ora.sql) =================================================================== --- trunk/phase3/maintenance/oracle/archives/patch-testrun.sql (rev 0) +++ trunk/phase3/maintenance/oracle/archives/patch-testrun.sql 2010-11-09 17:41:00 UTC (rev 76397) @@ -0,0 +1,37 @@ +-- +-- Optional tables for parserTests recording mode +-- With --record option, success data will be saved to these tables, +-- and comparisons of what's changed from the previous run will be +-- displayed at the end of each run. +-- +-- defines must comply with ^define\s*([^\s=]*)\s*=\s?'\{\$([^\}]*)\}'; +define mw_prefix='{$wgDBprefix}'; + +DROP TABLE &mw_prefix.testitem CASCADE CONSTRAINTS; +DROP TABLE &mw_prefix.testrun CASCADE CONSTRAINTS; + +CREATE SEQUENCE testrun_tr_id_seq; +CREATE TABLE &mw_prefix.testrun ( + tr_id NUMBER NOT NULL, + tr_date DATE, + tr_mw_version BLOB, + tr_php_version BLOB, + tr_db_version BLOB, + tr_uname BLOB, +); +ALTER TABLE &mw_prefix.testrun ADD CONSTRAINT &mw_prefix.testrun_pk PRIMARY KEY (tr_id); +CREATE OR REPLACE TRIGGER &mw_prefix.testrun_bir +BEFORE UPDATE FOR EACH ROW +ON &mw_prefix.testrun +BEGIN + SELECT testrun_tr_id_seq.NEXTVAL into :NEW.tr_id FROM dual; +END; + +CREATE TABLE /*$wgDBprefix*/testitem ( + ti_run NUMBER NOT NULL REFERENCES &mw_prefix.testrun (tr_id) ON DELETE CASCADE, + ti_name VARCHAR22(255), + ti_success NUMBER(1) +); +CREATE UNIQUE INDEX &mw_prefix.testitem_u01 ON &mw_prefix.testitem (ti_run, ti_name); +CREATE UNIQUE INDEX &mw_prefix.testitem_u01 ON &mw_prefix.testitem (ti_run, ti_success); + Copied: trunk/phase3/maintenance/postgres/archives/patch-testrun.sql (from rev 76383, trunk/phase3/maintenance/testRunner.postgres.sql) =================================================================== --- trunk/phase3/maintenance/postgres/archives/patch-testrun.sql (rev 0) +++ trunk/phase3/maintenance/postgres/archives/patch-testrun.sql 2010-11-09 17:41:00 UTC (rev 76397) @@ -0,0 +1,30 @@ +-- +-- Optional tables for parserTests recording mode +-- With --record option, success data will be saved to these tables, +-- and comparisons of what's changed from the previous run will be +-- displayed at the end of each run. +-- +-- This file is for the Postgres version of the tables +-- + +-- Note: "if exists" will not work on older versions of Postgres +DROP TABLE IF EXISTS testitem; +DROP TABLE IF EXISTS testrun; +DROP SEQUENCE IF EXISTS testrun_id_seq; + +CREATE SEQUENCE testrun_id_seq; +CREATE TABLE testrun ( + tr_id INTEGER PRIMARY KEY NOT NULL DEFAULT nextval('testrun_id_seq'), + tr_date TIMESTAMPTZ, + tr_mw_version TEXT, + tr_php_version TEXT, + tr_db_version TEXT, + tr_uname TEXT +); + +CREATE TABLE testitem ( + ti_run INTEGER NOT NULL REFERENCES testrun(tr_id) ON DELETE CASCADE, + ti_name TEXT NOT NULL, + ti_success SMALLINT NOT NULL +); +CREATE UNIQUE INDEX testitem_uniq ON testitem(ti_run, ti_name); Deleted: trunk/phase3/maintenance/testRunner.ora.sql =================================================================== --- trunk/phase3/maintenance/testRunner.ora.sql 2010-11-09 17:10:01 UTC (rev 76396) +++ trunk/phase3/maintenance/testRunner.ora.sql 2010-11-09 17:41:00 UTC (rev 76397) @@ -1,37 +0,0 @@ --- --- Optional tables for parserTests recording mode --- With --record option, success data will be saved to these tables, --- and comparisons of what's changed from the previous run will be --- displayed at the end of each run. --- --- defines must comply with ^define\s*([^\s=]*)\s*=\s?'\{\$([^\}]*)\}'; -define mw_prefix='{$wgDBprefix}'; - -DROP TABLE &mw_prefix.testitem CASCADE CONSTRAINTS; -DROP TABLE &mw_prefix.testrun CASCADE CONSTRAINTS; - -CREATE SEQUENCE testrun_tr_id_seq; -CREATE TABLE &mw_prefix.testrun ( - tr_id NUMBER NOT NULL, - tr_date DATE, - tr_mw_version BLOB, - tr_php_version BLOB, - tr_db_version BLOB, - tr_uname BLOB, -); -ALTER TABLE &mw_prefix.testrun ADD CONSTRAINT &mw_prefix.testrun_pk PRIMARY KEY (tr_id); -CREATE OR REPLACE TRIGGER &mw_prefix.testrun_bir -BEFORE UPDATE FOR EACH ROW -ON &mw_prefix.testrun -BEGIN - SELECT testrun_tr_id_seq.NEXTVAL into :NEW.tr_id FROM dual; -END; - -CREATE TABLE /*$wgDBprefix*/testitem ( - ti_run NUMBER NOT NULL REFERENCES &mw_prefix.testrun (tr_id) ON DELETE CASCADE, - ti_name VARCHAR22(255), - ti_success NUMBER(1) -); -CREATE UNIQUE INDEX &mw_prefix.testitem_u01 ON &mw_prefix.testitem (ti_run, ti_name); -CREATE UNIQUE INDEX &mw_prefix.testitem_u01 ON &mw_prefix.testitem (ti_run, ti_success); - Deleted: trunk/phase3/maintenance/testRunner.postgres.sql =================================================================== --- trunk/phase3/maintenance/testRunner.postgres.sql 2010-11-09 17:10:01 UTC (rev 76396) +++ trunk/phase3/maintenance/testRunner.postgres.sql 2010-11-09 17:41:00 UTC (rev 76397) @@ -1,30 +0,0 @@ --- --- Optional tables for parserTests recording mode --- With --record option, success data will be saved to these tables, --- and comparisons of what's changed from the previous run will be --- displayed at the end of each run. --- --- This file is for the Postgres version of the tables --- - --- Note: "if exists" will not work on older versions of Postgres -DROP TABLE IF EXISTS testitem; -DROP TABLE IF EXISTS testrun; -DROP SEQUENCE IF EXISTS testrun_id_seq; - -CREATE SEQUENCE testrun_id_seq; -CREATE TABLE testrun ( - tr_id INTEGER PRIMARY KEY NOT NULL DEFAULT nextval('testrun_id_seq'), - tr_date TIMESTAMPTZ, - tr_mw_version TEXT, - tr_php_version TEXT, - tr_db_version TEXT, - tr_uname TEXT -); - -CREATE TABLE testitem ( - ti_run INTEGER NOT NULL REFERENCES testrun(tr_id) ON DELETE CASCADE, - ti_name TEXT NOT NULL, - ti_success SMALLINT NOT NULL -); -CREATE UNIQUE INDEX testitem_uniq ON testitem(ti_run, ti_name); Deleted: trunk/phase3/maintenance/testRunner.sql =================================================================== --- trunk/phase3/maintenance/testRunner.sql 2010-11-09 17:10:01 UTC (rev 76396) +++ trunk/phase3/maintenance/testRunner.sql 2010-11-09 17:41:00 UTC (rev 76397) @@ -1,35 +0,0 @@ --- --- Optional tables for parserTests recording mode --- With --record option, success data will be saved to these tables, --- and comparisons of what's changed from the previous run will be --- displayed at the end of each run. --- --- These tables currently require MySQL 5 (or maybe 4.1?) for subselects. --- - -drop table if exists /*$wgDBprefix*/testitem; -drop table if exists /*$wgDBprefix*/testrun; - -create table /*$wgDBprefix*/testrun ( - tr_id int not null auto_increment, - - tr_date char(14) binary, - tr_mw_version blob, - tr_php_version blob, - tr_db_version blob, - tr_uname blob, - - primary key (tr_id) -) engine=InnoDB; - -create table /*$wgDBprefix*/testitem ( - ti_run int not null, - ti_name varchar(255), - ti_success bool, - - unique key (ti_run, ti_name), - key (ti_run, ti_success), - - foreign key (ti_run) references /*$wgDBprefix*/testrun(tr_id) - on delete cascade -) engine=InnoDB; Modified: trunk/phase3/maintenance/tests/testHelpers.inc =================================================================== --- trunk/phase3/maintenance/tests/testHelpers.inc 2010-11-09 17:10:01 UTC (rev 76396) +++ trunk/phase3/maintenance/tests/testHelpers.inc 2010-11-09 17:41:00 UTC (rev 76397) @@ -309,14 +309,7 @@ or ! $this->db->tableExists( 'testitem' ) ) { print "WARNING> `testrun` table not found in database. Trying to create table.\n"; - if ( $wgDBtype === 'postgres' ) { - $this->db->sourceFile( dirname( __FILE__ ) . '/testRunner.postgres.sql' ); - } elseif ( $wgDBtype === 'oracle' ) { - $this->db->sourceFile( dirname( __FILE__ ) . '/testRunner.ora.sql' ); - } else { - $this->db->sourceFile( dirname( __FILE__ ) . '/testRunner.sql' ); - } - + $this->db->sourceFile( $this->db->patchPath( 'patch-testrun.sql' ) ); echo "OK, resuming.\n"; } _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs