cassandra-driver 3.0.0.beta.1-java → 3.0.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/README.md +106 -39
 - data/lib/cassandra.rb +396 -148
 - data/lib/cassandra/address_resolution.rb +1 -1
 - data/lib/cassandra/address_resolution/policies/ec2_multi_region.rb +1 -1
 - data/lib/cassandra/address_resolution/policies/none.rb +1 -1
 - data/lib/cassandra/aggregate.rb +21 -7
 - data/lib/cassandra/argument.rb +2 -2
 - data/lib/cassandra/attr_boolean.rb +33 -0
 - data/lib/cassandra/auth.rb +6 -5
 - data/lib/cassandra/auth/providers.rb +1 -1
 - data/lib/cassandra/auth/providers/password.rb +5 -13
 - data/lib/cassandra/cassandra_logger.rb +80 -0
 - data/lib/cassandra/cluster.rb +49 -9
 - data/lib/cassandra/cluster/client.rb +835 -209
 - data/lib/cassandra/cluster/connection_pool.rb +2 -2
 - data/lib/cassandra/cluster/connector.rb +86 -27
 - data/lib/cassandra/cluster/control_connection.rb +222 -95
 - data/lib/cassandra/cluster/failed_connection.rb +1 -1
 - data/lib/cassandra/cluster/metadata.rb +14 -8
 - data/lib/cassandra/cluster/options.rb +68 -22
 - data/lib/cassandra/cluster/registry.rb +81 -17
 - data/lib/cassandra/cluster/schema.rb +70 -8
 - data/lib/cassandra/cluster/schema/cql_type_parser.rb +15 -10
 - data/lib/cassandra/cluster/schema/fetchers.rb +601 -241
 - data/lib/cassandra/cluster/schema/fqcn_type_parser.rb +39 -38
 - data/lib/cassandra/cluster/schema/partitioners.rb +1 -1
 - data/lib/cassandra/cluster/schema/partitioners/murmur3.rb +6 -8
 - data/lib/cassandra/cluster/schema/partitioners/ordered.rb +1 -1
 - data/lib/cassandra/cluster/schema/partitioners/random.rb +1 -1
 - data/lib/cassandra/cluster/schema/replication_strategies.rb +1 -1
 - data/lib/cassandra/cluster/schema/replication_strategies/network_topology.rb +19 -18
 - data/lib/cassandra/cluster/schema/replication_strategies/none.rb +1 -1
 - data/lib/cassandra/cluster/schema/replication_strategies/simple.rb +1 -1
 - data/lib/cassandra/column.rb +4 -23
 - data/lib/cassandra/column_container.rb +322 -0
 - data/lib/cassandra/compression.rb +1 -1
 - data/lib/cassandra/compression/compressors/lz4.rb +7 -8
 - data/lib/cassandra/compression/compressors/snappy.rb +4 -3
 - data/lib/cassandra/driver.rb +107 -46
 - data/lib/cassandra/errors.rb +303 -52
 - data/lib/cassandra/execution/info.rb +16 -5
 - data/lib/cassandra/execution/options.rb +102 -55
 - data/lib/cassandra/execution/trace.rb +16 -9
 - data/lib/cassandra/executors.rb +1 -1
 - data/lib/cassandra/function.rb +19 -13
 - data/lib/cassandra/function_collection.rb +85 -0
 - data/lib/cassandra/future.rb +101 -49
 - data/lib/cassandra/host.rb +25 -5
 - data/lib/cassandra/index.rb +118 -0
 - data/lib/cassandra/keyspace.rb +169 -33
 - data/lib/cassandra/listener.rb +1 -1
 - data/lib/cassandra/load_balancing.rb +2 -2
 - data/lib/cassandra/load_balancing/policies.rb +1 -1
 - data/lib/cassandra/load_balancing/policies/dc_aware_round_robin.rb +39 -25
 - data/lib/cassandra/load_balancing/policies/round_robin.rb +8 -1
 - data/lib/cassandra/load_balancing/policies/token_aware.rb +22 -13
 - data/lib/cassandra/load_balancing/policies/white_list.rb +18 -5
 - data/lib/cassandra/materialized_view.rb +90 -0
 - data/lib/cassandra/null_logger.rb +27 -6
 - data/lib/cassandra/protocol.rb +1 -1
 - data/lib/cassandra/protocol/coder.rb +81 -42
 - data/lib/cassandra/protocol/cql_byte_buffer.rb +58 -44
 - data/lib/cassandra/protocol/cql_protocol_handler.rb +57 -54
 - data/lib/cassandra/protocol/request.rb +6 -7
 - data/lib/cassandra/protocol/requests/auth_response_request.rb +3 -3
 - data/lib/cassandra/protocol/requests/batch_request.rb +17 -8
 - data/lib/cassandra/protocol/requests/credentials_request.rb +3 -3
 - data/lib/cassandra/protocol/requests/execute_request.rb +39 -20
 - data/lib/cassandra/protocol/requests/options_request.rb +1 -1
 - data/lib/cassandra/protocol/requests/prepare_request.rb +5 -5
 - data/lib/cassandra/protocol/requests/query_request.rb +28 -23
 - data/lib/cassandra/protocol/requests/register_request.rb +2 -2
 - data/lib/cassandra/protocol/requests/startup_request.rb +8 -8
 - data/lib/cassandra/protocol/requests/void_query_request.rb +1 -1
 - data/lib/cassandra/protocol/response.rb +3 -4
 - data/lib/cassandra/protocol/responses/already_exists_error_response.rb +12 -2
 - data/lib/cassandra/protocol/responses/auth_challenge_response.rb +4 -5
 - data/lib/cassandra/protocol/responses/auth_success_response.rb +4 -5
 - data/lib/cassandra/protocol/responses/authenticate_response.rb +4 -5
 - data/lib/cassandra/protocol/responses/error_response.rb +104 -17
 - data/lib/cassandra/protocol/responses/event_response.rb +3 -4
 - data/lib/cassandra/protocol/responses/function_failure_error_response.rb +13 -2
 - data/lib/cassandra/protocol/responses/prepared_result_response.rb +14 -9
 - data/lib/cassandra/protocol/responses/raw_rows_result_response.rb +14 -9
 - data/lib/cassandra/protocol/responses/read_failure_error_response.rb +26 -4
 - data/lib/cassandra/protocol/responses/read_timeout_error_response.rb +22 -3
 - data/lib/cassandra/protocol/responses/ready_response.rb +6 -7
 - data/lib/cassandra/protocol/responses/result_response.rb +11 -10
 - data/lib/cassandra/protocol/responses/rows_result_response.rb +8 -7
 - data/lib/cassandra/protocol/responses/schema_change_event_response.rb +8 -8
 - data/lib/cassandra/protocol/responses/schema_change_result_response.rb +19 -13
 - data/lib/cassandra/protocol/responses/set_keyspace_result_response.rb +5 -6
 - data/lib/cassandra/protocol/responses/status_change_event_response.rb +5 -6
 - data/lib/cassandra/protocol/responses/supported_response.rb +4 -5
 - data/lib/cassandra/protocol/responses/topology_change_event_response.rb +4 -5
 - data/lib/cassandra/protocol/responses/unavailable_error_response.rb +20 -3
 - data/lib/cassandra/protocol/responses/unprepared_error_response.rb +11 -2
 - data/lib/cassandra/protocol/responses/void_result_response.rb +4 -5
 - data/lib/cassandra/protocol/responses/write_failure_error_response.rb +26 -4
 - data/lib/cassandra/protocol/responses/write_timeout_error_response.rb +22 -3
 - data/lib/cassandra/protocol/v1.rb +98 -37
 - data/lib/cassandra/protocol/v3.rb +121 -50
 - data/lib/cassandra/protocol/v4.rb +172 -68
 - data/lib/cassandra/reconnection.rb +1 -1
 - data/lib/cassandra/reconnection/policies.rb +1 -1
 - data/lib/cassandra/reconnection/policies/constant.rb +2 -4
 - data/lib/cassandra/reconnection/policies/exponential.rb +6 -6
 - data/lib/cassandra/result.rb +55 -20
 - data/lib/cassandra/retry.rb +8 -8
 - data/lib/cassandra/retry/policies.rb +1 -1
 - data/lib/cassandra/retry/policies/default.rb +1 -1
 - data/lib/cassandra/retry/policies/downgrading_consistency.rb +4 -2
 - data/lib/cassandra/retry/policies/fallthrough.rb +1 -1
 - data/lib/cassandra/session.rb +24 -16
 - data/lib/cassandra/statement.rb +1 -1
 - data/lib/cassandra/statements.rb +1 -1
 - data/lib/cassandra/statements/batch.rb +16 -10
 - data/lib/cassandra/statements/bound.rb +10 -3
 - data/lib/cassandra/statements/prepared.rb +62 -18
 - data/lib/cassandra/statements/simple.rb +23 -10
 - data/lib/cassandra/statements/void.rb +1 -1
 - data/lib/cassandra/table.rb +53 -185
 - data/lib/cassandra/time.rb +11 -6
 - data/lib/cassandra/time_uuid.rb +12 -14
 - data/lib/cassandra/timestamp_generator.rb +37 -0
 - data/lib/cassandra/timestamp_generator/simple.rb +38 -0
 - data/lib/cassandra/timestamp_generator/ticking_on_duplicate.rb +58 -0
 - data/lib/cassandra/tuple.rb +4 -4
 - data/lib/cassandra/types.rb +109 -71
 - data/lib/cassandra/udt.rb +66 -50
 - data/lib/cassandra/util.rb +155 -15
 - data/lib/cassandra/uuid.rb +20 -21
 - data/lib/cassandra/uuid/generator.rb +7 -5
 - data/lib/cassandra/version.rb +2 -2
 - data/lib/cassandra_murmur3.jar +0 -0
 - data/lib/datastax/cassandra.rb +1 -1
 - metadata +27 -16
 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # encoding: utf-8
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            #--
         
     | 
