Skip to content

Releases: couchbase/libcouchbase

3.1.4

19 Jul 15:26
3.1.4
Compare
Choose a tag to compare

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 to lcb_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

11 May 04:58
3.1.3
Compare
Choose a tag to compare

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

26 Apr 16:20
3.1.2
Compare
Choose a tag to compare

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

09 Apr 18:14
3.1.1
Compare
Choose a tag to compare

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 of LCB_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 to LCB_ERR_CAS_MISMATCH. Now it returned only in cases where concurrency problem detected by query engine. Otherwise LCB_ERR_DML_FAILURE will be used.

  • CCBC-1373: Return LCB_ERR_TIMEOUT if the library is not able to resolve collection identifier. Previously either LCB_ERR_COLLECTION_NOT_FOUND or LCB_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 with enable_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

03 Mar 13:54
3.1.0
Compare
Choose a tag to compare

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

03 Mar 11:05
2.10.9
Compare
Choose a tag to compare

API documentation: https://docs.couchbase.com/sdk-api/couchbase-c-client-2.10.9

  • CCBC-1130: Do not wipe new/reused pipelines. Fixes invalid memory access error.

3.0.7

16 Dec 10:40
3.0.7
Compare
Choose a tag to compare

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 and LCB_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 of config_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 to LCB_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

21 Oct 10:36
3.0.6
Compare
Choose a tag to compare

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 to lcb_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

22 Sep 18:18
2.10.8
Compare
Choose a tag to compare

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 probles
    • tcp_keepintvl (LCB_CNTL_KEEPINTVL): the time (in seconds) between individual probes
    • tcp_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

21 Sep 12:26
3.0.5
Compare
Choose a tag to compare

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 of sasl_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 with std::shuffle (fixes build of cbc-n1qlback tool)