blob: f1f473c15023885c281e48033d2652ca259506a8 [file] [log] [blame]
ij(CONNECTION1)> --
-- 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.
--
-- Track 4257
-- Track 4258
-- Track 4259
--
-- test case to make sure that conglomerate metadata is stored/retrieved
-- correctly across database boots. track 4257-9 all were caused by not
-- storing the metadata correctly after an addColumn call.
-- baseline case for add column test
create table foo (a int);
0 rows inserted/updated/deleted
ij(CONNECTION1)> insert into foo values (1);
1 row inserted/updated/deleted
ij(CONNECTION1)> insert into foo values (1, 2);
ERROR 42802: The number of values assigned is not the same as the number of specified or implied columns.
ij(CONNECTION1)> select * from foo;
A
-----------
1
ij(CONNECTION1)> -- baseline case of simple create/index test
create table foo2 (a int, b int, c int);
0 rows inserted/updated/deleted
ij(CONNECTION1)> create index foo2_idx on foo2 (c);
0 rows inserted/updated/deleted
ij(CONNECTION1)> insert into foo2 values (3, 30, 300);
1 row inserted/updated/deleted
ij(CONNECTION1)> insert into foo2 values (2, 20, 200);
1 row inserted/updated/deleted
ij(CONNECTION1)> insert into foo2 values (1, 10, 100);
1 row inserted/updated/deleted
ij(CONNECTION1)> disconnect;
ij> connect 'wombat;shutdown=true';
ERROR 08006: Database 'wombat' shutdown.
ij> connect 'wombat' as conn1;
ij(CONN1)> alter table foo add column b int;
0 rows inserted/updated/deleted
ij(CONN1)> select * from foo;
A |B
-----------------------
1 |NULL
ij(CONN1)> insert into foo values (2, 1);
1 row inserted/updated/deleted
ij(CONN1)> select * from foo;
A |B
-----------------------
1 |NULL
2 |1
ij(CONN1)> -- just make sure normal case works too.
select * from foo2;
A |B |C
-----------------------------------
3 |30 |300
2 |20 |200
1 |10 |100
ij(CONN1)> select c from foo2;
C
-----------
100
200
300
ij(CONN1)> select c from foo2;
C
-----------
100
200
300
ij(CONN1)> disconnect;
ij> connect 'wombat;shutdown=true';
ERROR 08006: Database 'wombat' shutdown.
ij> connect 'wombat' as conn2;
ij(CONN2)> -- does insert correctly pick up previous alter?
insert into foo values (2, 2);
1 row inserted/updated/deleted
ij(CONN2)> -- does alter correctly pick up previous alter?
alter table foo add column c int;
0 rows inserted/updated/deleted
ij(CONN2)> -- does select correctly pick up previous alter?
select * from foo;
A |B |C
-----------------------------------
1 |NULL |NULL
2 |1 |NULL
2 |2 |NULL
ij(CONN2)> insert into foo values (3, 1, 1);
1 row inserted/updated/deleted
ij(CONN2)> select * from foo;
A |B |C
-----------------------------------
1 |NULL |NULL
2 |1 |NULL
2 |2 |NULL
3 |1 |1
ij(CONN2)> disconnect;
ij> connect 'wombat;shutdown=true';
ERROR 08006: Database 'wombat' shutdown.
ij>