| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <tns:store xmlns:tns="http://tajo.apache.org/catalogstore" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tajo.apache.org/catalogstore ../DBMSSchemaDefinition.xsd "> |
| <!-- |
| Catalog base version history |
| * 6 - 2015-07-24: Merge the index branch into the master branch (TAJO-1300) |
| * 5 - 2015-06-15: Implement TablespaceManager to load Tablespaces (TAJO-1616) |
| * 4 - 2015-03-27: Partition Schema (TAJO-1284) |
| * 3 - 2015-03-12: Nested Schema (TAJO-1329) |
| * 2 - 2014-06-09: First versioning |
| * 1- Before 2013-03-20 |
| --> |
| <tns:base version="6"> |
| <tns:objects> |
| <tns:Object order="0" type="table" name="meta"> |
| <tns:sql><![CDATA[ |
| CREATE TABLE META (VERSION INT NOT NULL)]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="1" type="table" name="tablespaces"> |
| <tns:sql><![CDATA[ |
| CREATE TABLE TABLESPACES ( |
| SPACE_ID NUMBER(10) NOT NULL PRIMARY KEY, |
| SPACE_NAME VARCHAR2(128) NOT NULL UNIQUE, |
| SPACE_HANDLER VARCHAR2(1024) DEFAULT 'HDFS', |
| SPACE_URI VARCHAR2(4000) NOT NULL |
| )]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="2" type="sequence" name="TABLESPACES_SEQ"> |
| <tns:sql><![CDATA[CREATE SEQUENCE TABLESPACES_SEQ]]></tns:sql> |
| </tns:Object> |
| <tns:Object order="3" type="trigger" name="TABLESPACES_AUTOINC"> |
| <tns:sql><![CDATA[ |
| CREATE OR REPLACE TRIGGER TABLESPACES_AUTOINC |
| BEFORE INSERT ON TABLESPACES |
| FOR EACH ROW |
| WHEN (new.SPACE_ID IS NULL) |
| BEGIN |
| SELECT TABLESPACES_SEQ.NEXTVAL INTO :new.SPACE_ID FROM DUAL; |
| END;]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="4" type="table" name="DATABASES_"> |
| <tns:sql><![CDATA[ |
| CREATE TABLE DATABASES_ ( |
| DB_ID NUMBER(10) NOT NULL PRIMARY KEY, |
| DB_NAME VARCHAR2(128) NOT NULL UNIQUE, |
| SPACE_ID INT NOT NULL, |
| FOREIGN KEY (SPACE_ID) REFERENCES TABLESPACES (SPACE_ID) |
| )]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="5" type="sequence" name="DATABASES__SEQ"> |
| <tns:sql><![CDATA[ |
| CREATE SEQUENCE DATABASES__SEQ |
| ]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="6" type="trigger" name="DATABASES__AUTOINC"> |
| <tns:sql><![CDATA[ |
| CREATE OR REPLACE TRIGGER DATABASES__AUTOINC |
| BEFORE INSERT ON DATABASES_ |
| FOR EACH ROW |
| WHEN (new.DB_ID IS NULL) |
| BEGIN |
| SELECT DATABASES__SEQ.NEXTVAL INTO :new.DB_ID FROM DUAL; |
| END;]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="7" type="table" name="TABLES"> |
| <tns:sql><![CDATA[ |
| CREATE TABLE TABLES ( |
| TID NUMBER(10) NOT NULL PRIMARY KEY, |
| DB_ID INT NOT NULL, |
| TABLE_NAME VARCHAR2(128) NOT NULL, |
| TABLE_TYPE VARCHAR2(128) NOT NULL, |
| PATH VARCHAR2(4000), |
| STORE_TYPE CHAR(16), |
| FOREIGN KEY (DB_ID) REFERENCES DATABASES_ (DB_ID) |
| )]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="8" type="sequence" name="TABLES_SEQ"> |
| <tns:sql><![CDATA[ |
| CREATE SEQUENCE TABLES_SEQ |
| ]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="9" type="trigger" name="TABLES_AUTOINC"> |
| <tns:sql><![CDATA[ |
| CREATE OR REPLACE TRIGGER TABLES_AUTOINC |
| BEFORE INSERT ON TABLES |
| FOR EACH ROW |
| WHEN (new.TID IS NULL) |
| BEGIN |
| SELECT TABLES_SEQ.NEXTVAL INTO :new.TID FROM DUAL; |
| END;]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="10" type="index" name="TABLES_IDX_DB_ID" dependsOn="TABLES"> |
| <tns:sql><![CDATA[CREATE INDEX TABLES_IDX_DB_ID on TABLES (DB_ID)]]></tns:sql> |
| </tns:Object> |
| <tns:Object order="11" type="index" name="TABLES_IDX_TABLE_ID" dependsOn="TABLES"> |
| <tns:sql><![CDATA[CREATE UNIQUE INDEX TABLES_IDX_TABLE_ID on TABLES (DB_ID, TABLE_NAME)]]></tns:sql> |
| </tns:Object> |
| <tns:Object order="12" type="table" name="COLUMNS"> |
| <tns:sql><![CDATA[ |
| CREATE TABLE COLUMNS ( |
| TID INT NOT NULL, |
| COLUMN_NAME VARCHAR2(255) NOT NULL, |
| ORDINAL_POSITION INT NOT NULL, |
| NESTED_FIELD_NUM INT NOT NULL, |
| DATA_TYPE CHAR(16), |
| TYPE_LENGTH INTEGER, |
| CONSTRAINT COLUMNS_PKEY PRIMARY KEY (TID, ORDINAL_POSITION), |
| FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE |
| )]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="13" type="table" name="OPTIONS"> |
| <tns:sql><![CDATA[ |
| CREATE TABLE OPTIONS ( |
| TID INT NOT NULL, |
| KEY_ VARCHAR2(255) NOT NULL, |
| VALUE_ VARCHAR2(4000) NOT NULL, |
| CONSTRAINT OPTIONS_PKEY PRIMARY KEY (TID, KEY_), |
| FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE |
| )]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="14" type="table" name="INDEXES"> |
| <tns:sql><![CDATA[ |
| CREATE TABLE INDEXES ( |
| INDEX_ID NUMBER(10) NOT NULL PRIMARY KEY, |
| DB_ID INT NOT NULL, |
| TID INT NOT NULL, |
| INDEX_NAME VARCHAR2(128) NOT NULL, |
| INDEX_TYPE CHAR(32) NOT NULL, |
| PATH VARCHAR(4096) NOT NULL, |
| COLUMN_NAMES VARCHAR(256) NOT NULL, -- array of column names |
| DATA_TYPES VARCHAR(128) NOT NULL, -- array of column types |
| ORDERS VARCHAR(128) NOT NULL, -- array of column orders |
| NULL_ORDERS VARCHAR(128) NOT NULL, -- array of null orderings |
| IS_UNIQUE CHAR NOT NULL, |
| IS_CLUSTERED CHAR NOT NULL, |
| IS_ASCENDING CHAR NOT NULL, |
| FOREIGN KEY (DB_ID) REFERENCES DATABASES_ (DB_ID) ON DELETE CASCADE, |
| FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE |
| )]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="15" type="index" name="INDEXES_IDX_TID_COLUMN_NAME" dependsOn="INDEXES"> |
| <tns:sql><![CDATA[CREATE INDEX INDEXES_IDX_TID_COLUMN_NAME on INDEXES (TID, COLUMN_NAME)]]></tns:sql> |
| </tns:Object> |
| <tns:Object order="16" type="table" name="STATS"> |
| <tns:sql><![CDATA[ |
| CREATE TABLE STATS ( |
| TID INT NOT NULL PRIMARY KEY, |
| NUM_ROWS NUMBER(38), |
| NUM_BYTES NUMBER(38), |
| FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE |
| )]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="17" type="table" name="PARTITION_METHODS"> |
| <tns:sql><![CDATA[ |
| CREATE TABLE PARTITION_METHODS ( |
| TID INT NOT NULL PRIMARY KEY, |
| PARTITION_TYPE VARCHAR2(10) NOT NULL, |
| EXPRESSION VARCHAR2(1024) NOT NULL, |
| EXPRESSION_SCHEMA RAW(1024) NOT NULL, |
| FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE |
| )]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="18" type="table" name="PARTITIONS"> |
| <tns:sql><![CDATA[ |
| CREATE TABLE PARTITIONS ( |
| PARTITION_ID INT NOT NULL PRIMARY KEY, |
| TID INT NOT NULL, |
| PARTITION_NAME VARCHAR2(767), |
| PATH VARCHAR2(4000), |
| FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE |
| )]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="19" type="sequence" name="PARTITIONS_SEQ"> |
| <tns:sql><![CDATA[ |
| CREATE SEQUENCE PARTITIONS_SEQ |
| ]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="20" type="trigger" name="PARTITIONS_AUTOINC"> |
| <tns:sql><![CDATA[ |
| CREATE OR REPLACE TRIGGER PARTITIONS_AUTOINC |
| BEFORE INSERT ON PARTITIONS |
| FOR EACH ROW |
| WHEN (new.PARTITION_ID IS NULL) |
| BEGIN |
| SELECT PARTITIONS_SEQ.NEXTVAL INTO :new.PARTITION_ID FROM DUAL; |
| END;]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="21" type="table" name="PARTITION_KEYS"> |
| <tns:sql><![CDATA[ |
| CREATE TABLE PARTITION_KEYS ( |
| PARTITION_ID INT NOT NULL, |
| COLUMN_NAME VARCHAR2(255) NOT NULL, |
| PARTITION_VALUE VARCHAR(255) NULL, |
| FOREIGN KEY (PARTITION_ID) REFERENCES PARTITIONS (PARTITION_ID) ON DELETE CASCADE |
| )]]> |
| </tns:sql> |
| </tns:Object> |
| <tns:Object order="23" type="index" name="PARTITION_KEYS_IDX" dependsOn="PARTITION_KEYS"> |
| <tns:sql><![CDATA[CREATE INDEX PARTITION_KEYS_IDX on PARTITION_KEYS (PARTITION_ID, COLUMN_NAME, PARTITION_VALUE)]]></tns:sql> |
| </tns:Object> |
| </tns:objects> |
| </tns:base> |
| <tns:existQueries> |
| <tns:existQuery type="trigger"> |
| <tns:sql><![CDATA[SELECT TRIGGER_NAME FROM USER_TRIGGERS]]></tns:sql> |
| </tns:existQuery> |
| <tns:existQuery type="sequence"> |
| <tns:sql><![CDATA[SELECT SEQUENCE_NAME FROM USER_SEQUENCES]]></tns:sql> |
| </tns:existQuery> |
| <tns:existQuery type="view"> |
| <tns:sql><![CDATA[SELECT VIEW_NAME FROM USER_VIEWS]]></tns:sql> |
| </tns:existQuery> |
| <tns:existQuery type="index"> |
| <tns:sql><![CDATA[SELECT INDEX_NAME FROM USER_INDEXES]]></tns:sql> |
| </tns:existQuery> |
| </tns:existQueries> |
| <tns:dropStatements> |
| <tns:dropStatement type="table"> |
| <tns:sql><![CDATA[DROP TABLE ? CASCADE CONSTRAINT]]></tns:sql> |
| </tns:dropStatement> |
| </tns:dropStatements> |
| </tns:store> |