Skip to content

Commit aa0feaa

Browse files
authored
Merge pull request #40 from RedisGraph/resultset.internalExecutionTime
Fix: Introduced InternalExecutionTime() and removed RunTime()
2 parents d2a117c + 2c9a965 commit aa0feaa

File tree

2 files changed

+61
-1
lines changed

2 files changed

+61
-1
lines changed

client_test.go

+59
Original file line numberDiff line numberDiff line change
@@ -295,3 +295,62 @@ func TestCreateIndex(t *testing.T) {
295295
_, err = graph.Query("DROP INDEX ON :user(name)")
296296
assert.Equal(t, err.Error(), "ERR Unable to drop index on :user(name): no such index.")
297297
}
298+
299+
func TestQueryStatistics(t *testing.T) {
300+
graph.Flush()
301+
err := graph.Delete()
302+
assert.Nil(t,err)
303+
304+
q := "CREATE (:Person{name:'a',age:32,array:[0,1,2]})"
305+
res, err := graph.Query(q)
306+
assert.Nil(t,err)
307+
308+
assert.Equal(t, 1, res.NodesCreated(), "Expecting 1 node created")
309+
assert.Equal(t, 0, res.NodesDeleted(), "Expecting 0 nodes deleted")
310+
assert.Greater(t, res.InternalExecutionTime(),0.0, "Expecting internal execution time not to be 0.0")
311+
assert.Equal(t, true, res.Empty(), "Expecting empty resultset")
312+
313+
res,err = graph.Query("MATCH (n) DELETE n")
314+
assert.Nil(t,err)
315+
assert.Equal(t, 1, res.NodesDeleted(), "Expecting 1 nodes deleted")
316+
317+
// Create 2 nodes connect via a single edge.
318+
japan := NodeNew("Country", "j", nil)
319+
john := NodeNew("Person", "p", nil)
320+
edge := EdgeNew("Visited", john, japan, nil)
321+
322+
// Set node properties.
323+
john.SetProperty("name", "John Doe")
324+
john.SetProperty("age", 33)
325+
john.SetProperty("gender", "male")
326+
john.SetProperty("status", "single")
327+
328+
japan.SetProperty("name", "Japan")
329+
japan.SetProperty("population", 126800000)
330+
331+
edge.SetProperty("year", 2017)
332+
333+
// Introduce entities to graph.
334+
graph.AddNode(john)
335+
graph.AddNode(japan)
336+
graph.AddEdge(edge)
337+
338+
// Flush graph to DB.
339+
res, err = graph.Commit()
340+
assert.Nil(t,err)
341+
assert.Equal(t, 2, res.NodesCreated(), "Expecting 2 node created")
342+
assert.Equal(t, 0, res.NodesDeleted(), "Expecting 0 nodes deleted")
343+
assert.Equal(t, 7, res.PropertiesSet(), "Expecting 7 properties set")
344+
assert.Equal(t, 1, res.RelationshipsCreated(), "Expecting 1 relationships created")
345+
assert.Equal(t, 0, res.RelationshipsDeleted(), "Expecting 0 relationships deleted")
346+
assert.Greater(t, res.InternalExecutionTime(),0.0, "Expecting internal execution time not to be 0.0")
347+
assert.Equal(t, true, res.Empty(), "Expecting empty resultset")
348+
q = "MATCH p = (:Person)-[:Visited]->(:Country) RETURN p"
349+
res, err = graph.Query(q)
350+
assert.Nil(t,err)
351+
assert.Equal(t, len(res.results), 1, "expecting 1 result record")
352+
assert.Equal(t, false, res.Empty(), "Expecting resultset to have records")
353+
res,err = graph.Query("MATCH ()-[r]-() DELETE r")
354+
assert.Nil(t,err)
355+
assert.Equal(t, 1, res.RelationshipsDeleted(), "Expecting 1 relationships deleted")
356+
}

query_result.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,8 @@ func (qr *QueryResult) IndicesDeleted() int {
361361
return int(qr.getStat(INDICES_DELETED))
362362
}
363363

364-
func (qr *QueryResult) RunTime() float64 {
364+
// Returns the query internal execution time in milliseconds
365+
func (qr *QueryResult) InternalExecutionTime() float64 {
365366
return qr.getStat(INTERNAL_EXECUTION_TIME)
366367
}
367368

0 commit comments

Comments
 (0)