Releases: couchbase/couchbase-php-client
4.2.3
API docs: https://docs.couchbase.com/sdk-api/couchbase-php-client-4.2.3
Full Changelog: 4.2.2...4.2.3
Composer: https://packagist.org/packages/couchbase/couchbase#4.2.3
PECL: https://pecl.php.net/package/couchbase/4.2.3
Enhancements
- Core updated to 1.0.1. Release notes:
https://docs.couchbase.com/cxx-sdk/current/project-docs/sdk-release-notes.html#version-1-0-1-22-august-2024
4.2.2
API docs: https://docs.couchbase.com/sdk-api/couchbase-php-client-4.2.2
Full Changelog: 4.2.1...4.2.2
Fixes
-
PCBC-997: Do not export development files. (#172)
Exclude C++ files, tests and development scripts, so that Packagist will
not install them to the application ./vendor directory. -
PCBC-988: Fix type annotation for JsonSerializable implementations (#166)
Enhancements
-
PCBC-994: Support for base64 encoded vector types (#169, #170)
-
Core updated to 1.0.0. Release notes:
https://docs.couchbase.com/cxx-sdk/current/project-docs/sdk-release-notes.html#version-1-0-0-26-june-2024
4.2.1
API docs: https://docs.couchbase.com/sdk-api/couchbase-php-client-4.2.1
Full Changelog: 4.2.0...4.2.1
Fixes
- PCBC-987: Fix consistency vector encoding for FTS (#163)
- PCBC-985: Use system DNS config by default, and disable DNS-SRV if OS does not provide DNS server. (#159)
Enhancements
- PCBC-859: Update build scripts and instructions for Windows (#158, #164)
- PCBC-984, PCBC-987: Improve compatiblity with pcntl_fork() (#157, #162)
Notable changes in core C++
Enhancements
- CXXCBC-489: Support scoped eventing functions. (#548, #554)
- CXXCBC-470: Distinguish between 'unset' and 'off' query_profile (#551)
Fixes
- CXXCBC-487: Check if alternate addressing is used when bootstrapping. (#545)
- CXXCBC-503: Ignore configuration if it contains an empty vBucketMap. (#556, #558)
- CXXCBC-30: Inconsistent behaviour when using subdoc opcodes incorrectly (#559)
- CXXCBC-492: Use retry strategy in collections_component's get_collection_id. (#552)
- CXXCBC-494: Fix memory issue in range scan implementation. (#549)
- Always attempt to extract common query code if error has not been set. (#561) Fixes quota/rate limit checks for older servers.
Build and Tests Fixes
- CXXCBC-502: Apply
/bigobj
for SDK objects only. (#550) Avoid using global add_definitions() as it might leak to non-CXX languages (likeASM_NASM
on Windows). - Add feature check for scoped analyze_document in tests (#555)
4.2.0
API docs: https://docs.couchbase.com/sdk-api/couchbase-php-client-4.2.0
Full Changelog: 4.1.6...4.2.0
Enhancements
- PCBC-979: Add static helpers to SearchQuery types (#149)
- PCBC-970: SDK Support for Scoped Search Indexes (#147)
- PCBC-968: Support for maxTTL value of -1 for collection "no expiry" (#144)
- PCBC-967: Support for vector search (#143)
- PCBC-965: Support DocNotLockedException and core update (#142)
- PCBC-960: Merge protostellar branch to master (#138, #153)
Fixes
- PCBC-964: Wait until the core connection is closed (#141)
- PCBC-972: Fix C++ detection on MacOS X (#145)
- Add missing use statement in class DecrementOptions (#146)
- Update core and rename query_index_create fields to keys (#148)
Notable changes in core C++
Since 1.0.0-dp.14
Fixes
- CXXCBC-482: Range scan orchestrator should use best effort retry strategy by default. (#542)
- CXXCBC-481: Fix potential crash when parsing search result hits. (#541)
- CXXCBC-461: Do not send ping to nodes that have not completed bootstrap. (#540)
- CXXCBC-480: LookupInAnyReplica should not enforce any limits on number of specs in the library. (#539)
- CXXCBC-479: Fix capabilities check for replica LookupIn operations. (#537)
- CXXCBC-336: Do not fallback to 8.8.8.8, if we cannot obtain system DNS server (#533)
Since 1.0.0-dp.13
New features and enhancements
- CXXCBC-456: handle 0x0d (config_only) status from KV (#523).
- CXXCBC-191: Create Index Key Encoding (#519)
- CXXCBC-442: Add support for raw_json and raw_string transcoders (#514, #515)
- Add full_set option to view query options (#517)
Fixes
- CXXCBC-345: Range scan improvements & resolve concurrency issues (#525).
- CXXCBC-284: Do not use session that is not bootstrapped to poll for config (#528)
- CXXCBC-447: Use addresses from the config to bootstrap bucket (#516)
- CXXCBC-450: Reset bootstrap handler before re-bootstrap (#524).
- Update view design_document rev to be optional (#526).
- Change encoded search request showrequest param from string to boolean. (#518)
- CXXCBC-452: Update capabilities and fail fast when selected feature is not available. (#522, #513)
- CXXCBC-431: Add check for history retention bucket capability in collection create/update (#502, #505)
- CXXCBC-421: Return feature_not_available when query preserve expiry is not supported (#510)
Since 1.0.0-dp.12
New features and enhancements
- CXXCBC-346: Support for maxTTL value of -1 for collection 'no expiry'. (#500)
- CXXCBC-442: Support for raw_json and raw_string transcoders. (#514)
- CXXCBC-440: Support for Scoped Search Indexes. (#512, #513)
Fixes
- CXXCBC-284: Reduce network traffic when polling for cluster configuration. (#504)
- CXXCBC-422: Add insufficient credentials error code to common query error code conversion. (#511)
- CXXCBC-421: Return
feature_not_available
when query preserve expiry is not supported. (#510) - CXXCBC-426: Get with very large projection test is returning fields outside of the projection. (#499)
Since 1.0.0-dp.11
Fixes
- CXXCBC-404: KV_LOCKED status should be exposed as
cas_mismatch
for unlock. (#479) - CXXCBC-403: Allow retries for KV
not_my_vbucket
response. (#480) - CXXCBC-368: Subscribe to clustermap notifications to speedup failover. (#490)
- CXXCBC-419: Ensure that MCBP protocol parser starts with clean state. Fixes protocol parsing issues when bootstrap sequence is being retried. (#496)
- CXXCBC-409: Add handling for 'index does not exist' query error. (#492)
- CXXCBC-391: Fix transactions API inconsistencies. (#482)
- Remove
kv_timeout
- Rename
expiration_time
totimeout
- Remove
New features and enhancements
- CXXCBC-100: Add ability to set timeout for ping. (#486)
- CXXCBC-412: Support
document_not_locked
response. (#491)
Since 1.0.0-dp.10
Fixes
- CXXCBC-383: Map
subdoc_doc_too_deep
KV status topath_too_deep
error code. (#455) - CXXCBC-382: Fix
raw_binary_transcoder
so thatget
s on binary data are possible. (#459)
New features and enhancements
- CXXCBC-377: Implement ExtParallelUnstaging in transactions. (#457)
- CXXCBC-363: Add examples for bulk operations. (#442)
- Add more information to diagnose timeouts on NMV responses. (#475)
4.1.6
API docs: https://docs.couchbase.com/sdk-api/couchbase-php-client-4.1.6
Full Changelog: 4.1.5...4.1.6
- PCBC-955: do not allow trailing garbage in encoded CAS value (#134)
- PCBC-956: Update wrapper side bucket settings (#132)
- PCBC-950: Support bucket settings for no dedup feature (#131)
- Updates to support PHP 8.3.
zend_bool
was removed from 8.3.
Notable changes in core C++
- CXXCBC-376: Revisit what 'create' and 'update' bucket operations send to the server. Make optional bucket settings fields optional, and do not send anything unless the settings explicitly specified. (couchbase/couchbase-cxx-client#451)
- CXXCBC-374: Return 'bucket_exists' error when the bucket already exists during 'create' operation. (couchbase/couchbase-cxx-client#449)
- CXXCBC-359: Reduce default HTTP idle timeout to 1 second (couchbase/couchbase-cxx-client#448)
- CXXCBC-367: CXXCBC-370: Add history retention settings to buckets/collection management. (couchbase/couchbase-cxx-client#446)
- CXXCBC-119: Return booleans for subdocument 'exists' operation instead of error code. (couchbase/couchbase-cxx-client#444, couchbase/couchbase-cxx-client#452)
- Detect 'collection_not_found' error in 'update_collection' response (couchbase/couchbase-cxx-client#450)
4.1.5
API docs: https://docs.couchbase.com/sdk-api/couchbase-php-client-4.1.5
Full Changelog: 4.1.4...4.1.5
- PCBC-939: Support query with read from replica. (#118)
- PCBC-831: Implement search index management. (#115)
- PCBC-945: Expose expiry options for increment/decrement. (#120)
- PCBC-937: Fix
removeMulti
, which didn't remove documents. (#123) - PCBC-938: Override exception constructor in PHP Extension, which allows to initialize context in derived classes. (#117)
- PCBC-940: Support for subdoc read from replica. (#121)
- PCBC-884: Support for Native KV range scans. (#122, #127)
Notable changes in core C++
- CXXCBC-333: Fix parsing resolv.conf on Linux (#416)
- CXXCBC-335: Log connection options (#417)
- CXXCBC-343: Continue bootsrap if DNS-SRV resolution fails (#422)
- CXXCBC-242: SDK Support for Native KV Range Scans (#419, #423, #424, #428, #431, #432, #433, #434, #426)
- CXXCBC-339: Disable older TLS protocols (#418)
4.1.4
API docs: https://docs.couchbase.com/sdk-api/couchbase-php-client-4.1.4
Full Changelog: 4.1.3...4.1.4
Enhancements
- Add
couchbase::
namespace todurability_level
, fixes using Sync Durability. (#102) - PCBC-934: Fixed setting timeout for transaction.
Notable changes in core C++
- CXXCBC-327: bundle Mozilla certificates with the library (#405, #408)
- CXXCBC-324: check port and network name on session restart (#401)
- CXXCBC-323: parse bootstrap_timeout and resolve_timeout in connection string (#400)
- introduce option dump_configuration for debugging (#398)
4.1.3
API docs: https://docs.couchbase.com/sdk-api/couchbase-php-client-4.1.3
Full Changelog: 4.1.2...4.1.3
Enhancements
- PCBC-915: Fixed timestamp as expiry in mutation options (#88)
- PCBC-828: Implemented collection management (#89)
- PCBC-918: Extra attributes in ExistsResult now optional (deleted, expiry, flags, and sequenceNumber) (#95)
Notable changes in core C++
- CXXCBC-31: Allow to use schema-less connection strings (#394)
- CXXCBC-318: Always try TCP if UDP fails in DNS-SRV resolver (#390)
- CXXCBC-320: Negative expiry in atr can 'stuck' docs. (#393)
- CXXCBC-310: Improve shutdown of the LostTxnCleanup thread. (#389)
4.1.2
API docs: https://docs.couchbase.com/sdk-api/couchbase-php-client-4.1.2
Enhancements
- PCBC-888 handle query context changes (#68)
- Added optional context to CouchbaseException constructor (#85)
Notable changes in core C++
- OpenSSL and CentOS 7 (couchbase/couchbase-cxx-client#382)
- CXXCBC-144: Search query on collections should not require you to pass in the scope name (couchbase/couchbase-cxx-client#379)
- CXXCBC-145: Search query request raw option not used (couchbase/couchbase-cxx-client#380)
- CXXCBC-194: Support ExtThreadSafe transaction extension. (couchbase/couchbase-cxx-client#374, couchbase/couchbase-cxx-client#376)
- CXXCBC-316: Core txn get_optional after query issue (couchbase/couchbase-cxx-client#385)
- CXXCBC-310: Fixed race condition in transaction_context state machine (couchbase/couchbase-cxx-client#386, couchbase/couchbase-cxx-client#378)
4.1.1
API docs: https://docs.couchbase.com/sdk-api/couchbase-php-client-4.1.1
Enhancements
- PCBC-869: Implemented
changePassword
for management API (#55, #56) - PCBC-891: Append extension version info to HELLO indentifier (#58)
- PCBC-901: Attach error details to management exceptions (#71)
- Increase required PHP version up to 8.0 (#76)
Fixes
- PCBC-890: Scope must implement ScopeInterface (#57)
- PCBC-902: Make sure that new account is usable in changePassword test (#72)
- PCBC-899: Ensure the connection will be closed on error (#70)
- PCBC-900: Don't set "function" property on exceptions. (#74)
- PCBC-905: Don't dereference empty optional if option is not set (#75)
- PCBC-907: assign meta to view query result (#79)
- Fix missing header for GCC 13 (#63)
Notable changes in core C++ 1.0.0-dp.4
-
CXXCBC-275: Update implementation query context fields passed to the server. In future versions of the server versions it will become mandatory to specify context of the statement (bucket, scope and collection). This change ensures that both future and current server releases supported transparently.
-
CXXCBC-296: Force PLAIN SASL auth if TLS enabled. Using SCRAM SASL mechanisms over TLS protocol is unnecesary complication, that slows down initial connection bootstrap and potentially limits server ability to improve security and evolve credentials management.
-
CXXCBC-295: The
get with projections
opration should not fail if one of the the paths is missing in the document, because the semantics is "get the partial document" and not "get individual fields" like inlookup_in
operation. -
CXXCBC-294: In the Public API, if
get
operation requested to return expiry time, zero expiry should not be interpreted as absolute expiry timestamp (zero seconds from UNIX epoch), but rather as absense of the expiry. -
CXXCBC-291: Allow to disable mutation tokens for Key/Value mutations (use
enable_mutation_tokens
in connection string). -
Resource management and performance improvements:
- Fix tracer and meter ref-counting
- Replace
minstd_rand
withmt19937_64
, as it gives less collisions. - CXXCBC-285: Write to sockets from IO threads, to eliminate potential race conditions.
- Eliminate looping transform in
mcbp_parser::next
. - CXXCBC-205: Use thread-local UUID generator.
- CXXCBC-293: Other performance improvements:
- Speed up UUID serialization to string
- Don't allow to copy
mcbp_message
objects - Avoid extra allocation and initialization
-
Build system fixes:
- Fix build with gcc-13
- Fix gcc 12 issue
-
Enhancements:
- Include OS name in SDK identifier