Details
- 
    Bug 
- 
    Status: Closed (View Workflow)
- 
    Major 
- 
    Resolution: Fixed
- 
    1.5.2
- 
    None
Description
In ha_mcs_impl.cpp doUpdateDelete(), it sets ci.tableOid (that's the cal_connection_info struct).
It never un-sets it. The next command may use this. An Insert most certainly will, causing serious consternation in the following code that may leave a table lock behind.
| drop table if exists T4126_1; | 
| drop table if exists T4126_2; | 
|  | 
| create table T4126_1 (idx int, col varchar(20)) engine=columnstore; | 
| create table T4126_2 (idx int, col varchar(20), col2 varchar(20)) engine=columnstore; | 
| insert into T4126_1 values (3, 'a'); | 
| select * from T4126_1; | 
|  | 
| insert into T4126_2 values (1, 'lamp', 'table lamp'); | 
| select * from T4126_2; | 
| update T4126_2 set col = "floor lamp" where col = 'lamp'; | 
|  | 
| drop table if exists T4126_1; | 
| drop table if exists T4126_2; | 
|  | 
| create table T4126_1 (idx1 int, col1 varchar(20)) engine=columnstore; | 
| insert into T4126_1 values (3, 'a'); <<-- Will break here and leave a lock on | 
| select * from T4126_1; | 
| drop table if exists sT4126_1; |