Skip to content
This repository was archived by the owner on Jul 11, 2021. It is now read-only.

Commit 1097b18

Browse files
committed
add size to the result of .INTO
1 parent 583f602 commit 1097b18

2 files changed

Lines changed: 11 additions & 2 deletions

File tree

redisql_lib/src/redis.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -697,7 +697,7 @@ pub fn stream_query_result_array(
697697
) -> Result<QueryResult, err::RediSQLError> {
698698
let row_last_index = array.len() - 1;
699699

700-
let mut result = Vec::with_capacity(3);
700+
let mut result = Vec::with_capacity(4);
701701
result.push(sql::Entity::Text {
702702
text: stream_name.to_string(),
703703
});
@@ -780,17 +780,22 @@ pub fn stream_query_result_array(
780780
}
781781
}
782782
}
783+
context.release(lock);
784+
783785
if result.len() == 2 {
784786
let start_and_end = result[1].clone();
785787
result.push(start_and_end);
786788
}
789+
result.push(sql::Entity::Integer {
790+
int: array.len() as i64,
791+
});
787792

788-
context.release(lock);
789793
Ok(QueryResult::Array {
790794
names: vec![
791795
String::from("stream"),
792796
String::from("first_id"),
793797
String::from("last_id"),
798+
String::from("size"),
794799
],
795800
array: vec![result],
796801
})

test/correctness/test.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -652,6 +652,7 @@ def test_stream_query(self):
652652

653653
result = self.exec_naked("REDISQL.QUERY.INTO", "{A}:1", "A", "SELECT * FROM foo")
654654
self.assertEquals(result[0][0], "{A}:1")
655+
self.assertEquals(result[0][3], 513)
655656

656657
result = self.exec_naked("XRANGE", "{A}:1", "-", "+")
657658
self.assertEquals(len(result), total_len)
@@ -676,6 +677,7 @@ def test_stream_query_statement(self):
676677
result = self.exec_naked("REDISQL.QUERY_STATEMENT.INTO",
677678
"{B}:1", "B", "select_all")
678679
self.assertEquals(result[0][0], "{B}:1")
680+
self.assertEquals(result[0][3], 513)
679681

680682
result = self.exec_naked("XRANGE", "{B}:1", "-", "+")
681683
self.assertEquals(len(result), total_len)
@@ -697,6 +699,7 @@ def test_stream_query(self):
697699

698700
result = self.exec_naked("REDISQL.QUERY.INTO.NOW", "{A}:1", "A", "SELECT * FROM foo")
699701
self.assertEquals(result[0][0], "{A}:1")
702+
self.assertEquals(result[0][3], 513)
700703

701704
result = self.exec_naked("XRANGE", "{A}:1", "-", "+")
702705
self.assertEquals(len(result), total_len)
@@ -721,6 +724,7 @@ def test_stream_query_statement(self):
721724
result = self.exec_naked("REDISQL.QUERY_STATEMENT.INTO.NOW",
722725
"{B}:1", "B", "select_all")
723726
self.assertEquals(result[0][0], "{B}:1")
727+
self.assertEquals(result[0][3], 513)
724728

725729
result = self.exec_naked("XRANGE", "{B}:1", "-", "+")
726730
self.assertEquals(len(result), total_len)

0 commit comments

Comments
 (0)