couchbase 3.0.0.alpha.3 → 3.0.0.alpha.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/tests-6.0.3.yml +4 -1
  3. data/.github/workflows/tests-dev-preview.yml +4 -1
  4. data/.github/workflows/tests.yml +4 -1
  5. data/README.md +1 -1
  6. data/bin/check-cluster +31 -0
  7. data/bin/init-cluster +16 -4
  8. data/examples/analytics.rb +221 -0
  9. data/examples/managing_analytics_indexes.rb +72 -0
  10. data/examples/managing_view_indexes.rb +54 -0
  11. data/examples/search_with_consistency.rb +84 -0
  12. data/examples/view.rb +50 -0
  13. data/ext/.clang-tidy +1 -0
  14. data/ext/build_version.hxx.in +1 -1
  15. data/ext/couchbase/bucket.hxx +0 -1
  16. data/ext/couchbase/couchbase.cxx +1421 -55
  17. data/ext/couchbase/io/dns_client.hxx +215 -0
  18. data/ext/couchbase/io/dns_codec.hxx +207 -0
  19. data/ext/couchbase/io/dns_config.hxx +116 -0
  20. data/ext/couchbase/io/dns_message.hxx +558 -0
  21. data/ext/couchbase/io/http_session.hxx +16 -4
  22. data/ext/couchbase/io/mcbp_session.hxx +2 -1
  23. data/ext/couchbase/mutation_token.hxx +1 -1
  24. data/ext/couchbase/operations.hxx +19 -0
  25. data/ext/couchbase/operations/analytics_dataset_create.hxx +117 -0
  26. data/ext/couchbase/operations/analytics_dataset_drop.hxx +103 -0
  27. data/ext/couchbase/operations/analytics_dataset_get_all.hxx +107 -0
  28. data/ext/couchbase/operations/analytics_dataverse_create.hxx +104 -0
  29. data/ext/couchbase/operations/analytics_dataverse_drop.hxx +104 -0
  30. data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +91 -0
  31. data/ext/couchbase/operations/analytics_index_create.hxx +128 -0
  32. data/ext/couchbase/operations/analytics_index_drop.hxx +110 -0
  33. data/ext/couchbase/operations/analytics_index_get_all.hxx +106 -0
  34. data/ext/couchbase/operations/analytics_link_connect.hxx +102 -0
  35. data/ext/couchbase/operations/analytics_link_disconnect.hxx +101 -0
  36. data/ext/couchbase/operations/design_document.hxx +59 -0
  37. data/ext/couchbase/operations/document_analytics.hxx +293 -0
  38. data/ext/couchbase/operations/document_query.hxx +2 -2
  39. data/ext/couchbase/operations/document_search.hxx +19 -1
  40. data/ext/couchbase/operations/document_view.hxx +227 -0
  41. data/ext/couchbase/operations/search_index.hxx +17 -0
  42. data/ext/couchbase/operations/search_index_control_ingest.hxx +3 -1
  43. data/ext/couchbase/operations/view_index_drop.hxx +67 -0
  44. data/ext/couchbase/operations/view_index_get.hxx +90 -0
  45. data/ext/couchbase/operations/view_index_get_all.hxx +125 -0
  46. data/ext/couchbase/operations/view_index_upsert.hxx +87 -0
  47. data/ext/couchbase/service_type.hxx +38 -1
  48. data/ext/couchbase/timeout_defaults.hxx +3 -1
  49. data/ext/couchbase/utils/connection_string.hxx +231 -0
  50. data/ext/couchbase/version.hxx +1 -1
  51. data/ext/test/main.cxx +3 -12
  52. data/lib/couchbase/analytics_options.rb +165 -0
  53. data/lib/couchbase/bucket.rb +49 -0
  54. data/lib/couchbase/cluster.rb +46 -207
  55. data/lib/couchbase/management/analytics_index_manager.rb +138 -24
  56. data/lib/couchbase/management/view_index_manager.rb +63 -10
  57. data/lib/couchbase/query_options.rb +219 -0
  58. data/lib/couchbase/search_options.rb +6 -6
  59. data/lib/couchbase/version.rb +1 -1
  60. data/lib/couchbase/view_options.rb +155 -0
  61. metadata +34 -2
