cassandra-driver 1.0.0.beta.3-java → 1.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 +51 -14
- data/lib/cassandra.rb +164 -78
- data/lib/cassandra/address_resolution.rb +36 -0
- data/lib/cassandra/address_resolution/policies.rb +2 -0
- data/lib/cassandra/address_resolution/policies/ec2_multi_region.rb +56 -0
- data/lib/cassandra/address_resolution/policies/none.rb +35 -0
- data/lib/cassandra/auth.rb +1 -1
- data/lib/cassandra/auth/providers/password.rb +1 -1
- data/lib/cassandra/cluster.rb +18 -5
- data/lib/cassandra/cluster/client.rb +175 -101
- data/lib/cassandra/{client/connection_manager.rb → cluster/connection_pool.rb} +5 -5
- data/lib/cassandra/cluster/connector.rb +142 -56
- data/lib/cassandra/cluster/control_connection.rb +385 -134
- data/lib/cassandra/{client/null_logger.rb → cluster/failed_connection.rb} +12 -14
- data/lib/cassandra/cluster/options.rb +13 -2
- data/lib/cassandra/cluster/registry.rb +19 -9
- data/lib/cassandra/column.rb +5 -0
- 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/driver.rb +29 -21
- data/lib/cassandra/errors.rb +325 -35
- data/lib/cassandra/execution/options.rb +13 -6
- data/lib/cassandra/execution/trace.rb +4 -4
- data/lib/cassandra/future.rb +7 -3
- data/lib/cassandra/keyspace.rb +5 -0
- data/lib/cassandra/load_balancing/policies/dc_aware_round_robin.rb +13 -4
- data/lib/cassandra/load_balancing/policies/token_aware.rb +2 -4
- data/lib/cassandra/load_balancing/policies/white_list.rb +3 -6
- data/lib/cassandra/null_logger.rb +35 -0
- data/lib/cassandra/protocol.rb +0 -16
- data/lib/cassandra/protocol/cql_byte_buffer.rb +18 -18
- data/lib/cassandra/protocol/cql_protocol_handler.rb +78 -8
- data/lib/cassandra/protocol/frame_decoder.rb +2 -2
- data/lib/cassandra/protocol/frame_encoder.rb +1 -1
- data/lib/cassandra/protocol/requests/query_request.rb +1 -11
- data/lib/cassandra/protocol/response.rb +1 -1
- data/lib/cassandra/protocol/responses/detailed_error_response.rb +16 -1
- data/lib/cassandra/protocol/responses/error_response.rb +17 -0
- data/lib/cassandra/protocol/responses/event_response.rb +1 -1
- data/lib/cassandra/protocol/responses/raw_rows_result_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/type_converter.rb +4 -3
- data/lib/cassandra/reconnection.rb +1 -1
- data/lib/cassandra/result.rb +4 -6
- data/lib/cassandra/retry.rb +3 -5
- data/lib/cassandra/session.rb +14 -5
- data/lib/cassandra/statements/prepared.rb +5 -1
- data/lib/cassandra/table.rb +6 -1
- data/lib/cassandra/time_uuid.rb +21 -83
- data/lib/cassandra/util.rb +131 -1
- data/lib/cassandra/uuid.rb +6 -4
- data/lib/cassandra/uuid/generator.rb +207 -0
- data/lib/cassandra/version.rb +1 -1
- data/lib/cassandra_murmur3.jar +0 -0
- metadata +43 -49
- data/lib/cassandra/client.rb +0 -144
- data/lib/cassandra/client/batch.rb +0 -212
- data/lib/cassandra/client/client.rb +0 -591
- data/lib/cassandra/client/column_metadata.rb +0 -54
- data/lib/cassandra/client/connector.rb +0 -277
- data/lib/cassandra/client/execute_options_decoder.rb +0 -59
- data/lib/cassandra/client/peer_discovery.rb +0 -50
- data/lib/cassandra/client/prepared_statement.rb +0 -314
- data/lib/cassandra/client/query_result.rb +0 -230
- data/lib/cassandra/client/request_runner.rb +0 -71
- data/lib/cassandra/client/result_metadata.rb +0 -48
- data/lib/cassandra/client/void_result.rb +0 -78
data/lib/cassandra/util.rb
CHANGED
@@ -103,7 +103,7 @@ module Cassandra
|
|
103
103
|
when false then io.print(FALSE_STR)
|
104
104
|
when true then io.print(TRUE_STR)
|
105
105
|
else
|
106
|
-
raise "unsupported type: #{object.inspect}"
|
106
|
+
raise ::ArgumentError, "unsupported type: #{object.inspect}"
|
107
107
|
end
|
108
108
|
|
109
109
|
io.string
|
@@ -137,6 +137,136 @@ module Cassandra
|
|
137
137
|
DBL_QUOT + name + DBL_QUOT
|
138
138
|
end
|
139
139
|
|
140
|
+
def assert_type(type, value, message = nil, &block)
|
141
|
+
return if value.nil?
|
142
|
+
|
143
|
+
case type
|
144
|
+
when ::Array
|
145
|
+
case type.first
|
146
|
+
when :list
|
147
|
+
assert_instance_of(::Array, value, message, &block)
|
148
|
+
value.each do |v|
|
149
|
+
assert_type(type[1], v)
|
150
|
+
end
|
151
|
+
when :set
|
152
|
+
assert_instance_of(::Set, value, message, &block)
|
153
|
+
value.each do |v|
|
154
|
+
assert_type(type[1], v)
|
155
|
+
end
|
156
|
+
when :map
|
157
|
+
assert_instance_of(::Hash, value, message, &block)
|
158
|
+
value.each do |k, v|
|
159
|
+
assert_type(type[1], k)
|
160
|
+
assert_type(type[2], v)
|
161
|
+
end
|
162
|
+
else
|
163
|
+
raise ::RuntimeError, "unsupported complex type #{type.inspect}"
|
164
|
+
end
|
165
|
+
else
|
166
|
+
case type
|
167
|
+
when :ascii then assert_instance_of(::String, value, message, &block)
|
168
|
+
when :bigint then assert_instance_of(::Numeric, value, message, &block)
|
169
|
+
when :blob then assert_instance_of(::String, value, message, &block)
|
170
|
+
when :boolean then assert_instance_of_one_of([::TrueClass, ::FalseClass], value, message, &block)
|
171
|
+
when :counter then assert_instance_of(::Numeric, value, message, &block)
|
172
|
+
when :decimal then assert_instance_of(::BigDecimal, value, message, &block)
|
173
|
+
when :double then assert_instance_of(::Float, value, message, &block)
|
174
|
+
when :float then assert_instance_of(::Float, value, message, &block)
|
175
|
+
when :inet then assert_instance_of(::IPAddr, value, message, &block)
|
176
|
+
when :int then assert_instance_of(::Numeric, value, message, &block)
|
177
|
+
when :text then assert_instance_of(::String, value, message, &block)
|
178
|
+
when :varchar then assert_instance_of(::String, value, message, &block)
|
179
|
+
when :timestamp then assert_instance_of(::Time, value, message, &block)
|
180
|
+
when :timeuuid then assert_instance_of(TimeUuid, value, message, &block)
|
181
|
+
when :uuid then assert_instance_of(Uuid, value, message, &block)
|
182
|
+
when :varint then assert_instance_of(::Numeric, value, message, &block)
|
183
|
+
else
|
184
|
+
raise ::RuntimeError, "unsupported type #{type.inspect}"
|
185
|
+
end
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
def assert_instance_of(kind, value, message = nil, &block)
|
190
|
+
unless value.is_a?(kind)
|
191
|
+
message = yield if block_given?
|
192
|
+
message ||= "value must be an instance of #{kind}, #{value.inspect} given"
|
193
|
+
|
194
|
+
raise ::ArgumentError, message
|
195
|
+
end
|
196
|
+
end
|
197
|
+
|
198
|
+
def assert_instance_of_one_of(kinds, value, message = nil, &block)
|
199
|
+
unless kinds.any? {|kind| value.is_a?(kind)}
|
200
|
+
message = yield if block_given?
|
201
|
+
message ||= "value must be an instance of one of #{kinds.inspect}, #{value.inspect} given"
|
202
|
+
|
203
|
+
raise ::ArgumentError, message
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
def assert_responds_to(method, value, message = nil, &block)
|
208
|
+
unless value.respond_to?(method)
|
209
|
+
message = yield if block_given?
|
210
|
+
message ||= "value #{value.inspect} must respond to #{method.inspect}, but doesn't"
|
211
|
+
|
212
|
+
raise ::ArgumentError, message
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
216
|
+
def assert_responds_to_all(methods, value, message = nil, &block)
|
217
|
+
unless methods.all? {|method| value.respond_to?(method)}
|
218
|
+
message = yield if block_given?
|
219
|
+
message ||= "value #{value.inspect} must respond to all methods #{methods.inspect}, but doesn't"
|
220
|
+
|
221
|
+
raise ::ArgumentError, message
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
225
|
+
def assert_not_empty(value, message = nil, &block)
|
226
|
+
if value.empty?
|
227
|
+
message = yield if block_given?
|
228
|
+
message ||= "value cannot be empty"
|
229
|
+
|
230
|
+
raise ::ArgumentError, message
|
231
|
+
end
|
232
|
+
end
|
233
|
+
|
234
|
+
def assert_file_exists(path, message = nil, &block)
|
235
|
+
unless ::File.exists?(path)
|
236
|
+
message = yield if block_given?
|
237
|
+
message ||= "expected file at #{path.inspect} to exist, but it doesn't"
|
238
|
+
|
239
|
+
raise ::ArgumentError, message
|
240
|
+
end
|
241
|
+
end
|
242
|
+
|
243
|
+
def assert_one_of(range, value, message = nil, &block)
|
244
|
+
unless range.include?(value)
|
245
|
+
message = yield if block_given?
|
246
|
+
message ||= "value must be included in #{value.inspect}, #{value.inspect} given"
|
247
|
+
|
248
|
+
raise ::ArgumentError, message
|
249
|
+
end
|
250
|
+
end
|
251
|
+
|
252
|
+
def assert(condition, message = nil, &block)
|
253
|
+
unless condition
|
254
|
+
message = yield if block_given?
|
255
|
+
message ||= "assertion failed"
|
256
|
+
|
257
|
+
raise ::ArgumentError, message
|
258
|
+
end
|
259
|
+
end
|
260
|
+
|
261
|
+
def assert_equal(expected, actual, message = nil, &block)
|
262
|
+
unless expected == actual
|
263
|
+
message = yield if block_given?
|
264
|
+
message ||= "expected #{actual.inspect} to equal #{expected.inspect}"
|
265
|
+
|
266
|
+
raise ::ArgumentError, message
|
267
|
+
end
|
268
|
+
end
|
269
|
+
|
140
270
|
# @private
|
141
271
|
LOWERCASE_REGEXP = /[[:lower:]\_]*/
|
142
272
|
# @private
|
data/lib/cassandra/uuid.rb
CHANGED
@@ -22,7 +22,7 @@ module Cassandra
|
|
22
22
|
# This is a very basic implementation of UUIDs and exists more or less just
|
23
23
|
# to encode and decode UUIDs from and to Cassandra.
|
24
24
|
#
|
25
|
-
# If you want to generate UUIDs see {Cassandra::
|
25
|
+
# If you want to generate UUIDs see {Cassandra::Uuid::Generator}.
|
26
26
|
#
|
27
27
|
class Uuid
|
28
28
|
# Creates a new UUID either from a string (expected to be on the standard 8-4-4-4-12 form, or just 32 characters without hyphens), or from a 128 bit number.
|
@@ -88,17 +88,19 @@ module Cassandra
|
|
88
88
|
# @private
|
89
89
|
def from_s(str)
|
90
90
|
str = str.gsub(HYPHEN, EMPTY_STRING)
|
91
|
-
raise ArgumentError, "Expected 32 hexadecimal digits but got #{str.length}" unless str.length == 32
|
92
|
-
raise ArgumentError, "invalid value for Integer(): \"#{str}\"" unless str =~ HEX_RE
|
91
|
+
raise ::ArgumentError, "Expected 32 hexadecimal digits but got #{str.length}" unless str.length == 32
|
92
|
+
raise ::ArgumentError, "invalid value for Integer(): \"#{str}\"" unless str =~ HEX_RE
|
93
93
|
Integer(str, 16)
|
94
94
|
end
|
95
95
|
else
|
96
96
|
# @private
|
97
97
|
def from_s(str)
|
98
98
|
str = str.gsub(HYPHEN, EMPTY_STRING)
|
99
|
-
raise ArgumentError, "Expected 32 hexadecimal digits but got #{str.length}" unless str.length == 32
|
99
|
+
raise ::ArgumentError, "Expected 32 hexadecimal digits but got #{str.length}" unless str.length == 32
|
100
100
|
Integer(str, 16)
|
101
101
|
end
|
102
102
|
end
|
103
103
|
end
|
104
104
|
end
|
105
|
+
|
106
|
+
require 'cassandra/uuid/generator'
|
@@ -0,0 +1,207 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
#--
|
4
|
+
# Copyright 2013-2014 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
|
+
|
19
|
+
module Cassandra
|
20
|
+
class Uuid
|
21
|
+
# A UUID generator.
|
22
|
+
#
|
23
|
+
# This class can be used to genereate Apache Cassandra timeuuid and uuid
|
24
|
+
# values.
|
25
|
+
#
|
26
|
+
# @see Cassandra::Uuid::Generator#now Generating a sequence time UUIDs
|
27
|
+
# with reasonable uniqueness guarantees.
|
28
|
+
# @see Cassandra::Uuid::Generator#at Generating a time UUID for a given
|
29
|
+
# time object or unix timestamp.
|
30
|
+
# @see Cassandra::Uuid::Generator#uuid Generating completely random v4
|
31
|
+
# UUIDs.
|
32
|
+
#
|
33
|
+
# @note Instances of this class are absolutely not threadsafe. You should
|
34
|
+
# never share instances between threads.
|
35
|
+
#
|
36
|
+
class Generator
|
37
|
+
# Create a new UUID generator.
|
38
|
+
#
|
39
|
+
# The clock ID and node ID components are set to random numbers when the
|
40
|
+
# generator is created. These are used for generation of time UUIDs only.
|
41
|
+
#
|
42
|
+
# @param [Integer] node_id an alternate node ID
|
43
|
+
# @param [Integer] clock_id an alternate clock ID
|
44
|
+
# @param [Object<#now>] clock used to generate timeuuid from current time
|
45
|
+
#
|
46
|
+
# @raise [ArgumentError] if clock doesn't respond to `now`
|
47
|
+
def initialize(node_id = (SecureRandom.random_number(2**47) | 0x010000000000), clock_id = SecureRandom.random_number(65536), clock = Time)
|
48
|
+
raise ::ArgumentError, "invalid clock" unless clock.respond_to?(:now)
|
49
|
+
|
50
|
+
@node_id = Integer(node_id)
|
51
|
+
@clock_id = Integer(clock_id)
|
52
|
+
@clock = clock
|
53
|
+
end
|
54
|
+
|
55
|
+
# Returns a new UUID with a time component that is the current time.
|
56
|
+
#
|
57
|
+
# If two calls to {#now} happen within the time afforded by the system
|
58
|
+
# clock resolution a counter is incremented and added to the time
|
59
|
+
# component.
|
60
|
+
#
|
61
|
+
# If the clock moves backwards the clock ID is reset to a new random
|
62
|
+
# number.
|
63
|
+
#
|
64
|
+
# @example Creating a sequential TimeUuids for the current time
|
65
|
+
# generator = Cassandra::Uuid::Generator.new
|
66
|
+
# timeuuids = 5.times.map { generator.now }
|
67
|
+
#
|
68
|
+
# puts timeuuids.zip(timeuuids.map(&:to_time)).map(&:inspect)
|
69
|
+
#
|
70
|
+
# # Outputs:
|
71
|
+
# # [8614b7d0-5646-11e4-8e54-6761d3995ef3, 2014-10-17 21:42:42 UTC]
|
72
|
+
# # [8614b91a-5646-11e4-8e54-6761d3995ef3, 2014-10-17 21:42:42 UTC]
|
73
|
+
# # [8614b960-5646-11e4-8e54-6761d3995ef3, 2014-10-17 21:42:42 UTC]
|
74
|
+
# # [8614b99c-5646-11e4-8e54-6761d3995ef3, 2014-10-17 21:42:42 UTC]
|
75
|
+
# # [8614b9ce-5646-11e4-8e54-6761d3995ef3, 2014-10-17 21:42:42 UTC]
|
76
|
+
#
|
77
|
+
# @see Time.now
|
78
|
+
#
|
79
|
+
# @return [Cassandra::TimeUuid] a new UUID
|
80
|
+
def now
|
81
|
+
now = @clock.now
|
82
|
+
usecs = now.to_i * 1_000_000 + now.usec
|
83
|
+
if @last_usecs && @last_usecs - @sequence <= usecs && usecs <= @last_usecs
|
84
|
+
@sequence += 1
|
85
|
+
elsif @last_usecs && @last_usecs > usecs
|
86
|
+
@sequence = 0
|
87
|
+
@clock_id = SecureRandom.random_number(65536)
|
88
|
+
else
|
89
|
+
@sequence = 0
|
90
|
+
end
|
91
|
+
@last_usecs = usecs + @sequence
|
92
|
+
from_usecs(@last_usecs)
|
93
|
+
end
|
94
|
+
|
95
|
+
# Returns a new UUID with a time component based on the specified Time.
|
96
|
+
# A piece of jitter is added to ensure that multiple calls with the same
|
97
|
+
# time do not generate the same UUID (if you want determinism you can set
|
98
|
+
# the second parameter to zero).
|
99
|
+
#
|
100
|
+
# @overload at(time, jitter = SecureRandom.random_number(65536))
|
101
|
+
# @param [Time] time a Time instance
|
102
|
+
# @param [Integer] jitter a number of microseconds to add to the time
|
103
|
+
# @return [Cassandra::TimeUuid] a new UUID
|
104
|
+
# @overload at(seconds_with_frac, jitter = SecureRandom.random_number(65536))
|
105
|
+
# @param [Numeric] seconds_with_frac can be {Integer}, {Float},
|
106
|
+
# {Rational}, or other {Numeric}
|
107
|
+
# @param [Integer] jitter a number of microseconds to add to the time
|
108
|
+
# @return [Cassandra::TimeUuid] a new UUID
|
109
|
+
# @overload at(seconds, microseconds_with_frac, jitter = SecureRandom.random_number(65536))
|
110
|
+
# @param [Integer] seconds
|
111
|
+
# @param [Numeric] microseconds_with_frac can be {Integer}, {Float},
|
112
|
+
# {Rational}, or other {Numeric}
|
113
|
+
# @param [Integer] jitter a number of microseconds to add to the time
|
114
|
+
# @return [Cassandra::TimeUuid] a new UUID
|
115
|
+
#
|
116
|
+
# @note the `jitter` argument accepted by all variants of this method is
|
117
|
+
# required to add randomness to generated {Cassandra::TimeUuid} and
|
118
|
+
# might affect the order of generated timestamps. You should set
|
119
|
+
# `jitter` to 0 when the source time(stamp)s are unique.
|
120
|
+
#
|
121
|
+
# @example Creating a TimeUuid from a Time instance
|
122
|
+
# generator = Cassandra::Uuid::Generator.new
|
123
|
+
# timeuuid = generator.at(Time.at(1413582460))
|
124
|
+
#
|
125
|
+
# puts timeuuid.to_time
|
126
|
+
#
|
127
|
+
# # Outputs:
|
128
|
+
# # 2014-10-17 21:47:40 UTC
|
129
|
+
#
|
130
|
+
# @example Creating a TimeUuid from a timestamp
|
131
|
+
# generator = Cassandra::Uuid::Generator.new
|
132
|
+
# timeuuid = generator.at(1413582423)
|
133
|
+
#
|
134
|
+
# puts timeuuid.to_time
|
135
|
+
#
|
136
|
+
# # Outputs:
|
137
|
+
# # 2014-10-17 21:47:03 UTC
|
138
|
+
#
|
139
|
+
# @example Avoid jitter in generated TimeUuid
|
140
|
+
# timestamp = 1413582418
|
141
|
+
# generator = Cassandra::Uuid::Generator.new
|
142
|
+
# timeuuid = generator.at(timestamp, 0)
|
143
|
+
#
|
144
|
+
# puts timeuuid.to_time.to_i
|
145
|
+
#
|
146
|
+
# # Outputs:
|
147
|
+
# # 1413582418
|
148
|
+
#
|
149
|
+
# @raise [ArgumentError] when given no arguments or more than 3 arguments
|
150
|
+
#
|
151
|
+
# @see Time.at
|
152
|
+
def at(*args)
|
153
|
+
raise ::ArgumentError, "not enough arguments" if args.empty?
|
154
|
+
raise ::ArgumentError, "too many arguments" if args.size > 3
|
155
|
+
|
156
|
+
if args.first.is_a?(Time)
|
157
|
+
time = args.shift
|
158
|
+
jitter = args.empty? ? SecureRandom.random_number(65536) : Integer(args.shift)
|
159
|
+
else
|
160
|
+
jitter = args.size > 2 ? Integer(args.pop) : SecureRandom.random_number(65536)
|
161
|
+
time = Time.at(*args)
|
162
|
+
end
|
163
|
+
|
164
|
+
from_usecs(time.to_i * 1_000_000 + time.usec + jitter)
|
165
|
+
end
|
166
|
+
|
167
|
+
# Returns a completely random version 4 UUID.
|
168
|
+
#
|
169
|
+
# @example Generating a random Uuid
|
170
|
+
# generator = Cassandra::Uuid::Generator.new
|
171
|
+
# uuid = generator.uuid
|
172
|
+
#
|
173
|
+
# puts uuid
|
174
|
+
#
|
175
|
+
# # Outputs:
|
176
|
+
# # 664dedae-e162-4bc0-9066-b9f1968252aa
|
177
|
+
#
|
178
|
+
# @see SecureRandom.uuid
|
179
|
+
#
|
180
|
+
# @return [Cassandra::Uuid] a new UUID
|
181
|
+
def uuid
|
182
|
+
Uuid.new(SecureRandom.uuid)
|
183
|
+
end
|
184
|
+
|
185
|
+
private
|
186
|
+
|
187
|
+
# @private
|
188
|
+
def from_usecs(usecs)
|
189
|
+
t = TimeUuid::GREGORIAN_OFFSET + usecs * 10
|
190
|
+
time_hi = t & 0x0fff000000000000
|
191
|
+
time_mid = t & 0x0000ffff00000000
|
192
|
+
time_low = t & 0x00000000ffffffff
|
193
|
+
version = 1
|
194
|
+
clock_id = @clock_id & 0x3fff
|
195
|
+
node_id = @node_id & 0xffffffffffff
|
196
|
+
variant = 0x8000
|
197
|
+
|
198
|
+
n = (time_low << 96) | (time_mid << 48) | (time_hi << 16)
|
199
|
+
n |= version << 76
|
200
|
+
n |= (clock_id | variant) << 48
|
201
|
+
n |= node_id
|
202
|
+
|
203
|
+
TimeUuid.new(n)
|
204
|
+
end
|
205
|
+
end
|
206
|
+
end
|
207
|
+
end
|
data/lib/cassandra/version.rb
CHANGED
data/lib/cassandra_murmur3.jar
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cassandra-driver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Theo Hultberg
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-11-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ione
|
@@ -17,12 +17,12 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ~>
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 1.2
|
20
|
+
version: '1.2'
|
21
21
|
requirement: !ruby/object:Gem::Requirement
|
22
22
|
requirements:
|
23
23
|
- - ~>
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: 1.2
|
25
|
+
version: '1.2'
|
26
26
|
prerelease: false
|
27
27
|
type: :runtime
|
28
28
|
- !ruby/object:Gem::Dependency
|
@@ -62,79 +62,61 @@ extensions: []
|
|
62
62
|
extra_rdoc_files:
|
63
63
|
- README.md
|
64
64
|
files:
|
65
|
+
- .yardopts
|
66
|
+
- README.md
|
65
67
|
- lib/cassandra.rb
|
68
|
+
- lib/cassandra/address_resolution.rb
|
69
|
+
- lib/cassandra/address_resolution/policies.rb
|
70
|
+
- lib/cassandra/address_resolution/policies/ec2_multi_region.rb
|
71
|
+
- lib/cassandra/address_resolution/policies/none.rb
|
66
72
|
- lib/cassandra/auth.rb
|
67
|
-
- lib/cassandra/client.rb
|
68
|
-
- lib/cassandra/cluster.rb
|
69
|
-
- lib/cassandra/column.rb
|
70
|
-
- lib/cassandra/compression.rb
|
71
|
-
- lib/cassandra/driver.rb
|
72
|
-
- lib/cassandra/errors.rb
|
73
|
-
- lib/cassandra/future.rb
|
74
|
-
- lib/cassandra/host.rb
|
75
|
-
- lib/cassandra/keyspace.rb
|
76
|
-
- lib/cassandra/listener.rb
|
77
|
-
- lib/cassandra/load_balancing.rb
|
78
|
-
- lib/cassandra/protocol.rb
|
79
|
-
- lib/cassandra/reconnection.rb
|
80
|
-
- lib/cassandra/result.rb
|
81
|
-
- lib/cassandra/retry.rb
|
82
|
-
- lib/cassandra/session.rb
|
83
|
-
- lib/cassandra/statement.rb
|
84
|
-
- lib/cassandra/statements.rb
|
85
|
-
- lib/cassandra/table.rb
|
86
|
-
- lib/cassandra/time_uuid.rb
|
87
|
-
- lib/cassandra/util.rb
|
88
|
-
- lib/cassandra/uuid.rb
|
89
|
-
- lib/cassandra/version.rb
|
90
73
|
- lib/cassandra/auth/providers.rb
|
91
74
|
- lib/cassandra/auth/providers/password.rb
|
92
|
-
- lib/cassandra/
|
93
|
-
- lib/cassandra/client/client.rb
|
94
|
-
- lib/cassandra/client/column_metadata.rb
|
95
|
-
- lib/cassandra/client/connection_manager.rb
|
96
|
-
- lib/cassandra/client/connector.rb
|
97
|
-
- lib/cassandra/client/execute_options_decoder.rb
|
98
|
-
- lib/cassandra/client/null_logger.rb
|
99
|
-
- lib/cassandra/client/peer_discovery.rb
|
100
|
-
- lib/cassandra/client/prepared_statement.rb
|
101
|
-
- lib/cassandra/client/query_result.rb
|
102
|
-
- lib/cassandra/client/request_runner.rb
|
103
|
-
- lib/cassandra/client/result_metadata.rb
|
104
|
-
- lib/cassandra/client/void_result.rb
|
75
|
+
- lib/cassandra/cluster.rb
|
105
76
|
- lib/cassandra/cluster/client.rb
|
77
|
+
- lib/cassandra/cluster/connection_pool.rb
|
106
78
|
- lib/cassandra/cluster/connector.rb
|
107
79
|
- lib/cassandra/cluster/control_connection.rb
|
80
|
+
- lib/cassandra/cluster/failed_connection.rb
|
108
81
|
- lib/cassandra/cluster/metadata.rb
|
109
82
|
- lib/cassandra/cluster/options.rb
|
110
83
|
- lib/cassandra/cluster/registry.rb
|
111
84
|
- lib/cassandra/cluster/schema.rb
|
112
85
|
- lib/cassandra/cluster/schema/partitioners.rb
|
113
|
-
- lib/cassandra/cluster/schema/replication_strategies.rb
|
114
|
-
- lib/cassandra/cluster/schema/type_parser.rb
|
115
86
|
- lib/cassandra/cluster/schema/partitioners/murmur3.rb
|
116
87
|
- lib/cassandra/cluster/schema/partitioners/ordered.rb
|
117
88
|
- lib/cassandra/cluster/schema/partitioners/random.rb
|
89
|
+
- lib/cassandra/cluster/schema/replication_strategies.rb
|
118
90
|
- lib/cassandra/cluster/schema/replication_strategies/network_topology.rb
|
119
91
|
- lib/cassandra/cluster/schema/replication_strategies/none.rb
|
120
92
|
- lib/cassandra/cluster/schema/replication_strategies/simple.rb
|
93
|
+
- lib/cassandra/cluster/schema/type_parser.rb
|
94
|
+
- lib/cassandra/column.rb
|
95
|
+
- lib/cassandra/compression.rb
|
121
96
|
- lib/cassandra/compression/compressors/lz4.rb
|
122
97
|
- lib/cassandra/compression/compressors/snappy.rb
|
98
|
+
- lib/cassandra/driver.rb
|
99
|
+
- lib/cassandra/errors.rb
|
123
100
|
- lib/cassandra/execution/info.rb
|
124
101
|
- lib/cassandra/execution/options.rb
|
125
102
|
- lib/cassandra/execution/trace.rb
|
103
|
+
- lib/cassandra/future.rb
|
104
|
+
- lib/cassandra/host.rb
|
105
|
+
- lib/cassandra/keyspace.rb
|
106
|
+
- lib/cassandra/listener.rb
|
107
|
+
- lib/cassandra/load_balancing.rb
|
126
108
|
- lib/cassandra/load_balancing/policies.rb
|
127
109
|
- lib/cassandra/load_balancing/policies/dc_aware_round_robin.rb
|
128
110
|
- lib/cassandra/load_balancing/policies/round_robin.rb
|
129
111
|
- lib/cassandra/load_balancing/policies/token_aware.rb
|
130
112
|
- lib/cassandra/load_balancing/policies/white_list.rb
|
113
|
+
- lib/cassandra/null_logger.rb
|
114
|
+
- lib/cassandra/protocol.rb
|
131
115
|
- lib/cassandra/protocol/cql_byte_buffer.rb
|
132
116
|
- lib/cassandra/protocol/cql_protocol_handler.rb
|
133
117
|
- lib/cassandra/protocol/frame_decoder.rb
|
134
118
|
- lib/cassandra/protocol/frame_encoder.rb
|
135
119
|
- lib/cassandra/protocol/request.rb
|
136
|
-
- lib/cassandra/protocol/response.rb
|
137
|
-
- lib/cassandra/protocol/type_converter.rb
|
138
120
|
- lib/cassandra/protocol/requests/auth_response_request.rb
|
139
121
|
- lib/cassandra/protocol/requests/batch_request.rb
|
140
122
|
- lib/cassandra/protocol/requests/credentials_request.rb
|
@@ -145,6 +127,7 @@ files:
|
|
145
127
|
- lib/cassandra/protocol/requests/register_request.rb
|
146
128
|
- lib/cassandra/protocol/requests/startup_request.rb
|
147
129
|
- lib/cassandra/protocol/requests/void_query_request.rb
|
130
|
+
- lib/cassandra/protocol/response.rb
|
148
131
|
- lib/cassandra/protocol/responses/auth_challenge_response.rb
|
149
132
|
- lib/cassandra/protocol/responses/auth_success_response.rb
|
150
133
|
- lib/cassandra/protocol/responses/authenticate_response.rb
|
@@ -163,20 +146,31 @@ files:
|
|
163
146
|
- lib/cassandra/protocol/responses/supported_response.rb
|
164
147
|
- lib/cassandra/protocol/responses/topology_change_event_response.rb
|
165
148
|
- lib/cassandra/protocol/responses/void_result_response.rb
|
149
|
+
- lib/cassandra/protocol/type_converter.rb
|
150
|
+
- lib/cassandra/reconnection.rb
|
166
151
|
- lib/cassandra/reconnection/policies.rb
|
167
152
|
- lib/cassandra/reconnection/policies/constant.rb
|
168
153
|
- lib/cassandra/reconnection/policies/exponential.rb
|
154
|
+
- lib/cassandra/result.rb
|
155
|
+
- lib/cassandra/retry.rb
|
169
156
|
- lib/cassandra/retry/policies.rb
|
170
157
|
- lib/cassandra/retry/policies/default.rb
|
171
158
|
- lib/cassandra/retry/policies/downgrading_consistency.rb
|
172
159
|
- lib/cassandra/retry/policies/fallthrough.rb
|
160
|
+
- lib/cassandra/session.rb
|
161
|
+
- lib/cassandra/statement.rb
|
162
|
+
- lib/cassandra/statements.rb
|
173
163
|
- lib/cassandra/statements/batch.rb
|
174
164
|
- lib/cassandra/statements/bound.rb
|
175
165
|
- lib/cassandra/statements/prepared.rb
|
176
166
|
- lib/cassandra/statements/simple.rb
|
177
167
|
- lib/cassandra/statements/void.rb
|
178
|
-
-
|
179
|
-
- .
|
168
|
+
- lib/cassandra/table.rb
|
169
|
+
- lib/cassandra/time_uuid.rb
|
170
|
+
- lib/cassandra/util.rb
|
171
|
+
- lib/cassandra/uuid.rb
|
172
|
+
- lib/cassandra/uuid/generator.rb
|
173
|
+
- lib/cassandra/version.rb
|
180
174
|
- lib/cassandra_murmur3.jar
|
181
175
|
homepage: http://datastax.github.io/ruby-driver
|
182
176
|
licenses:
|
@@ -198,12 +192,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
198
192
|
version: 1.9.3
|
199
193
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
200
194
|
requirements:
|
201
|
-
- - '
|
195
|
+
- - '>='
|
202
196
|
- !ruby/object:Gem::Version
|
203
|
-
version:
|
197
|
+
version: '0'
|
204
198
|
requirements: []
|
205
199
|
rubyforge_project:
|
206
|
-
rubygems_version: 2.
|
200
|
+
rubygems_version: 2.4.2
|
207
201
|
signing_key:
|
208
202
|
specification_version: 4
|
209
203
|
summary: Datastax Ruby Driver for Apache Cassandra
|