couchbase 3.2.2 → 3.2.5

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.
Files changed (129) hide show
  1. package/binding.gyp +5 -0
  2. package/deps/lcb/CMakeLists.txt +1 -1
  3. package/deps/lcb/CONTRIBUTING.md +1 -1
  4. package/deps/lcb/README.markdown +2 -2
  5. package/deps/lcb/RELEASE_NOTES.markdown +84 -17
  6. package/deps/lcb/cmake/Modules/GetVersionInfo.cmake +1 -1
  7. package/deps/lcb/contrib/cbsasl/src/scram-sha/scram_utils.cc +22 -26
  8. package/deps/lcb/contrib/lcb-jsoncpp/lcb-jsoncpp.cpp +20 -6
  9. package/deps/lcb/doc/Doxyfile +1 -1
  10. package/deps/lcb/example/minimal/query.c +9 -7
  11. package/deps/lcb/gyp_config/common/libcouchbase/configuration.h +3 -3
  12. package/deps/lcb/gyp_config/linux/arm64/config.h +243 -0
  13. package/deps/lcb/include/libcouchbase/couchbase.h +55 -1
  14. package/deps/lcb/include/libcouchbase/error.h +6 -1
  15. package/deps/lcb/include/libcouchbase/ixmgmt.h +15 -10
  16. package/deps/lcb/include/libcouchbase/tracing.h +2 -2
  17. package/deps/lcb/include/memcached/protocol_binary.h +21 -0
  18. package/deps/lcb/libcouchbase.gyp +353 -349
  19. package/deps/lcb/packaging/deb/control +1 -1
  20. package/deps/lcb/src/analytics/analytics_handle.cc +7 -5
  21. package/deps/lcb/src/analytics/analytics_handle.hh +28 -0
  22. package/deps/lcb/src/capi/cmd_counter.hh +18 -0
  23. package/deps/lcb/src/capi/cmd_exists.hh +18 -0
  24. package/deps/lcb/src/capi/cmd_get.hh +17 -0
  25. package/deps/lcb/src/capi/cmd_get_replica.hh +20 -1
  26. package/deps/lcb/src/capi/cmd_query.cc +13 -0
  27. package/deps/lcb/src/capi/cmd_query.hh +22 -14
  28. package/deps/lcb/src/capi/cmd_remove.hh +18 -0
  29. package/deps/lcb/src/capi/cmd_search.hh +6 -0
  30. package/deps/lcb/src/capi/cmd_store.hh +28 -21
  31. package/deps/lcb/src/capi/cmd_subdoc.hh +30 -0
  32. package/deps/lcb/src/capi/cmd_touch.hh +18 -0
  33. package/deps/lcb/src/capi/cmd_unlock.hh +18 -0
  34. package/deps/lcb/src/capi/cmd_view.hh +6 -0
  35. package/deps/lcb/src/capi/collection_qualifier.hh +6 -8
  36. package/deps/lcb/src/cntl.cc +42 -8
  37. package/deps/lcb/src/dns-srv.cc +5 -3
  38. package/deps/lcb/src/errmap.cc +5 -9
  39. package/deps/lcb/src/errmap.h +7 -3
  40. package/deps/lcb/src/handler.cc +24 -18
  41. package/deps/lcb/src/internal.h +2 -1
  42. package/deps/lcb/src/lcbio/ctx.cc +4 -2
  43. package/deps/lcb/src/mcserver/mcserver.cc +8 -5
  44. package/deps/lcb/src/mcserver/negotiate.cc +42 -17
  45. package/deps/lcb/src/n1ql/ixmgmt.cc +1 -2
  46. package/deps/lcb/src/n1ql/n1ql.cc +5 -1
  47. package/deps/lcb/src/n1ql/query_handle.cc +80 -44
  48. package/deps/lcb/src/n1ql/query_handle.hh +41 -3
  49. package/deps/lcb/src/operations/counter.cc +13 -1
  50. package/deps/lcb/src/operations/exists.cc +14 -2
  51. package/deps/lcb/src/operations/get.cc +14 -2
  52. package/deps/lcb/src/operations/get_replica.cc +18 -6
  53. package/deps/lcb/src/operations/observe.cc +1 -1
  54. package/deps/lcb/src/operations/remove.cc +13 -1
  55. package/deps/lcb/src/operations/store.cc +13 -1
  56. package/deps/lcb/src/operations/subdoc.cc +13 -2
  57. package/deps/lcb/src/operations/touch.cc +14 -2
  58. package/deps/lcb/src/operations/unlock.cc +14 -2
  59. package/deps/lcb/src/search/search_handle.cc +26 -8
  60. package/deps/lcb/src/search/search_handle.hh +29 -0
  61. package/deps/lcb/src/ssl/ssl_common.c +7 -8
  62. package/deps/lcb/src/tracing/span.cc +43 -10
  63. package/deps/lcb/src/tracing/tracing-internal.h +105 -93
  64. package/deps/lcb/src/utilities.cc +21 -0
  65. package/deps/lcb/src/utilities.h +3 -0
  66. package/deps/lcb/src/views/view_handle.cc +13 -5
  67. package/deps/lcb/src/views/view_handle.hh +29 -0
  68. package/deps/lcb/tests/CMakeLists.txt +21 -0
  69. package/deps/lcb/tests/basic/t_ctlcodes.cc +24 -3
  70. package/deps/lcb/tests/basic/t_jsparse.cc +8 -0
  71. package/deps/lcb/tests/iotests/mock-environment.cc +25 -1
  72. package/deps/lcb/tests/iotests/mock-environment.h +49 -1
  73. package/deps/lcb/tests/iotests/mock-unit-test.cc +96 -5
  74. package/deps/lcb/tests/iotests/mock-unit-test.h +32 -0
  75. package/deps/lcb/tests/iotests/serverparams.h +7 -2
  76. package/deps/lcb/tests/iotests/t_collections.cc +1 -1
  77. package/deps/lcb/tests/iotests/t_confmon.cc +4 -2
  78. package/deps/lcb/tests/iotests/t_get.cc +14 -4
  79. package/deps/lcb/tests/iotests/t_n1ql.cc +17 -1
  80. package/deps/lcb/tests/iotests/t_ratelimit.cc +729 -0
  81. package/deps/lcb/tests/iotests/t_views.cc +1 -0
  82. package/deps/lcb/tests/iotests/testutil.cc +342 -0
  83. package/deps/lcb/tests/iotests/testutil.h +164 -0
  84. package/deps/lcb/tests/mocksupport/procutil.c +32 -28
  85. package/deps/lcb/tests/mocksupport/server.c +0 -1
  86. package/deps/lcb/tools/cbc.cc +7 -0
  87. package/dist/analyticsexecutor.js +2 -2
  88. package/dist/analyticsindexmanager.js +512 -524
  89. package/dist/binarycollection.d.ts +17 -0
  90. package/dist/binding.d.ts +2 -0
  91. package/dist/binding.js +1 -1
  92. package/dist/bindingutilities.js +9 -1
  93. package/dist/bucketmanager.d.ts +32 -23
  94. package/dist/bucketmanager.js +197 -189
  95. package/dist/cluster.js +37 -36
  96. package/dist/collection.js +17 -23
  97. package/dist/collectionmanager.js +181 -200
  98. package/dist/connection.js +6 -3
  99. package/dist/connspec.js +5 -1
  100. package/dist/couchbase.js +7 -14
  101. package/dist/datastructures.js +239 -310
  102. package/dist/diagnosticsexecutor.js +70 -85
  103. package/dist/errors.d.ts +18 -0
  104. package/dist/errors.js +26 -2
  105. package/dist/eventingfunctionmanager.js +267 -294
  106. package/dist/httpexecutor.js +31 -38
  107. package/dist/logging.js +1 -1
  108. package/dist/queryexecutor.js +3 -3
  109. package/dist/queryindexmanager.js +236 -263
  110. package/dist/scope.js +8 -2
  111. package/dist/searchexecutor.js +3 -0
  112. package/dist/searchindexmanager.js +240 -271
  113. package/dist/searchquery.d.ts +17 -0
  114. package/dist/searchquery.js +22 -1
  115. package/dist/searchtypes.d.ts +7 -2
  116. package/dist/searchtypes.js +2 -2
  117. package/dist/usermanager.js +250 -263
  118. package/dist/utilities.d.ts +3 -2
  119. package/dist/utilities.js +16 -4
  120. package/dist/viewexecutor.js +1 -1
  121. package/dist/viewindexmanager.js +131 -150
  122. package/package.json +1 -1
  123. package/src/connection.cpp +2 -0
  124. package/src/constants.cpp +2 -0
  125. package/src/instance.cpp +8 -1
  126. package/src/instance.h +1 -0
  127. package/src/uv-plugin-all.cpp +1 -0
  128. package/dist/cas.d.ts +0 -0
  129. package/dist/cas.js +0 -1
