blob: 148d7f4b5b5527685addc478e57bbb30967bd694 [file] [log] [blame]
/*
* 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.
*/
package org.apache.empire.dbms.oracle;
// java
import org.apache.empire.data.DataType;
import org.apache.empire.db.*;
/**
* Represents the data model of the system tables. They are required to parse the data models.
* <P>
*
*
*/
public class OracleSYSDatabase extends DBDatabase
{
// *Deprecated* private static final long serialVersionUID = 1L;
// Table for all tables of a schema with their comments
public static class DBTabComments extends DBTable
{
// *Deprecated* private static final long serialVersionUID = 1L;
public DBTableColumn C_OWNER;
public DBTableColumn C_TABLE_NAME;
public DBTableColumn C_TABLE_TYPE;
public DBTableColumn C_COMMENTS;
// Constructor
public DBTabComments(DBDatabase db)
{
super("ALL_TAB_COMMENTS", db);
// add all Colums
C_OWNER = addColumn("OWNER", DataType.VARCHAR, 50, false);
C_TABLE_NAME = addColumn("TABLE_NAME", DataType.VARCHAR, 50, false);
C_TABLE_TYPE = addColumn("TABLE_TYPE", DataType.VARCHAR, 50, false);
C_COMMENTS = addColumn("COMMENTS", DataType.VARCHAR, 500, false);
}
}
// Table for all constraints
public static class DBConstraints extends DBTable
{
// *Deprecated* private static final long serialVersionUID = 1L;
public DBTableColumn C_CONSTRAINT_NAME;
public DBTableColumn C_TABLE_NAME;
public DBTableColumn C_R_CONSTRAINT_NAME;
public DBTableColumn C_CONSTRAINT_TYPE;
public DBTableColumn C_STATUS;
// Constructor
public DBConstraints(DBDatabase db)
{
super("ALL_CONSTRAINTS", db);
// add all Colums
C_CONSTRAINT_NAME = addColumn("CONSTRAINT_NAME", DataType.VARCHAR, 100, false);
C_TABLE_NAME = addColumn("TABLE_NAME", DataType.VARCHAR, 100, false);
C_R_CONSTRAINT_NAME = addColumn("R_CONSTRAINT_NAME", DataType.VARCHAR, 100, false);
C_CONSTRAINT_TYPE = addColumn("CONSTRAINT_TYPE", DataType.VARCHAR, 1, false);
C_STATUS = addColumn("STATUS", DataType.VARCHAR, 20, false);
}
}
// Table for Columns and Tables a constraint is associated to
public static class DBUserConCol extends DBTable
{
// *Deprecated* private static final long serialVersionUID = 1L;
public DBTableColumn C_CONSTRAINT_NAME;
public DBTableColumn C_TABLE_NAME;
public DBTableColumn C_COLUMN_NAME;
public DBTableColumn C_OWNER;
// Constructor
public DBUserConCol(DBDatabase db)
{
super("USER_CONS_COLUMNS", db);
// add all Colums
C_CONSTRAINT_NAME = addColumn("CONSTRAINT_NAME", DataType.VARCHAR, 100, false);
C_TABLE_NAME = addColumn("TABLE_NAME", DataType.VARCHAR, 100, false);
C_COLUMN_NAME = addColumn("COLUMN_NAME", DataType.VARCHAR, 100, false);
C_OWNER = addColumn("OWNER", DataType.VARCHAR, 100, false);
setPrimaryKey(C_CONSTRAINT_NAME);
}
}
// Table for all columns of a schema with their comments
public static class DBColInfo extends DBTable
{
// *Deprecated* private static final long serialVersionUID = 1L;
public DBTableColumn C_OWNER;
public DBTableColumn C_TABLE_NAME;
public DBTableColumn C_COLUMN_NAME;
public DBTableColumn C_DATA_TYPE;
public DBTableColumn C_DATA_TYPE_MOD;
public DBTableColumn C_DATA_TYPE_OWNER;
public DBTableColumn C_NULLABLE;
public DBTableColumn C_DATA_LENGTH;
public DBTableColumn C_DATA_PRECISION;
public DBTableColumn C_DATA_SCALE;
public DBTableColumn C_CHAR_LENGTH;
// Constructor
public DBColInfo(DBDatabase db)
{
super("ALL_TAB_COLUMNS", db);
// add all Colums
C_OWNER = addColumn("OWNER", DataType.VARCHAR, 30, false);
C_TABLE_NAME = addColumn("TABLE_NAME", DataType.VARCHAR, 30, false);
C_COLUMN_NAME = addColumn("COLUMN_NAME", DataType.VARCHAR, 30, false);
C_DATA_TYPE = addColumn("DATA_TYPE", DataType.VARCHAR, 50, false);
C_DATA_TYPE_MOD = addColumn("DATA_TYPE_MOD", DataType.VARCHAR, 50, false);
C_DATA_TYPE_OWNER = addColumn("DATA_TYPE_OWNER", DataType.VARCHAR, 50, false);
C_NULLABLE = addColumn("NULLABLE", DataType.VARCHAR, 1, false);
C_DATA_LENGTH = addColumn("DATA_LENGTH", DataType.DECIMAL, 0, false);
C_DATA_PRECISION = addColumn("DATA_PRECISION", DataType.DECIMAL, 0, false);
C_DATA_SCALE = addColumn("DATA_SCALE", DataType.DECIMAL, 0, false);
C_CHAR_LENGTH = addColumn("CHAR_LENGTH", DataType.DECIMAL, 0, false);
}
}
// Table for all columns of a schema with their comments
public static class DBColComments extends DBTable
{
// *Deprecated* private static final long serialVersionUID = 1L;
public DBTableColumn C_OWNER;
public DBTableColumn C_TABLE_NAME;
public DBTableColumn C_COLUMN_NAME;
public DBTableColumn C_COMMENTS;
// Constructor
public DBColComments(DBDatabase db)
{
super("ALL_COL_COMMENTS", db);
// add all Colums
C_OWNER = addColumn("OWNER", DataType.VARCHAR, 50, false);
C_TABLE_NAME = addColumn("TABLE_NAME", DataType.VARCHAR, 50, false);
C_COLUMN_NAME = addColumn("COLUMN_NAME", DataType.VARCHAR, 50, false);
C_COMMENTS = addColumn("COMMENTS", DataType.VARCHAR, 500, false);
}
}
public DBTabComments TC = null;
public DBColInfo CI = null;
public DBColComments CC = null;
public DBConstraints CO = null;
public DBUserConCol UC = null;
public OracleSYSDatabase(DBMSHandlerOracle dbms)
{
// System schema
super("SYS");
// Set Driver (do not use open(...)!)
this.dbms = dbms;
// Add Tables
TC = new DBTabComments(this);
CI = new DBColInfo(this);
CC = new DBColComments(this);
CO = new DBConstraints(this);
UC = new DBUserConCol(this);
}
}