| 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> |