@@ -0,0 +1,219 @@
1
+ # Copyright 2020 Couchbase, Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'json'
16
+
17
+ module Couchbase
18
+ class Cluster
19
+
20
+ class QueryOptions
21
+ # @return [Integer] Timeout in milliseconds
22
+ attr_accessor :timeout
23
+
24
+ # @return [Boolean] Allows turning this request into a prepared statement query
25
+ attr_accessor :adhoc
26
+
27
+ # @return [String] Provides a custom client context ID for this query
28
+ attr_accessor :client_context_id
29
+
30
+ # @return [Integer] Allows overriding the default maximum parallelism for the query execution on the server side.
31
+ attr_accessor :max_parallelism
32
+
33
+ # @return [Boolean] Allows explicitly marking a query as being readonly and not mutating and documents on the server side.
34
+ attr_accessor :readonly
35
+
36
+ # Allows customizing how long (in milliseconds) the query engine is willing to wait until the index catches up to whatever scan consistency is asked for in this query.
37
+ #
38
+ # @note that if +:not_bounded+ consistency level is used, this method doesn't do anything
39
+ # at all. If no value is provided to this method, the server default is used.
40
+ #
41
+ # @return [Integer] The maximum duration (in milliseconds) the query engine is willing to wait before failing.
42
+ attr_accessor :scan_wait
43
+
44
+ # @return [Integer] Supports customizing the maximum buffered channel size between the indexer and the query service
45
+ attr_accessor :scan_cap
46
+
47
+ # @return [Integer] Supports customizing the number of items execution operators can batch for fetch from the KV layer on the server.
48
+ attr_accessor :pipeline_batch
49
+
50
+ # @return [Integer] Allows customizing the maximum number of items each execution operator can buffer between various operators on the server.
51
+ attr_accessor :pipeline_cap
52
+
53
+ # @return [Boolean] Enables per-request metrics in the trailing section of the query
54
+ attr_accessor :metrics
55
+
56
+ # @return [:off, :phases, :timings] Customize server profile level for this query
57
+ attr_accessor :profile
58
+
59
+ # @yieldparam [QueryOptions] self
60
+ def initialize
61
+ @timeout = 75_000 # ms
62
+ @adhoc = true
63
+ @raw_parameters = {}
64
+ @positional_parameters = nil
65
+ @named_parameters = nil
66
+ @scan_consistency = nil
67
+ @mutation_state = nil
68
+ yield self if block_given?
69
+ end
70
+
71
+ # Allows providing custom JSON key/value pairs for advanced usage
72
+ #
73
+ # @param [String] key the parameter name (key of the JSON property)
74
+ # @param [Object] value the parameter value (value of the JSON property)
75
+ def raw(key, value)
76
+ @raw_parameters[key] = JSON.generate(value)
77
+ end
78
+
79
+ # Customizes the consistency guarantees for this query
80
+ #
81
+ # @note overrides consistency level set by {#consistent_with}
82
+ #
83
+ # [+:not_bounded+] The indexer will return whatever state it has to the query engine at the time of query. This is the default (for single-statement requests).
84
+ #
85
+ # [+:request_plus+] The indexer will wait until all mutations have been processed at the time of request before returning to the query engine.
86
+ #
87
+ # @param [:not_bounded, :request_plus] level the index scan consistency to be used for this query
88
+ def scan_consistency=(level)
89
+ @mutation_state = nil if @mutation_state
90
+ @scan_consistency = level
91
+ end
92
+
93
+ # Sets the mutation tokens this query should be consistent with
94
+ #
95
+ # @note overrides consistency level set by {#scan_consistency=}
96
+ #
97
+ # @param [MutationState] mutation_state the mutation state containing the mutation tokens
98
+ def consistent_with(mutation_state)
99
+ @scan_consistency = nil if @scan_consistency
100
+ @mutation_state = mutation_state
101
+ end
102
+
103
+ # Sets positional parameters for the query
104
+ #
105
+ # @param [Array] positional the list of parameters that have to be substituted in the statement
106
+ def positional_parameters(positional)
107
+ @positional_parameters = positional
108
+ @named_parameters = nil
109
+ end
110
+
111
+ # Sets named parameters for the query
112
+ #
113
+ # @param [Hash] named the key/value map of the parameters to substitute in the statement
114
+ def named_parameters(named)
115
+ @named_parameters = named
116
+ @positional_parameters = nil
117
+ end
118
+ end
119
+
120
+ class QueryResult
121
+ # @return [QueryMetaData] returns object representing additional metadata associated with this query
122
+ attr_accessor :meta_data
123
+
124
+ attr_accessor :transcoder
125
+
126
+ # Returns all rows converted using a transcoder
127
+ #
128
+ # @return [Array]
129
+ def rows(transcoder = self.transcoder)
130
+ @rows.lazy.map do |row|
131
+ if transcoder == :json
132
+ JSON.parse(row)
133
+ else
134
+ transcoder.call(row)
135
+ end
136
+ end
137
+ end
138
+
139
+ # @yieldparam [QueryResult] self
140
+ def initialize
141
+ yield self if block_given?
142
+ @transcoder = :json
143
+ end
144
+ end
145
+
146
+ class QueryMetaData
147
+ # @return [String] returns the request identifier string of the query request
148
+ attr_accessor :request_id
149
+
150
+ # @return [String] returns the client context identifier string set of the query request
151
+ attr_accessor :client_context_id
152
+
153
+ # @return [Symbol] returns raw query execution status as returned by the query engine
154
+ attr_accessor :status
155
+
156
+ # @return [Hash] returns the signature as returned by the query engine which is then decoded as JSON object
157
+ attr_accessor :signature
158
+
159
+ # @return [Hash] returns the profiling information returned by the query engine which is then decoded as JSON object
160
+ attr_accessor :profile
161
+
162
+ # @return [QueryMetrics] metrics as returned by the query engine, if enabled
163
+ attr_accessor :metrics
164
+
165
+ # @return [List<QueryWarning>] list of warnings returned by the query engine
166
+ attr_accessor :warnings
167
+
168
+ # @yieldparam [QueryMetaData] self
169
+ def initialize
170
+ yield self if block_given?
171
+ end
172
+ end
173
+
174
+ class QueryMetrics
175
+ # @return [Integer] The total time taken for the request, that is the time from when the request was received until the results were returned
176
+ attr_accessor :elapsed_time
177
+
178
+ # @return [Integer] The time taken for the execution of the request, that is the time from when query execution started until the results were returned
179
+ attr_accessor :execution_time
180
+
181
+ # @return [Integer] the total number of results selected by the engine before restriction through LIMIT clause.
182
+ attr_accessor :sort_count
183
+
184
+ # @return [Integer] The total number of objects in the results.
185
+ attr_accessor :result_count
186
+
187
+ # @return [Integer] The total number of bytes in the results.
188
+ attr_accessor :result_size
189
+
190
+ # @return [Integer] The number of mutations that were made during the request.
191
+ attr_accessor :mutation_count
192
+
193
+ # @return [Integer] The number of errors that occurred during the request.
194
+ attr_accessor :error_count
195
+
196
+ # @return [Integer] The number of warnings that occurred during the request.
197
+ attr_accessor :warning_count
198
+
199
+ # @yieldparam [QueryMetrics] self
200
+ def initialize
201
+ yield self if block_given?
202
+ end
203
+ end
204
+
205
+ # Represents a single warning returned from the query engine.
206
+ class QueryWarning
207
+ # @return [Integer]
208
+ attr_accessor :code
209
+
210
+ # @return [String]
211
+ attr_accessor :message
212
+
213
+ def initialize(code, message)
214
+ @code = code
215
+ @message = message
216
+ end
217
+ end
218
+ end
219
+ end
@@ -304,7 +304,7 @@ module Couchbase
304
304
  #
