Skip to content

Releases: couchbase/libcouchbase

3.0.3

27 Jul 11:35
3.0.3
Compare
Choose a tag to compare

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

  • CCBC-1265: enable out of order execution by default
  • CCBC-1189: Validate collection and scope names early. The library will return error if the collection name is not valid without sending command to the server.
  • CCBC-1278: Fix stripping payload over TLS connection. The library might propagate zero return code from recv() even when previous calls of recv() successfully transferred bytes to SSL context. In this case we might lose these trailing bytes and just close the socket.
  • CCBC-1264: Fix calculating key size when durability level specified
  • CCBC-1258: fix port order in vbucket diff info message
  • CCBC-1274: Fix pointer casting in HTTP callback of cbc tool.
  • CCBC-1167: Fix tests build on MacOS
  • CCBC-1248: Always request error map feature and send HELLO message to speedup bootstrap
  • Implement tick for IOCP plugin on Windows
  • Improved build on Windows (fixed static build, and PDB installation)
  • Fix collections issues for future server release

2.10.7

17 Jun 14:09
2.10.7
Compare
Choose a tag to compare

API documentation: http://docs.couchbase.com/sdk-api/couchbase-c-client-2.10.7

  • CCBC-1234: Fixed SRV resolution to work with large record sizes. In some cases, the answer records exceed the default answer buffer size causing SRV lookups to fail on otherwise correctly configured clusters. This specifically occured with Couchbase Cloud.

  • CCBC-1233: Updated RTO to independently specify operation_name (in accorance to RFC).

  • CCBC-1258: Fix port order in vbucket diff info log message.

  • MB-37768: Don't override CMAKE_INSTALL_RPATH

  • CCBC-1232: Fix build on CentOS 6

3.0.2

10 Jun 07:58
3.0.2
Compare
Choose a tag to compare
  • CCBC-1200: Retry bootstrap on missing bucket until timeout. Bootstrap timeout controlled by "config_total_timeout" in connection string or LCB_CNTL_CONFIGURATION_TIMEOUT
  • CCBC-1190: Fix automatic retries for temporary failures from the server.
  • CCBC-1158: Fix retrying on unknown collection.
  • CCBC-1254: Use separate option for default timeout of analytics queries (connection string "analytics_timeout").
  • CCBC-1178: Do not allow to set CAS for upsert and insert operations
  • CCBC-1156: Fix enum value for analytics type of HTTP request
  • CCBC-1251: No longer log error when using GCCCP on pre-6.5
  • CCBC-1234: Fixed SRV resolution to work with large record sizes.
  • CCBC-1222: Tracing thresholds for query and search in connection strings. Now they are correctly spelled as tracing_threshold_search and tracing_threshold_query.
  • CCBC-1187: Ensure lcb_respexists_is_found does not true for deleted documents.
  • CCBC-1233: Updated RTO to independently specify operation_name.
  • CCBC-1205: Do not include trailing zero for endpoint length for KV context
  • CCBC-1215: Fixed segfault in exists calls.
  • CCBC-1218: Fixed intermittent segfault in client durable store
  • Documentation issues addressed (CCBC-1240, CCBC-1243, CCBC-1241, CCBC-1245)

3.0.1

08 Apr 13:29
3.0.1
Compare
Choose a tag to compare
  • CCBC-1188: cbc-pillowfight: fixed --collection switch.
  • CCBC-1173: Fix exporting lcb_cmdquery_consistency_token_for_keyspace
  • CCBC-1168: expose max_parallelism for query
  • CCBC-1171: expose profile option for query
  • CCBC-1170: expose scan_wait option for query
  • CCBC-1159: Fix error codes for Management API
  • MB-37768: Don't override CMAKE_INSTALL_RPATH.
  • CCBC-1208: Add a fail-fast retry strategy.
  • CCBC-1209: Rename functions of embedded http_parser to avoid name clash.
  • Remove use of deprecated function std::random_shuffle. std::random_shuffle is deprecated in C++14, removed in C++17. Replace with std::shuffle.
  • Fixed several issues reported by coverity

2.10.6

26 Feb 18:16
2.10.6
Compare
Choose a tag to compare

