cassandra-driver 3.0.0.rc.1-java → 3.0.0.rc.2-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 +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
|