diff --git a/integration_test.go b/integration_test.go index 9b0e97f..7b96dc7 100644 --- a/integration_test.go +++ b/integration_test.go @@ -84,6 +84,34 @@ func (integrationTest *IntegrationTestSuite) SetupSuite() { integrationTest.gogm = gogm } +func (integrationTest *IntegrationTestSuite) TestQueryRaw() { + sess, err := integrationTest.gogm.NewSessionV2(SessionConfig{AccessMode: AccessModeWrite}) + integrationTest.Require().NotNil(sess) + integrationTest.Require().Nil(err) + ctx := context.Background() + + err = sess.SaveDepth(ctx, &a{ + Created: time.Now().UTC(), + }, 0) + integrationTest.Require().Nil(err) + + // test outside tx + res, _, err := sess.QueryRaw(ctx, "match (n) return n", nil) + integrationTest.Require().Nil(err) + integrationTest.Require().NotEmpty(res) + + // test in tx + err = sess.Begin(ctx) + integrationTest.Require().Nil(err) + + res, _, err = sess.QueryRaw(ctx, "match (n) return n", nil) + integrationTest.Require().Nil(err) + integrationTest.Require().NotEmpty(res) + + err = sess.Commit(ctx) + integrationTest.Require().Nil(err) +} + func (integrationTest *IntegrationTestSuite) TestV4Index() { if integrationTest.gogm.neoVersion < 4 { integrationTest.T().Log("skipping because of incompatible version", integrationTest.gogm.neoVersion) diff --git a/sessionv2.go b/sessionv2.go index 7ff6247..66ff397 100644 --- a/sessionv2.go +++ b/sessionv2.go @@ -585,12 +585,14 @@ func (s *SessionV2Impl) QueryRaw(ctx context.Context, query string, properties m return nil, nil, fmt.Errorf("failed to execute query, %w", err) } + parsedResult := s.parseResult(res) + sum, err := res.Consume() if err != nil { return nil, nil, err } - return s.parseResult(res), sum, nil + return parsedResult, sum, nil } else { var ires interface{} var sum neo4j.ResultSummary