API documentation: http://docs.couchbase.com/sdk-api/couchbase-c-client-2.10.6

  • CCBC-1129: fix algorithm to match retry marker strings

  • CCBC-1129: update timeout with grace period. The timeout property must be updated, because it is propagated down to HTTP subsystem.

  • CCBC-1133: render ping result for analytics separately

  • CCBC-1130: Fix leaking sockets and timers

  • CCBC-1130: Remove usage of "buuid" of vbucket config

  • CCBC-1118: Avoid calling read callback after close

  • CCBC-1120: Use credentials cache only for N1QL queries

  • CCBC-1122: expose setting for N1QL grace period. For example, to add extra 100ms to each N1QL query: lcb_cntl_setu32(instance, LCB_CNTL_N1QL_GRACE_PERIOD, 100000);

  • CCBC-1183: Re-prepare N1QL query on error 4040

  • Remove use of deprecated function std::random_shuffle. std::random_shuffle is deprecated in C++14, removed in C++17. Replace with std::shuffle.

  • lcb_ping3: Do not use c_str() of temporary object, which might lead to possible crash.

  • Fix rand range selection in SCRAM-SHA routines

3.0.0

17 Jan 00:47
3.0.0
Compare
Choose a tag to compare
  • CCBC-1152: Enable SCRAM-SHA* SASL by default.
  • CCBC-1153: Renamed lcb_wait3 to lcb_wait.
  • CCBC-1147: Return LCB_SUCCESS for lcb_exists when the document is missing. lcb_respexists_is_found should be used on its response object to check the presense of the document.
  • CCBC-1152: Do not allow to use SASL PLAIN on non-TLS connections. Compiling libcouchbase with OpenSSL is strongly recommended.
  • CCBC-1032: Use operation node to resolve collection and return timeout when collection cannot be resolved
  • Added shortcut for query options to request metrics
  • Do not fallback to single subdocument API when only one specification passed to lcb_subdoc.
  • CCBC-1137: Allow to retrieve error context for HTTP response (lcb_http API)
  • CCBC-1145: Expose endpoints in error context.
  • CCBC-1146: Expose user-cookie in retry handler.
  • CCBC-1148: Added NULL checks for enhanced error info.
  • CCBC-1075: Renamed "FTS" to "SEARCH" in the APIs.
  • CCBC-1073: Renamed "N1QL" to "QUERY" in the APIs.
  • Fixed bucketless bootstrap for Server 6.0.
  • Fixed various memory leaks. Improved build, testing and packaging systems.

3.0.0-beta.2

23 Dec 10:00
3.0.0-beta.2
Compare
Choose a tag to compare
3.0.0-beta.2 Pre-release
Pre-release

Second beta release

  • CCBC-1066: Update retry framework to retry handling RFC
  • Reorganize error handing according to RFC. Expose error context object.
  • CCBC-1123: migrate exists function to GET_META(0xa0)
  • CCBC-1141: Map MULTI_PATH_FAILURE to success code for subdocument
  • CCBC-1126: Ensure KV connection select bucket when needed
  • CCBC-1127: Fix extlen for subdocument
  • CCBC-1101: Fix location of plugins for debian systems
  • Use per-operation timeout when deriving durability timeout
  • Remove durability support from GET operation
  • Rename payload setters/getters for queries
  • Fix setting empty path to subdoc mutation
  • Remove old flush command
  • Do not use classic authenticator for cluster instances
  • Allow to set CAS value for counter operations
  • Views: extend lifetime for content type string object
  • CCBC-1112: Send durability timeout in network byte ordering. This was being sent in host byte ordering before, which failed on some platforms
  • Validate getreplica options before collection resolving. It allows to fail faster if the options are not correct for the command.
  • CCBC-1136: use uint64_t instead of type aliases for CAS
  • Fix const access specifier for logger API
  • Fix warnings reported by compiler and static analyzer
  • Fix leaks reported by memory sanitizer tools
  • Add cbc commands for search and analytics queries
  • Do not insert date in generated lexer (cbc-gen)

2.10.5

01 Nov 14:20
2.10.5
Compare
Choose a tag to compare

API documentation: http://docs.couchbase.com/sdk-api/couchbase-c-client-2.10.5

  • CCBC-1106: Move log messages from IO manager to DEBUG level to reduce noise.

  • CCBC-1100: Allow to ping operation to use direct URL

  • CCBC-939: Improve performance with tracing enabled by caching expensive calculations

  • Made ciphers and minimum TLS version tunable. New environment variables could be defined to control openssl initialization:

    • LCB_SSL_CIPHER_LIST to pass to SSL_CTX_set_cipher_list
    • LCB_SSL_CIPHERSUITES to pass to SSL_CTX_set_ciphersuites
    • LCB_SSL_MINIMUM_TLS with supported values ("tlsv1.1", "tlsv1.2" and "tlsv1.3") to configure flags for SSL_CTX_set_options
  • Do not log when logging callback is not defined

  • Retry query on authentication error

  • Add bucket to the config cache file path. Prevents crashing if want to open multiple buckets

  • CCBC-1059: Fixed hostname truncation when using alternative network addresses.

  • Fixes SSL sockets with openssl 1.1.1c+. BIO_get_mem_ptr does not give direct access to internal buffer, so we have to invalidate our copy before using buffer values.

  • Fix resolution of test shared object.

  • CCBC-1109: Fix retrying N1QL query on auth error. The library was trying to dereference NULL pointer when using dynamic authenticator with N1QL queries.

  • CCBC-1063: Cache credentials provided by dynamic auth callback.

