CREATE TABLE views(
  name VARCHAR(32) NOT NULL,
  query LONG NOT NULL);

CREATE TABLE referential_integrity(
  origin VARCHAR(32) NOT NULL,
  col VARCHAR(32) NOT NULL,
  reftable VARCHAR(32) NOT NULL,
  refcol VARCHAR(32) NOT NULL,
  timetype VARCHAR(32) NOT NULL);

CREATE TABLE keys(
  tablename VARCHAR(32) NOT NULL,
  attribute VARCHAR(32) NOT NULL);

CREATE TABLE table_column_constraints(
  table_name VARCHAR(32) NOT NULL,
  query LONG NOT NULL);

CREATE TABLE assertions(
  name VARCHAR(32) NOT NULL,
  type VARCHAR(10) NOT NULL,
  query LONG NOT NULL);

CREATE TABLE table_types(
  table_name VARCHAR(30) NOT NULL,
  table_type INTEGER,
  time_type  VARCHAR(16));

CREATE TABLE table_view_schemes(
  table_name VARCHAR(30) NOT NULL, 
  column_name VARCHAR(30) NOT NULL,
  data_type VARCHAR(9),
  nullable VARCHAR(12),
  column_length NUMBER,
  column_id NUMBER NOT NULL);


insert into table_types values ('dual', 0, 'snapshot');
insert into table_types values ('dictionary', 0, 'snapshot');
insert into table_types values ('dict', 0, 'snapshot');
insert into table_types values ('dict_columns', 0, 'snapshot');
insert into table_types values ('user_catalog', 0,'snapshot');
insert into table_types values ('cat', 0,'snapshot');
insert into table_types values ('user_tables', 0, 'snapshot');
insert into table_types values ('tabs', 0, 'snapshot');
insert into table_types values ('user_views', 0, 'snapshot');
insert into table_types values ('obj', 0, 'snapshot');
insert into table_types values ('user_tab_columns', 0, 'snapshot');
insert into table_types values ('cols', 0, 'snapshot');
insert into table_types values ('user_sequences', 0, 'snapshot');
insert into table_types values ('seq', 0, 'snapshot');

insert into table_types values ('views', 0, 'snapshot');
insert into table_types values ('referential_integrity', 0, 'snapshot');
insert into table_types values ('keys', 0, 'snapshot');
insert into table_types values ('table_column_constraints', 0, 'snapshot');
insert into table_types values ('assertions', 0, 'snapshot');
insert into table_types values ('table_types', 0, 'snapshot');
insert into table_types values ('table_view_schemes', 0, 'snapshot');



insert into table_view_schemes values('dual','dummy','char','null',30,1);

insert into table_view_schemes values('dictionary','table_name','char','null',30,1);
insert into table_view_schemes values('dictionary','comments','char','null',30,2);

insert into table_view_schemes values('dict','table_name','char','null',30,1);
insert into table_view_schemes values('dict','comments','char','null',30,2);

insert into table_view_schemes values('dict_columns','table_name','char','null',30,1);
insert into table_view_schemes values('dict_columns','column_name','char','null',30,2);
insert into table_view_schemes values('dict_columns','comments','char','null',30,3);

insert into table_view_schemes values('user_catalog','table_name','char','not_null',30,1);
insert into table_view_schemes values('user_catalog','table_type','char','null',30,2);

insert into table_view_schemes values('cat','table_name','char','not_null',30,1);
insert into table_view_schemes values('cat','table_type','char','null',30,2);

insert into table_view_schemes values('user_tables','table_name','char','not_null',30,1);

insert into table_view_schemes values('tabs','table_name','char','not_null',30,1);

insert into table_view_schemes values('user_views','view_name','char','not_null',30,1);
insert into table_view_schemes values('user_views','text','char','null',30,2);

insert into table_view_schemes values('user_tab_columns','table_name','char','not_null',30,1);
insert into table_view_schemes values('user_tab_columns','column_name','char','not_null',30,2);
insert into table_view_schemes values('user_tab_columns','data_type','char','null',30,3);
insert into table_view_schemes values('user_tab_columns','nullable','char','null',30,4);
insert into table_view_schemes values('user_tab_columns','column_id','decimal','null',30,5);

insert into table_view_schemes values('cols','table_name','char','not_null',30,1);
insert into table_view_schemes values('cols','column_name','char','not_null',30,2);
insert into table_view_schemes values('cols','data_type','char','null',30,3);
insert into table_view_schemes values('cols','nullable','char','null',30,4);
insert into table_view_schemes values('cols','column_id','decimal','not_null',30,5);

insert into table_view_schemes values('user_sequences','sequence_name','char','not_null',30,1);


insert into table_view_schemes values('views','name','char','not_null',32,1);
insert into table_view_schemes values('views','query','long','not_null',-1,3);

insert into table_view_schemes values('referential_integrity','origin','char','not_null',32,1);
insert into table_view_schemes values('referential_integrity','col','char','not_null',32,2);
insert into table_view_schemes values('referential_integrity','reftable','char','not_null',32,3);
insert into table_view_schemes values('referential_integrity','refcol','char','not_null',32,4);
insert into table_view_schemes values('referential_integrity','timetype','char','not_null',32,5);

insert into table_view_schemes values('keys','tablename','char','not_null',32,1);
insert into table_view_schemes values('keys','attribute','char','not_null',32,2);

insert into table_view_schemes values('table_column_constraints','table_name','char','not_null',32,1);
insert into table_view_schemes values('table_column_constraints','query','long','not_null',-1,2);

insert into table_view_schemes values('assertions','name','char','not_null',32,1);
insert into table_view_schemes values('assertions','type','char','not_null',10,2);
insert into table_view_schemes values('assertions','query','long','not_null',-1,3);

insert into table_view_schemes values('table_types','table_name','char','not_null',30,1);
insert into table_view_schemes values('table_types','table_type','char','not_null',16,2);

insert into table_view_schemes values('table_view_schemes','table_name','char','not_null',30,1);
insert into table_view_schemes values('table_view_schemes','column_name','char','not_null',30,2);
insert into table_view_schemes values('table_view_schemes','data_type','char','null',9,3);
insert into table_view_schemes values('table_view_schemes','nullable','char','null',12,4);
insert into table_view_schemes values('table_view_schemes','column_length','decimal','null',32,5);
insert into table_view_schemes values('table_view_schemes','column_id','decimal','not_null',32,6);

commit;
