Releases: couchbase/libcouchbase
3.1.4
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.1.4
- CCBC-1311: Implement
create_as_deleted
subdoc feature. - CCBC-1263: Update ping to report analytics as analytics service instead of query
- CCBC-1175: Allow to specify timeout for
lcb_ping
- CCBC-1262: Add accessor for
report_id
in ping report - CCBC-1176: Rename "scope" to "namespace" in ping report (also deprecate
lcb_respping_result_scope
in favour tolcb_respping_result_namespace
) - CCBC-1261: Set namespace length of service in ping report to zero if not applicable
- CCBC-1194: Add extra checks for socket state in
lcb_diag
to avoid invalid access issues - CCBC-1314: Extra checks for socket state in
lcb_ping
to avoid invalid access issues - CCBC-1316: Fix two-step bootstrap (
lcb_connect
+lcb_open
) for memcached bucket.
3.1.3
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.1.3
CCBC-1398: Parse and use revEpoch
from configuration in order to allow the server to handle special cases of failover scenarious.
CCBC-1399: Implement retry backoff for query requests. Instead of retrying requests immediately, use backoff period returned by retry strategy.
CCBC-1400: Fill collection name when retrying collection resolution to avoid misrouting requests to default collection.
CCBC-1397: Reset list of "used" nodes when retrying query to allow reusing endpoints.
CCBC-1401: Fix special error message detection for Query requests. In addition to reacting on the error codes from query service, the library also scans error messages for particular sub-strings to decide whether retry is necessary.
CCBC-861: Purge pipelines on lcb_destroy
. In order to avoid resource leaks, the library purges all pending (or waiting) commands from the pipelines upon destruction.
Fix cbc-proxy
tool.
3.1.2
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.1.2
- CCBC-1396: Fix recalculaton of key length for alt packets.
- CCBC-1395: Parse configuration revision as
int64_t
. - MB-45759: Allow building libcouchbase with external Snappy
- CCBC-1386: remove legacy options for
cbc-bucket-create
- CCBC-1394: Do not expose
LCB_ERR_BUCKET_NOT_FOUND
in operation callbacks. Instead retry operation automatically until timeout. - CCBC-1330: cbc. detect unknown collection during "populate" phase
- CCBC-1373: Do not send collection in the key. Sending collection specification in both key and body breaks protocol, and the server will close the socket
3.1.1
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.1.1
-
CCBC-1382: Return
LCB_ERR_CAS_MISMATCH
for operations with with REPLACE semantics instead ofLCB_ERR_DOCUMENT_EXISTS
. -
CCBC-1389: Fixed default collection parsing.
-
CCBC-1383: Fixed protocol magic for durable remove. When durability level provided, the remove command should use "alternative request" as protocol magic byte.
-
CCBC-1381: Protocol changes for
PROTOCOL_BINARY_CMD_COLLECTIONS_GET_CID
(0xbb
). The server now expects collection specification passed as a command value during collection ID resolution. -
CCBC-1385: Restrict cases when Query error code
12009
is converted toLCB_ERR_CAS_MISMATCH
. Now it returned only in cases where concurrency problem detected by query engine. OtherwiseLCB_ERR_DML_FAILURE
will be used. -
CCBC-1373: Return
LCB_ERR_TIMEOUT
if the library is not able to resolve collection identifier. Previously eitherLCB_ERR_COLLECTION_NOT_FOUND
orLCB_ERR_SCOPE_NOT_FOUND
might be returned. -
CCBC-1109: When dynamic authenticator is being used, the library will retry Query on error code
13014
(datastore.couchbase.insufficient_credentials
). -
CCBC-1392: Query commands now invoke retry strategy hook to make decision about retrying.
-
CCBC-1379: Error map could be disabled now using
LCB_CNTL_ENABLE_ERRMAP
or in the connection string withenable_errmap=false
. -
CCBC-1269: Expose setting for N1QL grace period. This is a port of CCBC-1122 (71b7700). The example below will add extra 100ms to each N1QL query:
lcb_cntl_setu32(instance, LCB_CNTL_QUERY_GRACE_PERIOD, 100000);
3.1.0
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.1.0
- CCBC-1376: propagate scope qualifier to prepare statements
- CCBC-1283: add analytics support for scopes
- CCBC-1374: reintroduce input error classification macro
- CCBC-1375: translate query errors when scope/collection missing
- CCBC-1368: fix project links in README
- CCBC-1366: do not cache bucket-less configurations
- CCBC-1363: allow using parent project's
hdr_histogram_static
target - CCBC-1361: allow
"_default._default"
collection for pre-collections servers - MB-42884: correctly define
FILEVERSION
for libcouchbase.dll - CCBC-1351: option to render cbc-ping output as a table
- CCBC-1323: return
LCB_ERR_DOCUMENT_EXISTS
only for insert operation - CCBC-1346: return
LCB_ERR_DOCUMENT_LOCKED
for locked documents
2.10.9
3.0.7
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.0.7
- CCBC-1350: Implement an option for
cbc-n1qlback
to control prepared/adhoc switch - CCBC-1345: Ensure all KV sockets select bucket on lcb_open
- CCBC-1348: Include bucket name into diag report
- CCBC-1308: Define FATAL and TRANSIENT classes for errors. Also defines corresponding macros for easy access
LCB_ERROR_IS_TRANSIENT
andLCB_ERROR_IS_FATAL
- CCBC-1342: Check if collections supported by server before using them.
- CCBC-1334: Preserve status of KV protocol response for retry queue
- CCBC-1339: Do not relocate get with replica on failover. The library should not relocate replica reads when new configuration applied.
- CCBC-1344: Consume response after retried command to avoid logging the command as "timed out"
- CCBC-1343: Do not schedule NMV immediately by default and use retry strategy instead.
- CCBC-1335: Fix next timeout computation on requesting config using
operation_timeout
instead ofconfig_node_timeout
- CCBC-1337: Expose setting for to control default search timeout
- CCBC-1331: Fix error at bootstrap callback, now it returns original error code, that caused the bootstrap failure.
- CCBC-1333: Allow setting
lcb_cmdget_locktime
to zero to use server default time. - CCBC-1324: define HTTP type for Eventing management
- Retry operations when the node is not ready
- Report LCB_ERR_BUCKET_NOT_FOUND if Key/Value service is not configured
- Update error codes for Query. Translate code 4300 to
LCB_ERR_PLANNING_FAILURE
and 5000 toLCB_ERR_INTERNAL_SERVER_FAILURE
by default. - Fix collection validation, it should pass empty string as valid collection specification element.
- Remove verbosity and mcversions commands. These parts of API are non-standard and volatile
- Bundle HdrHistogram_c v0.11.2 and allow to fall back to it
- Build and stability improvements
3.0.6
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.0.6
- CCBC-1311: Implement
create_as_deleted
subdoc feature. - CCBC-1263: Update ping to report analytics as analytics service instead of query
- CCBC-1175: Allow to specify timeout for
lcb_ping
- CCBC-1262: Add accessor for
report_id
in ping report - CCBC-1176: Rename "scope" to "namespace" in ping report (also deprecate
lcb_respping_result_scope
in favour tolcb_respping_result_namespace
) - CCBC-1261: Set namespace length of service in ping report to zero if not applicable
- CCBC-1194: Add extra checks for socket state in
lcb_diag
to avoid invalid access issues - CCBC-1314: Extra checks for socket state in
lcb_ping
to avoid invalid access issues - CCBC-1316: Fix two-step bootstrap (
lcb_connect
+lcb_open
) for memcached bucket.
2.10.8
API documentation: http://docs.couchbase.com/sdk-api/couchbase-c-client-2.10.8
-
CCBC-1298: allow to adjust TCP keepalive settings
tcp_keepcnt
(LCB_CNTL_TCP_KEEPCNT
): the maximum number of keepalive problestcp_keepintvl
(LCB_CNTL_KEEPINTVL
): the time (in seconds) between individual probestcp_keepidle
(LCB_CNTL_TCP_KEEPIDLE
): the time (in seconds) the connection need to remain idle before TCP start sending probes.
-
Detect configuration change when replica indexes changed. libcouchbase will apply new configuration, when node is re-added after failover.
-
Do not re-arm config provider timer for existing connection. Each
request_config
operation has its own timer associated with the command.
3.0.5
API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-3.0.5
- CCBC-1307: allow to select any mechanisms for SASL regardless network protocol being used.
But by default, try to avoid downgrading to PLAIN on non-TLS connections. Also the change allows to specify list of
preferred mechanisms instead of only one (use comma in the value ofsasl_mech_force
connection string option). - CCBC-1276: allow to hint flex index usage in query options
- CCBC-1312: fix return values for
lcb_cmdquery_scope_*
- CCBC-1313: replace
std::random_shuffle
withstd::shuffle
(fixes build ofcbc-n1qlback
tool)