305
305
  # @note The lower boundary is considered inclusive by default on the server side.
306
306
  #
307
- # @param [Time, String] time_point start time. When {Time} object is passed {#date_time_parser} must be +nil+ (to use server default)
307
+ # @param [Time, String] time_point start time. When +Time+ object is passed {#date_time_parser} must be +nil+ (to use server default)
308
308
  # @param [Boolean] inclusive
309
309
  def start_time(time_point, inclusive = nil)
310
310
  @start_time = time_point
@@ -315,7 +315,7 @@ module Couchbase
315
315
  #
316
316
  # @note The upper boundary is considered exclusive by default on the server side.
317
317
  #
318
- # @param [Time, String] time_point end time. When {Time} object is passed {#date_time_parser} must be +nil+ (to use server default)
318
+ # @param [Time, String] time_point end time. When +Time+ object is passed {#date_time_parser} must be +nil+ (to use server default)
319
319
  # @param [Boolean] inclusive
320
320
  def end_time(time_point, inclusive = nil)
321
321
  @end_time = time_point
@@ -1203,7 +1203,7 @@ module Couchbase
1203
1203
 
1204
1204
  # Facets allow to aggregate information collected on a particular result set
1205
1205
  #
1206
- # @return [Hash<String, SearchFacet]
1206
+ # @return [Hash<String => SearchFacet>]
1207
1207
  attr_accessor :facets
