cassandra-driver 3.0.0.rc.1-java → 3.0.0.rc.2-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -1
- data/lib/cassandra.rb +74 -55
- data/lib/cassandra/attr_boolean.rb +33 -0
- data/lib/cassandra/auth.rb +2 -1
- data/lib/cassandra/auth/providers/password.rb +4 -16
- data/lib/cassandra/cluster/connector.rb +14 -4
- data/lib/cassandra/cluster/control_connection.rb +59 -67
- data/lib/cassandra/cluster/metadata.rb +1 -3
- data/lib/cassandra/cluster/options.rb +9 -10
- data/lib/cassandra/cluster/registry.rb +16 -5
- data/lib/cassandra/cluster/schema.rb +45 -1
- data/lib/cassandra/cluster/schema/fetchers.rb +475 -272
- data/lib/cassandra/cluster/schema/fqcn_type_parser.rb +2 -6
- data/lib/cassandra/cluster/schema/partitioners/murmur3.rb +5 -7
- data/lib/cassandra/column.rb +1 -20
- data/lib/cassandra/column_container.rb +322 -0
- data/lib/cassandra/compression/compressors/lz4.rb +3 -5
- data/lib/cassandra/driver.rb +1 -1
- data/lib/cassandra/errors.rb +38 -22
- data/lib/cassandra/execution/options.rb +4 -2
- data/lib/cassandra/future.rb +3 -9
- data/lib/cassandra/host.rb +16 -2
- data/lib/cassandra/index.rb +104 -0
- data/lib/cassandra/keyspace.rb +88 -9
- data/lib/cassandra/load_balancing/policies/dc_aware_round_robin.rb +6 -10
- data/lib/cassandra/materialized_view.rb +90 -0
- data/lib/cassandra/protocol/coder.rb +3 -3
- data/lib/cassandra/protocol/cql_byte_buffer.rb +12 -11
- data/lib/cassandra/protocol/cql_protocol_handler.rb +12 -8
- data/lib/cassandra/protocol/request.rb +4 -5
- data/lib/cassandra/protocol/requests/execute_request.rb +3 -5
- data/lib/cassandra/protocol/requests/query_request.rb +1 -1
- data/lib/cassandra/protocol/requests/startup_request.rb +6 -8
- data/lib/cassandra/protocol/response.rb +1 -2
- data/lib/cassandra/protocol/responses/auth_challenge_response.rb +3 -4
- data/lib/cassandra/protocol/responses/auth_success_response.rb +3 -4
- data/lib/cassandra/protocol/responses/authenticate_response.rb +3 -4
- data/lib/cassandra/protocol/responses/error_response.rb +3 -4
- data/lib/cassandra/protocol/responses/event_response.rb +2 -3
- data/lib/cassandra/protocol/responses/prepared_result_response.rb +3 -4
- data/lib/cassandra/protocol/responses/ready_response.rb +3 -4
- data/lib/cassandra/protocol/responses/result_response.rb +7 -8
- data/lib/cassandra/protocol/responses/rows_result_response.rb +3 -4
- data/lib/cassandra/protocol/responses/schema_change_event_response.rb +3 -4
- data/lib/cassandra/protocol/responses/schema_change_result_response.rb +3 -4
- data/lib/cassandra/protocol/responses/set_keyspace_result_response.rb +3 -4
- data/lib/cassandra/protocol/responses/status_change_event_response.rb +3 -4
- data/lib/cassandra/protocol/responses/supported_response.rb +3 -4
- data/lib/cassandra/protocol/responses/topology_change_event_response.rb +3 -4
- data/lib/cassandra/protocol/responses/void_result_response.rb +3 -4
- data/lib/cassandra/protocol/v1.rb +1 -5
- data/lib/cassandra/protocol/v3.rb +1 -3
- data/lib/cassandra/result.rb +2 -1
- data/lib/cassandra/retry/policies/downgrading_consistency.rb +1 -3
- data/lib/cassandra/statements/prepared.rb +3 -3
- data/lib/cassandra/table.rb +39 -220
- data/lib/cassandra/time_uuid.rb +5 -7
- data/lib/cassandra/tuple.rb +4 -12
- data/lib/cassandra/types.rb +92 -65
- data/lib/cassandra/udt.rb +34 -14
- data/lib/cassandra/uuid.rb +10 -18
- data/lib/cassandra/version.rb +1 -1
- data/lib/cassandra_murmur3.jar +0 -0
- metadata +8 -2
@@ -19,6 +19,9 @@
|
|
19
19
|
module Cassandra
|
20
20
|
module Protocol
|
21
21
|
class SetKeyspaceResultResponse < ResultResponse
|
22
|
+
# @private
|
23
|
+
RESULT_TYPES[0x03] = self
|
24
|
+
|
22
25
|
attr_reader :keyspace
|
23
26
|
|
24
27
|
def initialize(custom_payload, warnings, keyspace, trace_id)
|
@@ -29,10 +32,6 @@ module Cassandra
|
|
29
32
|
def to_s
|
30
33
|
%(RESULT SET_KEYSPACE "#{@keyspace}")
|
31
34
|
end
|
32
|
-
|
33
|
-
private
|
34
|
-
|
35
|
-
RESULT_TYPES[0x03] = self
|
36
35
|
end
|
37
36
|
end
|
38
37
|
end
|
@@ -21,6 +21,9 @@ module Cassandra
|
|
21
21
|
class StatusChangeEventResponse < EventResponse
|
22
22
|
TYPE = 'STATUS_CHANGE'.freeze
|
23
23
|
|
24
|
+
# @private
|
25
|
+
EVENT_TYPES[TYPE] = self
|
26
|
+
|
24
27
|
attr_reader :type, :change, :address, :port
|
25
28
|
|
26
29
|
def initialize(*args)
|
@@ -31,10 +34,6 @@ module Cassandra
|
|
31
34
|
def to_s
|
32
35
|
%(EVENT #{@type} #{@change} #{@address}:#{@port})
|
33
36
|
end
|
34
|
-
|
35
|
-
private
|
36
|
-
|
37
|
-
EVENT_TYPES[TYPE] = self
|
38
37
|
end
|
39
38
|
end
|
40
39
|
end
|
@@ -19,6 +19,9 @@
|
|
19
19
|
module Cassandra
|
20
20
|
module Protocol
|
21
21
|
class SupportedResponse < Response
|
22
|
+
# @private
|
23
|
+
RESPONSE_TYPES[0x06] = self
|
24
|
+
|
22
25
|
attr_reader :options
|
23
26
|
|
24
27
|
def initialize(options)
|
@@ -28,10 +31,6 @@ module Cassandra
|
|
28
31
|
def to_s
|
29
32
|
%(SUPPORTED #{options})
|
30
33
|
end
|
31
|
-
|
32
|
-
private
|
33
|
-
|
34
|
-
RESPONSE_TYPES[0x06] = self
|
35
34
|
end
|
36
35
|
end
|
37
36
|
end
|
@@ -21,14 +21,13 @@ module Cassandra
|
|
21
21
|
class TopologyChangeEventResponse < StatusChangeEventResponse
|
22
22
|
TYPE = 'TOPOLOGY_CHANGE'.freeze
|
23
23
|
|
24
|
+
# @private
|
25
|
+
EVENT_TYPES[TYPE] = self
|
26
|
+
|
24
27
|
def initialize(*args)
|
25
28
|
super
|
26
29
|
@type = TYPE
|
27
30
|
end
|
28
|
-
|
29
|
-
private
|
30
|
-
|
31
|
-
EVENT_TYPES[TYPE] = self
|
32
31
|
end
|
33
32
|
end
|
34
33
|
end
|
@@ -19,6 +19,9 @@
|
|
19
19
|
module Cassandra
|
20
20
|
module Protocol
|
21
21
|
class VoidResultResponse < ResultResponse
|
22
|
+
# @private
|
23
|
+
RESULT_TYPES[0x01] = self
|
24
|
+
|
22
25
|
def to_s
|
23
26
|
%(RESULT VOID)
|
24
27
|
end
|
@@ -26,10 +29,6 @@ module Cassandra
|
|
26
29
|
def void?
|
27
30
|
true
|
28
31
|
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
RESULT_TYPES[0x01] = self
|
33
32
|
end
|
34
33
|
end
|
35
34
|
end
|
@@ -155,8 +155,6 @@ module Cassandra
|
|
155
155
|
end
|
156
156
|
end
|
157
157
|
|
158
|
-
private
|
159
|
-
|
160
158
|
CODE_ERROR = 0x00
|
161
159
|
CODE_READY = 0x02
|
162
160
|
CODE_AUTHENTICATE = 0x03
|
@@ -258,9 +256,7 @@ module Cassandra
|
|
258
256
|
id = buffer.read_short_bytes
|
259
257
|
params_metadata = Coder.read_metadata_v1(buffer).first
|
260
258
|
result_metadata = nil
|
261
|
-
if protocol_version > 1
|
262
|
-
result_metadata = Coder.read_metadata_v1(buffer).first
|
263
|
-
end
|
259
|
+
result_metadata = Coder.read_metadata_v1(buffer).first if protocol_version > 1
|
264
260
|
|
265
261
|
PreparedResultResponse.new(nil,
|
266
262
|
nil,
|
@@ -290,9 +290,7 @@ module Cassandra
|
|
290
290
|
id = buffer.read_short_bytes
|
291
291
|
params_metadata = Coder.read_metadata_v3(buffer).first
|
292
292
|
result_metadata = nil
|
293
|
-
if protocol_version > 1
|
294
|
-
result_metadata = Coder.read_metadata_v3(buffer).first
|
295
|
-
end
|
293
|
+
result_metadata = Coder.read_metadata_v3(buffer).first if protocol_version > 1
|
296
294
|
|
297
295
|
PreparedResultResponse.new(nil,
|
298
296
|
nil,
|
data/lib/cassandra/result.rb
CHANGED
@@ -96,7 +96,8 @@ module Cassandra
|
|
96
96
|
# undefined and will likely cause a server process of the coordinator of
|
97
97
|
# such request to abort.
|
98
98
|
#
|
99
|
-
# @see https://github.com/apache/cassandra/blob/cassandra-2.0.16/doc/native_protocol_v2.spec#L482-L487 Paging State
|
99
|
+
# @see https://github.com/apache/cassandra/blob/cassandra-2.0.16/doc/native_protocol_v2.spec#L482-L487 Paging State
|
100
|
+
# description in Cassandra Native Protocol v2 specification
|
100
101
|
def paging_state
|
101
102
|
end
|
102
103
|
end
|
@@ -24,9 +24,7 @@ module Cassandra
|
|
24
24
|
|
25
25
|
def read_timeout(statement, consistency, required, received, retrieved, retries)
|
26
26
|
return reraise if retries > 0 || SERIAL_CONSISTENCIES.include?(consistency)
|
27
|
-
if received < required
|
28
|
-
return max_likely_to_work(consistency, required, received)
|
29
|
-
end
|
27
|
+
return max_likely_to_work(consistency, required, received) if received < required
|
30
28
|
|
31
29
|
retrieved ? reraise : try_again(consistency)
|
32
30
|
end
|
@@ -189,9 +189,9 @@ module Cassandra
|
|
189
189
|
buffer.discard(4) # discard size
|
190
190
|
else
|
191
191
|
buf = Protocol::CqlByteBuffer.new
|
192
|
-
partition_key.each do |
|
193
|
-
value = values[
|
194
|
-
metadata = params_metadata[
|
192
|
+
partition_key.each do |ind|
|
193
|
+
value = values[ind]
|
194
|
+
metadata = params_metadata[ind]
|
195
195
|
name = metadata[2]
|
196
196
|
type = metadata[3]
|
197
197
|
|
data/lib/cassandra/table.rb
CHANGED
@@ -20,232 +20,65 @@ module Cassandra
|
|
20
20
|
# Represents a cassandra table
|
21
21
|
# @see Cassandra::Keyspace#each_table
|
22
22
|
# @see Cassandra::Keyspace#table
|
23
|
-
class Table
|
24
|
-
# @
|
25
|
-
|
26
|
-
|
27
|
-
:gc_grace_seconds, :caching, :bloom_filter_fp_chance,
|
28
|
-
:populate_io_cache_on_flush, :memtable_flush_period_in_ms,
|
29
|
-
:default_time_to_live, :speculative_retry, :index_interval,
|
30
|
-
:replicate_on_write, :compaction_strategy, :compact_storage,
|
31
|
-
:compression_parameters
|
32
|
-
|
33
|
-
def initialize(comment,
|
34
|
-
read_repair_chance,
|
35
|
-
local_read_repair_chance,
|
36
|
-
gc_grace_seconds,
|
37
|
-
caching,
|
38
|
-
bloom_filter_fp_chance,
|
39
|
-
populate_io_cache_on_flush,
|
40
|
-
memtable_flush_period_in_ms,
|
41
|
-
default_time_to_live,
|
42
|
-
speculative_retry,
|
43
|
-
index_interval,
|
44
|
-
replicate_on_write,
|
45
|
-
min_index_interval,
|
46
|
-
max_index_interval,
|
47
|
-
compaction_strategy,
|
48
|
-
compression_parameters,
|
49
|
-
compact_storage)
|
50
|
-
@comment = comment
|
51
|
-
@read_repair_chance = read_repair_chance
|
52
|
-
@local_read_repair_chance = local_read_repair_chance
|
53
|
-
@gc_grace_seconds = gc_grace_seconds
|
54
|
-
@caching = caching
|
55
|
-
@bloom_filter_fp_chance = bloom_filter_fp_chance
|
56
|
-
@populate_io_cache_on_flush = populate_io_cache_on_flush
|
57
|
-
@memtable_flush_period_in_ms = memtable_flush_period_in_ms
|
58
|
-
@default_time_to_live = default_time_to_live
|
59
|
-
@speculative_retry = speculative_retry
|
60
|
-
@index_interval = index_interval
|
61
|
-
@replicate_on_write = replicate_on_write
|
62
|
-
@min_index_interval = min_index_interval
|
63
|
-
@max_index_interval = max_index_interval
|
64
|
-
@compaction_strategy = compaction_strategy
|
65
|
-
@compression_parameters = compression_parameters
|
66
|
-
@compact_storage = compact_storage
|
67
|
-
end
|
68
|
-
|
69
|
-
def replicate_on_write?
|
70
|
-
@replicate_on_write
|
71
|
-
end
|
72
|
-
|
73
|
-
def populate_io_cache_on_flush?
|
74
|
-
@populate_io_cache_on_flush
|
75
|
-
end
|
76
|
-
|
77
|
-
def compact_storage?
|
78
|
-
@compact_storage
|
79
|
-
end
|
80
|
-
|
81
|
-
def to_cql
|
82
|
-
options = []
|
83
|
-
|
84
|
-
options << 'COMPACT STORAGE' if @compact_storage
|
85
|
-
unless @bloom_filter_fp_chance.nil?
|
86
|
-
options <<
|
87
|
-
"bloom_filter_fp_chance = #{Util.encode_object(@bloom_filter_fp_chance)}"
|
88
|
-
end
|
89
|
-
options << "caching = #{Util.encode_object(@caching)}" unless @caching.nil?
|
90
|
-
options << "comment = #{Util.encode_object(@comment)}" unless @comment.nil?
|
91
|
-
unless @compaction_strategy.nil?
|
92
|
-
options << "compaction = #{@compaction_strategy.to_cql}"
|
93
|
-
end
|
94
|
-
unless @compression_parameters.nil?
|
95
|
-
options << "compression = #{Util.encode_object(@compression_parameters)}"
|
96
|
-
end
|
97
|
-
unless @local_read_repair_chance.nil?
|
98
|
-
options << 'dclocal_read_repair_chance = ' \
|
99
|
-
"#{Util.encode_object(@local_read_repair_chance)}"
|
100
|
-
end
|
101
|
-
unless @default_time_to_live.nil?
|
102
|
-
options << "default_time_to_live = #{Util.encode_object(@default_time_to_live)}"
|
103
|
-
end
|
104
|
-
unless @gc_grace_seconds.nil?
|
105
|
-
options << "gc_grace_seconds = #{Util.encode_object(@gc_grace_seconds)}"
|
106
|
-
end
|
107
|
-
unless @index_interval.nil?
|
108
|
-
options << "index_interval = #{Util.encode_object(@index_interval)}"
|
109
|
-
end
|
110
|
-
unless @max_index_interval.nil?
|
111
|
-
options << "max_index_interval = #{Util.encode_object(@max_index_interval)}"
|
112
|
-
end
|
113
|
-
unless @memtable_flush_period_in_ms.nil?
|
114
|
-
options << 'memtable_flush_period_in_ms = ' \
|
115
|
-
"#{Util.encode_object(@memtable_flush_period_in_ms)}"
|
116
|
-
end
|
117
|
-
unless @min_index_interval.nil?
|
118
|
-
options << "min_index_interval = #{Util.encode_object(@min_index_interval)}"
|
119
|
-
end
|
120
|
-
unless @populate_io_cache_on_flush.nil?
|
121
|
-
options << "populate_io_cache_on_flush = '#{@populate_io_cache_on_flush}'"
|
122
|
-
end
|
123
|
-
unless @read_repair_chance.nil?
|
124
|
-
options << "read_repair_chance = #{Util.encode_object(@read_repair_chance)}"
|
125
|
-
end
|
126
|
-
unless @replicate_on_write.nil?
|
127
|
-
options << "replicate_on_write = '#{@replicate_on_write}'"
|
128
|
-
end
|
129
|
-
unless @speculative_retry.nil?
|
130
|
-
options << "speculative_retry = #{Util.encode_object(@speculative_retry)}"
|
131
|
-
end
|
132
|
-
|
133
|
-
options.join("\nAND ")
|
134
|
-
end
|
135
|
-
|
136
|
-
def eql?(other)
|
137
|
-
other.is_a?(Options) &&
|
138
|
-
@comment == other.comment &&
|
139
|
-
@read_repair_chance == other.read_repair_chance &&
|
140
|
-
@local_read_repair_chance == other.local_read_repair_chance &&
|
141
|
-
@gc_grace_seconds == other.gc_grace_seconds &&
|
142
|
-
@caching == other.caching &&
|
143
|
-
@bloom_filter_fp_chance == other.bloom_filter_fp_chance &&
|
144
|
-
@populate_io_cache_on_flush == other.populate_io_cache_on_flush &&
|
145
|
-
@memtable_flush_period_in_ms == other.memtable_flush_period_in_ms &&
|
146
|
-
@default_time_to_live == other.default_time_to_live &&
|
147
|
-
@speculative_retry == other.speculative_retry &&
|
148
|
-
@index_interval == other.index_interval &&
|
149
|
-
@replicate_on_write == other.replicate_on_write &&
|
150
|
-
@compaction_strategy == other.compaction_strategy &&
|
151
|
-
@compression_parameters == other.compression_parameters &&
|
152
|
-
@compact_storage == other.compact_storage
|
153
|
-
end
|
154
|
-
alias == eql?
|
155
|
-
end
|
156
|
-
|
157
|
-
# @private
|
158
|
-
class Compaction
|
159
|
-
attr_reader :klass, :options
|
160
|
-
|
161
|
-
def initialize(klass, options)
|
162
|
-
@klass = klass
|
163
|
-
@options = options
|
164
|
-
end
|
165
|
-
|
166
|
-
def to_cql
|
167
|
-
compaction = {'class' => @klass}
|
168
|
-
compaction.merge!(@options)
|
169
|
-
|
170
|
-
Util.encode_hash(compaction)
|
171
|
-
end
|
172
|
-
|
173
|
-
def eql?(other)
|
174
|
-
other.is_a?(Compaction) &&
|
175
|
-
@klass == other.klass &&
|
176
|
-
@options == other.options
|
177
|
-
end
|
178
|
-
alias == eql?
|
179
|
-
end
|
180
|
-
|
181
|
-
# @private
|
182
|
-
attr_reader :keyspace
|
183
|
-
# @return [String] table name
|
184
|
-
attr_reader :name
|
185
|
-
# @private
|
186
|
-
attr_reader :options
|
187
|
-
# @private
|
188
|
-
attr_reader :partition_key
|
23
|
+
class Table < ColumnContainer
|
24
|
+
# @return [Array<Symbol>] an array of order values (`:asc` or `:desc`) that apply to the
|
25
|
+
# `clustering_columns` array.
|
26
|
+
attr_reader :clustering_order
|
189
27
|
|
190
28
|
# @private
|
191
29
|
def initialize(keyspace,
|
192
30
|
name,
|
193
31
|
partition_key,
|
194
32
|
clustering_columns,
|
195
|
-
|
33
|
+
other_columns,
|
196
34
|
options,
|
197
|
-
clustering_order
|
198
|
-
|
199
|
-
|
200
|
-
@
|
201
|
-
@
|
202
|
-
@
|
203
|
-
@options = options
|
204
|
-
@clustering_order = clustering_order
|
35
|
+
clustering_order,
|
36
|
+
id)
|
37
|
+
super(keyspace, name, partition_key, clustering_columns, other_columns, options, id)
|
38
|
+
@clustering_order = clustering_order.freeze
|
39
|
+
@indexes = []
|
40
|
+
@indexes_hash = {}
|
205
41
|
end
|
206
42
|
|
207
|
-
# @param name [String]
|
208
|
-
# @return [Boolean] whether this table has a given
|
209
|
-
def
|
210
|
-
@
|
43
|
+
# @param name [String] index name
|
44
|
+
# @return [Boolean] whether this table has a given index
|
45
|
+
def has_index?(name)
|
46
|
+
@indexes_hash.key?(name)
|
211
47
|
end
|
212
48
|
|
213
|
-
# @param name [String]
|
214
|
-
# @return [Cassandra::
|
215
|
-
def
|
216
|
-
@
|
49
|
+
# @param name [String] index name
|
50
|
+
# @return [Cassandra::Index, nil] an index or nil
|
51
|
+
def index(name)
|
52
|
+
@indexes_hash[name]
|
217
53
|
end
|
218
54
|
|
219
|
-
# Yield or enumerate each
|
220
|
-
# @overload
|
221
|
-
# @yieldparam
|
55
|
+
# Yield or enumerate each index bound to this table
|
56
|
+
# @overload each_index
|
57
|
+
# @yieldparam index [Cassandra::Index] current index
|
222
58
|
# @return [Cassandra::Table] self
|
223
|
-
# @overload
|
224
|
-
# @return [Array<Cassandra::
|
225
|
-
def
|
59
|
+
# @overload each_index
|
60
|
+
# @return [Array<Cassandra::Index>] a list of indexes
|
61
|
+
def each_index(&block)
|
226
62
|
if block_given?
|
227
|
-
@
|
63
|
+
@indexes.each(&block)
|
228
64
|
self
|
229
65
|
else
|
230
|
-
@
|
66
|
+
@indexes.freeze
|
231
67
|
end
|
232
68
|
end
|
233
|
-
alias
|
69
|
+
alias indexes each_index
|
234
70
|
|
235
71
|
# @return [String] a cql representation of this table
|
236
72
|
def to_cql
|
237
|
-
cql = "CREATE TABLE #{Util.escape_name(@keyspace)}.#{Util.escape_name(@name)} (\n"
|
238
|
-
primary_key =
|
239
|
-
if @partition_key.one? && @clustering_columns.empty?
|
240
|
-
primary_key = @partition_key.first.name
|
241
|
-
end
|
73
|
+
cql = "CREATE TABLE #{Util.escape_name(@keyspace.name)}.#{Util.escape_name(@name)} (\n"
|
74
|
+
primary_key = @partition_key.first.name if @partition_key.one? && @clustering_columns.empty?
|
242
75
|
|
243
76
|
first = true
|
244
|
-
@columns.each do |
|
77
|
+
@columns.each do |column|
|
245
78
|
if first
|
246
79
|
first = false
|
247
80
|
else
|
248
|
-
cql << ",\n"
|
81
|
+
cql << ",\n"
|
249
82
|
end
|
250
83
|
cql << " #{column.name} #{type_to_cql(column.type, column.frozen?)}"
|
251
84
|
cql << ' PRIMARY KEY' if primary_key && column.name == primary_key
|
@@ -296,21 +129,17 @@ module Cassandra
|
|
296
129
|
end
|
297
130
|
|
298
131
|
# @private
|
299
|
-
def
|
300
|
-
|
301
|
-
|
132
|
+
def add_index(index)
|
133
|
+
@indexes << index
|
134
|
+
@indexes_hash[index.name] = index
|
302
135
|
end
|
303
136
|
|
304
137
|
# @private
|
305
138
|
def eql?(other)
|
306
139
|
other.is_a?(Table) &&
|
307
|
-
|
308
|
-
@
|
309
|
-
@
|
310
|
-
@clustering_columns == other.clustering_columns &&
|
311
|
-
@columns == other.raw_columns &&
|
312
|
-
@options == other.options &&
|
313
|
-
@clustering_order == other.clustering_order
|
140
|
+
super.eql?(other) &&
|
141
|
+
@clustering_order == other.clustering_order &&
|
142
|
+
@indexes == other.indexes
|
314
143
|
end
|
315
144
|
alias == eql?
|
316
145
|
|
@@ -322,7 +151,7 @@ module Cassandra
|
|
322
151
|
when :tuple
|
323
152
|
"frozen <#{type}>"
|
324
153
|
when :udt
|
325
|
-
if @keyspace == type.keyspace
|
154
|
+
if @keyspace.name == type.keyspace
|
326
155
|
"frozen <#{Util.escape_name(type.name)}>"
|
327
156
|
else
|
328
157
|
"frozen <#{Util.escape_name(type.keyspace)}.#{Util.escape_name(type.name)}>"
|
@@ -335,15 +164,5 @@ module Cassandra
|
|
335
164
|
end
|
336
165
|
end
|
337
166
|
end
|
338
|
-
|
339
|
-
attr_reader :clustering_columns, :clustering_order
|
340
|
-
protected :clustering_columns, :clustering_order
|
341
|
-
|
342
|
-
protected
|
343
|
-
|
344
|
-
# @private
|
345
|
-
def raw_columns
|
346
|
-
@columns
|
347
|
-
end
|
348
167
|
end
|
349
168
|
end
|