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

Rick Shaw commented on CASSANDRA-3634:
--------------------------------------

If we settle on {{ByteBuffer}} as the encoding of arguments then I believe we 
must accompany it with a indicator of how it was encoded. Without it, on the 
server side we will have to trust that the caller encoded the argument to 
_exactly_ match the proper encoding for the validator or comparator used in the 
{{Term}}.

With {{String}} encoding as the argument, there is no such requirement because 
every validator or comparator can use {{fromString()}} method.

Complicating this in the JDBC driver is that the notion that the caller is free 
to provide almost any compatible type to the "setter" method and the "right" 
data will be passed to the server side. The client side does not have explicit 
knowledge of the required data types that have been dictated by the CQL that 
was prepared on the server side. Really no problem with string because all args 
are passed as a string to be dealt with on the other side; but with 
{{ByteBuffer}} if you let the user pass a number as a string for something that 
has a validator of type: {{varint}} it will throw an {{Exception}}.

If we pass the encoding method in addition to {{ByteBuffer}} we will have 
enough into on the server side to transpose the data to the required format 
that is dictated by the validator or comparator.
                
> compare string vs. binary prepared statement parameters
> -------------------------------------------------------
>
>                 Key: CASSANDRA-3634
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3634
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: API, Core
>            Reporter: Eric Evans
>            Assignee: Eric Evans
>            Priority: Minor
>              Labels: cql
>             Fix For: 1.1
>
>
> Perform benchmarks to compare the performance of string and pre-serialized 
> binary parameters to prepared statements.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to