1208
1208
 
1209
1209
  # @return [JsonTranscoder] transcoder to use for the results
@@ -1420,7 +1420,7 @@ module Couchbase
1420
1420
  # @return [Hash]
1421
1421
  attr_accessor :explanation
1422
1422
 
1423
- # @return [Hash<String, Array<String>>]
1423
+ # @return [Hash<String => Array<String>>]
1424
1424
  attr_accessor :fragments
1425
1425
 
1426
1426
  # @return [JsonTranscoder] transcoder to use for the fields
@@ -1463,7 +1463,7 @@ module Couchbase
1463
1463
  # @return [SearchMetrics]
1464
1464
  attr_accessor :metrics
1465
1465
 
1466
- # @return [Hash<String, String>]
1466
+ # @return [Hash<String => String>]
1467
1467
  attr_accessor :errors
1468
1468
 
1469
1469
  # @yieldparam [SearchMetaData] self
@@ -1477,7 +1477,7 @@ module Couchbase
1477
1477
  # @return [Array<SearchRow>]
1478
1478
  attr_accessor :rows
1479
1479
 
1480
- # @return [Hash<String, SearchFacetResult>]
1480
+ # @return [Hash<String => SearchFacetResult>]
1481
1481
  attr_accessor :facets
1482
1482
 
1483
1483
  # @return [SearchMetaData]
@@ -14,5 +14,5 @@
14
14
 
15
15
  module Couchbase
16
16
  VERSION = {} unless defined?(VERSION)
17
- VERSION.update(:sdk => "3.0.0.alpha.3".freeze)
17
+ VERSION.update(:sdk => "3.0.0.alpha.4".freeze)
18
18
  end
@@ -0,0 +1,155 @@
1
+ # Copyright 2020 Couchbase, Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'json'
16
+
17
+ module Couchbase
18
+ class Bucket
19
+
20
+ class ViewOptions
21
+ # @return [Integer] Timeout in milliseconds
22
+ attr_accessor :timeout
23
+
24
+ # Specifies the level of consistency for the query
25
+ # @return [:not_bounded, :request_plus, :update_after]
26
+ attr_accessor :scan_consistency
27
+
28
+ # Specifies the number of results to skip from the start of the result set
29
+ # @return [Integer]
30
+ attr_accessor :skip
31
+
32
+ # Specifies the maximum number of results to return
33
+ # @return [Integer]
34
+ attr_accessor :limit
35
+
36
+ # Specifies the key, to which the engine has to skip before result generation
37
+ attr_accessor :start_key
38
+
39
+ # Specifies the key, at which the result generation has to be stopped
40
+ # @return [#to_json]
41
+ attr_accessor :end_key
42
+
43
+ # Specifies the document id in case {#start_key} gives multiple results within the index
44
+ # @return [String]
45
+ attr_accessor :start_key_doc_id
46
+
47
+ # Specifies the document id in case {#end_key} gives multiple results within the index
48
+ # @return [String]
49
+ attr_accessor :end_key_doc_id
50
+
51
+ # Specifies whether the {#end_key}/#{#end_key_doc_id} values should be inclusive
52
+ # @return [Boolean]
53
+ attr_accessor :inclusive_end
54
+
55
+ # Specifies whether to enable grouping of the results
56
+ #
57
+ # @return [Boolean]
58
+ attr_accessor :group
59
+
60
+ # Specifies the depth within the key to group the results
61
+ #
62
+ # @return [Integer]
63
+ attr_accessor :group_level
64
+
65
+ # Specifies the set of the keys to fetch from the index
66
+ # @return [#to_json]
67
+ attr_accessor :key
68
+
69
+ # Specifies set of the keys to fetch from the index
70
+ #
71
+ # @return [Array<#to_json>]
72
+ attr_accessor :keys
73
+
74
+ # Specifies the order of the results that should be returned
75
+ #
76
+ # @return [:ascending, :descending]
77
+ attr_accessor :order
78
+
79
+ # Specifies whether to enable the reduction function associated with this particular view index
80
+ # @return [Boolean]
81
+ attr_accessor :reduce
82
+
83
+ # Specifies the behaviour of the view engine should an error occur during the gathering of view index results
84
+ # which would result in only partial results being available
85
+ #
86
+ # @return [:stop, :continue]
87
+ attr_accessor :on_error
88
+
89
+ # @return [Boolean] allows to return debug information as part of the view response
90
+ attr_accessor :debug
91
+
92
+ # @return [:production, :development]
93
+ attr_accessor :namespace
94
+
95
+ # @yieldparam [ViewQueryOptions] self
96
+ def initialize
97
+ @namespace = :production
98
+ yield self if block_given?
99
+ end
100
+
101
+ # Allows providing custom JSON key/value pairs for advanced usage
102
+ #
103
+ # @param [String] key the parameter name (key of the JSON property)
104
+ # @param [Object] value the parameter value (value of the JSON property)
105
+ def raw(key, value)
106
+ @raw_parameters[key] = JSON.generate(value)
107
+ end
108
+ end
109
+
110
+ class ViewRow
111
+ # @return [String]
112
+ attr_accessor :id
113
+
114
+ # @return [#to_json]
115
+ attr_accessor :key
116
+
117
+ # @return [#to_json]
118
+ attr_accessor :value
119
+
120
+ # @yieldparam [ViewRow] self
121
+ def initialize
122
+ yield self if block_given?
123
+ end
124
+ end
125
+
126
+ class ViewMetaData
127
+ # @return [Integer]
128
+ attr_accessor :total_rows
129
+
130
+ attr_writer :debug_info
131
+
132
+ def debug_info
133
+ JSON.parse(@debug_info)
134
+ end
135
+
136
+ # @yieldparam [ViewMetaData] self
137
+ def initialize
138
+ yield self if block_given?
139
+ end
140
+ end
141
+
142
+ class ViewResult
143
+ # @return [QueryMetaData] returns object representing additional metadata associated with this query
144
+ attr_accessor :meta_data
145
+
146
+ # @return [Array<ViewRow>]
147
+ attr_accessor :rows
148
+
149
+ # @yieldparam [ViewResult] self
150
+ def initialize
151
+ yield self if block_given?
152
+ end
153
+ end
154
+ end
155
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: couchbase
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.alpha.3
4
+ version: 3.0.0.alpha.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergey Avseyev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-12 00:00:00.000000000 Z
11
+ date: 2020-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -88,19 +88,25 @@ files:
88
88
  - LICENSE.txt
