blob: 580ffaa02ba90886e8ebffb032ca01df0913ca53 [file] [log] [blame]
--
-- CREATE_TABLE
--
\c hdfs
--
-- CLASS DEFINITIONS
--
CREATE TABLE hobbies_r (
name text,
person text
);
CREATE TABLE equipment_r (
name text,
hobby text
);
CREATE TABLE onek (
unique1 int4,
unique2 int4,
two int4,
four int4,
ten int4,
twenty int4,
hundred int4,
thousand int4,
twothousand int4,
fivethous int4,
tenthous int4,
odd int4,
even int4,
stringu1 name,
stringu2 name,
string4 name
);
CREATE TABLE tenk1 (
unique1 int4,
unique2 int4,
two int4,
four int4,
ten int4,
twenty int4,
hundred int4,
thousand int4,
twothousand int4,
fivethous int4,
tenthous int4,
odd int4,
even int4,
stringu1 name,
stringu2 name,
string4 name
) WITH OIDS;
CREATE TABLE tenk2 (
unique1 int4,
unique2 int4,
two int4,
four int4,
ten int4,
twenty int4,
hundred int4,
thousand int4,
twothousand int4,
fivethous int4,
tenthous int4,
odd int4,
even int4,
stringu1 name,
stringu2 name,
string4 name
);
CREATE TABLE person (
name text,
age int4,
location point
);
CREATE TABLE emp (
salary int4,
manager name
) INHERITS (person) WITH OIDS;
CREATE TABLE student (
gpa float8
) INHERITS (person);
CREATE TABLE stud_emp (
percent int4
) INHERITS (emp, student);
CREATE TABLE city (
name name,
location box,
budget city_budget
);
CREATE TABLE dept (
dname name,
mgrname text
);
CREATE TABLE slow_emp4000 (
home_base box
);
CREATE TABLE fast_emp4000 (
home_base box
);
CREATE TABLE road (
name text,
thepath path
);
CREATE TABLE ihighway () INHERITS (road);
CREATE TABLE shighway (
surface text
) INHERITS (road);
CREATE TABLE real_city (
pop int4,
cname text,
outline path
);
--
-- test the "star" operators a bit more thoroughly -- this time,
-- throw in lots of NULL fields...
--
-- a is the type root
-- b and c inherit from a (one-level single inheritance)
-- d inherits from b and c (two-level multiple inheritance)
-- e inherits from c (two-level single inheritance)
-- f inherits from e (three-level single inheritance)
--
CREATE TABLE a_star (
class char,
a int4
);
CREATE TABLE b_star (
b text
) INHERITS (a_star);
CREATE TABLE c_star (
c name
) INHERITS (a_star);
CREATE TABLE d_star (
d float8
) INHERITS (b_star, c_star);
CREATE TABLE e_star (
e int2
) INHERITS (c_star);
CREATE TABLE f_star (
f polygon
) INHERITS (e_star);
CREATE TABLE aggtest (
a int2,
b float4
);
CREATE TABLE hash_i4_heap (
seqno int4,
random int4
);
CREATE TABLE hash_name_heap (
seqno int4,
random name
);
CREATE TABLE hash_txt_heap (
seqno int4,
random text
);
CREATE TABLE hash_f8_heap (
seqno int4,
random float8
);
-- don't include the hash_ovfl_heap stuff in the distribution
-- the data set is too large for what it's worth
--
-- CREATE TABLE hash_ovfl_heap (
-- x int4,
-- y int4
-- );
CREATE TABLE bt_i4_heap (
seqno int4,
random int4
);
CREATE TABLE bt_name_heap (
seqno name,
random int4
);
CREATE TABLE bt_txt_heap (
seqno text,
random int4
);
CREATE TABLE bt_f8_heap (
seqno float8,
random int4
);
CREATE TABLE array_op_test (
seqno int4,
i int4[],
t text[]
);
CREATE TABLE array_index_op_test (
seqno int4,
i int4[],
t text[]
);
-- MPP-2764: distributed randomly is not compatible with primary key or unique
-- constraints
create table distrand(i int, j int, primary key (i)) distributed randomly;
create table distrand(i int, j int, unique (i)) distributed randomly;
create table distrand(i int, j int, primary key (i, j)) distributed randomly;
create table distrand(i int, j int, unique (i, j)) distributed randomly;
create table distrand(i int, j int, constraint "test" primary key (i))
distributed randomly;
create table distrand(i int, j int, constraint "test" unique (i))
distributed randomly;
-- this should work though
create table distrand(i int, j int, constraint "test" unique (i, j))
distributed by(i, j);
drop table distrand;
create table distrand(i int, j int) distributed randomly;
create unique index distrand_idx on distrand(i);
drop table distrand;
-- Make sure distribution policy determined from CTAS actually works, MPP-101
create table distpol as select random(), 1 as a, 2 as b;
select attrnums from gp_distribution_policy where
localoid = 'distpol'::regclass;
drop table distpol;
create table distpol as select random(), 2 as foo distributed by (foo);
select attrnums from gp_distribution_policy where
localoid = 'distpol'::regclass;
drop table distpol;
-- now test that MPP-101 /actually/ works
create table distpol (i int, j int, k int);
alter table distpol add primary key (j);
select attrnums from gp_distribution_policy where
localoid = 'distpol'::regclass;
-- make sure we can't overwrite it
create unique index distpol_uidx on distpol(k);
-- should be able to now
alter table distpol drop constraint distpol_pkey;
create unique index distpol_uidx on distpol(k);
select attrnums from gp_distribution_policy where
localoid = 'distpol'::regclass;
drop index distpol_uidx;
-- expressions shouldn't be able to update the distribution key
create unique index distpol_uidx on distpol(ln(k));
drop index distpol_uidx;
-- lets make sure we don't change the policy when the table is full
insert into distpol values(1, 2, 3);
create unique index distpol_uidx on distpol(i);
alter table distpol add primary key (i);
drop table distpol;
-- MPP-2872: set ops with distributed by should work as advertised
create table distpol1 (i int, j int);
create table distpol2 (i int, j int);
create table distpol3 as select i, j from distpol1 union
select i, j from distpol2 distributed by (j);
select attrnums from gp_distribution_policy where
localoid = 'distpol3'::regclass;
drop table distpol3;
create table distpol3 as (select i, j from distpol1 union
select i, j from distpol2) distributed by (j);
select attrnums from gp_distribution_policy where
localoid = 'distpol3'::regclass;
-- MPP-7268: CTAS produces incorrect distribution.
drop table if exists foo;
drop table if exists bar;
create table foo (a varchar(15), b int) distributed by (b);
create table bar as select * from foo;
select attrnums from gp_distribution_policy where localoid='bar'::regclass;
drop table if exists foo;
drop table if exists bar;
create table foo (a int, b varchar(15)) distributed by (b);
create table bar as select * from foo;
select attrnums from gp_distribution_policy where localoid='bar'::regclass;
drop table if exists foo;
drop table if exists bar;
\c regression