[ 
https://issues.apache.org/jira/browse/CASSANDRA-4539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13450286#comment-13450286
 ] 

paul cannon commented on CASSANDRA-4539:
----------------------------------------

+1.
                
> potential backwards incompatibility in native protocol
> ------------------------------------------------------
>
>                 Key: CASSANDRA-4539
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4539
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: API
>    Affects Versions: 1.2.0 beta 1
>            Reporter: paul cannon
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>              Labels: cql, native_protocol
>             Fix For: 1.2.0 beta 1
>
>         Attachments: 4539.txt
>
>
> In the text of the native_protocol.spec document, it explains the format for 
> a notation called {{[option]}}, which should represent "{{a pair of 
> <id><value>}}".
> In doing a first-draft implementation of the protocol for the python driver, 
> though, I found that I had a misunderstanding. I read that section as saying 
> that {{<value>}} was a {{[value]}}, and that it could have a length of 0 
> (i.e., the {{[int]}} on the front of the {{[value]}} could be 0). However, it 
> turns out that {{<value>}} might not be there at all, or might be *two* 
> {{[value]}}'s, depending on the option id and message context.
> I'm not a fan of this, since
>  * A protocol parsing library can't simply implement a single function to 
> read in {{[option]}}'s, since the length of the value part is dependent on 
> the message context
>  * If we add a new native data type (a new option id which could be used 
> inside a {{<col_spec_i>}} in a RESULT message), then older clients will not 
> know how to read past the value part. Of course they won't know how to 
> interpret the data or deserialize later rows of that unknown type - that's 
> not the problem - the problem is that the older client should be able just to 
> mark that column as unparseable and still handle the rest of the columns.
> Can we make {{<value>}} be a {{[value]}}, the contents of which can be 
> re-interpreted as a {{[string]}}, an {{[option]}}, two {{[option]}}'s, or 
> whatever?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to