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

Michael Penick updated CASSANDRA-10246:
---------------------------------------
    Description: 
This is broken at the protocol-level and in the implementation.

At the protocol-level the {{<flags>}} component of the batch comes after the 
queries. That means the protocol parser would need to read ahead (and back 
track) to determine the values encoding and correctly read the values from the 
query entries. Also, a batch-level setting for named values forces all queries 
to use the same encoding. Should batches force a single, homogenous query value 
encoding? (This is confusing)

In the implementation, values are indiscriminately read using 
{{CBUtil.readValueList()}}, and the batch flags are never checked (for 
{{(Flag.NAMES_FOR_VALUES}} to see if {{CBUtil.readNameAndValueList()}} should 
be called instead: 
https://github.com/apache/cassandra/blob/cassandra-2.1/src/java/org/apache/cassandra/transport/messages/BatchMessage.java#L64

Proposed solution: CASSANDRA-10247

  was:
This is broken at the protocol-level and in the implementation.

At the protocol-level the {{<flags>}} component of the batch comes after the 
queries. That means the protocol parser would need to read ahead (and back 
track) to correctly read the values from the queries entries. Also, a 
batch-level setting for named values forces all queries to use named values. 
Should batches force homogenous query value types? (This is confusing)

In the implementation, values are indiscriminately read using 
{{CBUtil.readValueList()}}, and the batch flags are never checked (for 
{{(Flag.NAMES_FOR_VALUES}} to see if {{CBUtil.readNameAndValueList()}} should 
be called instead: 
https://github.com/apache/cassandra/blob/cassandra-2.1/src/java/org/apache/cassandra/transport/messages/BatchMessage.java#L64

Proposed solution: CASSANDRA-10247


> Names values don't work with batches
> ------------------------------------
>
>                 Key: CASSANDRA-10246
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10246
>             Project: Cassandra
>          Issue Type: Bug
>          Components: API
>            Reporter: Michael Penick
>
> This is broken at the protocol-level and in the implementation.
> At the protocol-level the {{<flags>}} component of the batch comes after the 
> queries. That means the protocol parser would need to read ahead (and back 
> track) to determine the values encoding and correctly read the values from 
> the query entries. Also, a batch-level setting for named values forces all 
> queries to use the same encoding. Should batches force a single, homogenous 
> query value encoding? (This is confusing)
> In the implementation, values are indiscriminately read using 
> {{CBUtil.readValueList()}}, and the batch flags are never checked (for 
> {{(Flag.NAMES_FOR_VALUES}} to see if {{CBUtil.readNameAndValueList()}} should 
> be called instead: 
> https://github.com/apache/cassandra/blob/cassandra-2.1/src/java/org/apache/cassandra/transport/messages/BatchMessage.java#L64
> Proposed solution: CASSANDRA-10247



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

Reply via email to