| 
       4 
     | 
    
         
            -
            # Copyright 2013- 
     | 
| 
      
 4 
     | 
    
         
            +
            # Copyright 2013-2016 DataStax, Inc.
         
     | 
| 
       5 
5 
     | 
    
         
             
            #
         
     | 
| 
       6 
6 
     | 
    
         
             
            # Licensed under the Apache License, Version 2.0 (the "License");
         
     | 
| 
       7 
7 
     | 
    
         
             
            # you may not use this file except in compliance with the License.
         
     | 
| 
         @@ -19,17 +19,16 @@ 
     | 
|
| 
       19 
19 
     | 
    
         
             
            module Cassandra
         
     | 
| 
       20 
20 
     | 
    
         
             
              module Protocol
         
     | 
| 
       21 
21 
     | 
    
         
             
                class Request
         
     | 
| 
       22 
     | 
    
         
            -
                   
     | 
| 
      
 22 
     | 
    
         
            +
                  extend AttrBoolean
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
                   
     | 
| 
      
 24 
     | 
    
         
            +
                  attr_reader :opcode
         
     | 
| 
      
 25 
     | 
    
         
            +
                  attr_boolean :trace
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                  def initialize(opcode, trace = false)
         
     | 
| 
       25 
28 
     | 
    
         
             
                    @opcode = opcode
         
     | 
