couchbase 3.0.1 → 3.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +73 -4
- data/ext/build_config.hxx.in +2 -0
- data/ext/build_version.hxx.in +11 -8
- data/ext/cmake/BuildTracing.cmake +1 -1
- data/ext/cmake/CompilerWarnings.cmake +5 -0
- data/ext/cmake/Testing.cmake +3 -6
- data/ext/couchbase/bucket.hxx +9 -1
- data/ext/couchbase/cbsasl/client.h +1 -1
- data/ext/couchbase/cluster.hxx +89 -6
- data/ext/couchbase/configuration.hxx +2 -0
- data/ext/couchbase/couchbase.cxx +1647 -507
- data/ext/couchbase/diagnostics.hxx +0 -3
- data/ext/couchbase/io/dns_client.hxx +2 -2
- data/ext/couchbase/io/http_command.hxx +6 -3
- data/ext/couchbase/io/http_session.hxx +14 -18
- data/ext/couchbase/io/http_session_manager.hxx +83 -2
- data/ext/couchbase/io/mcbp_command.hxx +4 -1
- data/ext/couchbase/io/mcbp_context.hxx +37 -0
- data/ext/couchbase/io/mcbp_session.hxx +91 -30
- data/ext/couchbase/operations.hxx +5 -0
- data/ext/couchbase/operations/analytics_dataset_create.hxx +3 -2
- data/ext/couchbase/operations/analytics_dataset_drop.hxx +3 -2
- data/ext/couchbase/operations/analytics_dataset_get_all.hxx +3 -2
- data/ext/couchbase/operations/analytics_dataverse_create.hxx +3 -2
- data/ext/couchbase/operations/analytics_dataverse_drop.hxx +3 -2
- data/ext/couchbase/operations/analytics_get_pending_mutations.hxx +3 -2
- data/ext/couchbase/operations/analytics_index_create.hxx +3 -2
- data/ext/couchbase/operations/analytics_index_drop.hxx +3 -2
- data/ext/couchbase/operations/analytics_index_get_all.hxx +5 -2
- data/ext/couchbase/operations/analytics_link_connect.hxx +3 -2
- data/ext/couchbase/operations/analytics_link_disconnect.hxx +3 -2
- data/ext/couchbase/operations/bucket_create.hxx +3 -2
- data/ext/couchbase/operations/bucket_drop.hxx +3 -2
- data/ext/couchbase/operations/bucket_flush.hxx +3 -2
- data/ext/couchbase/operations/bucket_get.hxx +3 -2
- data/ext/couchbase/operations/bucket_get_all.hxx +3 -2
- data/ext/couchbase/operations/bucket_update.hxx +3 -2
- data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +3 -2
- data/ext/couchbase/operations/collection_create.hxx +3 -2
- data/ext/couchbase/operations/collection_drop.hxx +3 -2
- data/ext/couchbase/operations/collections_manifest_get.hxx +3 -2
- data/ext/couchbase/operations/document_analytics.hxx +3 -2
- data/ext/couchbase/operations/document_append.hxx +77 -0
- data/ext/couchbase/operations/document_decrement.hxx +3 -2
- data/ext/couchbase/operations/document_exists.hxx +3 -2
- data/ext/couchbase/operations/document_get.hxx +3 -2
- data/ext/couchbase/operations/document_get_and_lock.hxx +3 -2
- data/ext/couchbase/operations/document_get_and_touch.hxx +3 -2
- data/ext/couchbase/operations/document_get_projected.hxx +3 -2
- data/ext/couchbase/operations/document_increment.hxx +3 -2
- data/ext/couchbase/operations/document_insert.hxx +3 -2
- data/ext/couchbase/operations/document_lookup_in.hxx +8 -2
- data/ext/couchbase/operations/document_mutate_in.hxx +13 -2
- data/ext/couchbase/operations/document_prepend.hxx +77 -0
- data/ext/couchbase/operations/document_query.hxx +3 -2
- data/ext/couchbase/operations/document_remove.hxx +5 -2
- data/ext/couchbase/operations/document_replace.hxx +3 -2
- data/ext/couchbase/operations/document_search.hxx +3 -2
- data/ext/couchbase/operations/document_touch.hxx +3 -2
- data/ext/couchbase/operations/document_unlock.hxx +3 -2
- data/ext/couchbase/operations/document_upsert.hxx +3 -2
- data/ext/couchbase/operations/document_view.hxx +3 -2
- data/ext/couchbase/operations/group_drop.hxx +3 -2
- data/ext/couchbase/operations/group_get.hxx +3 -2
- data/ext/couchbase/operations/group_get_all.hxx +3 -2
- data/ext/couchbase/operations/group_upsert.hxx +3 -2
- data/ext/couchbase/operations/http_noop.hxx +78 -0
- data/ext/couchbase/operations/mcbp_noop.hxx +61 -0
- data/ext/couchbase/operations/query_index_build_deferred.hxx +3 -2
- data/ext/couchbase/operations/query_index_create.hxx +3 -2
- data/ext/couchbase/operations/query_index_drop.hxx +3 -2
- data/ext/couchbase/operations/query_index_get_all.hxx +3 -2
- data/ext/couchbase/operations/role_get_all.hxx +3 -2
- data/ext/couchbase/operations/scope_create.hxx +3 -2
- data/ext/couchbase/operations/scope_drop.hxx +3 -2
- data/ext/couchbase/operations/scope_get_all.hxx +3 -2
- data/ext/couchbase/operations/search_get_stats.hxx +3 -2
- data/ext/couchbase/operations/search_index_analyze_document.hxx +3 -2
- data/ext/couchbase/operations/search_index_control_ingest.hxx +3 -2
- data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +3 -2
- data/ext/couchbase/operations/search_index_control_query.hxx +3 -2
- data/ext/couchbase/operations/search_index_drop.hxx +3 -2
- data/ext/couchbase/operations/search_index_get.hxx +3 -2
- data/ext/couchbase/operations/search_index_get_all.hxx +3 -2
- data/ext/couchbase/operations/search_index_get_documents_count.hxx +3 -2
- data/ext/couchbase/operations/search_index_get_stats.hxx +3 -2
- data/ext/couchbase/operations/search_index_upsert.hxx +3 -2
- data/ext/couchbase/operations/user_drop.hxx +3 -2
- data/ext/couchbase/operations/user_get.hxx +3 -2
- data/ext/couchbase/operations/user_get_all.hxx +3 -2
- data/ext/couchbase/operations/user_upsert.hxx +3 -2
- data/ext/couchbase/operations/view_index_drop.hxx +3 -2
- data/ext/couchbase/operations/view_index_get.hxx +3 -2
- data/ext/couchbase/operations/view_index_get_all.hxx +3 -2
- data/ext/couchbase/operations/view_index_upsert.hxx +3 -2
- data/ext/couchbase/platform/terminate_handler.cc +5 -2
- data/ext/couchbase/protocol/client_opcode.hxx +368 -0
- data/ext/couchbase/protocol/cmd_append.hxx +145 -0
- data/ext/couchbase/protocol/cmd_hello.hxx +1 -0
- data/ext/couchbase/protocol/cmd_lookup_in.hxx +11 -3
- data/ext/couchbase/protocol/cmd_mutate_in.hxx +46 -4
- data/ext/couchbase/protocol/cmd_noop.hxx +82 -0
- data/ext/couchbase/protocol/cmd_prepend.hxx +145 -0
- data/ext/couchbase/protocol/durability_level.hxx +16 -0
- data/ext/couchbase/protocol/hello_feature.hxx +9 -0
- data/ext/couchbase/protocol/unsigned_leb128.h +2 -2
- data/ext/couchbase/service_type.hxx +1 -1
- data/ext/couchbase/version.hxx +18 -4
- data/ext/extconf.rb +9 -6
- data/ext/test/CMakeLists.txt +5 -0
- data/ext/test/test_helper.hxx +3 -3
- data/ext/test/test_helper_native.hxx +2 -5
- data/ext/test/test_native_binary_operations.cxx +186 -0
- data/ext/test/test_native_diagnostics.cxx +54 -3
- data/ext/test/test_ruby_trivial_crud.cxx +1 -1
- data/lib/couchbase.rb +1 -0
- data/lib/couchbase/analytics_options.rb +1 -71
- data/lib/couchbase/binary_collection.rb +60 -22
- data/lib/couchbase/binary_collection_options.rb +0 -76
- data/lib/couchbase/bucket.rb +40 -36
- data/lib/couchbase/cluster.rb +89 -156
- data/lib/couchbase/collection.rb +290 -72
- data/lib/couchbase/collection_options.rb +30 -243
- data/lib/couchbase/datastructures/couchbase_list.rb +5 -16
- data/lib/couchbase/datastructures/couchbase_map.rb +5 -16
- data/lib/couchbase/datastructures/couchbase_queue.rb +5 -16
- data/lib/couchbase/datastructures/couchbase_set.rb +5 -16
- data/lib/couchbase/diagnostics.rb +181 -0
- data/lib/couchbase/json_transcoder.rb +1 -1
- data/lib/couchbase/{common_options.rb → logger.rb} +24 -11
- data/lib/couchbase/management/query_index_manager.rb +1 -1
- data/lib/couchbase/management/user_manager.rb +3 -0
- data/lib/couchbase/options.rb +2094 -0
- data/lib/couchbase/query_options.rb +1 -144
- data/lib/couchbase/scope.rb +8 -25
- data/lib/couchbase/search_options.rb +0 -93
- data/lib/couchbase/version.rb +20 -1
- data/lib/couchbase/view_options.rb +1 -91
- metadata +19 -7
@@ -42,16 +42,17 @@ struct view_index_get_request {
|
|
42
42
|
std::string document_name;
|
43
43
|
design_document::name_space name_space;
|
44
44
|
|
45
|
-
|
45
|
+
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, http_context&)
|
46
46
|
{
|
47
47
|
encoded.method = "GET";
|
48
48
|
encoded.path =
|
49
49
|
fmt::format("/{}/_design/{}{}", bucket_name, name_space == design_document::name_space::development ? "dev_" : "", document_name);
|
50
|
+
return {};
|
50
51
|
}
|
51
52
|
};
|
52
53
|
|
53
54
|
view_index_get_response
|
54
|
-
make_response(std::error_code ec, view_index_get_request& request, view_index_get_request::encoded_response_type encoded)
|
55
|
+
make_response(std::error_code ec, view_index_get_request& request, view_index_get_request::encoded_response_type&& encoded)
|
55
56
|
{
|
56
57
|
view_index_get_response response{ request.client_context_id, ec };
|
57
58
|
if (!ec) {
|
@@ -41,15 +41,16 @@ struct view_index_get_all_request {
|
|
41
41
|
std::string bucket_name;
|
42
42
|
design_document::name_space name_space;
|
43
43
|
|
44
|
-
|
44
|
+
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, http_context&)
|
45
45
|
{
|
46
46
|
encoded.method = "GET";
|
47
47
|
encoded.path = fmt::format("/pools/default/buckets/{}/ddocs", bucket_name);
|
48
|
+
return {};
|
48
49
|
}
|
49
50
|
};
|
50
51
|
|
51
52
|
view_index_get_all_response
|
52
|
-
make_response(std::error_code ec, view_index_get_all_request& request, view_index_get_all_request::encoded_response_type encoded)
|
53
|
+
make_response(std::error_code ec, view_index_get_all_request& request, view_index_get_all_request::encoded_response_type&& encoded)
|
53
54
|
{
|
54
55
|
view_index_get_all_response response{ request.client_context_id, ec };
|
55
56
|
if (!ec) {
|
@@ -39,7 +39,7 @@ struct view_index_upsert_request {
|
|
39
39
|
std::string bucket_name;
|
40
40
|
design_document document;
|
41
41
|
|
42
|
-
|
42
|
+
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded, http_context&)
|
43
43
|
{
|
44
44
|
tao::json::value body;
|
45
45
|
body["views"] = tao::json::empty_object;
|
@@ -59,11 +59,12 @@ struct view_index_upsert_request {
|
|
59
59
|
encoded.path = fmt::format(
|
60
60
|
"/{}/_design/{}{}", bucket_name, document.ns == design_document::name_space::development ? "dev_" : "", document.name);
|
61
61
|
encoded.body = tao::json::to_string(body);
|
62
|
+
return {};
|
62
63
|
}
|
63
64
|
};
|
64
65
|
|
65
66
|
view_index_upsert_response
|
66
|
-
make_response(std::error_code ec, view_index_upsert_request& request, view_index_upsert_request::encoded_response_type encoded)
|
67
|
+
make_response(std::error_code ec, view_index_upsert_request& request, view_index_upsert_request::encoded_response_type&& encoded)
|
67
68
|
{
|
68
69
|
view_index_upsert_response response{ request.client_context_id, ec };
|
69
70
|
if (!ec) {
|
@@ -81,8 +81,11 @@ log_backtrace()
|
|
81
81
|
static void
|
82
82
|
backtrace_terminate_handler()
|
83
83
|
{
|
84
|
-
spdlog::critical("*** Fatal error encountered during exception handling (rev
|
85
|
-
|
84
|
+
spdlog::critical(R"(*** Fatal error encountered during exception handling (rev="{}", compiler="{}", system="{}", date="{}")***)",
|
85
|
+
BACKEND_GIT_REVISION,
|
86
|
+
BACKEND_CXX_COMPILER,
|
87
|
+
BACKEND_SYSTEM,
|
88
|
+
BACKEND_BUILD_TIMESTAMP);
|
86
89
|
log_handled_exception();
|
87
90
|
|
88
91
|
if (should_include_backtrace) {
|
@@ -29,20 +29,199 @@ enum class client_opcode : uint8_t {
|
|
29
29
|
remove = 0x04,
|
30
30
|
increment = 0x05,
|
31
31
|
decrement = 0x06,
|
32
|
+
noop = 0x0a,
|
33
|
+
version = 0x0b,
|
34
|
+
append = 0x0e,
|
35
|
+
prepend = 0x0f,
|
36
|
+
stat = 0x10,
|
37
|
+
verbosity = 0x1b,
|
32
38
|
touch = 0x1c,
|
33
39
|
get_and_touch = 0x1d,
|
34
40
|
hello = 0x1f,
|
35
41
|
sasl_list_mechs = 0x20,
|
36
42
|
sasl_auth = 0x21,
|
37
43
|
sasl_step = 0x22,
|
44
|
+
get_all_vbucket_seqnos = 0x48,
|
45
|
+
|
46
|
+
/**
|
47
|
+
* Open connection
|
48
|
+
* Sent by an external entity to a producer or a consumer to create a logical channel.
|
49
|
+
*/
|
50
|
+
dcp_open = 0x50,
|
51
|
+
|
52
|
+
/**
|
53
|
+
* Add Stream
|
54
|
+
* Sent to the consumer to tell the consumer to initiate a stream request with the producer.
|
55
|
+
*/
|
56
|
+
dcp_add_stream = 0x51,
|
57
|
+
|
58
|
+
/**
|
59
|
+
* Close Stream
|
60
|
+
* Sent to server controling an DCP stream to close the stream for a named vbucket as soon as possible.
|
61
|
+
*/
|
62
|
+
dcp_close_stream = 0x52,
|
63
|
+
|
64
|
+
/**
|
65
|
+
* Stream Request
|
66
|
+
* Sent by the consumer side to the producer specifying that the consumer wants to create a vbucket stream
|
67
|
+
*/
|
68
|
+
dcp_stream_request = 0x53,
|
69
|
+
|
70
|
+
/**
|
71
|
+
* Failover Log Request
|
72
|
+
* The Failover log request is used by the consumer to request all known failover ids a client may use to continue from.
|
73
|
+
*/
|
74
|
+
dcp_get_failover_log = 0x54,
|
75
|
+
|
76
|
+
/**
|
77
|
+
* Stream End
|
78
|
+
* Sent to the consumer to indicate that the producer has no more messages to stream for the specified vbucket.
|
79
|
+
*/
|
80
|
+
dcp_stream_end = 0x55,
|
81
|
+
|
82
|
+
/**
|
83
|
+
* Snapshot Marker
|
84
|
+
* Sent by the producer to tell the consumer that a new snapshot is being sent.
|
85
|
+
*/
|
86
|
+
dcp_snapshot_marker = 0x56,
|
87
|
+
|
88
|
+
/**
|
89
|
+
* Mutation
|
90
|
+
* Tells the consumer that the message contains a key mutation.
|
91
|
+
*/
|
92
|
+
dcp_mutation = 0x57,
|
93
|
+
|
94
|
+
/**
|
95
|
+
* Deletion
|
96
|
+
* Tells the consumer that the message contains a key deletion.
|
97
|
+
*/
|
98
|
+
dcp_deletion = 0x58,
|
99
|
+
|
100
|
+
/**
|
101
|
+
* Expiration
|
102
|
+
* Tells the consumer that the message contains a key expiration
|
103
|
+
*/
|
104
|
+
dcp_expiration = 0x59,
|
105
|
+
|
106
|
+
/**
|
107
|
+
* Set VBucket State
|
108
|
+
* The Set VBucket message is used during the VBucket takeover process to hand off ownership of a VBucket between two nodes
|
109
|
+
*/
|
110
|
+
dcp_set_vbucket_state = 0x5b,
|
111
|
+
|
112
|
+
/**
|
113
|
+
* No-Op
|
114
|
+
* A No-Op message is sent by the Producer to the Consumer if the Producer has not sent any messages for a given interval of time
|
115
|
+
*/
|
116
|
+
dcp_noop = 0x5c,
|
117
|
+
|
118
|
+
/**
|
119
|
+
* Buffer Acknowledgement
|
120
|
+
* Sent to by the Consumer to the Producer in order to inform the Producer that the Consumer has consumed some or all of the data the
|
121
|
+
* the Producer has sent and that the Consumer is ready for more data
|
122
|
+
*/
|
123
|
+
dcp_buffer_acknowledgement = 0x5d,
|
124
|
+
|
125
|
+
/**
|
126
|
+
* Control
|
127
|
+
* Sent by the Consumer to the Producer in order to configure connection settings.
|
128
|
+
*/
|
129
|
+
dcp_control = 0x5e,
|
130
|
+
|
131
|
+
/**
|
132
|
+
* System Event
|
133
|
+
* Tells the consumer that the message contains a system event.
|
134
|
+
*/
|
135
|
+
dcp_system_event = 0x5f,
|
136
|
+
|
137
|
+
dcp_prepare = 0x60,
|
138
|
+
dcp_seqno_acknowledged = 0x61,
|
139
|
+
dcp_commit = 0x62,
|
140
|
+
dcp_abort = 0x63,
|
141
|
+
|
142
|
+
/**
|
143
|
+
* Seqno Advanced
|
144
|
+
* Sent by the producer to tell the consumer that the vbucket seqno has advanced due to an event that the consumer is not subscribed
|
145
|
+
* too.
|
146
|
+
*/
|
147
|
+
dcp_seqno_advanced = 0x64,
|
148
|
+
|
149
|
+
/**
|
150
|
+
* OSO Snapshot
|
151
|
+
* Sent by the producer to tell the consumer that a Out of Sequence Order snapshot is to be transmitted or has now been completed.
|
152
|
+
*/
|
153
|
+
dcp_oso_snapshot = 0x65,
|
154
|
+
|
155
|
+
get_replica = 0x83,
|
156
|
+
list_buckets = 0x87,
|
38
157
|
select_bucket = 0x89,
|
158
|
+
observe_seqno = 0x91,
|
39
159
|
observe = 0x92,
|
160
|
+
evict_key = 0x93,
|
40
161
|
get_and_lock = 0x94,
|
41
162
|
unlock = 0x95,
|
163
|
+
get_failover_log = 0x96,
|
164
|
+
|
165
|
+
/**
|
166
|
+
* Return the last closed checkpoint Id for a given VBucket.
|
167
|
+
*/
|
168
|
+
last_closed_checkpoint = 0x97,
|
169
|
+
|
170
|
+
get_meta = 0xa0,
|
171
|
+
upsert_with_meta = 0xa2,
|
172
|
+
insert_with_meta = 0xa4,
|
173
|
+
remove_with_meta = 0xa8,
|
174
|
+
|
175
|
+
/**
|
176
|
+
* Command to create a new checkpoint on a given vbucket by force
|
177
|
+
*/
|
178
|
+
create_checkpoint = 0xaa,
|
179
|
+
|
180
|
+
/**
|
181
|
+
* Command to wait for the checkpoint persistence
|
182
|
+
*/
|
183
|
+
checkpoint_persistence = 0xb1,
|
184
|
+
|
185
|
+
/**
|
186
|
+
* Command that returns meta data for typical memcached ops
|
187
|
+
*/
|
188
|
+
return_meta = 0xb2,
|
189
|
+
|
190
|
+
get_random_key = 0xb6,
|
191
|
+
|
192
|
+
/**
|
193
|
+
* Command to wait for the dcp sequence number persistence
|
194
|
+
*/
|
195
|
+
seqno_persistence = 0xb7,
|
196
|
+
|
197
|
+
/**
|
198
|
+
* Command to get all keys
|
199
|
+
*/
|
200
|
+
get_keys = 0xb8,
|
201
|
+
|
202
|
+
/**
|
203
|
+
* Command to set collections manifest
|
204
|
+
*/
|
205
|
+
set_collections_manifest = 0xb9,
|
206
|
+
|
207
|
+
/**
|
208
|
+
* Command to get collections manifest
|
209
|
+
*/
|
42
210
|
get_collections_manifest = 0xba,
|
211
|
+
|
212
|
+
/**
|
213
|
+
* Command to get a collection ID
|
214
|
+
*/
|
43
215
|
get_collection_id = 0xbb,
|
216
|
+
|
217
|
+
/**
|
218
|
+
* Command to get a scope ID
|
219
|
+
*/
|
220
|
+
get_scope_id = 0xbc,
|
221
|
+
|
44
222
|
subdoc_multi_lookup = 0xd0,
|
45
223
|
subdoc_multi_mutation = 0xd1,
|
224
|
+
|
46
225
|
get_cluster_config = 0xb5,
|
47
226
|
get_error_map = 0xfe,
|
48
227
|
invalid = 0xff,
|
@@ -66,6 +245,7 @@ enum class subdoc_opcode : uint8_t {
|
|
66
245
|
array_add_unique = 0xce,
|
67
246
|
counter = 0xcf,
|
68
247
|
get_count = 0xd2,
|
248
|
+
replace_body_with_xattr = 0xd3,
|
69
249
|
};
|
70
250
|
|
71
251
|
constexpr inline bool
|
@@ -96,6 +276,52 @@ is_valid_client_opcode(uint8_t code)
|
|
96
276
|
case client_opcode::increment:
|
97
277
|
case client_opcode::decrement:
|
98
278
|
case client_opcode::get_collection_id:
|
279
|
+
case client_opcode::noop:
|
280
|
+
case client_opcode::version:
|
281
|
+
case client_opcode::append:
|
282
|
+
case client_opcode::prepend:
|
283
|
+
case client_opcode::stat:
|
284
|
+
case client_opcode::verbosity:
|
285
|
+
case client_opcode::get_all_vbucket_seqnos:
|
286
|
+
case client_opcode::dcp_open:
|
287
|
+
case client_opcode::dcp_add_stream:
|
288
|
+
case client_opcode::dcp_close_stream:
|
289
|
+
case client_opcode::dcp_stream_request:
|
290
|
+
case client_opcode::dcp_get_failover_log:
|
291
|
+
case client_opcode::dcp_stream_end:
|
292
|
+
case client_opcode::dcp_snapshot_marker:
|
293
|
+
case client_opcode::dcp_mutation:
|
294
|
+
case client_opcode::dcp_deletion:
|
295
|
+
case client_opcode::dcp_expiration:
|
296
|
+
case client_opcode::dcp_set_vbucket_state:
|
297
|
+
case client_opcode::dcp_noop:
|
298
|
+
case client_opcode::dcp_buffer_acknowledgement:
|
299
|
+
case client_opcode::dcp_control:
|
300
|
+
case client_opcode::dcp_system_event:
|
301
|
+
case client_opcode::dcp_prepare:
|
302
|
+
case client_opcode::dcp_seqno_acknowledged:
|
303
|
+
case client_opcode::dcp_commit:
|
304
|
+
case client_opcode::dcp_abort:
|
305
|
+
case client_opcode::dcp_seqno_advanced:
|
306
|
+
case client_opcode::dcp_oso_snapshot:
|
307
|
+
case client_opcode::get_replica:
|
308
|
+
case client_opcode::list_buckets:
|
309
|
+
case client_opcode::observe_seqno:
|
310
|
+
case client_opcode::evict_key:
|
311
|
+
case client_opcode::get_failover_log:
|
312
|
+
case client_opcode::last_closed_checkpoint:
|
313
|
+
case client_opcode::get_meta:
|
314
|
+
case client_opcode::upsert_with_meta:
|
315
|
+
case client_opcode::insert_with_meta:
|
316
|
+
case client_opcode::remove_with_meta:
|
317
|
+
case client_opcode::create_checkpoint:
|
318
|
+
case client_opcode::checkpoint_persistence:
|
319
|
+
case client_opcode::return_meta:
|
320
|
+
case client_opcode::get_random_key:
|
321
|
+
case client_opcode::seqno_persistence:
|
322
|
+
case client_opcode::get_keys:
|
323
|
+
case client_opcode::set_collections_manifest:
|
324
|
+
case client_opcode::get_scope_id:
|
99
325
|
return true;
|
100
326
|
}
|
101
327
|
return false;
|
@@ -119,6 +345,7 @@ is_valid_subdoc_opcode(uint8_t code)
|
|
119
345
|
case subdoc_opcode::get_count:
|
120
346
|
case subdoc_opcode::get_doc:
|
121
347
|
case subdoc_opcode::set_doc:
|
348
|
+
case subdoc_opcode::replace_body_with_xattr:
|
122
349
|
return true;
|
123
350
|
}
|
124
351
|
return false;
|
@@ -204,6 +431,144 @@ struct fmt::formatter<couchbase::protocol::client_opcode> : formatter<string_vie
|
|
204
431
|
case couchbase::protocol::client_opcode::get_collection_id:
|
205
432
|
name = "get_collection_uid (0xbb)";
|
206
433
|
break;
|
434
|
+
case couchbase::protocol::client_opcode::noop:
|
435
|
+
name = "noop (0x0a)";
|
436
|
+
break;
|
437
|
+
case couchbase::protocol::client_opcode::version:
|
438
|
+
name = "version (0x0b)";
|
439
|
+
break;
|
440
|
+
case couchbase::protocol::client_opcode::append:
|
441
|
+
name = "append (0x0e)";
|
442
|
+
break;
|
443
|
+
case couchbase::protocol::client_opcode::prepend:
|
444
|
+
name = "prepend (0x0f)";
|
445
|
+
break;
|
446
|
+
case couchbase::protocol::client_opcode::stat:
|
447
|
+
name = "stat (0x10)";
|
448
|
+
break;
|
449
|
+
case couchbase::protocol::client_opcode::verbosity:
|
450
|
+
name = "verbosity (0x1b)";
|
451
|
+
break;
|
452
|
+
case couchbase::protocol::client_opcode::get_all_vbucket_seqnos:
|
453
|
+
name = "get_all_vbucket_seqnos (0x48)";
|
454
|
+
break;
|
455
|
+
case couchbase::protocol::client_opcode::dcp_open:
|
456
|
+
name = "dcp_open (0x50)";
|
457
|
+
break;
|
458
|
+
case couchbase::protocol::client_opcode::dcp_add_stream:
|
459
|
+
name = "dcp_add_stream (0x51)";
|
460
|
+
break;
|
461
|
+
case couchbase::protocol::client_opcode::dcp_close_stream:
|
462
|
+
name = "dcp_add_stream (0x52)";
|
463
|
+
break;
|
464
|
+
case couchbase::protocol::client_opcode::dcp_stream_request:
|
465
|
+
name = "dcp_stream_request (0x53)";
|
466
|
+
break;
|
467
|
+
case couchbase::protocol::client_opcode::dcp_get_failover_log:
|
468
|
+
name = "dcp_get_failover_log (0x54)";
|
469
|
+
break;
|
470
|
+
case couchbase::protocol::client_opcode::dcp_stream_end:
|
471
|
+
name = "dcp_stream_end (0x55)";
|
472
|
+
break;
|
473
|
+
case couchbase::protocol::client_opcode::dcp_snapshot_marker:
|
474
|
+
name = "dcp_snapshot_marker (0x56)";
|
475
|
+
break;
|
476
|
+
case couchbase::protocol::client_opcode::dcp_mutation:
|
477
|
+
name = "dcp_mutation (0x57)";
|
478
|
+
break;
|
479
|
+
case couchbase::protocol::client_opcode::dcp_deletion:
|
480
|
+
name = "dcp_deletion (0x58)";
|
481
|
+
break;
|
482
|
+
case couchbase::protocol::client_opcode::dcp_expiration:
|
483
|
+
name = "dcp_expiration (0x59)";
|
484
|
+
break;
|
485
|
+
case couchbase::protocol::client_opcode::dcp_set_vbucket_state:
|
486
|
+
name = "dcp_expiration (0x5b)";
|
487
|
+
break;
|
488
|
+
case couchbase::protocol::client_opcode::dcp_noop:
|
489
|
+
name = "dcp_noop (0x5c)";
|
490
|
+
break;
|
491
|
+
case couchbase::protocol::client_opcode::dcp_buffer_acknowledgement:
|
492
|
+
name = "dcp_buffer_acknowledgement (0x5d)";
|
493
|
+
break;
|
494
|
+
case couchbase::protocol::client_opcode::dcp_control:
|
495
|
+
name = "dcp_control (0x5e)";
|
496
|
+
break;
|
497
|
+
case couchbase::protocol::client_opcode::dcp_system_event:
|
498
|
+
name = "dcp_system_event (0x5f)";
|
499
|
+
break;
|
500
|
+
case couchbase::protocol::client_opcode::dcp_prepare:
|
501
|
+
name = "dcp_prepare (0x60)";
|
502
|
+
break;
|
503
|
+
case couchbase::protocol::client_opcode::dcp_seqno_acknowledged:
|
504
|
+
name = "dcp_seqno_acknowledged (0x61)";
|
505
|
+
break;
|
506
|
+
case couchbase::protocol::client_opcode::dcp_commit:
|
507
|
+
name = "dcp_commit (0x62)";
|
508
|
+
break;
|
509
|
+
case couchbase::protocol::client_opcode::dcp_abort:
|
510
|
+
name = "dcp_abort (0x63)";
|
511
|
+
break;
|
512
|
+
case couchbase::protocol::client_opcode::dcp_seqno_advanced:
|
513
|
+
name = "dcp_seqno_advanced (0x64)";
|
514
|
+
break;
|
515
|
+
case couchbase::protocol::client_opcode::dcp_oso_snapshot:
|
516
|
+
name = "dcp_oso_snapshot (0x65)";
|
517
|
+
break;
|
518
|
+
case couchbase::protocol::client_opcode::get_replica:
|
519
|
+
name = "dcp_get_replica (0x83)";
|
520
|
+
break;
|
521
|
+
case couchbase::protocol::client_opcode::list_buckets:
|
522
|
+
name = "list_buckets (0x87)";
|
523
|
+
break;
|
524
|
+
case couchbase::protocol::client_opcode::observe_seqno:
|
525
|
+
name = "observe_seqno (0x91)";
|
526
|
+
break;
|
527
|
+
case couchbase::protocol::client_opcode::evict_key:
|
528
|
+
name = "evict_key (0x93)";
|
529
|
+
break;
|
530
|
+
case couchbase::protocol::client_opcode::get_failover_log:
|
531
|
+
name = "get_failover_log (0x96)";
|
532
|
+
break;
|
533
|
+
case couchbase::protocol::client_opcode::last_closed_checkpoint:
|
534
|
+
name = "last_closed_checkpoint (0x97)";
|
535
|
+
break;
|
536
|
+
case couchbase::protocol::client_opcode::get_meta:
|
537
|
+
name = "get_meta (0xa0)";
|
538
|
+
break;
|
539
|
+
case couchbase::protocol::client_opcode::upsert_with_meta:
|
540
|
+
name = "upsert_with_meta (0xa2)";
|
541
|
+
break;
|
542
|
+
case couchbase::protocol::client_opcode::insert_with_meta:
|
543
|
+
name = "insert_with_meta (0xa4)";
|
544
|
+
break;
|
545
|
+
case couchbase::protocol::client_opcode::remove_with_meta:
|
546
|
+
name = "remove_with_meta (0xa8)";
|
547
|
+
break;
|
548
|
+
case couchbase::protocol::client_opcode::create_checkpoint:
|
549
|
+
name = "create_checkpoint (0xaa)";
|
550
|
+
break;
|
551
|
+
case couchbase::protocol::client_opcode::checkpoint_persistence:
|
552
|
+
name = "checkpoint_persistence (0xb1)";
|
553
|
+
break;
|
554
|
+
case couchbase::protocol::client_opcode::return_meta:
|
555
|
+
name = "return_meta (0xb2)";
|
556
|
+
break;
|
557
|
+
case couchbase::protocol::client_opcode::get_random_key:
|
558
|
+
name = "get_random_key (0xb6)";
|
559
|
+
break;
|
560
|
+
case couchbase::protocol::client_opcode::seqno_persistence:
|
561
|
+
name = "seqno_persistence (0xb7)";
|
562
|
+
break;
|
563
|
+
case couchbase::protocol::client_opcode::get_keys:
|
564
|
+
name = "get_keys (0xb8)";
|
565
|
+
break;
|
566
|
+
case couchbase::protocol::client_opcode::set_collections_manifest:
|
567
|
+
name = "set_collections_manifest (0xb9)";
|
568
|
+
break;
|
569
|
+
case couchbase::protocol::client_opcode::get_scope_id:
|
570
|
+
name = "get_scope_id (0xbc)";
|
571
|
+
break;
|
207
572
|
}
|
208
573
|
return formatter<string_view>::format(name, ctx);
|
209
574
|
}
|
@@ -258,6 +623,9 @@ struct fmt::formatter<couchbase::protocol::subdoc_opcode> : formatter<string_vie
|
|
258
623
|
case couchbase::protocol::subdoc_opcode::set_doc:
|
259
624
|
name = "set_doc (0x01)";
|
260
625
|
break;
|
626
|
+
case couchbase::protocol::subdoc_opcode::replace_body_with_xattr:
|
627
|
+
name = "replace_body_with_xattr (0xd3)";
|
628
|
+
break;
|
261
629
|
}
|
262
630
|
return formatter<string_view>::format(name, ctx);
|
263
631
|
}
|