@@ -0,0 +1,243 @@
1
+ /* src/config.h. Generated from config.h.in by configure. */
2
+ /* src/config.h.in. Generated from configure.ac by autoheader. */
3
+
4
+ #if defined(_WIN32) && !defined(HAVE_CONFIG_H)
5
+ /* skip config.h contents on a non-autotools win32 build */
6
+ #include "win32/config.h"
7
+ #define CONFIG_H
8
+ #endif
9
+
10
+ #ifndef CONFIG_H
11
+ #define CONFIG_H
12
+ /* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
13
+ /*
14
+ * Copyright 2010, 2011 Couchbase, Inc.
15
+ *
16
+ * Licensed under the Apache License, Version 2.0 (the "License");
17
+ * you may not use this file except in compliance with the License.
18
+ * You may obtain a copy of the License at
19
+ *
20
+ * http://www.apache.org/licenses/LICENSE-2.0
21
+ *
22
+ * Unless required by applicable law or agreed to in writing, software
23
+ * distributed under the License is distributed on an "AS IS" BASIS,
24
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25
+ * See the License for the specific language governing permissions and
26
+ * limitations under the License.
27
+ */
28
+
29
+ /*
30
+ * This file is generated by running configure. Any changes you make to this
31
+ * file will be overwritten the next time you run configure. If you want to
32
+ * make permanent changes to the file you should edit configure.ac instead.
33
+ * All platform-specific includes should be placed inside config_static.h
34
+ * to keep the config.h as small as possible. That allows us for easily
35
+ * use another build systems with a poor support for automake (like Windows)
36
+ *
37
+ * @author Trond Norbye
38
+ */
39
+
40
+ #define HAVE_PKCS5_PBKDF2_HMAC 1
41
+
42
+ #define HAVE_ARPA_NAMESER_H 1
43
+ #define HAVE_RES_SEARCH 1
44
+
45
+ /* Define if building universal (internal helper macro) */
46
+ /* #undef AC_APPLE_UNIVERSAL_BUILD */
47
+
48
+ /* Build plugins */
49
+ /* #undef BUILD_PLUGINS */
50
+
51
+ /* gcov enabled */
52
+ /* #undef ENABLE_GCOV */
53
+
54
+ /* tcov enabled */
55
+ /* #undef ENABLE_TCOV */
56
+
57
+ /* Define to 1 if you have the `alarm' function. */
58
+ #define HAVE_ALARM 1
59
+
60
+ /* Define to 1 if you have the <arpa/inet.h> header file. */
61
+ #define HAVE_ARPA_INET_H 1
62
+
63
+ /* Define to 1 if you have the `clock_gettime' function. */
64
+ /* #undef HAVE_CLOCK_GETTIME */
65
+
66
+ /* We have CouchbaseMock.jar */
67
+ /* #undef HAVE_COUCHBASEMOCK */
68
+
69
+ /* Define to 1 if you have the <dlfcn.h> header file. */
70
+ #define HAVE_DLFCN_H 1
71
+
72
+ /* Enables SystemTap / DTrace Support */
73
+ /* #undef HAVE_DTRACE */
74
+
75
+ /* Define to 1 if you have the <event.h> header file. */
76
+ /* #undef HAVE_EVENT_H */
77
+
78
+ /* Define to 1 if you have the <ev.h> header file. */
79
+ /* #undef HAVE_EV_H */
80
+
81
+ /* Define to 1 if you have the <fcntl.h> header file. */
82
+ #define HAVE_FCNTL_H 1
83
+
84
+ /* Define to 1 if you have the `gethrtime' function. */
85
+ /* #undef HAVE_GETHRTIME */
86
+
87
+ /* Define to 1 if you have the `gettimeofday' function. */
88
+ #define HAVE_GETTIMEOFDAY 1
89
+
90
+ /* Have ntohll */
91
+ /* #undef HAVE_HTONLL */
92
+
93
+ /* Define to 1 if you have the <inttypes.h> header file. */
94
+ #define HAVE_INTTYPES_H 1
95
+
96
+ /* I will build libcouchbase_debug.so */
97
+ /* #undef HAVE_LIBCOUCHBASE_DEBUG */
98
+
99
+ /* We have libev3 */
100
+ /* #undef HAVE_LIBEV3 */
101
+
102
+ /* We have libev4 */
103
+ /* #undef HAVE_LIBEV4 */
104
+
105
+ /* We have libevent */
106
+ /* #undef HAVE_LIBEVENT */
107
+
108
+ /* We have libevent2 */
109
+ /* #undef HAVE_LIBEVENT2 */
110
+
111
+ /* Have non-standard place for libev header */
112
+ /* #undef HAVE_LIBEV_EV_H */
113
+
114
+ /* We have libuv */
115
+ /* #undef HAVE_LIBUV */
116
+
117
+ /* Define to 1 if you have the `xnet' library (-lxnet). */
118
+ /* #undef HAVE_LIBXNET */
119
+
120
+ /* We have libyajl2 */
121
+ /* #undef HAVE_LIBYAJL2 */
122
+
123
+ /* Define to 1 if you have the <limits.h> header file. */
124
+ #define HAVE_LIMITS_H 1
125
+
126
+ /* Define to 1 if you have the <mach/mach_time.h> header file. */
127
+ /* #undef HAVE_MACH_MACH_TIME_H */
128
+
129
+ /* Define to 1 if you have the <memory.h> header file. */
130
+ #define HAVE_MEMORY_H 1
131
+
132
+ /* Define to 1 if you have the <netdb.h> header file. */
133
+ #define HAVE_NETDB_H 1
134
+
135
+ /* Define to 1 if you have the <netinet/in.h> header file. */
136
+ #define HAVE_NETINET_IN_H 1
137
+
138
+ /* Define to 1 if you have the `QueryPerformanceCounter' function. */
139
+ /* #undef HAVE_QUERYPERFORMANCECOUNTER */
140
+
141
+ /* Define to 1 if you have the `setitimer' function. */
142
+ #define HAVE_SETITIMER 1
143
+
144
+ /* Define to 1 if you have the <stdarg.h> header file. */
145
+ #define HAVE_STDARG_H 1
146
+
147
+ /* Define to 1 if you have the <stdint.h> header file. */
148
+ #define HAVE_STDINT_H 1
149
+
150
+ /* Define to 1 if you have the <stdlib.h> header file. */
151
+ #define HAVE_STDLIB_H 1
152
+
153
+ /* Define to 1 if you have the <strings.h> header file. */
154
+ #define HAVE_STRINGS_H 1
155
+
156
+ /* Define to 1 if you have the <string.h> header file. */
157
+ #define HAVE_STRING_H 1
158
+
159
+ /* Define to 1 if you have the <sys/sdt.h> header file. */
160
+ /* #undef HAVE_SYS_SDT_H */
161
+
162
+ /* Define to 1 if you have the <sys/socket.h> header file. */
163
+ #define HAVE_SYS_SOCKET_H 1
164
+
165
+ /* Define to 1 if you have the <sys/stat.h> header file. */
166
+ #define HAVE_SYS_STAT_H 1
167
+
168
+ /* Define to 1 if you have the <sys/time.h> header file. */
169
+ #define HAVE_SYS_TIME_H 1
170
+
171
+ /* Define to 1 if you have the <sys/types.h> header file. */
172
+ #define HAVE_SYS_TYPES_H 1
173
+
174
+ /* Define to 1 if you have the <sys/uio.h> header file. */
175
+ #define HAVE_SYS_UIO_H 1
176
+
177
+ /* Define to 1 if you have the <unistd.h> header file. */
178
+ #define HAVE_UNISTD_H 1
179
+
180
+ /* Define to 1 if you have the <winsock2.h> header file. */
181
+ /* #undef HAVE_WINSOCK2_H */
182
+
183
+ /* Define to 1 if you have the <ws2tcpip.h> header file. */
184
+ /* #undef HAVE_WS2TCPIP_H */
185
+
186
+ /* Define to the sub-directory in which libtool stores uninstalled libraries.
187
+ */
188
+ #define LT_OBJDIR ".libs/"
189
+
190
+ /* Define to 1 if your C compiler doesn't accept -c and -o together. */
191
+ /* #undef NO_MINUS_C_MINUS_O */
192
+
193
+ /* Define to 1 if you have the ANSI C header files. */
194
+ #define STDC_HEADERS 1
195
+
196
+ /* Defined for systems where EAGAIN != EWOULDBLOCK */
197
+ /* #undef USE_EAGAIN */
198
+
199
+ /* Enable extensions on AIX 3, Interix. */
200
+ #ifndef _ALL_SOURCE
201
+ #define _ALL_SOURCE 1
202
+ #endif
203
+ /* Enable GNU extensions on systems that have them. */
204
+ #ifndef _GNU_SOURCE
205
+ #define _GNU_SOURCE 1
206
+ #endif
207
+ /* Enable threading extensions on Solaris. */
208
+ #ifndef _POSIX_PTHREAD_SEMANTICS
209
+ #define _POSIX_PTHREAD_SEMANTICS 1
210
+ #endif
211
+ /* Enable extensions on HP NonStop. */
212
+ #ifndef _TANDEM_SOURCE
213
+ #define _TANDEM_SOURCE 1
214
+ #endif
215
+ /* Enable general extensions on Solaris. */
216
+ #ifndef __EXTENSIONS__
217
+ #define __EXTENSIONS__ 1
218
+ #endif
219
+
220
+ /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
221
+ significant byte first (like Motorola and SPARC, unlike Intel). */
222
+ #if defined AC_APPLE_UNIVERSAL_BUILD
223
+ #if defined __BIG_ENDIAN__
224
+ #define WORDS_BIGENDIAN 1
225
+ #endif
226
+ #else
227
+ #ifndef WORDS_BIGENDIAN
228
+ /* # undef WORDS_BIGENDIAN */
229
+ #endif
230
+ #endif
231
+
232
+ /* Define to 1 if on MINIX. */
233
+ /* #undef _MINIX */
234
+
235
+ /* Define to 2 if the system does not provide POSIX.1 features except with
236
+ this defined. */
237
+ /* #undef _POSIX_1_SOURCE */
238
+
239
+ /* Define to 1 if you need to in order for `stat' and other things to work. */
240
+ /* #undef _POSIX_SOURCE */
241
+
242
+ #include "config_static.h"
243
+ #endif
@@ -710,6 +710,11 @@ LIBCOUCHBASE_API lcb_STATUS lcb_cmdget_timeout(lcb_CMDGET *cmd, uint32_t timeout
710
710
  * @internal Internal: This should never be used and is not supported.
711
711
  */
712
712
  LIBCOUCHBASE_API lcb_STATUS lcb_cmdget_on_behalf_of(lcb_CMDGET *cmd, const char *data, size_t data_len);
713
+ /**
714
+ * @internal Internal: This should never be used and is not supported.
715
+ */
716
+ LIBCOUCHBASE_API lcb_STATUS lcb_cmdget_on_behalf_of_extra_privilege(lcb_CMDGET *cmd, const char *privilege,
717
+ size_t privilege_len);
713
718
 
714
719
  LIBCOUCHBASE_API lcb_STATUS lcb_get(lcb_INSTANCE *instance, void *cookie, const lcb_CMDGET *cmd);
715
720
  /**@}*/
@@ -816,6 +821,11 @@ LIBCOUCHBASE_API lcb_STATUS lcb_cmdgetreplica_timeout(lcb_CMDGETREPLICA *cmd, ui
816
821
  * @internal Internal: This should never be used and is not supported.
817
822
  */
818
823
  LIBCOUCHBASE_API lcb_STATUS lcb_cmdgetreplica_on_behalf_of(lcb_CMDGETREPLICA *cmd, const char *data, size_t data_len);
824
+ /**
825
+ * @internal Internal: This should never be used and is not supported.
826
+ */
827
+ LIBCOUCHBASE_API lcb_STATUS lcb_cmdgetreplica_on_behalf_of_extra_privilege(lcb_CMDGETREPLICA *cmd,
828
+ const char *privilege, size_t privilege_len);
819
829
  LIBCOUCHBASE_API lcb_STATUS lcb_getreplica(lcb_INSTANCE *instance, void *cookie, const lcb_CMDGETREPLICA *cmd);
820
830
 
821
831
  /**@}*/
@@ -843,6 +853,11 @@ LIBCOUCHBASE_API lcb_STATUS lcb_cmdexists_timeout(lcb_CMDEXISTS *cmd, uint32_t t
843
853
  * @internal Internal: This should never be used and is not supported.
844
854
  */
845
855
  LIBCOUCHBASE_API lcb_STATUS lcb_cmdexists_on_behalf_of(lcb_CMDEXISTS *cmd, const char *data, size_t data_len);
856
+ /**
857
+ * @internal Internal: This should never be used and is not supported.
858
+ */
859
+ LIBCOUCHBASE_API lcb_STATUS lcb_cmdexists_on_behalf_of_extra_privilege(lcb_CMDEXISTS *cmd, const char *privilege,
860
+ size_t privilege_len);
846
861
 
847
862
  LIBCOUCHBASE_API lcb_STATUS lcb_exists(lcb_INSTANCE *instance, void *cookie, const lcb_CMDEXISTS *cmd);
848
863
 
@@ -994,6 +1009,11 @@ LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_timeout(lcb_CMDSTORE *cmd, uint32_t tim
994
1009
  * @internal Internal: This should never be used and is not supported.
995
1010
  */
996
1011
  LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_on_behalf_of(lcb_CMDSTORE *cmd, const char *data, size_t data_len);
1012
+ /**
1013
+ * @internal Internal: This should never be used and is not supported.
1014
+ */
1015
+ LIBCOUCHBASE_API lcb_STATUS lcb_cmdstore_on_behalf_of_extra_privilege(lcb_CMDSTORE *cmd, const char *privilege,
1016
+ size_t privilege_len);
997
1017
  LIBCOUCHBASE_API lcb_STATUS lcb_store(lcb_INSTANCE *instance, void *cookie, const lcb_CMDSTORE *cmd);
998
1018
  /**@}*/
999
1019
 
@@ -1103,6 +1123,11 @@ LIBCOUCHBASE_API lcb_STATUS lcb_cmdremove_timeout(lcb_CMDREMOVE *cmd, uint32_t t
1103
1123
  * @internal Internal: This should never be used and is not supported.
1104
1124
  */
1105
1125
  LIBCOUCHBASE_API lcb_STATUS lcb_cmdremove_on_behalf_of(lcb_CMDREMOVE *cmd, const char *data, size_t data_len);
1126
+ /**
1127
+ * @internal Internal: This should never be used and is not supported.
1128
+ */
1129
+ LIBCOUCHBASE_API lcb_STATUS lcb_cmdremove_on_behalf_of_extra_privilege(lcb_CMDREMOVE *cmd, const char *privilege,
1130
+ size_t privilege_len);
1106
1131
  LIBCOUCHBASE_API lcb_STATUS lcb_remove(lcb_INSTANCE *instance, void *cookie, const lcb_CMDREMOVE *cmd);
1107
1132
 
1108
1133
  /**@}*/
@@ -1196,6 +1221,11 @@ LIBCOUCHBASE_API lcb_STATUS lcb_cmdcounter_timeout(lcb_CMDCOUNTER *cmd, uint32_t
1196
1221
  * @internal Internal: This should never be used and is not supported.
1197
1222
  */
1198
1223
  LIBCOUCHBASE_API lcb_STATUS lcb_cmdcounter_on_behalf_of(lcb_CMDCOUNTER *cmd, const char *data, size_t data_len);
1224
+ /**
1225
+ * @internal Internal: This should never be used and is not supported.
1226
+ */
1227
+ LIBCOUCHBASE_API lcb_STATUS lcb_cmdcounter_on_behalf_of_extra_privilege(lcb_CMDCOUNTER *cmd, const char *privilege,
1228
+ size_t privilege_len);
1199
1229
  LIBCOUCHBASE_API lcb_STATUS lcb_counter(lcb_INSTANCE *instance, void *cookie, const lcb_CMDCOUNTER *cmd);
1200
1230
 
1201
1231
  /**@} (Group: Counter) */
@@ -1277,6 +1307,11 @@ LIBCOUCHBASE_API lcb_STATUS lcb_cmdunlock_timeout(lcb_CMDUNLOCK *cmd, uint32_t t
1277
1307
  * @internal Internal: This should never be used and is not supported.
1278
1308
  */
1279
1309
  LIBCOUCHBASE_API lcb_STATUS lcb_cmdunlock_on_behalf_of(lcb_CMDUNLOCK *cmd, const char *data, size_t data_len);
1310
+ /**
1311
+ * @internal Internal: This should never be used and is not supported.
1312
+ */
1313
+ LIBCOUCHBASE_API lcb_STATUS lcb_cmdunlock_on_behalf_of_extra_privilege(lcb_CMDUNLOCK *cmd, const char *privilege,
1314
+ size_t privilege_len);
1280
1315
  LIBCOUCHBASE_API lcb_STATUS lcb_unlock(lcb_INSTANCE *instance, void *cookie, const lcb_CMDUNLOCK *cmd);
1281
1316
 
1282
1317
  /**@} (Group: Unlock) */
@@ -1348,6 +1383,11 @@ LIBCOUCHBASE_API lcb_STATUS lcb_cmdtouch_timeout(lcb_CMDTOUCH *cmd, uint32_t tim
1348
1383
  * @internal Internal: This should never be used and is not supported.
1349
1384
  */
1350
1385
  LIBCOUCHBASE_API lcb_STATUS lcb_cmdtouch_on_behalf_of(lcb_CMDTOUCH *cmd, const char *data, size_t data_len);
1386
+ /**
1387
+ * @internal Internal: This should never be used and is not supported.
1388
+ */
1389
+ LIBCOUCHBASE_API lcb_STATUS lcb_cmdtouch_on_behalf_of_extra_privilege(lcb_CMDTOUCH *cmd, const char *privilege,
1390
+ size_t privilege_len);
1351
1391
  LIBCOUCHBASE_API lcb_STATUS lcb_touch(lcb_INSTANCE *instance, void *cookie, const lcb_CMDTOUCH *cmd);
1352
1392
 
1353
1393
  /**@} (Group: Touch) */
@@ -2562,7 +2602,9 @@ LIBCOUCHBASE_API lcb_STATUS lcb_cmdanalytics_scope_name(lcb_CMDANALYTICS *cmd, c
2562
2602
  *
2563
2603
  * Associate scope_qualifier (also known as `query_context`) with the query.
2564
2604
  *
2565
- * The qualifier must be in form `${bucket_name}.${scope_name}` or `default:${bucket_name}.${scope_name}`.
2605
+ * The qualifier must be in form `default:${bucket_name}.${scope_name}`.
2606
+ *
2607
+ * @see REST API definition at https://docs.couchbase.com/server/current/analytics/rest-service.html
2566
2608
  *
2567
2609
  * @param cmd the command
2568
2610
  * @param qualifier the string containing qualifier
@@ -3068,6 +3110,16 @@ LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_option(lcb_CMDQUERY *cmd, const char *n
3068
3110
  size_t value_len);
3069
3111
  LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_handle(lcb_CMDQUERY *cmd, lcb_QUERY_HANDLE **handle);
3070
3112
  LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_timeout(lcb_CMDQUERY *cmd, uint32_t timeout);
3113
+ /**
3114
+ * @uncommitted
3115
+ * Indicates that the query engine to preserve expiration values set on any
3116
+ * documents modified by this query.
3117
+ *
3118
+ *
3119
+ * @param cmd the command
3120
+ * @param preserve_expiry if non-zero, the query will preserve expiration values
3121
+ */
3122
+ LIBCOUCHBASE_API lcb_STATUS lcb_cmdquery_preserve_expiry(lcb_CMDQUERY *cmd, int preserve_expiry);
3071
3123
 
3072
3124
  /**
3073
3125
  * @internal Internal: This should never be used and is not supported.
@@ -3288,6 +3340,8 @@ LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_timeout(lcb_CMDSUBDOC *cmd, uint32_t t
3288
3340
  * @internal Internal: This should never be used and is not supported.
3289
3341
  */
3290
3342
  LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_on_behalf_of(lcb_CMDSUBDOC *cmd, const char *data, size_t data_len);
3343
+ LIBCOUCHBASE_API lcb_STATUS lcb_cmdsubdoc_on_behalf_of_extra_privilege(lcb_CMDSUBDOC *cmd, const char *privilege,
3344
+ size_t privilege_len);
3291
3345
 
3292
3346
  LIBCOUCHBASE_API lcb_STATUS lcb_subdoc(lcb_INSTANCE *instance, void *cookie, const lcb_CMDSUBDOC *cmd);
3293
3347
  /** @} */
@@ -86,6 +86,8 @@ X(LCB_ERR_UNAMBIGUOUS_TIMEOUT, 216, LCB_ERROR_TYPE_SHARED, 0, "Unambiguous
86
86
  X(LCB_ERR_SCOPE_NOT_FOUND, 217, LCB_ERROR_TYPE_SHARED, 0, "Scope is not found") \
87
87
  X(LCB_ERR_INDEX_NOT_FOUND, 218, LCB_ERROR_TYPE_SHARED, 0, "Index is not found") \
88
88
  X(LCB_ERR_INDEX_EXISTS, 219, LCB_ERROR_TYPE_SHARED, 0, "Index is exist already") \
89
+ X(LCB_ERR_RATE_LIMITED, 220, LCB_ERROR_TYPE_SHARED, 0, "The service decided that the caller must be rate limited due to exceeding a rate threshold") \
90
+ X(LCB_ERR_QUOTA_LIMITED, 221, LCB_ERROR_TYPE_SHARED, 0, "The service decided that the caller must be limited due to exceeding a quota threshold") \
89
91
  \
90
92
  /* KeyValue Error Definitions */ \
91
93
  X(LCB_ERR_DOCUMENT_NOT_FOUND, 301, LCB_ERROR_TYPE_KEYVALUE, 0, "Document is not found") \
@@ -248,6 +250,8 @@ LIBCOUCHBASE_API lcb_STATUS lcb_errctx_query_rc(const lcb_QUERY_ERROR_CONTEXT *c
248
250
  LIBCOUCHBASE_API lcb_STATUS lcb_errctx_query_first_error_code(const lcb_QUERY_ERROR_CONTEXT *ctx, uint32_t *code);
249
251
  LIBCOUCHBASE_API lcb_STATUS lcb_errctx_query_first_error_message(const lcb_QUERY_ERROR_CONTEXT *ctx,
250
252
  const char **message, size_t *message_len);
253
+ LIBCOUCHBASE_API lcb_STATUS lcb_errctx_query_error_response_body(const lcb_QUERY_ERROR_CONTEXT *ctx, const char **body,
254
+ size_t *body_len);
251
255
  LIBCOUCHBASE_API lcb_STATUS lcb_errctx_query_statement(const lcb_QUERY_ERROR_CONTEXT *ctx, const char **statement,
252
256
  size_t *statement_len);
253
257
  LIBCOUCHBASE_API lcb_STATUS lcb_errctx_query_client_context_id(const lcb_QUERY_ERROR_CONTEXT *ctx, const char **id,
@@ -386,7 +390,8 @@ lcb_errmap_callback lcb_set_errmap_callback(lcb_INSTANCE *instance, lcb_errmap_c
386
390
  X(LCB_RETRY_REASON_CIRCUIT_BREAKER_OPEN, 13, 1, 0) \
387
391
  X(LCB_RETRY_REASON_QUERY_PREPARED_STATEMENT_FAILURE, 14, 1, 0) \
388
392
  X(LCB_RETRY_REASON_ANALYTICS_TEMPORARY_FAILURE, 15, 1, 0) \
389
- X(LCB_RETRY_REASON_SEARCH_TOO_MANY_REQUESTS, 16, 1, 0)
393
+ X(LCB_RETRY_REASON_SEARCH_TOO_MANY_REQUESTS, 16, 1, 0) \
394
+ X(LCB_RETRY_REASON_QUERY_ERROR_RETRYABLE, 17, 1, 0)
390
395
  /* clang-format on */
391
396
 
392
397
  typedef enum {
@@ -177,8 +177,9 @@ typedef struct lcb_RESPN1XMGMT_st {
177
177
  * Retrieve a list of all indexes in the cluster. If lcb_CMDN1XMGMT::spec
178
178
  * contains entries then the search will be limited to the appropriate criteria.
179
179
  */
180
- LIBCOUCHBASE_API
181
- lcb_STATUS lcb_n1x_list(lcb_INSTANCE *instance, const void *cookie, const lcb_CMDN1XMGMT *cmd);
180
+ LCB_DEPRECATED2(LIBCOUCHBASE_API lcb_STATUS lcb_n1x_list(lcb_INSTANCE *instance, const void *cookie,
181
+ const lcb_CMDN1XMGMT *cmd),
182
+ "lcb_http must be used directly");
182
183
 
183
184
  /**
184
185
  * @volatile
@@ -186,15 +187,17 @@ lcb_STATUS lcb_n1x_list(lcb_INSTANCE *instance, const void *cookie, const lcb_CM
186
187
  * Create an index. The index can either be a primary or secondary index, and
187
188
  * it may be created immediately or it may be deferred.
188
189
  */
189
- LIBCOUCHBASE_API
190
- lcb_STATUS lcb_n1x_create(lcb_INSTANCE *instance, const void *cookie, const lcb_CMDN1XMGMT *cmd);
190
+ LCB_DEPRECATED2(LIBCOUCHBASE_API lcb_STATUS lcb_n1x_create(lcb_INSTANCE *instance, const void *cookie,
191
+ const lcb_CMDN1XMGMT *cmd),
192
+ "lcb_http must be used directly");
191
193
 
192
194
  /**
193
195
  * @volatile
194
196
  * Remove an index.
195
197
  */
196
- LIBCOUCHBASE_API
197
- lcb_STATUS lcb_n1x_drop(lcb_INSTANCE *instance, const void *cookie, const lcb_CMDN1XMGMT *cmd);
198
+ LCB_DEPRECATED2(LIBCOUCHBASE_API lcb_STATUS lcb_n1x_drop(lcb_INSTANCE *instance, const void *cookie,
199
+ const lcb_CMDN1XMGMT *cmd),
200
+ "lcb_http must be used directly");
198
201
 
199
202
  /**
200
203
  * @volatile
@@ -205,8 +208,9 @@ lcb_STATUS lcb_n1x_drop(lcb_INSTANCE *instance, const void *cookie, const lcb_CM
205
208
  *
206
209
  * lcb_n1x_watchbuild may be used to wait on the status of those indexes.
207
210
  */
208
- LIBCOUCHBASE_API
209
- lcb_STATUS lcb_n1x_startbuild(lcb_INSTANCE *instance, const void *cookie, const lcb_CMDN1XMGMT *cmd);
211
+ LCB_DEPRECATED2(LIBCOUCHBASE_API lcb_STATUS lcb_n1x_startbuild(lcb_INSTANCE *instance, const void *cookie,
212
+ const lcb_CMDN1XMGMT *cmd),
213
+ "lcb_http must be used directly");
210
214
 
211
215
  /**
212
216
  * @volatile
@@ -250,8 +254,9 @@ typedef struct {
250
254
  * which are being built (using lcb_n1x_startbuild()) have been fully
251
255
  * created.
252
256
  */
253
- LIBCOUCHBASE_API
254
- lcb_STATUS lcb_n1x_watchbuild(lcb_INSTANCE *instance, const void *cookie, const lcb_CMDN1XWATCH *cmd);
257
+ LCB_DEPRECATED2(LIBCOUCHBASE_API lcb_STATUS lcb_n1x_watchbuild(lcb_INSTANCE *instance, const void *cookie,
258
+ const lcb_CMDN1XWATCH *cmd),
259
+ "lcb_http must be used directly");
255
260
 
256
261
  #ifdef __cplusplus
257
262
  }
@@ -406,7 +406,7 @@ lcb_STATUS lcbtrace_span_set_is_dispatch(lcbtrace_SPAN *span, int dispatch);
406
406
  /**
407
407
  * Bucket name
408
408
  */
409
- #define LCBTRACE_TAG_DB_INSTANCE "db.instance"
409
+ #define LCBTRACE_TAG_DB_INSTANCE "db.name"
410
410
  /**
411
411
  * The client's identifier string (the 'u' property in the updated HELLO request),
412
412
  * the same one that is shared with the server to identify the SDK.
@@ -492,7 +492,7 @@ lcb_STATUS lcbtrace_span_set_is_dispatch(lcbtrace_SPAN *span, int dispatch);
492
492
  /**
493
493
  * Transport used in trace.
494
494
  */
495
- #define LCBTRACE_TAG_TRANSPORT "db.net.transport"
495
+ #define LCBTRACE_TAG_TRANSPORT "net.transport"
496
496
  /**
497
497
  * Get ID of the span.
498
498
  *
@@ -133,6 +133,27 @@ typedef enum {
133
133
  * users access to the cluster. */
134
134
  PROTOCOL_BINARY_RESPONSE_NOT_INITIALIZED = 0x25,
135
135
 
136
+ /**
137
+ * The tenant exceeded network ingress limit
138
+ */
139
+ PROTOCOL_BINARY_RATE_LIMITED_NETWORK_INGRESS = 0x30,
140
+ /**
141
+ * The tenant exceeded network egress limit
142
+ */
143
+ PROTOCOL_BINARY_RATE_LIMITED_NETWORK_EGRESS = 0x31,
144
+ /**
145
+ * The tenant exceeded max number of connections
146
+ */
147
+ PROTOCOL_BINARY_RATE_LIMITED_MAX_CONNECTIONS = 0x32,
148
+ /**
149
+ * The tenant exceeded max number of commands
150
+ */
151
+ PROTOCOL_BINARY_RATE_LIMITED_MAX_COMMANDS = 0x33,
152
+ /**
153
+ * There is too much data in the scope
154
+ */
155
+ PROTOCOL_BINARY_SCOPE_SIZE_LIMIT_EXCEEDED = 0x34,
156
+
136
157
  /** The server have no idea what this command is for */
137
158
  PROTOCOL_BINARY_RESPONSE_UNKNOWN_COMMAND = 0x81,
138
159
  /** Not enough memory */