Releases: couchbase/libcouchbase
3.0.3
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
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
- CCBC-1200: Retry bootstrap on missing bucket until timeout. Bootstrap timeout controlled by "
config_total_timeout
" in connection string orLCB_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
andtracing_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
- 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 withstd::shuffle
. - Fixed several issues reported by coverity
2.10.6
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 withstd::shuffle
. -
lcb_ping3
: Do not usec_str()
of temporary object, which might lead to possible crash. -
Fix rand range selection in SCRAM-SHA routines
3.0.0
- CCBC-1152: Enable
SCRAM-SHA*
SASL by default. - CCBC-1153: Renamed
lcb_wait3
tolcb_wait
. - CCBC-1147: Return
LCB_SUCCESS
forlcb_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
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
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 toSSL_CTX_set_cipher_list
LCB_SSL_CIPHERSUITES
to pass toSSL_CTX_set_ciphersuites
LCB_SSL_MINIMUM_TLS
with supported values ("tlsv1.1"
,"tlsv1.2"
and"tlsv1.3"
) to configure flags forSSL_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
First beta release
- Renamed FTS function
lcb_cmdfts_query
tolcb_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 toSSL_CTX_set_cipher_list
LCB_SSL_CIPHERSUITES
to pass toSSL_CTX_set_ciphersuites
LCB_SSL_MINIMUM_TLS
with supported values ("tlsv1.1"
,"tlsv1.2"
and"tlsv1.3"
) to configure flags forSSL_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
tolcb_cmdsubdoc_specs
(also renamedlcb_SUBDOCOPS
tolcb_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 *
. Seelcb_createopts_create
function. - Refactored logger. See
example/minimal/logger.c
example - CCBC-1086: Renamed
LCB_STORE_ADD
and removeLCB_STORE_SET
- CCBC-1079: Renamed instance option from
fetch_mutation_tokens
toenable_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
tocbc-gen
, and implemented workload type selector and batch support (seetools/bench-script.txt
). - Various API fixes and cleanup
3.0.0-alpha.5
- 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
orLCB_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
orLCB_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.