Skip to content

Commit 0773cee

Browse files
committed
Use bulk string API for replying with strings
1 parent 777a57b commit 0773cee

File tree

4 files changed

+11
-7
lines changed

4 files changed

+11
-7
lines changed

src/commands/cmd_list.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ int Graph_List(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) {
2222
for(uint i = 0; i < count; i ++) {
2323
GraphContext *gc = graphs_in_keyspace[i];
2424
const char *name = GraphContext_GetName(gc);
25-
RedisModule_ReplyWithSimpleString(ctx, name);
25+
RedisModule_ReplyWithStringBuffer(ctx, name, strlen(name));
2626
}
2727

2828
return REDISMODULE_OK;

src/resultset/formatters/resultset_replycompact.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ static void _ResultSet_CompactReplyWithSIValue(RedisModuleCtx *ctx, GraphContext
5757

5858
switch(SI_TYPE(v)) {
5959
case T_STRING:
60-
RedisModule_ReplyWithSimpleString(ctx, v.stringval);
60+
RedisModule_ReplyWithStringBuffer(ctx, v.stringval, strlen(v.stringval));
6161
return;
6262
case T_INT64:
6363
RedisModule_ReplyWithLongLong(ctx, v.longval);
@@ -299,6 +299,6 @@ void ResultSet_ReplyWithCompactHeader(RedisModuleCtx *ctx, const char **columns,
299299
RedisModule_ReplyWithLongLong(ctx, t);
300300

301301
// Second, emit the identifier string associated with the column
302-
RedisModule_ReplyWithSimpleString(ctx, columns[i]);
302+
RedisModule_ReplyWithStringBuffer(ctx, columns[i], strlen(columns[i]));
303303
}
304304
}

src/resultset/formatters/resultset_replyverbose.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ static void _ResultSet_VerboseReplyWithSIValue(RedisModuleCtx *ctx, GraphContext
2323
const SIValue v) {
2424
switch(SI_TYPE(v)) {
2525
case T_STRING:
26-
RedisModule_ReplyWithSimpleString(ctx, v.stringval);
26+
RedisModule_ReplyWithStringBuffer(ctx, v.stringval, strlen(v.stringval));
2727
return;
2828
case T_INT64:
2929
RedisModule_ReplyWithLongLong(ctx, v.longval);
@@ -71,7 +71,7 @@ static void _ResultSet_VerboseReplyWithProperties(RedisModuleCtx *ctx, GraphCont
7171
EntityProperty prop = ENTITY_PROPS(e)[i];
7272
// Emit the actual string
7373
const char *prop_str = GraphContext_GetAttributeString(gc, prop.id);
74-
RedisModule_ReplyWithSimpleString(ctx, prop_str);
74+
RedisModule_ReplyWithStringBuffer(ctx, prop_str, strlen(prop_str));
7575
// Emit the value
7676
_ResultSet_VerboseReplyWithSIValue(ctx, gc, prop.value);
7777
}
@@ -104,7 +104,7 @@ static void _ResultSet_VerboseReplyWithNode(RedisModuleCtx *ctx, GraphContext *g
104104
for(int i = 0; i < lbls_count; i++) {
105105
Schema *s = GraphContext_GetSchemaByID(gc, labels[i], SCHEMA_NODE);
106106
const char *lbl_name = Schema_GetName(s);
107-
RedisModule_ReplyWithSimpleString(ctx, lbl_name);
107+
RedisModule_ReplyWithStringBuffer(ctx, lbl_name, strlen(lbl_name));
108108
}
109109

110110
// [properties, [properties]]
@@ -206,6 +206,6 @@ void ResultSet_ReplyWithVerboseHeader(RedisModuleCtx *ctx, const char **columns,
206206
RedisModule_ReplyWithArray(ctx, columns_len);
207207
for(uint i = 0; i < columns_len; i++) {
208208
// Emit the identifier string associated with the column
209-
RedisModule_ReplyWithSimpleString(ctx, columns[i]);
209+
RedisModule_ReplyWithStringBuffer(ctx, columns[i], strlen(columns[i]));
210210
}
211211
}

tests/flow/test_results.py

+4
Original file line numberDiff line numberDiff line change
@@ -196,3 +196,7 @@ def test09_implicit_resultset_limit(self):
196196
unlimited_record_count = len(result.result_set)
197197
assert(unlimited_record_count == record_count)
198198

199+
def test10_carriage_return_in_result(self):
200+
query = """RETURN 'Foo\r\nBar'"""
201+
result = graph.query(query)
202+
self.env.assertEqual(result.result_set[0][0], 'Foo\r\nBar')

0 commit comments

Comments
 (0)