-- Oracle variant of Comments' database schema -- This is probably crazy, but so is Oracle. I've never used Oracle so -- there's a fair chance that the code is full of bugs, stupid things or both. -- Please feel free to submit patches or just go ahead and fix it. -- -- This DOES NOT build at SQLFiddle.com... -- -- Author: Jack Phoenix -- Date: 24 July 2013 -- No idea if this is needed, but /maintenance/oracle/tables.sql uses it, so I -- guess it serves some purpose here, too define mw_prefix='{$wgDBprefix}'; CREATE SEQUENCE Comments_CommentID_seq; CREATE TABLE &mw_prefix.Comments ( CommentID NUMBER NOT NULL, Comment_Page_ID NUMBER NOT NULL DEFAULT 0, Comment_user_id NUMBER NOT NULL DEFAULT 0, Comment_Username VARCHAR2(200) NOT NULL, -- CLOB (original MySQL one uses text), as per http://stackoverflow.com/questions/1180204/oracle-equivalent-of-mysqls-text-type Comment_Text CLOB NOT NULL, Comment_Date TIMESTAMP(6) WITH TIME ZONE NOT NULL, Comment_Parent_ID NUMBER NOT NULL DEFAULT 0, Comment_IP VARCHAR2(45) NOT NULL, ); CREATE INDEX &mw_prefix.comment_page_id_index ON &mw_prefix.Comments (Comment_Page_ID); CREATE INDEX &mw_prefix.wiki_user_id ON &mw_prefix.Comments (Comment_user_id); CREATE INDEX &mw_prefix.wiki_user_name ON &mw_prefix.Comments (Comment_Username); ALTER TABLE &mw_prefix.Comments ADD CONSTRAINT &mw_prefix.Comments_pk PRIMARY KEY (CommentID); CREATE TABLE &mw_prefix.Comments_Vote ( Comment_Vote_ID NUMBER NOT NULL DEFAULT 0, Comment_Vote_user_id NUMBER NOT NULL DEFAULT 0, Comment_Vote_Username VARCHAR2(200) NOT NULL, Comment_Vote_Score NUMBER NOT NULL DEFAULT 0, Comment_Vote_Date TIMESTAMP(6) WITH TIME ZONE NOT NULL, Comment_Vote_IP VARCHAR2(45) NOT NULL ); CREATE UNIQUE INDEX &mw_prefix.Comments_Vote_user_id_index ON &mw_prefix.Comments_Vote (Comment_Vote_ID,Comment_Vote_Username); CREATE INDEX &mw_prefix.Comment_Vote_Score ON &mw_prefix.Comments_Vote (Comment_Vote_Score); CREATE INDEX &mw_prefix.Comment_Vote_user_id ON &mw_prefix.Comments_Vote (Comment_Vote_user_id); CREATE SEQUENCE Comments_block_cb_id_seq; CREATE TABLE &mw_prefix.Comments_block ( cb_id NUMBER NOT NULL, cb_user_id NUMBER NOT NULL DEFAULT 0, cb_user_name VARCHAR2(255) NOT NULL, cb_user_id_blocked NUMBER DEFAULT NULL, cb_user_name_blocked VARCHAR2(255) NOT NULL, cb_date TIMESTAMP(6) WITH TIME ZONE ); CREATE INDEX &mw_prefix.cb_user_id ON &mw_prefix.Comments_block (cb_user_id); ALTER TABLE &mw_prefix.Comments_block ADD CONSTRAINT &mw_prefix.Comments_block_pk PRIMARY KEY (cb_id);