Skip to content

Commit 7811cbd

Browse files
committed
Ported fixes from master to "multi".
1 parent a438fd6 commit 7811cbd

File tree

2 files changed

+16
-14
lines changed

2 files changed

+16
-14
lines changed

redis.c

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,8 @@ static zend_function_entry redis_functions[] = {
140140
PHP_MALIAS(Redis, sGetMembers, sMembers, NULL, ZEND_ACC_PUBLIC)
141141
PHP_MALIAS(Redis, mget, getMultiple, NULL, ZEND_ACC_PUBLIC)
142142
PHP_MALIAS(Redis, expire, setTimeout, NULL, ZEND_ACC_PUBLIC)
143+
PHP_MALIAS(Redis, zunionstore, zUnion, NULL, ZEND_ACC_PUBLIC)
144+
PHP_MALIAS(Redis, zinterstore, zInter, NULL, ZEND_ACC_PUBLIC)
143145

144146
PHP_MALIAS(Redis, zRemove, zDelete, NULL, ZEND_ACC_PUBLIC)
145147
PHP_MALIAS(Redis, zRemoveRangeByScore, zDeleteRangeByScore, NULL, ZEND_ACC_PUBLIC)
@@ -1870,7 +1872,7 @@ PHPAPI void generic_sort_cmd(INTERNAL_FUNCTION_PARAMETERS, char *sort, int use_a
18701872
RedisSock *redis_sock;
18711873
char *key = NULL, *pattern = NULL, *get = NULL, *store = NULL, *cmd;
18721874
int key_len, pattern_len = -1, get_len = -1, store_len = -1, cmd_len, response_len;
1873-
long start = -1, end = -1;
1875+
long sort_start = -1, sort_count = -1;
18741876

18751877
int cmd_elements;
18761878

@@ -1893,7 +1895,7 @@ PHPAPI void generic_sort_cmd(INTERNAL_FUNCTION_PARAMETERS, char *sort, int use_a
18931895
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os|sslls",
18941896
&object, redis_ce,
18951897
&key, &key_len, &pattern, &pattern_len,
1896-
&get, &get_len, &start, &end, &store, &store_len) == FAILURE) {
1898+
&get, &get_len, &sort_start, &sort_count, &store, &store_len) == FAILURE) {
18971899
RETURN_FALSE;
18981900
}
18991901

@@ -1936,7 +1938,7 @@ PHPAPI void generic_sort_cmd(INTERNAL_FUNCTION_PARAMETERS, char *sort, int use_a
19361938
cmd_sizes[cmd_elements] = pattern_len;
19371939
cmd_elements++;
19381940
}
1939-
if(start >= 0 && end >= start) {
1941+
if(sort_start >= 0 && sort_count >= 0) {
19401942
/* LIMIT */
19411943
cmd_lines[cmd_elements] = estrdup("$5");
19421944
cmd_sizes[cmd_elements] = 2;
@@ -1946,15 +1948,15 @@ PHPAPI void generic_sort_cmd(INTERNAL_FUNCTION_PARAMETERS, char *sort, int use_a
19461948
cmd_elements++;
19471949

19481950
/* start */
1949-
cmd_sizes[cmd_elements] = redis_cmd_format(&cmd_lines[cmd_elements], "$%d", integer_length(start));
1951+
cmd_sizes[cmd_elements] = redis_cmd_format(&cmd_lines[cmd_elements], "$%d", integer_length(sort_start));
19501952
cmd_elements++;
1951-
cmd_sizes[cmd_elements] = spprintf(&cmd_lines[cmd_elements], 0, "%d", (int)start);
1953+
cmd_sizes[cmd_elements] = spprintf(&cmd_lines[cmd_elements], 0, "%d", (int)sort_start);
19521954
cmd_elements++;
19531955

1954-
/* end */
1955-
cmd_sizes[cmd_elements] = redis_cmd_format(&cmd_lines[cmd_elements], "$%d", integer_length(end));
1956+
/* count */
1957+
cmd_sizes[cmd_elements] = redis_cmd_format(&cmd_lines[cmd_elements], "$%d", integer_length(sort_count));
19561958
cmd_elements++;
1957-
cmd_sizes[cmd_elements] = spprintf(&cmd_lines[cmd_elements], 0, "%d", (int)end);
1959+
cmd_sizes[cmd_elements] = spprintf(&cmd_lines[cmd_elements], 0, "%d", (int)sort_count);
19581960
cmd_elements++;
19591961
}
19601962
if(get && get_len) {
@@ -3306,12 +3308,12 @@ PHPAPI void generic_z_command(INTERNAL_FUNCTION_PARAMETERS, char *command, int c
33063308

33073309
/* zInter */
33083310
PHP_METHOD(Redis, zInter) {
3309-
generic_z_command(INTERNAL_FUNCTION_PARAM_PASSTHRU, "zInter", 6 TSRMLS_CC);
3311+
generic_z_command(INTERNAL_FUNCTION_PARAM_PASSTHRU, "ZINTERSTORE", 11 TSRMLS_CC);
33103312
}
33113313

33123314
/* zUnion */
33133315
PHP_METHOD(Redis, zUnion) {
3314-
generic_z_command(INTERNAL_FUNCTION_PARAM_PASSTHRU, "zUnion", 6 TSRMLS_CC);
3316+
generic_z_command(INTERNAL_FUNCTION_PARAM_PASSTHRU, "ZUNIONSTORE", 11 TSRMLS_CC);
33153317
}
33163318

33173319
/* hashes */

tests/TestRedis.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public function reset()
3030
$this->setUp();
3131
$this->tearDown();
3232
}
33-
/*
33+
3434
public function testPing()
3535
{
3636

@@ -557,7 +557,7 @@ public function testSortAsc() {
557557
$this->assertEquals(array_slice($byAgeAsc, 0, 2), $this->redis->sortAsc('person:id', 'person:age_*', 'person:name_*', 0, 2));
558558
$this->assertEquals(array_slice($byAgeAsc, 1, 2), $this->redis->sortAsc('person:id', 'person:age_*', 'person:name_*', 1, 2));
559559
$this->assertEquals(array_slice($byAgeAsc, 0, 3), $this->redis->sortAsc('person:id', 'person:age_*', 'person:name_*', NULL, 3)); // NULL is transformed to 0 if there is something after it.
560-
$this->assertEquals($byAgeAsc, $this->redis->sortAsc('person:id', 'person:age_*', 'person:name_*', 1, NULL));
560+
$this->assertEquals($byAgeAsc, $this->redis->sortAsc('person:id', 'person:age_*', 'person:name_*', 0, 4));
561561
$this->assertEquals(array(), $this->redis->sortAsc('person:id', 'person:age_*', 'person:name_*', NULL, NULL)); // NULL, NULL is the same as (0,0). That returns no element.
562562

563563
// sort by salary and get ages
@@ -1505,9 +1505,9 @@ public function testHashes() {
15051505
$this->assertTrue(3 === $this->redis->hIncrBy('h', 'x', 1));
15061506

15071507
$this->redis->hSet('h', 'y', 'not-a-number');
1508-
$this->assertTrue(1 === $this->redis->hIncrBy('h', 'y', 1));
1508+
$this->assertTrue(FALSE === $this->redis->hIncrBy('h', 'y', 1));
15091509
}
1510-
*/
1510+
15111511

15121512
public function testMultiExec() {
15131513
$this->sequence(Redis::MULTI);

0 commit comments

Comments
 (0)