From 82eddfa71249136324627356cea48b9cf0336472 Mon Sep 17 00:00:00 2001 From: alonre24 Date: Tue, 10 Nov 2020 12:31:27 +0200 Subject: [PATCH 1/2] Creating two APIs to get query result statistics fields, one as int and the other as float. Currently only Query_internal_execution_time returns as float. --- query_result.go | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/query_result.go b/query_result.go index ad39ced..bcaeef9 100644 --- a/query_result.go +++ b/query_result.go @@ -19,7 +19,7 @@ const ( RELATIONSHIPS_CREATED string = "Relationships created" INDICES_CREATED string = "Indices created" INDICES_DELETED string = "Indices deleted" - INTERNAL_EXECUTION_TIME string = "internal execution time" + INTERNAL_EXECUTION_TIME string = "Query internal execution time" CACHED_EXECUTION string = "Cached execution" ) @@ -267,7 +267,7 @@ func (qr *QueryResult) parseScalar(cell []interface{}) interface{} { return s } -func (qr *QueryResult) getStat(stat string) int { +func (qr *QueryResult) getStatAsInt(stat string) int { if val, ok := qr.statistics[stat]; ok { return int(val) } else { @@ -275,6 +275,15 @@ func (qr *QueryResult) getStat(stat string) int { } } +func (qr *QueryResult) getStatAsFloat(stat string) float64 { + if val, ok := qr.statistics[stat]; ok { + return val + } else { + fmt.Fprintf(os.Stdout, "problem") + return 0.0 + } +} + // Next returns true only if there is a record to be processed. func (qr *QueryResult) Next() bool { if qr.Empty() { @@ -300,6 +309,7 @@ func (qr *QueryResult) Record() *Record { // PrettyPrint prints the QueryResult to stdout, pretty-like. func (qr *QueryResult) PrettyPrint() { if qr.Empty() { + fmt.Fprintf(os.Stdout, "Empty result\n") return } @@ -331,42 +341,42 @@ func (qr *QueryResult) PrettyPrint() { } func (qr *QueryResult) LabelsAdded() int { - return qr.getStat(LABELS_ADDED) + return qr.getStatAsInt(LABELS_ADDED) } func (qr *QueryResult) NodesCreated() int { - return qr.getStat(NODES_CREATED) + return qr.getStatAsInt(NODES_CREATED) } func (qr *QueryResult) NodesDeleted() int { - return qr.getStat(NODES_DELETED) + return qr.getStatAsInt(NODES_DELETED) } func (qr *QueryResult) PropertiesSet() int { - return qr.getStat(PROPERTIES_SET) + return qr.getStatAsInt(PROPERTIES_SET) } func (qr *QueryResult) RelationshipsCreated() int { - return qr.getStat(RELATIONSHIPS_CREATED) + return qr.getStatAsInt(RELATIONSHIPS_CREATED) } func (qr *QueryResult) RelationshipsDeleted() int { - return qr.getStat(RELATIONSHIPS_DELETED) + return qr.getStatAsInt(RELATIONSHIPS_DELETED) } func (qr *QueryResult) IndicesCreated() int { - return qr.getStat(INDICES_CREATED) + return qr.getStatAsInt(INDICES_CREATED) } func (qr *QueryResult) IndicesDeleted() int { - return qr.getStat(INDICES_DELETED) + return qr.getStatAsInt(INDICES_DELETED) } -func (qr *QueryResult) RunTime() int { - return qr.getStat(INTERNAL_EXECUTION_TIME) +func (qr *QueryResult) RunTime() float64 { + return qr.getStatAsFloat(INTERNAL_EXECUTION_TIME) } func (qr *QueryResult) CachedExecution() int { - return qr.getStat(CACHED_EXECUTION) + return qr.getStatAsInt(CACHED_EXECUTION) } From 99e26d70c0be277384ef3c61b86c923182f64ea1 Mon Sep 17 00:00:00 2001 From: alonre24 Date: Tue, 10 Nov 2020 17:22:27 +0200 Subject: [PATCH 2/2] Refactor of getStat --- query_result.go | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/query_result.go b/query_result.go index bcaeef9..1d048e3 100644 --- a/query_result.go +++ b/query_result.go @@ -5,7 +5,6 @@ import ( "os" "strconv" "strings" - "github.com/gomodule/redigo/redis" "github.com/olekukonko/tablewriter" ) @@ -267,19 +266,10 @@ func (qr *QueryResult) parseScalar(cell []interface{}) interface{} { return s } -func (qr *QueryResult) getStatAsInt(stat string) int { - if val, ok := qr.statistics[stat]; ok { - return int(val) - } else { - return 0 - } -} - -func (qr *QueryResult) getStatAsFloat(stat string) float64 { +func (qr *QueryResult) getStat(stat string) float64 { if val, ok := qr.statistics[stat]; ok { return val } else { - fmt.Fprintf(os.Stdout, "problem") return 0.0 } } @@ -309,7 +299,6 @@ func (qr *QueryResult) Record() *Record { // PrettyPrint prints the QueryResult to stdout, pretty-like. func (qr *QueryResult) PrettyPrint() { if qr.Empty() { - fmt.Fprintf(os.Stdout, "Empty result\n") return } @@ -341,42 +330,42 @@ func (qr *QueryResult) PrettyPrint() { } func (qr *QueryResult) LabelsAdded() int { - return qr.getStatAsInt(LABELS_ADDED) + return int(qr.getStat(LABELS_ADDED)) } func (qr *QueryResult) NodesCreated() int { - return qr.getStatAsInt(NODES_CREATED) + return int(qr.getStat(NODES_CREATED)) } func (qr *QueryResult) NodesDeleted() int { - return qr.getStatAsInt(NODES_DELETED) + return int(qr.getStat(NODES_DELETED)) } func (qr *QueryResult) PropertiesSet() int { - return qr.getStatAsInt(PROPERTIES_SET) + return int(qr.getStat(PROPERTIES_SET)) } func (qr *QueryResult) RelationshipsCreated() int { - return qr.getStatAsInt(RELATIONSHIPS_CREATED) + return int(qr.getStat(RELATIONSHIPS_CREATED)) } func (qr *QueryResult) RelationshipsDeleted() int { - return qr.getStatAsInt(RELATIONSHIPS_DELETED) + return int(qr.getStat(RELATIONSHIPS_DELETED)) } func (qr *QueryResult) IndicesCreated() int { - return qr.getStatAsInt(INDICES_CREATED) + return int(qr.getStat(INDICES_CREATED)) } func (qr *QueryResult) IndicesDeleted() int { - return qr.getStatAsInt(INDICES_DELETED) + return int(qr.getStat(INDICES_DELETED)) } func (qr *QueryResult) RunTime() float64 { - return qr.getStatAsFloat(INTERNAL_EXECUTION_TIME) + return qr.getStat(INTERNAL_EXECUTION_TIME) } func (qr *QueryResult) CachedExecution() int { - return qr.getStatAsInt(CACHED_EXECUTION) + return int(qr.getStat(CACHED_EXECUTION)) }