3.0.0-beta.1

02 Oct 07:49
3.0.0-beta.1
Compare
Choose a tag to compare
3.0.0-beta.1 Pre-release
Pre-release

First beta release

  • Renamed FTS function lcb_cmdfts_query to lcb_cmdfts_payload. This is done because in next beta release, the first function will modify only query part of the payload.
  • Updated full document commands implicit in subdocument API. Instead of exposing fulldoc GET,REMOVE,UPSERT,INSERT,REPLACE sniff the path argument to GET,REMOVE and REPLACE (with store semantics) and fall back to fulldocument operations if the path is empty.
  • Implemented accessors to control subdocument store symantics: lcb_cmdsubdoc_store_semantics
  • Add accessor to access deleted for subdoc: lcb_cmdsubdoc_access_deleted
  • Updated build scripts to require compiler to support at least C++11.
  • Renamed KV command accessors from *_expiration() to *_expiry().
  • CCBC-939: Performance improvement in tracing subsystem by avoiding copies for network addresses and system tags
  • Report reasons of lcb_open failures in the logs.
  • Do not fallback to "default" bucket in the cluster mode.
  • Implemented function to test for end of stream of replica responses: lcb_respreplica_is_final
  • Fixed key size calculation for lcb_getreplica.
  • Made ciphers and minimum TLS version tunable. New environment variables could be defined to control openssl
    initialization:
    • LCB_SSL_CIPHER_LIST to pass to SSL_CTX_set_cipher_list
    • LCB_SSL_CIPHERSUITES to pass to SSL_CTX_set_ciphersuites
    • LCB_SSL_MINIMUM_TLS with supported values ("tlsv1.1", "tlsv1.2" and "tlsv1.3") to configure flags for SSL_CTX_set_options
  • Removed multi-ctx from public API. The feature will re-appear in future releases in the shape, that is more consistent
    with other APIs.
  • CCBC-1090: Handle GET_COUNT as lookup subdoc operation
  • CCBC-1088: Renamed lcb_cmdsubdoc_operations to lcb_cmdsubdoc_specs (also renamed lcb_SUBDOCOPS to lcb_SUBDOCSPECS)
  • CCBC-1092: add count/interval options for cbc-ping
  • Remove CAS durability polling. New server-side durability means must be used instead, or polling using mutation-token.
  • Encapsulate create options into lcb_CREATEOPTS *. See lcb_createopts_create function.
  • Refactored logger. See example/minimal/logger.c example
  • CCBC-1086: Renamed LCB_STORE_ADD and remove LCB_STORE_SET
  • CCBC-1079: Renamed instance option from fetch_mutation_tokens to enable_mutation_tokens. Enable mutation tokens by
    default.
  • CCBC-1091: Set HAVE__FTIME64_S when not running tests
  • CCBC-1069: Don't hardcode path prefix for analytics
  • Renamed cbc-bench to cbc-gen, and implemented workload type selector and batch support (see tools/bench-script.txt).
  • Various API fixes and cleanup

3.0.0-alpha.5

09 Aug 12:44
3.0.0-alpha.5
Compare
Choose a tag to compare
3.0.0-alpha.5 Pre-release
Pre-release
  • Do not fallback to static config automatically. Now when we have G3CP mechanism, we can make static config fallback optional. In case of older server, connection string option allow_static_config=true or LCB_CNTL_ALLOW_STATIC_CONFIG to use previous behaviour.
  • CCBC-983: Even more asynchronous example for libuv
  • Don't log if the logger callback is not specified
  • 3GCP improvements and examples
  • Fix memory leak in collections wrapper
  • Implement setter for prettiness of N1QL response payload.
  • CCBC-1059: Fixed hostname truncation when using alt-network
  • Add bucket to the connection config cache. When config_cache or LCB_CNTL_CONFIGCACHE argument is a directory (ends
    with /), the library will use a bucket name as the file name, so that different buckets can use the same connection
    string options set.
  • Add missing timeouts for HTTP APIs.
  • CCBC-1058: Fix some casting warnings on Mac OS.