couchbase 3.0.1 → 3.0.2
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 +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
|
}
|