You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Adam Warski (JIRA)" <ji...@apache.org> on 2015/12/03 13:26:10 UTC

[jira] [Updated] (CASSANDRA-10811) Prepared SELECT * queries return incorrect columns after schema change

     [ https://issues.apache.org/jira/browse/CASSANDRA-10811?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Adam Warski updated CASSANDRA-10811:
------------------------------------
    Description: 
(see also the test case attached)

When executing the following steps using a single {{com.datastax.driver.core.Session}}:
1. create table with column {{a}} and {{c}}
2. insert a single row with values for both columns
3. select that row using a prepared statement ({{SELECT * FROM table WHERE id=?}})
4. alter the table adding a new column {{b}}
5. select the row using a prepared statement (preparing the statement again, not re-using the old one)

The value of the {{c}} column is not returned, instead there's a {{NULL}} (which I suppose is the value of the newly inserted {{b}} column).

The query returns correct results if:
* step 3 is skipped, that is there is no prepared select before altering the table
* a normal, non-prepared select is done
* a select with explicitly enumerated fields is done
* a new session is created
* the new column is alphabetically larger than the existing columns (e.g. {{d}})

  was:
(see also the test case attached)

When executing the following steps using a single `com.datastax.driver.core.Session`:
1. create table with column `a` and `c`
2. insert a single row with values for both columns
3. select that row using a prepared statement (`SELECT * FROM table WHERE id=?`)
4. alter the table adding a new column `b`
5. select the row using a prepared statement (preparing the statement again, not re-using the old one)

The value of the `c` column is not returned, instead there's a `NULL` (which I suppose is the value of the newly inserted `b` column).

The query returns correct results if:
* step 3 is skipped, that is there is no prepared select before altering the table
* a normal, non-prepared select is done
* a select with explicitly enumerated fields is done
* a new session is created


> Prepared SELECT * queries return incorrect columns after schema change
> ----------------------------------------------------------------------
>
>                 Key: CASSANDRA-10811
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10811
>             Project: Cassandra
>          Issue Type: Bug
>         Environment: Cassandra 2.2.3
> Java driver 2.1.9
>            Reporter: Adam Warski
>
> (see also the test case attached)
> When executing the following steps using a single {{com.datastax.driver.core.Session}}:
> 1. create table with column {{a}} and {{c}}
> 2. insert a single row with values for both columns
> 3. select that row using a prepared statement ({{SELECT * FROM table WHERE id=?}})
> 4. alter the table adding a new column {{b}}
> 5. select the row using a prepared statement (preparing the statement again, not re-using the old one)
> The value of the {{c}} column is not returned, instead there's a {{NULL}} (which I suppose is the value of the newly inserted {{b}} column).
> The query returns correct results if:
> * step 3 is skipped, that is there is no prepared select before altering the table
> * a normal, non-prepared select is done
> * a select with explicitly enumerated fields is done
> * a new session is created
> * the new column is alphabetically larger than the existing columns (e.g. {{d}})



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)