89
89
  - README.md
90
90
  - Rakefile
91
+ - bin/check-cluster
91
92
  - bin/console
92
93
  - bin/init-cluster
93
94
  - bin/setup
94
95
  - couchbase.gemspec
96
+ - examples/analytics.rb
95
97
  - examples/crud.rb
98
+ - examples/managing_analytics_indexes.rb
96
99
  - examples/managing_buckets.rb
97
100
  - examples/managing_collections.rb
98
101
  - examples/managing_query_indexes.rb
99
102
  - examples/managing_search_indexes.rb
103
+ - examples/managing_view_indexes.rb
100
104
  - examples/query.rb
101
105
  - examples/query_with_consistency.rb
102
106
  - examples/search.rb
107
+ - examples/search_with_consistency.rb
103
108
  - examples/subdocument.rb
109
+ - examples/view.rb
104
110
  - ext/.clang-format
105
111
  - ext/.clang-tidy
106
112
  - ext/.cmake-format.yaml
@@ -138,6 +144,10 @@ files:
138
144
  - ext/couchbase/document_id.hxx
139
145
  - ext/couchbase/error_map.hxx
140
146
  - ext/couchbase/errors.hxx
147
+ - ext/couchbase/io/dns_client.hxx
148
+ - ext/couchbase/io/dns_codec.hxx
149
+ - ext/couchbase/io/dns_config.hxx
150
+ - ext/couchbase/io/dns_message.hxx
141
151
  - ext/couchbase/io/http_message.hxx
142
152
  - ext/couchbase/io/http_parser.hxx
143
153
  - ext/couchbase/io/http_session.hxx
@@ -147,6 +157,17 @@ files:
147
157
  - ext/couchbase/io/session_manager.hxx
148
158
  - ext/couchbase/mutation_token.hxx
149
159
  - ext/couchbase/operations.hxx
