cassandra-driver 3.0.2-java → 3.0.3-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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 78dc265751584f3c23a824f4f8f8cfebd5f98d32
4
- data.tar.gz: 303da68ffd2ec37685f54a22e7c26f0f3568b51d
3
+ metadata.gz: dd12699ee5345d58839cfaf6ebc7e9f39529f835
4
+ data.tar.gz: 05efbd46f2dbef7ff4669c79c88e3671629a898f
5
5
  SHA512:
6
- metadata.gz: 7ecd09602150990d62b56ba5b0c75e1131f54b7c598171f0ca17927dfaf2fc3a2b1bc66c2ffb7b1b61f0164daa6fcbd359c3c6d6528230b05d4e5ba34482665b
7
- data.tar.gz: 64d64fadf8a713b97079096af4aafd966689f9b8e9e0a6e1acae8442229de407599e3d4318eed80614fb30af5fb53db4a98e340c9a8c3490b03ae07e3a363023
6
+ metadata.gz: b8c4bc332b1cdd24dda360c19a564a4af64e865b04a139ac04208768949622fedc4bb83d421d1c1a7450d9bb089e14ba6c24e7b8238b562d349ba88d24980c10
7
+ data.tar.gz: c99658b87ff4197aedd1c7d0f719be36720252b025797beaefd0a0e0ba718dfdcba17d20c705acd39785e1f9344b0679095aadae9f35217d4c22a561088de403
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Datastax Ruby Driver for Apache Cassandra
2
2
 
3
- *If you're reading this on GitHub, please note that this is the readme for the development version and that some features described here might not yet have been released. You can [find the documentation for the latest version through ruby driver docs](http://docs.datastax.com/en/latest-ruby-driver/ruby-driver/whatsNew.html) or via the release tags, [e.g. v3.0.2](https://github.com/datastax/ruby-driver/tree/v3.0.2).*
3
+ *If you're reading this on GitHub, please note that this is the readme for the development version and that some features described here might not yet have been released. You can [find the documentation for the latest version through ruby driver docs](http://docs.datastax.com/en/latest-ruby-driver/ruby-driver/whatsNew.html) or via the release tags, [e.g. v3.0.3](https://github.com/datastax/ruby-driver/tree/v3.0.3).*
4
4
 