| 
       26 
29 
     | 
    
         
             
                    @trace = trace
         
     | 
| 
       27 
30 
     | 
    
         
             
                  end
         
     | 
| 
       28 
31 
     | 
    
         | 
| 
       29 
     | 
    
         
            -
                  def trace?
         
     | 
| 
       30 
     | 
    
         
            -
                    @trace
         
     | 
| 
       31 
     | 
    
         
            -
                  end
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
32 
     | 
    
         
             
                  def compressable?
         
     | 
| 
       34 
33 
     | 
    
         
             
                    true
         
     | 
| 
       35 
34 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # encoding: utf-8
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            #--
         
     | 
| 
       4 
     | 
    
         
            -
            # Copyright 2013- 
     | 
| 
      
 4 
     | 
    
         
            +
            # Copyright 2013-2016 DataStax, Inc.
         
     | 
| 
       5 
5 
     | 
    
         
             
            #
         
     | 
| 
       6 
6 
     | 
    
         
             
            # Licensed under the Apache License, Version 2.0 (the "License");
         
     | 
| 
       7 
7 
     | 
    
         
             
            # you may not use this file except in compliance with the License.
         
     | 
| 
         @@ -35,9 +35,9 @@ module Cassandra 
     | 
|
| 
       35 
35 
     | 
    
         
             
                  end
         
     | 
| 
       36 
36 
     | 
    
         | 
| 
       37 
37 
     | 
    
         
             
                  def eql?(other)
         
     | 
| 
       38 
     | 
    
         
            -
                     
     | 
| 
      
 38 
     | 
    
         
            +
                    token == other.token
         
     | 
| 
       39 
39 
     | 
    
         
             
                  end
         
     | 
| 
       40 
     | 
    
         
            -
                   
     | 
| 
      
 40 
     | 
    
         
            +
                  alias == eql?
         
     | 
| 
       41 
41 
     | 
    
         | 
| 
       42 
42 
     | 
    
         
             
                  def hash
         
     | 
| 
       43 
43 
     | 
    
         
             
                    @h ||= begin
         
     | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # encoding: utf-8
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            #--
         
     | 
| 
       4 
     | 
    
         
            -
            # Copyright 2013- 
     | 
| 
      
 4 
     | 
    
         
            +
            # Copyright 2013-2016 DataStax, Inc.
         
     | 
| 
       5 
5 
     | 
    
         
             
            #
         
     | 
| 
       6 
6 
     | 
    
         
             
            # Licensed under the Apache License, Version 2.0 (the "License");
         
     | 
| 
       7 
7 
     | 
    
         
             
            # you may not use this file except in compliance with the License.
         
     | 
| 
         @@ -26,7 +26,12 @@ module Cassandra 
     | 
|
| 
       26 
26 
     | 
    
         
             
                  attr_reader :type, :timestamp, :payload
         
     | 
| 
       27 