160
+ - ext/couchbase/operations/analytics_dataset_create.hxx
161
+ - ext/couchbase/operations/analytics_dataset_drop.hxx
162
+ - ext/couchbase/operations/analytics_dataset_get_all.hxx
163
+ - ext/couchbase/operations/analytics_dataverse_create.hxx
164
+ - ext/couchbase/operations/analytics_dataverse_drop.hxx
165
+ - ext/couchbase/operations/analytics_get_pending_mutations.hxx
166
+ - ext/couchbase/operations/analytics_index_create.hxx
167
+ - ext/couchbase/operations/analytics_index_drop.hxx
168
+ - ext/couchbase/operations/analytics_index_get_all.hxx
169
+ - ext/couchbase/operations/analytics_link_connect.hxx
170
+ - ext/couchbase/operations/analytics_link_disconnect.hxx
150
171
  - ext/couchbase/operations/bucket_create.hxx
151
172
  - ext/couchbase/operations/bucket_drop.hxx
152
173
  - ext/couchbase/operations/bucket_flush.hxx
@@ -158,6 +179,8 @@ files:
158
179
  - ext/couchbase/operations/collection_create.hxx
159
180
  - ext/couchbase/operations/collection_drop.hxx
160
181
  - ext/couchbase/operations/command.hxx
182
+ - ext/couchbase/operations/design_document.hxx
183
+ - ext/couchbase/operations/document_analytics.hxx
161
184
  - ext/couchbase/operations/document_decrement.hxx
162
185
  - ext/couchbase/operations/document_exists.hxx
163
186
  - ext/couchbase/operations/document_get.hxx
@@ -175,6 +198,7 @@ files:
175
198
  - ext/couchbase/operations/document_touch.hxx
176
199
  - ext/couchbase/operations/document_unlock.hxx
177
200
  - ext/couchbase/operations/document_upsert.hxx
201
+ - ext/couchbase/operations/document_view.hxx
178
202
  - ext/couchbase/operations/query_index_build_deferred.hxx
179
203
  - ext/couchbase/operations/query_index_create.hxx
180
204
  - ext/couchbase/operations/query_index_drop.hxx
@@ -192,6 +216,10 @@ files:
192
216
  - ext/couchbase/operations/search_index_get_all.hxx
193
217
  - ext/couchbase/operations/search_index_get_documents_count.hxx
194
218
  - ext/couchbase/operations/search_index_upsert.hxx
219
+ - ext/couchbase/operations/view_index_drop.hxx
220
+ - ext/couchbase/operations/view_index_get.hxx
221
+ - ext/couchbase/operations/view_index_get_all.hxx
222
+ - ext/couchbase/operations/view_index_upsert.hxx
195
223
  - ext/couchbase/platform/base64.cc
196
224
  - ext/couchbase/platform/base64.h
197
225
  - ext/couchbase/platform/random.cc
@@ -240,6 +268,7 @@ files:
240
268
  - ext/couchbase/service_type.hxx
241
269
  - ext/couchbase/timeout_defaults.hxx
242
270
  - ext/couchbase/utils/byteswap.hxx
271
+ - ext/couchbase/utils/connection_string.hxx
243
272
  - ext/couchbase/utils/crc32.hxx
244
273
  - ext/couchbase/utils/url_codec.hxx
245
274
  - ext/couchbase/version.hxx
@@ -2133,6 +2162,7 @@ files:
2133
2162
  - ext/third_party/spdlog/tests/utils.cpp
2134
2163
  - ext/third_party/spdlog/tests/utils.h
2135
2164
  - lib/couchbase.rb
2165
+ - lib/couchbase/analytics_options.rb
2136
2166
  - lib/couchbase/authenticator.rb
2137
2167
  - lib/couchbase/binary_collection.rb
2138
2168
  - lib/couchbase/binary_collection_options.rb
@@ -2151,10 +2181,12 @@ files:
2151
2181
  - lib/couchbase/management/user_manager.rb
2152
2182
  - lib/couchbase/management/view_index_manager.rb
2153
2183
  - lib/couchbase/mutation_state.rb
2184
+ - lib/couchbase/query_options.rb
2154
2185
  - lib/couchbase/scope.rb
2155
2186
  - lib/couchbase/search_options.rb
2156
2187
  - lib/couchbase/subdoc.rb
2157
2188
  - lib/couchbase/version.rb
2189
+ - lib/couchbase/view_options.rb
2158
2190
  - rbi/couchbase.rbi
2159
2191
  homepage: https://www.couchbase.com
2160
2192
  licenses: