cassandra-driver 3.2.2-java → 3.2.3-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 +4 -4
- data/lib/cassandra/cluster/schema/cql_type_parser.rb +2 -2
- data/lib/cassandra/cluster/schema/fqcn_type_parser.rb +3 -4
- data/lib/cassandra/protocol/cql_byte_buffer.rb +1 -1
- data/lib/cassandra/protocol/cql_protocol_handler.rb +1 -0
- data/lib/cassandra/table.rb +1 -1
- data/lib/cassandra/types.rb +67 -0
- data/lib/cassandra/version.rb +1 -1
- data/lib/cassandra_murmur3.jar +0 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67858f0f7ad1a6da3185b37ebb507463ef3ea09c
|
4
|
+
data.tar.gz: ed4b568761e1183fea377f8c426155cd4edbb3c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b45f2cc5c69f587e315319789dce1970b7d959e3169522e440afaf57a02cd8c32145e1378159c6fce361223ec193f37c0576ec77a1d9ad570ca27266d746fd9
|
7
|
+
data.tar.gz: b437942795f16b91a21bcd24f7a2aee80bcb179e9c79a722e7ce6a8ff2481720be91653dc5521e336eb6f47de053954b46969083669791687a8398f40a897040
|
data/README.md
CHANGED
@@ -101,7 +101,7 @@ __Note__: if you want to use compression you should also install [snappy](http:/
|
|
101
101
|
|
102
102
|
Some of the new features added to the driver have unfortunately led to changes in the original cql-rb API.
|
103
103
|
In the examples directory, you can find [an example of how to wrap the ruby driver to achieve almost complete
|
104
|
-
interface parity with cql-rb](https://github.com/datastax/ruby-driver/blob/v3.2.
|
104
|
+
interface parity with cql-rb](https://github.com/datastax/ruby-driver/blob/v3.2.3/examples/cql-rb-wrapper.rb)
|
105
105
|
to assist you with gradual upgrade.
|
106
106
|
|
107
107
|
If you are upgrading to DataStax Enterprise, use the [Ruby DSE driver](https://github.com/datastax/ruby-dse-driver.git)
|
@@ -112,7 +112,7 @@ This minor release adds support for MRI 2.4.x and also contains a few miscellane
|
|
112
112
|
support for Ruby versions prior to 2.2. This was already officially the case, but the minimum version limit is
|
113
113
|
now enforced.
|
114
114
|
|
115
|
-
See the [changelog](https://github.com/datastax/ruby-driver/blob/v3.2.
|
115
|
+
See the [changelog](https://github.com/datastax/ruby-driver/blob/v3.2.3/CHANGELOG.md) for more information on all
|
116
116
|
changes in this version and past versions.
|
117
117
|
|
118
118
|
## What's new in v3.1
|
@@ -180,7 +180,7 @@ examples in the `features/` directory.
|
|
180
180
|
## Running tests
|
181
181
|
|
182
182
|
If you don't feel like reading through the following instructions on how to run
|
183
|
-
ruby-driver tests, feel free to [check out .travis.yml for the entire build code](https://github.com/datastax/ruby-driver/blob/v3.2.
|
183
|
+
ruby-driver tests, feel free to [check out .travis.yml for the entire build code](https://github.com/datastax/ruby-driver/blob/v3.2.3/.travis.yml).
|
184
184
|
|
185
185
|
* Check out the driver codebase and install test dependencies:
|
186
186
|
|
@@ -204,7 +204,7 @@ CASSANDRA_VERSION=2.1.12 bundle exec rake test # run both as well as integration
|
|
204
204
|
## Changelog & versioning
|
205
205
|
|
206
206
|
Check out the [releases on GitHub](https://github.com/datastax/ruby-driver/releases) and
|
207
|
-
[changelog](https://github.com/datastax/ruby-driver/blob/v3.2.
|
207
|
+
[changelog](https://github.com/datastax/ruby-driver/blob/v3.2.3/CHANGELOG.md). Version
|
208
208
|
numbering follows the [semantic versioning](http://semver.org/) scheme.
|
209
209
|
|
210
210
|
Private and experimental APIs, defined as whatever is not in the
|
@@ -40,8 +40,6 @@ module Cassandra
|
|
40
40
|
private
|
41
41
|
|
42
42
|
def lookup_type(node, types)
|
43
|
-
return lookup_type(node.children.first, types) if node.name == 'frozen'
|
44
|
-
|
45
43
|
case node.name
|
46
44
|
when 'text' then Cassandra::Types.text
|
47
45
|
when 'blob' then Cassandra::Types.blob
|
@@ -70,6 +68,8 @@ module Cassandra
|
|
70
68
|
Cassandra::Types.list(lookup_type(node.children.first, types))
|
71
69
|
when 'tuple' then
|
72
70
|
Cassandra::Types.tuple(*node.children.map { |t| lookup_type(t, types)})
|
71
|
+
when 'frozen' then
|
72
|
+
Cassandra::Types.frozen(lookup_type(node.children.first, types))
|
73
73
|
when 'empty' then
|
74
74
|
Cassandra::Types.custom('org.apache.cassandra.db.marshal.EmptyType')
|
75
75
|
when /\A'/ then
|
@@ -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)))
|
@@ -55,7 +55,7 @@ module Cassandra
|
|
55
55
|
def read_decimal(len = bytesize)
|
56
56
|
scale = read_signed_int
|
57
57
|
number_string = read_varint(len - 4).to_s
|
58
|
-
if scale
|
58
|
+
if scale <= 0
|
59
59
|
# Special case where the actual scale is positive; scale in the protocol is actually negative of
|
60
60
|
# reality.
|
61
61
|
BigDecimal.new(number_string + '0' * -scale)
|
data/lib/cassandra/table.rb
CHANGED
@@ -169,7 +169,7 @@ module Cassandra
|
|
169
169
|
|
170
170
|
cql << "\n)\nWITH "
|
171
171
|
|
172
|
-
if
|
172
|
+
if !@clustering_order.empty? && !@clustering_columns.empty?
|
173
173
|
cql << 'CLUSTERING ORDER BY ('
|
174
174
|
first = true
|
175
175
|
@clustering_columns.zip(@clustering_order) do |column, order|
|
data/lib/cassandra/types.rb
CHANGED
@@ -1414,6 +1414,73 @@ module Cassandra
|
|
1414
1414
|
alias == eql?
|
1415
1415
|
end
|
1416
1416
|
|
1417
|
+
class Frozen < Type
|
1418
|
+
# @private
|
1419
|
+
attr_reader :value_type
|
1420
|
+
|
1421
|
+
# @private
|
1422
|
+
def initialize(value_type)
|
1423
|
+
super(:frozen)
|
1424
|
+
@value_type = value_type
|
1425
|
+
end
|
1426
|
+
|
1427
|
+
# Coerces the value to Array
|
1428
|
+
# @param value [Object] original value
|
1429
|
+
# @return [Array] value
|
1430
|
+
# @see Cassandra::Type#new
|
1431
|
+
def new(*value)
|
1432
|
+
value = Array(value.first) if value.one?
|
1433
|
+
|
1434
|
+
value.each do |v|
|
1435
|
+
Util.assert_type(@value_type, v)
|
1436
|
+
end
|
1437
|
+
value
|
1438
|
+
end
|
1439
|
+
|
1440
|
+
# Asserts that a given value is an Array
|
1441
|
+
# @param value [Object] value to be validated
|
1442
|
+
# @param message [String] error message to use when assertion fails
|
1443
|
+
# @yieldreturn [String] error message to use when assertion fails
|
1444
|
+
# @raise [ArgumentError] if the value is not an Array
|
1445
|
+
# @return [void]
|
1446
|
+
# @see Cassandra::Type#assert
|
1447
|
+
def assert(value, message = nil, &block)
|
1448
|
+
Util.assert_instance_of(::Array, value, message, &block)
|
1449
|
+
value.each do |v|
|
1450
|
+
Util.assert_type(@value_type, v, message, &block)
|
1451
|
+
end
|
1452
|
+
nil
|
1453
|
+
end
|
1454
|
+
|
1455
|
+
# @return [String] `"list<type>"`
|
1456
|
+
# @see Cassandra::Type#to_s
|
1457
|
+
def to_s
|
1458
|
+
"frozen<#{@value_type}>"
|
1459
|
+
end
|
1460
|
+
|
1461
|
+
def hash
|
1462
|
+
@hash ||= begin
|
1463
|
+
h = 17
|
1464
|
+
h = 31 * h + @kind.hash
|
1465
|
+
h = 31 * h + @value_type.hash
|
1466
|
+
h
|
1467
|
+
end
|
1468
|
+
end
|
1469
|
+
|
1470
|
+
def eql?(other)
|
1471
|
+
other.is_a?(List) && @value_type == other.value_type
|
1472
|
+
end
|
1473
|
+
|
1474
|
+
alias == eql?
|
1475
|
+
end
|
1476
|
+
|
1477
|
+
def frozen(value_type)
|
1478
|
+
Util.assert_instance_of(Cassandra::Type, value_type,
|
1479
|
+
"frozen type must be a Cassandra::Type, #{value_type.inspect} given")
|
1480
|
+
|
1481
|
+
Frozen.new(value_type)
|
1482
|
+
end
|
1483
|
+
|
1417
1484
|
# @return [Cassandra::Types::Text] text type since varchar is an alias for text
|
1418
1485
|
def varchar
|
1419
1486
|
Text
|
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: 3.2.
|
4
|
+
version: 3.2.3
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Theo Hultberg
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2018-
|
13
|
+
date: 2018-08-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|