27 
     | 
    
         
             
                  attr_accessor :consistency, :retries
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
       29 
     | 
    
         
            -
                  def initialize(type, 
     | 
| 
      
 29 
     | 
    
         
            +
                  def initialize(type,
         
     | 
| 
      
 30 
     | 
    
         
            +
                                 consistency,
         
     | 
| 
      
 31 
     | 
    
         
            +
                                 trace = false,
         
     | 
| 
      
 32 
     | 
    
         
            +
                                 serial_consistency = nil,
         
     | 
| 
      
 33 
     | 
    
         
            +
                                 timestamp = nil,
         
     | 
| 
      
 34 
     | 
    
         
            +
                                 payload = nil)
         
     | 
| 
       30 
35 
     | 
    
         
             
                    super(0x0D, trace)
         
     | 
| 
       31 
36 
     | 
    
         
             
                    @type  = type
         
     | 
| 
       32 
37 
     | 
    
         
             
                    @parts = []
         
     | 
| 
         @@ -60,7 +65,11 @@ module Cassandra 
     | 
|
| 
       60 
65 
     | 
    
         
             
                    buffer.append_short(@parts.size)
         
     | 
| 
       61 
66 
     | 
    
         | 
| 
       62 
67 
     | 
    
         
             
                    @parts.each do |(statement_kind, *arguments)|
         
     | 
| 
       63 
     | 
    
         
            -
                      __send__(:"write_#{statement_kind}", 
     | 
| 
      
 68 
     | 
    
         
            +
                      __send__(:"write_#{statement_kind}",
         
     | 
| 
      
 69 
     | 
    
         
            +
                               buffer,
         
     | 
| 
      
 70 
     | 
    
         
            +
                               protocol_version,
         
     | 
| 
      
 71 
     | 
    
         
            +
                               encoder,
         
     | 
| 
      
 72 
     | 
    
         
            +
                               *arguments)
         
     | 
| 
       64 
73 
     | 
    
         
             
                    end
         
     | 
| 
       65 
74 
     | 
    
         | 
| 
       66 
75 
     | 
    
         
             
                    buffer.append_consistency(@consistency)
         
     | 
| 
         @@ -72,7 +81,7 @@ module Cassandra 
     | 
|
| 
       72 
81 
     | 
    
         | 
| 
       73 
82 
     | 
    
         
             
                      buffer.append(flags.chr)
         
     | 
| 
       74 
83 
     | 
    
         
             
                      buffer.append_consistency(@serial_consistency) if @serial_consistency
         
     | 
| 
       75 
     | 
    
         
            -
                      buffer. 
     | 
| 
      
 84 
     | 
    
         
            +
                      buffer.append_long(@timestamp) if @timestamp
         
     | 
| 
       76 
85 
     | 
    
         
             
                    end
         
     | 
| 
       77 
86 
     | 
    
         | 
| 
       78 
87 
     | 
    
         
             
                    buffer
         
     | 
| 
         @@ -80,10 +89,10 @@ module Cassandra 
     | 
|
| 
       80 
89 
     | 
    
         | 
| 
       81 
90 
     | 
    
         
             
                  def to_s
         
     | 
| 
       82 
91 
     | 
    
         
             
                    type_str = case @type
         
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
      
 92 
     | 
    
         
            +
                               when LOGGED_TYPE then 'LOGGED'
         
     | 
| 
      
 93 
     | 
    
         
            +
                               when UNLOGGED_TYPE then 'UNLOGGED'
         
     | 
| 
      
 94 
     | 
    
         
            +
                               when COUNTER_TYPE then 'COUNTER'
         
     | 
| 
      
 95 
     | 
    
         
            +
                               end
         
     | 
| 
       87 
96 
     | 
    
         
             
                    %(BATCH #{type_str} #{@parts.size} #{@consistency.to_s.upcase})
         
     | 
| 
       88 
97 
     | 
    
         
             
                  end
         
     | 
| 
       89 
98 
     | 
    
         | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # encoding: utf-8
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            #--
         
     | 
| 
       4 
     | 
    
         
            -
            # Copyright 2013- 
     | 
| 
      
 4 
     | 
    
         
            +
            # Copyright 2013-2016 DataStax, Inc.
         
     | 
| 
       5 
5 
     | 
    
         
             
            #
         
     | 
| 
       6 
6 
     | 
    
         
             
            # Licensed under the Apache License, Version 2.0 (the "License");
         
     | 
| 
       7 
7 
     | 
    
         
             
            # you may not use this file except in compliance with the License.
         
     | 
| 
         @@ -35,9 +35,9 @@ module Cassandra 
     | 
|
| 
       35 
35 
     | 
    
         
             
                  end
         
     | 
| 
       36 
36 
     | 
    
         | 
| 
       37 
37 
     | 
    
         
             
                  def eql?(rq)
         
     | 
| 
       38 
     | 
    
         
            -
                    self.class  
     | 
| 
      
 38 
     | 
    
         
            +
                    rq.is_a?(self.class) && rq.credentials.eql?(@credentials)
         
     | 
| 
       39 
39 
     | 
    
         
             
                  end
         
     | 
| 
       40 
     | 
    
         
            -
                   
     | 
| 
      
 40 
     | 
    
         
            +
                  alias == eql?
         
     | 
| 
       41 
41 
     | 
    
         | 
| 
       42 
42 
     | 
    
         
             
                  def hash
         
     | 
| 
       43 
43 
     | 
    
         
             
                    @h ||= begin
         
     | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # encoding: utf-8
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            #--
         
     | 
| 
       4 
     | 
    
         
            -
            # Copyright 2013- 
     | 
| 
      
 4 
     | 
    
         
            +
            # Copyright 2013-2016 DataStax, Inc.
         
     | 
| 
       5 
5 
     | 
    
         
             
            #
         
     | 
| 
       6 
6 
     | 
    
         
             
            # Licensed under the Apache License, Version 2.0 (the "License");
         
     | 
| 
       7 
7 
     | 
    
         
             
            # you may not use this file except in compliance with the License.
         
     | 
| 
         @@ -19,13 +19,31 @@ 
     | 
|
| 
       19 
19 
     | 
    
         
             
            module Cassandra
         
     | 
| 
       20 
20 
     | 
    
         
             
              module Protocol
         
     | 
| 
       21 
21 
     | 
    
         
             
                class ExecuteRequest < Request
         
     | 
| 
       22 
     | 
    
         
            -
                  attr_reader :metadata, : 
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
      
 22 
     | 
    
         
            +
                  attr_reader :metadata, :request_metadata, :page_size, :paging_state, :payload,
         
     | 
| 
      
 23 
     | 
    
         
            +
                              :serial_consistency, :timestamp, :values
         
     | 
| 
      
 24 
     | 
    
         
            +
                  attr_accessor :consistency, :id, :retries
         
     | 
| 
       24 
25 
     | 
    
         | 
| 
       25 
     | 
    
         
            -
                  def initialize(id, 
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
      
 26 
     | 
    
         
            +
                  def initialize(id,
         
     | 
| 
      
 27 
     | 
    
         
            +
                                 metadata,
         
     | 
| 
      
 28 
     | 
    
         
            +
                                 values,
         
     | 
| 
      
 29 
     | 
    
         
            +
                                 request_metadata,
         
     | 
| 
      
 30 
     | 
    
         
            +
                                 consistency,
         
     | 
| 
      
 31 
     | 
    
         
            +
                                 serial_consistency = nil,
         
     | 
| 
      
 32 
     | 
    
         
            +
                                 page_size = nil,
         
     | 
| 
      
 33 
     | 
    
         
            +
                                 paging_state = nil,
         
     | 
| 
      
 34 
     | 
    
         
            +
                                 trace = false,
         
     | 
| 
      
 35 
     | 
    
         
            +
                                 timestamp = nil,
         
     | 
| 
      
 36 
     | 
    
         
            +
                                 payload = nil)
         
     | 
| 
      
 37 
     | 
    
         
            +
                    if metadata.size != values.size
         
     | 
| 
      
 38 
     | 
    
         
            +
                      raise ArgumentError, "Metadata for #{metadata.size} columns, but " \
         
     | 
| 
      
 39 
     | 
    
         
            +
                          "#{values.size} values given"
         
     | 
| 
      
 40 
     | 
    
         
            +
                    end
         
     | 
| 
      
 41 
     | 
    
         
            +
                    if consistency.nil? || !CONSISTENCIES.include?(consistency)
         
     | 
| 
      
 42 
     | 
    
         
            +
                      raise ArgumentError, %(No such consistency: #{consistency.inspect})
         
     | 
| 
      
 43 
     | 
    
         
            +
                    end
         
     | 
| 
      
 44 
     | 
    
         
            +
                    unless serial_consistency.nil? || CONSISTENCIES.include?(serial_consistency)
         
     | 
| 
      
 45 
     | 
    
         
            +
                      raise ArgumentError, %(No such consistency: #{serial_consistency.inspect})
         
     | 
| 
      
 46 
     | 
    
         
            +
                    end
         
     | 
| 
       29 
47 
     | 
    
         
             
                    raise ArgumentError, %(Paging state given but no page size) if paging_state && !page_size
         
     | 
| 
       30 
48 
     | 
    
         
             
                    super(10, trace)
         
     | 
| 
       31 
49 
     | 
    
         
             
                    @id = id
         
     | 
| 
         @@ -49,24 +67,18 @@ module Cassandra 
     | 
|
| 
       49 
67 
     | 
    
         
             
                    if protocol_version > 1
         
     | 
| 
       50 
68 
     | 
    
         
             
                      buffer.append_consistency(@consistency)
         
     | 
| 
       51 
69 
     | 
    
         
             
                      flags  = 0
         
     | 
| 
       52 
     | 
    
         
            -
                      flags |= 0x01  
     | 
| 
      
 70 
     | 
    
         
            +
                      flags |= 0x01 unless @values.empty?
         
     | 
| 
       53 
71 
     | 
    
         
             
                      flags |= 0x02 unless @request_metadata
         
     | 
| 
       54 
72 
     | 
    
         
             
                      flags |= 0x04 if @page_size
         
     | 
| 
       55 
73 
     | 
    
         
             
                      flags |= 0x08 if @paging_state
         
     | 
| 
       56 
74 
     | 
    
         
             
                      flags |= 0x10 if @serial_consistency
         
     | 
| 
       57 
     | 
    
         
            -
                      if protocol_version > 2
         
     | 
| 
       58 
     | 
    
         
            -
                        flags |= 0x20 if @timestamp
         
     | 
| 
       59 
     | 
    
         
            -
                      end
         
     | 
| 
      
 75 
     | 
    
         
            +
                      flags |= 0x20 if protocol_version > 2 && @timestamp
         
     | 
| 
       60 
76 
     | 
    
         
             
                      buffer.append(flags.chr)
         
     | 
| 
       61 
     | 
    
         
            -
                       
     | 
| 
       62 
     | 
    
         
            -
                        encoder.write_parameters(buffer, @values, @metadata)
         
     | 
| 
       63 
     | 
    
         
            -
                      end
         
     | 
| 
      
 77 
     | 
    
         
            +
                      encoder.write_parameters(buffer, @values, @metadata) unless @values.empty?
         
     | 
| 
       64 
78 
     | 
    
         
             
                      buffer.append_int(@page_size) if @page_size
         
     | 
| 
       65 
79 
     | 
    
         
             
                      buffer.append_bytes(@paging_state) if @paging_state
         
     | 
| 
       66 
80 
     | 
    
         
             
                      buffer.append_consistency(@serial_consistency) if @serial_consistency
         
     | 
| 
       67 
     | 
    
         
            -
                      if protocol_version > 2
         
     | 
| 
       68 
     | 
    
         
            -
                        buffer.append_timestamp(@timestamp) if @timestamp
         
     | 
| 
       69 
     | 
    
         
            -
                      end
         
     | 
| 
      
 81 
     | 
    
         
            +
                      buffer.append_long(@timestamp) if protocol_version > 2 && @timestamp
         
     | 
| 
       70 
82 
     | 
    
         
             
                    else
         
     | 
| 
       71 
83 
     | 
    
         
             
                      encoder.write_parameters(buffer, @values, @metadata)
         
     | 
| 
       72 
84 
     | 
    
         
             
                      buffer.append_consistency(@consistency)
         
     | 
| 
         @@ -76,13 +88,20 @@ module Cassandra 
     | 
|
| 
       76 
88 
     | 
    
         | 
| 
       77 
89 
     | 
    
         
             
                  def to_s
         
     | 
| 
       78 
90 
     | 
    
         
             
                    id = @id.each_byte.map { |x| x.to_s(16) }.join('')
         
     | 
| 
       79 
     | 
    
         
            -
                    %(EXECUTE #{id}  
     | 
| 
      
 91 
     | 
    
         
            +
                    %(EXECUTE #{id} #{@values} #{@consistency.to_s.upcase})
         
     | 
| 
       80 
92 
     | 
    
         
             
                  end
         
     | 
| 
       81 
93 
     | 
    
         | 
| 
       82 
94 
     | 
    
         
             
                  def eql?(rq)
         
     | 
| 
       83 
     | 
    
         
            -
                     
     | 
| 
      
 95 
     | 
    
         
            +
                    rq.is_a?(self.class) &&
         
     | 
| 
      
 96 
     | 
    
         
            +
                      rq.id == id &&
         
     | 
| 
      
 97 
     | 
    
         
            +
                      rq.metadata == metadata &&
         
     | 
| 
      
 98 
     | 
    
         
            +
                      rq.values == values &&
         
     | 
| 
      
 99 
     | 
    
         
            +
                      rq.consistency == consistency &&
         
     | 
| 
      
 100 
     | 
    
         
            +
                      rq.serial_consistency == serial_consistency &&
         
     | 
| 
      
 101 
     | 
    
         
            +
                      rq.page_size == page_size &&
         
     | 
| 
      
 102 
     | 
    
         
            +
                      rq.paging_state == paging_state
         
     | 
| 
       84 
103 
     | 
    
         
             
                  end
         
     | 
| 
       85 
     | 
    
         
            -
                   
     | 
| 
      
 104 
     | 
    
         
            +
                  alias == eql?
         
     | 
| 
       86 
105 
     | 
    
         | 
| 
       87 
106 
     | 
    
         
             
                  def hash
         
     | 
| 
       88 
107 
     | 
    
         
             
                    @h ||= begin
         
     | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # encoding: utf-8
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            #--
         
     | 
| 
       4 
     | 
    
         
            -
            # Copyright 2013- 
     | 
| 
      
 4 
     | 
    
         
            +
            # Copyright 2013-2016 DataStax, Inc.
         
     | 
| 
       5 
5 
     | 
    
         
             
            #
         
     | 
| 
       6 
6 
     | 
    
         
             
            # Licensed under the Apache License, Version 2.0 (the "License");
         
     | 
| 
       7 
7 
     | 
    
         
             
            # you may not use this file except in compliance with the License.
         
     | 
| 
         @@ -22,7 +22,7 @@ module Cassandra 
     | 
|
| 
       22 
22 
     | 
    
         
             
                  attr_reader :cql, :payload
         
     | 
| 
       23 
23 
     | 
    
         
             
                  attr_accessor :consistency, :retries
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
       25 
     | 
    
         
            -
                  def initialize(cql, trace=false, payload = nil)
         
     | 
| 
      
 25 
     | 
    
         
            +
                  def initialize(cql, trace = false, payload = nil)
         
     | 
| 
       26 
26 
     | 
    
         
             
                    raise ArgumentError, 'No CQL given!' unless cql
         
     | 
| 
       27 
27 
     | 
    
         
             
                    super(9, trace)
         
     | 
| 
       28 
28 
     | 
    
         
             
                    @cql = cql
         
     | 
| 
         @@ -39,13 +39,13 @@ module Cassandra 
     | 
|
| 
       39 
39 
     | 
    
         
             
                  end
         
     | 
| 
       40 
40 
     | 
    
         | 
| 
       41 
41 
     | 
    
         
             
                  def to_s
         
     | 
| 
       42 
     | 
    
         
            -
                    %(PREPARE " 
     | 
| 
      
 42 
     | 
    
         
            +
                    %(PREPARE "#{@cql}")
         
     | 
| 
       43 
43 
     | 
    
         
             
                  end
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
       45 
45 
     | 
    
         
             
                  def eql?(rq)
         
     | 
| 
       46 
     | 
    
         
            -
                    self.class  
     | 
| 
      
 46 
     | 
    
         
            +
                    rq.is_a?(self.class) && rq.cql == cql
         
     | 
| 
       47 
47 
     | 
    
         
             
                  end
         
     | 
| 
       48 
     | 
    
         
            -
                   
     | 
| 
      
 48 
     | 
    
         
            +
                  alias == eql?
         
     | 
| 
       49 
49 
     | 
    
         | 
| 
       50 
50 
     | 
    
         
             
                  def hash
         
     | 
| 
       51 
51 
     | 
    
         
             
                    @h ||= begin
         
     | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # encoding: utf-8
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            #--
         
     | 
| 
       4 
     | 
    
         
            -
            # Copyright 2013- 
     | 
| 
      
 4 
     | 
    
         
            +
            # Copyright 2013-2016 DataStax, Inc.
         
     | 
| 
       5 
5 
     | 
    
         
             
            #
         
     | 
| 
       6 
6 
     | 
    
         
             
            # Licensed under the Apache License, Version 2.0 (the "License");
         
     | 
| 
       7 
7 
     | 
    
         
             
            # you may not use this file except in compliance with the License.
         
     | 
| 
         @@ -19,10 +19,21 @@ 
     | 
|
| 
       19 
19 
     | 
    
         
             
            module Cassandra
         
     | 
| 
       20 
20 
     | 
    
         
             
              module Protocol
         
     | 
| 
       21 
21 
     | 
    
         
             
                class QueryRequest < Request
         
     | 
| 
       22 
     | 
    
         
            -
                  attr_reader :cql, : 
     | 
| 
      
 22 
     | 
    
         
            +
                  attr_reader :cql, :page_size, :paging_state, :payload, :serial_consistency,
         
     | 
| 
      
 23 
     | 
    
         
            +
                              :timestamp, :type_hints, :values
         
     | 
| 
       23 
24 
     | 
    
         
             
                  attr_accessor :consistency, :retries
         
     | 
| 
       24 
25 
     | 
    
         | 
| 
       25 
     | 
    
         
            -
                  def initialize(cql, 
     | 
| 
      
 26 
     | 
    
         
            +
                  def initialize(cql,
         
     | 
| 
      
 27 
     | 
    
         
            +
                                 values,
         
     | 
| 
      
 28 
     | 
    
         
            +
                                 type_hints,
         
     | 
| 
      
 29 
     | 
    
         
            +
                                 consistency,
         
     | 
| 
      
 30 
     | 
    
         
            +
                                 serial_consistency = nil,
         
     | 
| 
      
 31 
     | 
    
         
            +
                                 page_size = nil,
         
     | 
| 
      
 32 
     | 
    
         
            +
                                 paging_state = nil,
         
     | 
| 
      
 33 
     | 
    
         
            +
                                 trace = false,
         
     | 
| 
      
 34 
     | 
    
         
            +
                                 names = EMPTY_LIST,
         
     | 
| 
      
 35 
     | 
    
         
            +
                                 timestamp = nil,
         
     | 
| 
      
 36 
     | 
    
         
            +
                                 payload = nil)
         
     | 
| 
       26 
37 
     | 
    
         
             
                    super(7, trace)
         
     | 
| 
       27 
38 
     | 
    
         
             
                    @cql = cql
         
     | 
| 
       28 
39 
     | 
    
         
             
                    @values = values
         
     | 
| 
         @@ -48,14 +59,10 @@ module Cassandra 
     | 
|
| 
       48 
59 
     | 
    
         
             
                      flags |= 0x04 if @page_size
         
     | 
| 
       49 
60 
     | 
    
         
             
                      flags |= 0x08 if @paging_state
         
     | 
| 
       50 
61 
     | 
    
         
             
                      flags |= 0x10 if @serial_consistency
         
     | 
| 
       51 
     | 
    
         
            -
                      if protocol_version > 2
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
                      end
         
     | 
| 
       54 
     | 
    
         
            -
                      if @values && @values.size > 0
         
     | 
| 
      
 62 
     | 
    
         
            +
                      flags |= 0x20 if protocol_version > 2 && @timestamp
         
     | 
| 
      
 63 
     | 
    
         
            +
                      if @values && !@values.empty?
         
     | 
| 
       55 
64 
     | 
    
         
             
                        flags |= 0x01
         
     | 
| 
       56 
     | 
    
         
            -
                        if protocol_version > 2
         
     | 
| 
       57 
     | 
    
         
            -
                          flags |= 0x40 unless @names.empty?
         
     | 
| 
       58 
     | 
    
         
            -
                        end
         
     | 
| 
      
 65 
     | 
    
         
            +
                        flags |= 0x40 if protocol_version > 2 && !@names.empty?
         
     | 
| 
       59 
66 
     | 
    
         
             
                        buffer.append(flags.chr)
         
     | 
| 
       60 
67 
     | 
    
         
             
                        encoder.write_parameters(buffer, @values, @type_hints, @names)
         
     | 
| 
       61 
68 
     | 
    
         
             
                      else
         
     | 
| 
         @@ -64,28 +71,26 @@ module Cassandra 
     | 
|
| 
       64 
71 
     | 
    
         
             
                      buffer.append_int(@page_size) if @page_size
         
     | 
| 
       65 
72 
     | 
    
         
             
                      buffer.append_bytes(@paging_state) if @paging_state
         
     | 
| 
       66 
73 
     | 
    
         
             
                      buffer.append_consistency(@serial_consistency) if @serial_consistency
         
     | 
| 
       67 
     | 
    
         
            -
                      if protocol_version > 2
         
     | 
| 
       68 
     | 
    
         
            -
                        buffer.append_timestamp(@timestamp) if @timestamp
         
     | 
| 
       69 
     | 
    
         
            -
                      end
         
     | 
| 
      
 74 
     | 
    
         
            +
                      buffer.append_long(@timestamp) if protocol_version > 2 && @timestamp
         
     | 
| 
       70 
75 
     | 
    
         
             
                    end
         
     | 
| 
       71 
76 
     | 
    
         
             
                    buffer
         
     | 
| 
       72 
77 
     | 
    
         
             
                  end
         
     | 
| 
       73 
78 
     | 
    
         | 
| 
       74 
79 
     | 
    
         
             
                  def to_s
         
     | 
| 
       75 
     | 
    
         
            -
                    %(QUERY " 
     | 
| 
      
 80 
     | 
    
         
            +
                    %(QUERY "#{@cql}" #{@consistency.to_s.upcase})
         
     | 
| 
       76 
81 
     | 
    
         
             
                  end
         
     | 
| 
       77 
82 
     | 
    
         | 
| 
       78 
83 
     | 
    
         
             
                  def eql?(rq)
         
     | 
| 
       79 
     | 
    
         
            -
                    self.class  
     | 
| 
       80 
     | 
    
         
            -
                      rq.cql ==  
     | 
| 
       81 
     | 
    
         
            -
                      rq.values ==  
     | 
| 
       82 
     | 
    
         
            -
                      rq.type_hints ==  
     | 
| 
       83 
     | 
    
         
            -
                      rq.consistency ==  
     | 
| 
       84 
     | 
    
         
            -
                      rq.serial_consistency ==  
     | 
| 
       85 
     | 
    
         
            -
                      rq.page_size ==  
     | 
| 
       86 
     | 
    
         
            -
                      rq.paging_state ==  
     | 
| 
      
 84 
     | 
    
         
            +
                    rq.is_a?(self.class) &&
         
     | 
| 
      
 85 
     | 
    
         
            +
                      rq.cql == cql &&
         
     | 
| 
      
 86 
     | 
    
         
            +
                      rq.values == values &&
         
     | 
| 
      
 87 
     | 
    
         
            +
                      rq.type_hints == type_hints &&
         
     | 
| 
      
 88 
     | 
    
         
            +
                      rq.consistency == consistency &&
         
     | 
| 
      
 89 
     | 
    
         
            +
                      rq.serial_consistency == serial_consistency &&
         
     | 
| 
      
 90 
     | 
    
         
            +
                      rq.page_size == page_size &&
         
     | 
| 
      
 91 
     | 
    
         
            +
                      rq.paging_state == paging_state
         
     | 
| 
       87 
92 
     | 
    
         
             
                  end
         
     | 
| 
       88 
     | 
    
         
            -
                   
     | 
| 
      
 93 
     | 
    
         
            +
                  alias == eql?
         
     | 
| 
       89 
94 
     | 
    
         | 
| 
       90 
95 
     | 
    
         
             
                  def hash
         
     | 
| 
       91 
96 
     | 
    
         
             
                    @h ||= begin
         
     | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # encoding: utf-8
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            #--
         
     | 
| 
       4 
     | 
    
         
            -
            # Copyright 2013- 
     | 
| 
      
 4 
     | 
    
         
            +
            # Copyright 2013-2016 DataStax, Inc.
         
     | 
| 
       5 
5 
     | 
    
         
             
            #
         
     | 
| 
       6 
6 
     | 
    
         
             
            # Licensed under the Apache License, Version 2.0 (the "License");
         
     | 
| 
       7 
7 
     | 
    
         
             
            # you may not use this file except in compliance with the License.
         
     | 
| 
         @@ -31,7 +31,7 @@ module Cassandra 
     | 
|
| 
       31 
31 
     | 
    
         
             
                  end
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         
             
                  def to_s
         
     | 
| 
       34 
     | 
    
         
            -
                    %(REGISTER  
     | 
| 
      
 34 
     | 
    
         
            +
                    %(REGISTER #{@events})
         
     | 
| 
       35 
35 
     | 
    
         
             
                  end
         
     | 
| 
       36 
36 
     | 
    
         
             
                end
         
     | 
| 
       37 
37 
     | 
    
         
             
              end
         
     | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # encoding: utf-8
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            #--
         
     | 
| 
       4 
     | 
    
         
            -
            # Copyright 2013- 
     | 
| 
      
 4 
     | 
    
         
            +
            # Copyright 2013-2016 DataStax, Inc.
         
     | 
| 
       5 
5 
     | 
    
         
             
            #
         
     | 
| 
       6 
6 
     | 
    
         
             
            # Licensed under the Apache License, Version 2.0 (the "License");
         
     | 
| 
       7 
7 
     | 
    
         
             
            # you may not use this file except in compliance with the License.
         
     | 
| 
         @@ -19,9 +19,14 @@ 
     | 
|
| 
       19 
19 
     | 
    
         
             
            module Cassandra
         
     | 
| 
       20 
20 
     | 
    
         
             
              module Protocol
         
     | 
| 
       21 
21 
     | 
    
         
             
                class StartupRequest < Request
         
     | 
| 
      
 22 
     | 
    
         
            +
                  # @private
         
     | 
| 
      
 23 
     | 
    
         
            +
                  CQL_VERSION = 'CQL_VERSION'.freeze
         
     | 
| 
      
 24 
     | 
    
         
            +
                  # @private
         
     | 
| 
      
 25 
     | 
    
         
            +
                  COMPRESSION = 'COMPRESSION'.freeze
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
       22 
27 
     | 
    
         
             
                  attr_reader :options
         
     | 
| 
       23 
28 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
                  def initialize(cql_version, compression=nil)
         
     | 
| 
      
 29 
     | 
    
         
            +
                  def initialize(cql_version, compression = nil)
         
     | 
| 
       25 
30 
     | 
    
         
             
                    super(1)
         
     | 
| 
       26 
31 
     | 
    
         
             
                    raise ArgumentError, "Invalid CQL version: #{cql_version.inspect}" unless cql_version
         
     | 
| 
       27 
32 
     | 
    
         
             
                    @options = {CQL_VERSION => cql_version}
         
     | 
| 
         @@ -37,13 +42,8 @@ module Cassandra 
     | 
|
| 
       37 
42 
     | 
    
         
             
                  end
         
     | 
| 
       38 
43 
     | 
    
         | 
| 
       39 
44 
     | 
    
         
             
                  def to_s
         
     | 
| 
       40 
     | 
    
         
            -
                    %(STARTUP  
     | 
| 
      
 45 
     | 
    
         
            +
                    %(STARTUP #{@options})
         
     | 
| 
       41 
46 
     | 
    
         
             
                  end
         
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
                  private
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
                  CQL_VERSION = 'CQL_VERSION'.freeze
         
     | 
| 
       46 
     | 
    
         
            -
                  COMPRESSION = 'COMPRESSION'.freeze
         
     | 
| 
       47 
47 
     | 
    
         
             
                end
         
     | 
| 
       48 
48 
     | 
    
         
             
              end
         
     | 
| 
       49 
49 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # encoding: utf-8
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            #--
         
     | 
| 
       4 
     | 
    
         
            -
            # Copyright 2013- 
     | 
| 
      
 4 
     | 
    
         
            +
            # Copyright 2013-2016 DataStax, Inc.
         
     | 
| 
       5 
5 
     | 
    
         
             
            #
         
     | 
| 
       6 
6 
     | 
    
         
             
            # Licensed under the Apache License, Version 2.0 (the "License");
         
     | 
| 
       7 
7 
     | 
    
         
             
            # you may not use this file except in compliance with the License.
         
     | 
| 
         @@ -19,11 +19,10 @@ 
     | 
|
| 
       19 
19 
     | 
    
         
             
            module Cassandra
         
     | 
| 
       20 
20 
     | 
    
         
             
              module Protocol
         
     | 
| 
       21 
21 
     | 
    
         
             
                class Response
         
     | 
| 
       22 
     | 
    
         
            -
                  private
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
      
 22 
     | 
    
         
            +
                  # @private
         
     | 
| 
       24 
23 
     | 
    
         
             
                  RESPONSE_TYPES = [
         
     | 
| 
       25 
24 
     | 
    
         
             
                    # populated by subclasses
         
     | 
| 
       26 
25 
     | 
    
         
             
                  ]
         
     | 
| 
       27 
26 
     | 
    
         
             
                end
         
     | 
| 
       28 
27 
     | 
    
         
             
              end
         
     | 
| 
       29 
     | 
    
         
            -
            end
         
     | 
| 
      
 28 
     | 
    
         
            +
            end
         
     |