create table if not exists SAMPLE (id int PRIMARY KEY, val int);
create table if not exists ORGANIZATION (id int PRIMARY KEY, name varchar(255));
create table if not exists PERSON (id int PRIMARY KEY, org_id int NULL, first_name varchar(255), last_name varchar(255), salary double precision, foreign key (org_id) references ORGANIZATION(id));
create table if not exists VALUE8 (val1 int PRIMARY KEY, val2 int, val3 int, val4 int, val5 int, val6 int, val7 int, val8 int);
drop index if exists v8_2;
drop index if exists v8_3;
drop index if exists v8_4;
drop index if exists v8_5;
drop index if exists v8_6;
drop index if exists v8_7;
drop index if exists v8_8;
create index v8_2 on VALUE8 using btree (val2);
create index v8_3 on VALUE8 using btree (val3);
create index v8_4 on VALUE8 using btree (val4);
create index v8_5 on VALUE8 using btree (val5);
create index v8_6 on VALUE8 using btree (val6);
create index v8_7 on VALUE8 using btree (val7);
create index v8_8 on VALUE8 using btree (val8);