5
5
  [![Build Status](https://travis-ci.org/datastax/ruby-driver.svg?branch=master)](https://travis-ci.org/datastax/ruby-driver)
6
6
 
@@ -90,11 +90,11 @@ __Note__: if you want to use compression you should also install [snappy](http:/
90
90
 
91
91
  ## Upgrading from cql-rb
92
92
 
93
- Some of the new features added to the driver have unfortunately led to changes in the original cql-rb API. In the examples directory, you can find [an example of how to wrap the ruby driver to achieve almost complete interface parity with cql-rb](https://github.com/datastax/ruby-driver/blob/v3.0.2/examples/cql-rb-wrapper.rb) to assist you with gradual upgrade.
93
+ Some of the new features added to the driver have unfortunately led to changes in the original cql-rb API. In the examples directory, you can find [an example of how to wrap the ruby driver to achieve almost complete interface parity with cql-rb](https://github.com/datastax/ruby-driver/blob/v3.0.3/examples/cql-rb-wrapper.rb) to assist you with gradual upgrade.
94
94
 
95
95
  ## What's new in v3.0
96
96
 
97
- See the [changelog](https://github.com/datastax/ruby-driver/blob/v3.0.2/CHANGELOG.md) for details on patch versions.
97
+ See the [changelog](https://github.com/datastax/ruby-driver/blob/v3.0.3/CHANGELOG.md) for details on patch versions.
98
98
 
99
99
  ### Features:
100
100
 
@@ -164,7 +164,7 @@ examples in the `features/` directory.
164
164
  ## Running tests
165
165
 
166
166
  If you don't feel like reading through the following instructions on how to run
167
- ruby-driver tests, feel free to [check out .travis.yml for the entire build code](https://github.com/datastax/ruby-driver/blob/v3.0.2/.travis.yml).
167
+ ruby-driver tests, feel free to [check out .travis.yml for the entire build code](https://github.com/datastax/ruby-driver/blob/v3.0.3/.travis.yml).
168
168
 
169
169
  * Check out the driver codebase and install test dependencies:
170
170
 
@@ -188,7 +188,7 @@ CASSANDRA_VERSION=2.0.17 bundle exec rake test # run both as well as integration
188
188
  ## Changelog & versioning
189
189
 
190
190
  Check out the [releases on GitHub](https://github.com/datastax/ruby-driver/releases) and
191
- [changelog](https://github.com/datastax/ruby-driver/blob/v3.0.2/CHANGELOG.md). Version
191
+ [changelog](https://github.com/datastax/ruby-driver/blob/v3.0.3/CHANGELOG.md). Version
192
192
  numbering follows the [semantic versioning](http://semver.org/) scheme.
193
193
 
194
194
  Private and experimental APIs, defined as whatever is not in the
@@ -107,10 +107,8 @@ module Cassandra
107
107
  nil
108
108
  else
109
109
  view_row = rows_views.first
110
- base_table = @schema.keyspace(keyspace_name).table(view_row['base_table_name'])
111
110
  create_materialized_view(view_row,
112
- rows_columns,
113
- base_table)
111
+ rows_columns)
114
112
  end
115
113
  end
116
114
  end
@@ -1216,10 +1214,8 @@ module Cassandra
1216
1214
 
1217
1215
  views = rows_views.each_with_object({}) do |row, h|
1218
1216
  view_name = row['view_name']
1219
- base_table = tables[row['base_table_name']]
1220
1217
  h[view_name] = create_materialized_view(row,
1221
1218
  lookup_columns[view_name],
1222
- base_table,
1223
1219
  types)
1224
1220
  end
1225
1221
 
@@ -1366,9 +1362,10 @@ module Cassandra
1366
1362
  options['target'], options))
1367
1363
  end
1368
1364
 
1369
- def create_materialized_view(view_data, rows_columns, base_table, types = nil)
1365
+ def create_materialized_view(view_data, rows_columns, types = nil)
1370
1366
  keyspace_name = view_data['keyspace_name']
1371
1367
  view_name = view_data['view_name']
1368
+ base_table_name = view_data['base_table_name']
1372
1369
  include_all_columns = view_data['include_all_columns']
1373
1370
  where_clause = view_data['where_clause']
1374
1371
 
@@ -1406,7 +1403,7 @@ module Cassandra
1406
1403
  view_options,
1407
1404
  include_all_columns,
1408
1405
  where_clause,
1409
- base_table,
1406
+ base_table_name,
1410
1407
  view_data['id'])
1411
1408
  end
1412
1409
  end
@@ -286,13 +286,12 @@ module Cassandra
286
286
 
287
287
  # @private
288
288
  # keyspace attribute may be nil because when this object was constructed, we didn't have
289
- # its keyspace constructed yet. So allow updating @keyspace if it's nil, thus
289
+ # its keyspace constructed yet. So allow updating @keyspace, thus
290
290
  # allowing fetchers to create keyspace, table/view, and hook them together without
291
291
  # worrying about chickens and eggs.
292
- # NOTE: Ignore the set request if the @keyspace is already set.
293
292
  # rubocop:disable Style/AccessorMethodName
294
293
  def set_keyspace(keyspace)
295
- @keyspace = keyspace unless @keyspace
294
+ @keyspace = keyspace
296
295
  end
297
296
 
298
297
  # @private
@@ -54,7 +54,7 @@ module Cassandra
54
54
  #
55
55
  # @see https://github.com/apache/cassandra/blob/cassandra-3.4/doc/native_protocol_v4.spec#L125-L131 Description
56
56
  # of custom payload in Cassandra native protocol v4.
57
- # @see https://datastax.github.io/java-driver/manual/custom_payloads/#enabling-custom-payloads-on-c-nodes
57
+ # @see http://docs.datastax.com/en/developer/java-driver/3.0/supplemental/manual/custom_payloads/?local=true&nav=toc#enabling-custom-payloads-on-c-nodes
58
58
  # Enabling custom payloads on Cassandra nodes.
59
59
  #
60
60
  # @example Sending a custom payload
@@ -113,13 +113,15 @@ module Cassandra
113
113
  # @return [Boolean] whether this keyspace has a materialized view with the given name
114
114
  # @param name [String] materialized view name
115
115
  def has_materialized_view?(name)
116
- @views.key?(name)
116
+ # We check if the view exists *and* that its base-table is set. If base-table isn't available,
117
+ # it will be soon, so the user can poll on this method until we return a fully-baked materialized view.
118
+ @views.key?(name) && !@views[name].base_table.nil?
117
119
  end
118
120
 
119
121
  # @return [Cassandra::MaterializedView, nil] a materialized view or nil
120
122
  # @param name [String] materialized view name
121
123
  def materialized_view(name)
122
- @views[name]
124
+ @views[name] if has_materialized_view?(name)
123
125
  end
124
126
 
125
127
  # Yield or enumerate each materialized view defined in this keyspace
@@ -130,10 +132,16 @@ module Cassandra
130
132
  # @return [Array<Cassandra::MaterializedView>] a list of materialized views
131
133
  def each_materialized_view(&block)
132
134
  if block_given?
133
- @views.each_value(&block)
135
+ @views.each_value do |v|
136
+ block.call(v) if v.base_table
137
+ end
134
138
  self
135
139
  else
136
- @views.values
140
+ result = []
141
+ @views.each_value do |v|
142
+ result << v if v.base_table
143
+ end
144
+ result
137
145
  end
138
146
  end
139
147
  alias materialized_views each_materialized_view
@@ -21,9 +21,6 @@ module Cassandra
21
21
  # @see Cassandra::Keyspace#each_materialized_view
22
22
  # @see Cassandra::Keyspace#materialized_view
23
23
  class MaterializedView < ColumnContainer
24
- # @return [Table] the table that this materialized view applies to.
25
- attr_reader :base_table
26
-
27
24
  # @private
28
25
  def initialize(keyspace,
29
26
  name,
@@ -33,12 +30,17 @@ module Cassandra
33
30
  options,
34
31
  include_all_columns,
35
32
  where_clause,
36
- base_table,
33
+ base_table_name,
37
34
  id)
38
35
  super(keyspace, name, partition_key, clustering_columns, other_columns, options, id)
39
36
  @include_all_columns = include_all_columns
40
37
  @where_clause = where_clause
41
- @base_table = base_table
38
+ @base_table_name = base_table_name
39
+ end
40
+
41
+ # @return [Table] the table that this materialized view applies to.
42
+ def base_table
43
+ @keyspace.table(@base_table_name)
42
44
  end
43
45
 
44
46
  # @return [String] a cql representation of this materialized view
@@ -52,7 +54,7 @@ module Cassandra
52
54
  Util.escape_name(column.name)
53
55
  end.join(', ')
54
56
  end
55
- cql << "\nFROM #{keyspace_name}.#{Util.escape_name(@base_table.name)}"
57
+ cql << "\nFROM #{keyspace_name}.#{Util.escape_name(@base_table_name)}"
56
58
  cql << "\nWHERE #{@where_clause}" if @where_clause
57
59
  cql << "\nPRIMARY KEY (("
58
60
  cql << @partition_key.map do |column|
@@ -74,7 +76,7 @@ module Cassandra
74
76
  super.eql?(other) &&
75
77
  @include_all_columns == other.include_all_columns &&
76
78
  @where_clause == other.where_clause &&
77
- @base_table == other.base_table
79
+ @base_table_name == other.base_table.name
78
80
  end
79
81
  alias == eql?
80
82
 
@@ -17,5 +17,5 @@
17
17
  #++
18
18
 
19
19
  module Cassandra
20
- VERSION = '3.0.2'.freeze
20
+ VERSION = '3.0.3'.freeze
21
21
  end
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.0.2
4
+ version: 3.0.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: 2016-06-27 00:00:00.000000000 Z
13
+ date: 2016-07-22 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  requirement: !ruby/object:Gem::Requirement