vladvildanov
8cc7b45988
Added support for BITRANGEINTARRAY command
2026-11-06 11:09:20 +02:00
Vladyslav Vildanov
1685693b83
Added support for Set Expiration commands ( #1749 )
...
* Added support for Set Expiration commands
* Skipped test no longer valid since 8.11
* changelog [skip ci]
---------
Co-authored-by: Till Krüss <tillkruss@users.noreply.github.com >
2026-11-04 10:50:46 +02:00
Till Krüss
2496e6d91b
Prepare v3.7.1 ( #1753 )
2026-11-03 10:55:20 -07:00
Till Krüss
7779d6ceda
Fix RelayConnection import ordering ( #1752 )
2026-11-03 10:36:59 -07:00
Till Krüss
3e12b8acdb
Merge commit from fork
...
* Fix quadratic-time parsing of MONITOR events
Anchor the metadata pattern in `Monitor\Consumer` to the start of the
event. The unanchored pattern scanned command arguments even for events
with a valid header, because `preg_replace_callback()` searches once
more after reaching its limit. With PCRE JIT disabled, or with older
PCRE, a 64 KB argument of `[1 ` sequences took seconds to parse.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
* Remove comment about metadata matching
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-03 10:32:02 -07:00
Till Krüss
21deb140e8
Fix Relay SELECT with a non-integer database and add Relay range test ( #1751 )
...
Relay::select() throws a TypeError for anything but an integer, where
other connections get an error response from the server. Wrap the call
and return the same error response, so the existing test runs against
Relay and no longer needs a Relay-only counterpart.
Relay warns before sending SELECT for out-of-range databases, so that
test keeps its Relay-specific counterpart.
2026-11-03 10:29:11 -07:00
mrze
e1d96a8e6b
Fix INFO parsing of section names containing spaces ( #1747 ) ( #1748 )
2026-11-03 09:34:27 -07:00
Michał "DualFroz" Fox
b00c1f810d
Use SENTINEL REPLICAS for Sentinel replica discovery ( #1745 )
...
* Use SENTINEL REPLICAS for Sentinel replica discovery
* Add a connected Sentinel replicas test
2026-10-12 11:13:39 +03:00
Till Krüss
c29b3c24f3
Improve Relay compatibility even further ( #1743 )
2026-10-09 17:16:48 -07:00
Till Krüss
307d7e2b6a
Fix connection cleanup after interrupted pipelines ( #1741 )
...
Disconnect interrupted pipeline connections before they can be reused,
discard remaining commands, and reset running state after PHP errors.
Preserve the original failure when connection cleanup also fails.
Clear the cached connection resource when Relay is closed so the next
command reconnects and replays connection initialization. This fixes
client reuse after an interrupted pipeline disconnects the connection.
2026-10-09 16:57:05 -07:00
Till Krüss
78c91a5628
Support numbered databases in Valkey clusters ( #1742 )
2026-10-09 08:11:13 -07:00
Till Krüss
09a1882bad
bump dev tag [skip ci]
2026-10-08 09:48:49 -07:00
Till Krüss
4d91f3b08a
prepare v3.7.0 ( #1740 )
2026-10-08 09:46:04 -07:00
holystix
97ce126b9f
Retry cluster slot map discovery on StreamInitException ( #1717 )
...
queryClusterNodeForSlotMap() overrides Retry's default catchable exception
list with [ConnectionException::class]. StreamInitException extends
PredisException directly, so a CLUSTER SLOTS refresh that cannot open a
connection to the node it was redirected to is neither retried nor allowed
to fall back to another node: the fail callback that evicts the unreachable
node never runs, and the exception escapes uncaught.
2026-10-08 09:36:04 -07:00
Michał "DualFroz" Fox
9f37e4bd2b
Fix ConnectionErrorProof response count on single node read errors ( #1739 )
...
Co-authored-by: Till Krüss <tillkruss@users.noreply.github.com >
2026-10-08 09:34:40 -07:00
Michał "DualFroz" Fox
00611e08e0
Replace deprecated spl_object_hash() with spl_object_id() in ConnectionErrorProof ( #1738 )
...
php 8.6 deprecates spl_object_hash(). ConnectionErrorProof only uses it as an array key for per-connection exceptions, so spl_object_id() is a drop-in replacement. added a dedicated test for the pipeline.
2026-10-08 10:41:25 +03:00
Vladyslav Vildanov
e964f78524
Added testing with new HNSW compression ( #1737 )
2026-10-07 10:08:14 -07:00
Till Krüss
5a9a7665cb
Fix cluster transaction cleanup and CAS behavior ( #1735 )
2026-10-07 10:02:58 -07:00
Iain
0f3f616edb
Fix infinite loop when the connection closes partway through a bulk reply ( #1731 )
2026-10-06 09:39:22 -07:00
Vladislav Kotsev
c270c2d24e
feat: bless commands family ( #1733 )
...
* feat: bless commands family
* fix: bless scan args processing
2026-10-06 14:36:19 +03:00
Midhun Monachan
ed2ddeede5
Fix client iteration with master/slave and Sentinel replication ( #1730 )
...
* Fix client iteration with master/slave replication
* Fix client iteration with Sentinel replication
---------
Co-authored-by: Vladyslav Vildanov <117659936+vladvildanov@users.noreply.github.com >
2026-09-30 10:57:38 +03:00
Vladyslav Vildanov
4082600075
Added optional CELL_SIZE argument for CMS.INITBYDIM and CMS.INITBYPROB ( #1729 )
2026-09-29 11:31:27 -07:00
Till Krüss
35019cf292
bump dev version
2026-09-17 13:44:54 -07:00
Till Krüss
e2db96312e
tag v3.6.1
2026-09-17 13:41:00 -07:00
Vladyslav Vildanov
3edc442e55
Fixed CRLF command smuggling and node misrouting in AbstractAggregateConnection::write() and CommandInterface::deserializeCommand() ( #1728 )
...
* Fixed CRLF command injection / smuggling in AbstractAggregateConnection::write()
* Revert "Fixed CRLF command injection / smuggling in AbstractAggregateConnection::write()"
This reverts commit a4720b03ee .
* Fixed CRLF command smuggling and node misrouting in AbstractAggregateConnection::write() and CommandInterface::deserializeCommand()
* Revert change
2026-09-16 10:01:26 +03:00
Vladyslav Vildanov
37490865cc
Fixed Stream::write()/read() leaving a dead connection when a host error handler throws exception ( #1726 )
2026-09-14 11:32:59 -07:00
Vladyslav Vildanov
3a5b55e46e
Deprecated CommandInterface::deserializeCommand() (CVE GHSA-w6f5-v2h6-g786) ( #1724 )
2026-09-11 07:56:58 -07:00
Lazizbek Ergashev
e7b89c14b7
Fixed client_info connection parameter being ignored ( #1722 )
...
* Fixed `client_info` connection parameter being ignored
* Documented the default value of the `client_info` parameter
2026-09-10 15:24:31 -07:00
Sergey Sannikov
675951360f
Fix RESP3 double parsing returning positive INF for -inf ( #1716 )
...
parseDouble() returned positive INF for the RESP3 payload ',-inf',
inverting the sign. The value is reachable with protocol=3, for
example ZSCORE on a member whose score is -inf.
The existing infinity test asserted only is_infinite(), which cannot
detect the sign inversion, so it now checks exact values.
NaN payloads keep their current behavior; that is addressed
separately.
2026-08-27 16:46:39 +03:00
Till Krüss
0795d69d9e
bump dev version
2026-08-14 16:09:00 -07:00
Till Krüss
2ff20c08bb
tag v3.6.0
2026-08-14 16:07:56 -07:00
Vladyslav Vildanov
ac3142abfe
Added experimental support for HIMPORT bulk hash import feature ( #1712 )
...
* Added support for HIMPORT bulk hash import feature
* Fixed pre-server execution registry miutating, added pre-loaded registry feature
* Refactored retry logic to use existing configuration
* Marked feature as experimental
* Remvoed non-ASCII chars
* Ensure IteratorAggregator interface is enforced
* Fixed bug with updateCachableException adds duplicate entries
* Added explicit reconnect for Relay tests
* Testing with custom image
* Removed redundant comment
* Fixed exception handling
* Removed non-ASCII char
* Fixed merged conflict bugs
2026-08-10 10:54:34 +03:00
Róbert Kelčák
0bf4ba1c9f
Added OBJECT and hash field expiration commands to ClusterStrategy ( #1711 )
...
Co-authored-by: Vladyslav Vildanov <117659936+vladvildanov@users.noreply.github.com >
2026-08-05 11:57:53 +03:00
Vladyslav Vildanov
b1e2a26e7f
Added support for MAXCOUNT and MAXSIZE arguments for XREAD and XREADGROUP ( #1701 )
...
* Added support for MAXCOUNT and MAXSIZE arguments for XREAD and XREADGROUP
* Improve deprecation, by introducing deprecated real methods
* Renamed from XREAD_NEW to XREAD_V4
2026-07-24 10:56:14 +03:00
Róbert Kelčák
bb5ca97854
Added vector sets commands to ClusterStrategy ( #1710 )
2026-07-23 09:47:49 +03:00
Róbert Kelčák
c9494ab124
Added stream commands to ClusterStrategy ( #1708 )
...
* Added stream commands to ClusterStrategy
* Fix edge case for XREADGROUP
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
* Fix merge conflict
---------
Co-authored-by: Vladyslav Vildanov <117659936+vladvildanov@users.noreply.github.com >
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-07-22 12:26:19 +03:00
Vladyslav Vildanov
422990b631
Added support for LMOVEM and BLMOVEM commands ( #1709 )
...
* Added support for LMOVEM and BLMOVEM commands
* Removed background testing
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-07-22 10:01:21 +03:00
Vladyslav Vildanov
bc08b36094
Added support for TS.QUERYLABELS command ( #1706 )
2026-07-21 11:20:07 +03:00
Vladyslav Vildanov
96c634ef90
Added support for FT.ALIASLIST command ( #1705 )
2026-07-21 11:00:18 +03:00
Vladyslav Vildanov
bc406c7f55
Added support for EXCLUDEEMPTY argument for TS.MRANGE and TS.MREVRANGE commands ( #1704 )
2026-07-21 10:59:59 +03:00
Vladyslav Vildanov
b1e40f4250
Added support for TS.READ command ( #1702 )
...
* Added support for TS.READ command
* Added more testing and cluster support
2026-07-20 10:27:43 +03:00
Vladyslav Vildanov
9302204964
Added support for SDIFFCARD and SUNIONCARD command ( #1700 )
...
* Added support for SDIFFCARD and SUNIONCARD command
* Fixed broken test
* Fixed failing tests
2026-07-17 10:36:00 +03:00
Vladyslav Vildanov
d7bc1c4748
Added support for new COLLECT reducer for FT.AGGREGATE ( #1699 )
...
* Added support for new COLLECT reducer for FT.AGGREGATE
* Added tests cleanup
* Updated CHANGELOG.md
2026-07-15 11:26:23 +03:00
Kyle
f97b473fe1
Fix annotation of cmsincrby ( #1698 )
2026-07-06 07:05:02 -07:00
Vladyslav Vildanov
efb3958fb7
Added support for new TS commands + Indonesian language support integration test ( #1695 )
...
* Added support for new TS commands
* Fixed version constraints
* Codestyle fixes
* Remvoed TS.BGET command
2026-06-25 21:11:59 +03:00
Vladyslav Vildanov
09b8ce59dd
Fixed Sentinel does not wipe servers on exception caused ( #1694 )
2026-06-22 10:55:28 -07:00
Vladyslav Vildanov
b6b7f0d4e0
Make ZMSCORE command Prefixable and add to a ClusterStrategy ( #1692 )
...
* Make ZMSCORE command Prefixable and add to a ClusterStrategy
* Updated CHANGELOG.md
* Codestyle fixes
2026-06-18 17:50:20 +03:00
Copilot
d55b3072fa
Correct pack/unpack PHPDoc types, clean up UNLINK test typing ( #1689 )
2026-06-15 10:32:18 -07:00
Till Krüss
5c996db191
tag v3.5.1
2026-06-11 09:56:53 -07:00
Adrian Brajkovic
fc345603a4
Fix UNLINK missing single-array argument normalization ( #1687 )
...
* Allow to accept an array of keys as a single argument
* fix signature
* update changelog
2026-06-11 11:01:07 +03:00