cassandra-driver 3.2.0-java → 3.2.5-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 +30 -30
- data/lib/cassandra.rb +3 -2
- 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 +1 -1
- data/lib/cassandra/argument.rb +1 -1
- data/lib/cassandra/attr_boolean.rb +1 -1
- data/lib/cassandra/auth.rb +1 -1
- data/lib/cassandra/auth/providers.rb +1 -1
- data/lib/cassandra/auth/providers/password.rb +1 -1
- data/lib/cassandra/cassandra_logger.rb +1 -1
- data/lib/cassandra/cluster.rb +1 -1
- data/lib/cassandra/cluster/client.rb +1 -1
- data/lib/cassandra/cluster/connection_pool.rb +1 -1
- data/lib/cassandra/cluster/connector.rb +1 -1
- data/lib/cassandra/cluster/control_connection.rb +1 -1
- data/lib/cassandra/cluster/failed_connection.rb +1 -1
- data/lib/cassandra/cluster/metadata.rb +1 -1
- data/lib/cassandra/cluster/options.rb +1 -1
- data/lib/cassandra/cluster/registry.rb +5 -5
- data/lib/cassandra/cluster/schema.rb +1 -1
- data/lib/cassandra/cluster/schema/cql_type_parser.rb +4 -3
- data/lib/cassandra/cluster/schema/fetchers.rb +2 -2
- data/lib/cassandra/cluster/schema/fqcn_type_parser.rb +4 -5
- data/lib/cassandra/cluster/schema/partitioners.rb +1 -1
- data/lib/cassandra/cluster/schema/partitioners/murmur3.rb +1 -1
- 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 +1 -1
- 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 +1 -1
- data/lib/cassandra/column_container.rb +2 -2
- data/lib/cassandra/compression.rb +1 -1
- data/lib/cassandra/compression/compressors/lz4.rb +1 -1
- data/lib/cassandra/compression/compressors/snappy.rb +1 -1
- data/lib/cassandra/custom_data.rb +1 -1
- data/lib/cassandra/driver.rb +1 -1
- data/lib/cassandra/duration.rb +100 -0
- data/lib/cassandra/errors.rb +1 -1
- data/lib/cassandra/execution/info.rb +1 -1
- data/lib/cassandra/execution/options.rb +1 -1
- data/lib/cassandra/execution/profile.rb +5 -2
- data/lib/cassandra/execution/profile_manager.rb +1 -1
- data/lib/cassandra/execution/trace.rb +1 -1
- data/lib/cassandra/executors.rb +1 -1
- data/lib/cassandra/function.rb +1 -1
- data/lib/cassandra/function_collection.rb +1 -1
- data/lib/cassandra/future.rb +9 -3
- data/lib/cassandra/host.rb +1 -1
- data/lib/cassandra/index.rb +1 -1
- data/lib/cassandra/keyspace.rb +1 -1
- data/lib/cassandra/listener.rb +1 -1
- data/lib/cassandra/load_balancing.rb +1 -1
- data/lib/cassandra/load_balancing/policies.rb +1 -1
- data/lib/cassandra/load_balancing/policies/dc_aware_round_robin.rb +1 -1
- data/lib/cassandra/load_balancing/policies/round_robin.rb +1 -1
- data/lib/cassandra/load_balancing/policies/token_aware.rb +1 -1
- data/lib/cassandra/load_balancing/policies/white_list.rb +1 -1
- data/lib/cassandra/materialized_view.rb +1 -1
- data/lib/cassandra/null_logger.rb +1 -1
- data/lib/cassandra/protocol.rb +1 -1
- data/lib/cassandra/protocol/coder.rb +1 -1
- data/lib/cassandra/protocol/cql_byte_buffer.rb +63 -15
- data/lib/cassandra/protocol/cql_protocol_handler.rb +58 -10
- data/lib/cassandra/protocol/request.rb +1 -1
- data/lib/cassandra/protocol/requests/auth_response_request.rb +1 -1
- data/lib/cassandra/protocol/requests/batch_request.rb +1 -1
- data/lib/cassandra/protocol/requests/credentials_request.rb +1 -1
- data/lib/cassandra/protocol/requests/execute_request.rb +1 -1
- data/lib/cassandra/protocol/requests/options_request.rb +1 -1
- data/lib/cassandra/protocol/requests/prepare_request.rb +1 -1
- data/lib/cassandra/protocol/requests/query_request.rb +11 -3
- data/lib/cassandra/protocol/requests/register_request.rb +1 -1
- data/lib/cassandra/protocol/requests/startup_request.rb +1 -1
- data/lib/cassandra/protocol/requests/void_query_request.rb +1 -1
- data/lib/cassandra/protocol/response.rb +1 -1
- data/lib/cassandra/protocol/responses/already_exists_error_response.rb +1 -1
- data/lib/cassandra/protocol/responses/auth_challenge_response.rb +1 -1
- data/lib/cassandra/protocol/responses/auth_success_response.rb +1 -1
- data/lib/cassandra/protocol/responses/authenticate_response.rb +1 -1
- data/lib/cassandra/protocol/responses/error_response.rb +1 -1
- data/lib/cassandra/protocol/responses/event_response.rb +1 -1
- data/lib/cassandra/protocol/responses/function_failure_error_response.rb +1 -1
- data/lib/cassandra/protocol/responses/prepared_result_response.rb +1 -1
- data/lib/cassandra/protocol/responses/raw_rows_result_response.rb +1 -1
- data/lib/cassandra/protocol/responses/read_failure_error_response.rb +1 -1
- data/lib/cassandra/protocol/responses/read_timeout_error_response.rb +1 -1
- data/lib/cassandra/protocol/responses/ready_response.rb +1 -1
- data/lib/cassandra/protocol/responses/result_response.rb +1 -1
- data/lib/cassandra/protocol/responses/rows_result_response.rb +1 -1
- data/lib/cassandra/protocol/responses/schema_change_event_response.rb +1 -1
- data/lib/cassandra/protocol/responses/schema_change_result_response.rb +1 -1
- data/lib/cassandra/protocol/responses/set_keyspace_result_response.rb +1 -1
- data/lib/cassandra/protocol/responses/status_change_event_response.rb +1 -1
- data/lib/cassandra/protocol/responses/supported_response.rb +1 -1
- data/lib/cassandra/protocol/responses/topology_change_event_response.rb +1 -1
- data/lib/cassandra/protocol/responses/unavailable_error_response.rb +1 -1
- data/lib/cassandra/protocol/responses/unprepared_error_response.rb +1 -1
- data/lib/cassandra/protocol/responses/void_result_response.rb +1 -1
- data/lib/cassandra/protocol/responses/write_failure_error_response.rb +1 -1
- data/lib/cassandra/protocol/responses/write_timeout_error_response.rb +1 -1
- data/lib/cassandra/protocol/v1.rb +1 -1
- data/lib/cassandra/protocol/v3.rb +1 -1
- data/lib/cassandra/protocol/v4.rb +4 -1
- data/lib/cassandra/reconnection.rb +1 -1
- data/lib/cassandra/reconnection/policies.rb +1 -1
- data/lib/cassandra/reconnection/policies/constant.rb +1 -1
- data/lib/cassandra/reconnection/policies/exponential.rb +1 -1
- data/lib/cassandra/result.rb +1 -1
- data/lib/cassandra/retry.rb +1 -1
- 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 +1 -1
- data/lib/cassandra/retry/policies/fallthrough.rb +1 -1
- data/lib/cassandra/session.rb +8 -4
- data/lib/cassandra/statement.rb +1 -1
- data/lib/cassandra/statements.rb +1 -1
- data/lib/cassandra/statements/batch.rb +1 -1
- data/lib/cassandra/statements/bound.rb +1 -1
- data/lib/cassandra/statements/prepared.rb +1 -1
- data/lib/cassandra/statements/simple.rb +1 -1
- data/lib/cassandra/statements/void.rb +1 -1
- data/lib/cassandra/table.rb +2 -2
- data/lib/cassandra/time.rb +1 -1
- data/lib/cassandra/time_uuid.rb +1 -1
- data/lib/cassandra/timestamp_generator.rb +1 -1
- data/lib/cassandra/timestamp_generator/simple.rb +1 -1
- data/lib/cassandra/timestamp_generator/ticking_on_duplicate.rb +1 -1
- data/lib/cassandra/trigger.rb +1 -1
- data/lib/cassandra/tuple.rb +1 -1
- data/lib/cassandra/types.rb +73 -2
- data/lib/cassandra/udt.rb +1 -1
- data/lib/cassandra/util.rb +21 -1
- data/lib/cassandra/uuid.rb +1 -1
- data/lib/cassandra/uuid/generator.rb +1 -1
- data/lib/cassandra/version.rb +2 -2
- data/lib/cassandra_murmur3.jar +0 -0
- data/lib/datastax/cassandra.rb +1 -1
- metadata +6 -6
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
#--
|
4
|
-
# Copyright
|
4
|
+
# Copyright 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.
|
@@ -50,7 +50,8 @@ module Cassandra
|
|
50
50
|
'org.apache.cassandra.db.marshal.ShortType' => :smallint,
|
51
51
|
'org.apache.cassandra.db.marshal.ByteType' => :tinyint,
|
52
52
|
'org.apache.cassandra.db.marshal.TimeType' => :time,
|
53
|
-
'org.apache.cassandra.db.marshal.SimpleDateType' => :date
|
53
|
+
'org.apache.cassandra.db.marshal.SimpleDateType' => :date,
|
54
|
+
'org.apache.cassandra.db.marshal.FrozenType' => :frozen
|
54
55
|
}.freeze
|
55
56
|
|
56
57
|
def parse(string)
|
@@ -109,14 +110,12 @@ module Cassandra
|
|
109
110
|
end
|
110
111
|
|
111
112
|
def lookup_type(node)
|
112
|
-
return lookup_type(node.children.first) if node.name == 'org.apache.cassandra.db.marshal.FrozenType'
|
113
|
-
|
114
113
|
type = @@types.fetch(node.name) do
|
115
114
|
return Cassandra::Types.custom(dump_node(node))
|
116
115
|
end
|
117
116
|
|
118
117
|
case type
|
119
|
-
when :set, :list
|
118
|
+
when :set, :list, :frozen
|
120
119
|
Cassandra::Types.send(type, lookup_type(node.children.first))
|
121
120
|
when :map
|
122
121
|
Cassandra::Types.map(*node.children.map(&method(:lookup_type)))
|
data/lib/cassandra/column.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
#--
|
4
|
-
# Copyright
|
4
|
+
# Copyright 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.
|
@@ -294,7 +294,7 @@ module Cassandra
|
|
294
294
|
# its keyspace constructed yet. So allow updating @keyspace, thus
|
295
295
|
# allowing fetchers to create keyspace, table/view, and hook them together without
|
296
296
|
# worrying about chickens and eggs.
|
297
|
-
# rubocop:disable
|
297
|
+
# rubocop:disable Naming/AccessorMethodName
|
298
298
|
def set_keyspace(keyspace)
|
299
299
|
@keyspace = keyspace
|
300
300
|
end
|
data/lib/cassandra/driver.rb
CHANGED
@@ -0,0 +1,100 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
#--
|
4
|
+
# Copyright DataStax, Inc.
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#++
|
18
|
+
module Cassandra
|
19
|
+
module Types
|
20
|
+
|
21
|
+
class Duration < Type
|
22
|
+
include CustomData
|
23
|
+
|
24
|
+
@@four_byte_max = 2 ** 32
|
25
|
+
@@eight_byte_max = 2 ** 64
|
26
|
+
|
27
|
+
# @private
|
28
|
+
attr_reader :months, :days, :nanos
|
29
|
+
|
30
|
+
# @private
|
31
|
+
def initialize(months, days, nanos)
|
32
|
+
super(:duration)
|
33
|
+
@months = months
|
34
|
+
@days = days
|
35
|
+
@nanos = nanos
|
36
|
+
end
|
37
|
+
|
38
|
+
def new(*values)
|
39
|
+
Util.assert_size(3, values, "Duration type expects three values, #{values.size} were provided")
|
40
|
+
values.each { |v| Util.assert_type(Int, v) }
|
41
|
+
Util.assert (Util.encode_zigzag32(values[0]) < @@four_byte_max), "Months value must be a valid 32-bit integer"
|
42
|
+
Util.assert (Util.encode_zigzag32(values[1]) < @@four_byte_max), "Days value must be a valid 32-bit integer"
|
43
|
+
Util.assert (Util.encode_zigzag64(values[2]) < @@eight_byte_max), "Nanos value must be a valid 64-bit integer"
|
44
|
+
all_positive = values.all? {|i| i >= 0 }
|
45
|
+
all_negative = values.all? {|i| i <= 0 }
|
46
|
+
Util.assert (all_positive or all_negative), "Values in a duration must be uniformly positive or negative"
|
47
|
+
Duration.new *values
|
48
|
+
end
|
49
|
+
|
50
|
+
def assert(value, message = nil, &block)
|
51
|
+
Util.assert_instance_of(Duration, value, message, &block)
|
52
|
+
end
|
53
|
+
|
54
|
+
def to_s
|
55
|
+
"Duration: months => #{@months}, days => #{@days}, nanos => #{@nanos}"
|
56
|
+
end
|
57
|
+
|
58
|
+
def hash
|
59
|
+
@hash ||= begin
|
60
|
+
h = 17
|
61
|
+
h = 31 * h + @months.hash
|
62
|
+
h = 31 * h + @days.hash
|
63
|
+
h = 31 * h + @nanos.hash
|
64
|
+
h
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def eql?(other)
|
69
|
+
other.is_a?(Duration) &&
|
70
|
+
@months == other.months &&
|
71
|
+
@days == other.days &&
|
72
|
+
@nanos == other.nanos
|
73
|
+
end
|
74
|
+
|
75
|
+
alias == eql?
|
76
|
+
|
77
|
+
def self.cql_type
|
78
|
+
Type.new(@kind)
|
79
|
+
end
|
80
|
+
|
81
|
+
# Requirements for CustomData module
|
82
|
+
def self.deserialize(bytestr)
|
83
|
+
buffer = Cassandra::Protocol::CqlByteBuffer.new.append(bytestr)
|
84
|
+
Cassandra::Types::Duration.new(buffer.read_signed_vint,buffer.read_signed_vint,buffer.read_signed_vint)
|
85
|
+
end
|
86
|
+
|
87
|
+
def self.type
|
88
|
+
Cassandra::Types::Custom.new('org.apache.cassandra.db.marshal.DurationType')
|
89
|
+
end
|
90
|
+
|
91
|
+
def serialize
|
92
|
+
rv = Cassandra::Protocol::CqlByteBuffer.new
|
93
|
+
rv.append_signed_vint32(@months)
|
94
|
+
rv.append_signed_vint32(@days)
|
95
|
+
rv.append_signed_vint64(@nanos)
|
96
|
+
rv
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
data/lib/cassandra/errors.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
#--
|
4
|
-
# Copyright
|
4
|
+
# Copyright 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.
|
@@ -114,7 +114,10 @@ module Cassandra
|
|
114
114
|
timeout = options[:timeout]
|
115
115
|
|
116
116
|
unless timeout.nil?
|
117
|
-
Util.assert_instance_of(::Numeric,
|
117
|
+
Util.assert_instance_of(::Numeric,
|
118
|
+
timeout,
|
119
|
+
":timeout must be a number of seconds,
|
120
|
+
#{timeout.inspect} given")
|
118
121
|
Util.assert(timeout > 0, ":timeout must be greater than 0, #{timeout} given")
|
119
122
|
end
|
120
123
|
end
|
data/lib/cassandra/executors.rb
CHANGED
data/lib/cassandra/function.rb
CHANGED
data/lib/cassandra/future.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
#--
|
4
|
-
# Copyright
|
4
|
+
# Copyright 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.
|
@@ -204,7 +204,13 @@ module Cassandra
|
|
204
204
|
end
|
205
205
|
|
206
206
|
def all(*futures)
|
207
|
-
|
207
|
+
# May get called with varargs or an array of futures. In the latter case,
|
208
|
+
# the first element in futures is the array of futures. Promote it.
|
209
|
+
futures = Array(futures.first) if futures.one?
|
210
|
+
|
211
|
+
# Special case where there are no futures to aggregate.
|
212
|
+
return Value.new([]) if futures.empty?
|
213
|
+
|
208
214
|
monitor = Monitor.new
|
209
215
|
promise = Promise.new(@executor)
|
210
216
|
remaining = futures.length
|
@@ -609,9 +615,9 @@ module Cassandra
|
|
609
615
|
@waiting += 1
|
610
616
|
while @state == :pending
|
611
617
|
if deadline
|
618
|
+
break if now >= deadline
|
612
619
|
@cond.wait(deadline - now)
|
613
620
|
now = ::Time.now
|
614
|
-
break if now >= deadline
|
615
621
|
else
|
616
622
|
@cond.wait
|
617
623
|
end
|
data/lib/cassandra/host.rb
CHANGED
data/lib/cassandra/index.rb
CHANGED