blob: 8750d2b1946b31d88b52706b05ca51c8685c1f2f [file] [log] [blame]
<?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 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
SPACE_NAME VARCHAR(128) BINARY NOT NULL UNIQUE,
SPACE_HANDLER VARCHAR (1024) DEFAULT 'HDFS',
SPACE_URI VARCHAR (4096) BINARY NOT NULL,
UNIQUE INDEX IDX_NAME (SPACE_NAME)
)]]>
</tns:sql>
</tns:Object>
<tns:Object order="2" type="table" name="DATABASES_">
<tns:sql><![CDATA[
CREATE TABLE DATABASES_ (
DB_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
DB_NAME VARCHAR(128) BINARY NOT NULL UNIQUE,
SPACE_ID INT NOT NULL,
FOREIGN KEY (SPACE_ID) REFERENCES TABLESPACES (SPACE_ID),
UNIQUE INDEX IDX_NAME (DB_NAME)
)]]>
</tns:sql>
</tns:Object>
<tns:Object order="3" type="table" name="TABLES">
<tns:sql><![CDATA[
CREATE TABLE TABLES (
TID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
DB_ID INT NOT NULL,
TABLE_NAME VARCHAR(128) BINARY NOT NULL,
TABLE_TYPE VARCHAR(128) NOT NULL,
PATH VARCHAR(4096) BINARY,
STORE_TYPE CHAR(16),
FOREIGN KEY (DB_ID) REFERENCES DATABASES_ (DB_ID),
INDEX IDX_DB_ID (DB_ID),
UNIQUE INDEX IDX_TABLE_ID (DB_ID, TABLE_NAME)
)]]>
</tns:sql>
</tns:Object>
<tns:Object order="4" type="table" name="COLUMNS">
<tns:sql><![CDATA[
CREATE TABLE COLUMNS (
TID INT NOT NULL,
COLUMN_NAME VARCHAR(255) BINARY NOT NULL,
ORDINAL_POSITION INT NOT NULL,
NESTED_FIELD_NUM INT NOT NULL,
DATA_TYPE CHAR(16),
TYPE_LENGTH INTEGER,
PRIMARY KEY (TID, ORDINAL_POSITION),
FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE
)]]>
</tns:sql>
</tns:Object>
<tns:Object order="5" type="table" name="OPTIONS">
<tns:sql><![CDATA[
CREATE TABLE OPTIONS (
TID INT NOT NULL,
KEY_ VARCHAR(255) BINARY NOT NULL,
VALUE_ VARCHAR(4000) NOT NULL,
PRIMARY KEY (TID, KEY_),
FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE
)]]>
</tns:sql>
</tns:Object>
<tns:Object order="6" type="table" name="INDEXES">
<tns:sql><![CDATA[
CREATE TABLE INDEXES (
INDEX_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
DB_ID INT NOT NULL,
TID INT NOT NULL,
INDEX_NAME VARCHAR(128) NOT NULL,
INDEX_TYPE CHAR(32) BINARY 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 BOOLEAN NOT NULL,
IS_CLUSTERED BOOLEAN NOT NULL,
FOREIGN KEY (DB_ID) REFERENCES DATABASES_ (DB_ID) ON DELETE CASCADE,
FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE,
UNIQUE INDEX IDX_DB_ID_NAME (DB_ID, INDEX_NAME)
)]]>
</tns:sql>
</tns:Object>
<tns:Object order="7" type="table" name="STATS">
<tns:sql><![CDATA[
CREATE TABLE STATS (
TID INT NOT NULL PRIMARY KEY,
NUM_ROWS BIGINT,
NUM_BYTES BIGINT,
FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE
)]]>
</tns:sql>
</tns:Object>
<tns:Object order="8" type="table" name="PARTITION_METHODS">
<tns:sql><![CDATA[
CREATE TABLE PARTITION_METHODS (
TID INT NOT NULL PRIMARY KEY,
PARTITION_TYPE VARCHAR(10) NOT NULL,
EXPRESSION VARCHAR(1024) NOT NULL,
EXPRESSION_SCHEMA VARCHAR(1024) NOT NULL,
FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE
)]]>
</tns:sql>
</tns:Object>
<tns:Object order="9" type="table" name="PARTITIONS">
<tns:sql><![CDATA[
CREATE TABLE PARTITIONS (
PARTITION_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
TID INT NOT NULL,
PARTITION_NAME VARCHAR(255) BINARY,
PATH VARCHAR(4096) BINARY,
CONSTRAINT CONST_PARTITION_UNIQUE UNIQUE (PARTITION_NAME),
FOREIGN KEY (TID) REFERENCES TABLES (TID) ON DELETE CASCADE
)]]>
</tns:sql>
</tns:Object>
<tns:Object order="10" type="table" name="PARTITION_KEYS">
<tns:sql><![CDATA[
CREATE TABLE PARTITION_KEYS (
PARTITION_ID INT NOT NULL,
COLUMN_NAME VARCHAR(255) BINARY NOT NULL,
PARTITION_VALUE VARCHAR(255) BINARY NOT NULL,
UNIQUE INDEX PARTITION_KEYS_IDX (PARTITION_ID, COLUMN_NAME, PARTITION_VALUE),
FOREIGN KEY (PARTITION_ID) REFERENCES PARTITIONS (PARTITION_ID) ON DELETE CASCADE
)]]>
</tns:sql>
</tns:Object>
</tns:objects>
</tns:base>
</tns:store>