Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ adhere to [Semantic Versioning](https://semver.org) starting `v22.0.0`.

- **Fixed**
- fix(core): fix panic in verifyUniqueWithinMutation when mutation is conditionally pruned (#9450)
- fix(query): return full float value in query results (#9492)

## [v24.X.X] - YYYY-MM-DD

Expand Down
16 changes: 8 additions & 8 deletions graphql/e2e/common/fragment.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ func fragmentInQuery(t *testing.T) {
"queryStarship":[{
"id":"%s",
"name":"Millennium Falcon",
"length":2.000000
"length":2
}]
}`, newStarship.ID)

Expand Down Expand Up @@ -270,9 +270,9 @@ func fragmentInQueryOnInterface(t *testing.T) {
"__typename":"Starship",
"id":"%s",
"name":"Millennium Falcon",
"length":2.000000
"length":2
}],
"totalCredits":10.000000,
"totalCredits":10,
"ename":"Han_employee"
},
{
Expand Down Expand Up @@ -325,7 +325,7 @@ func fragmentInQueryOnInterface(t *testing.T) {
"qcRep1":[
{
"name":"Han",
"totalCredits":10.000000
"totalCredits":10
},
{
"name":"R2-D2",
Expand All @@ -334,7 +334,7 @@ func fragmentInQueryOnInterface(t *testing.T) {
],
"qcRep2":[
{
"totalCredits":10.000000,
"totalCredits":10,
"name":"Han"
},
{
Expand Down Expand Up @@ -547,9 +547,9 @@ func fragmentInQueryOnObject(t *testing.T) {
"__typename":"Starship",
"id":"%s",
"name":"Millennium Falcon",
"length":2.000000
"length":2
}],
"totalCredits":10.000000,
"totalCredits":10,
"ename":"Han_employee"
}
]
Expand Down Expand Up @@ -590,7 +590,7 @@ func fragmentInQueryOnObject(t *testing.T) {
{"id":"%s",
"__typename":"Starship",
"name":"Millennium Falcon",
"length":2.000000}]
"length":2}]
}
]
}
Expand Down
2 changes: 1 addition & 1 deletion query/fastjson_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ func TestSubgraphToFastJSON(t *testing.T) {

t.Run("With a valid float result", func(t *testing.T) {
sg := subgraphWithSingleResultAndSingleValue(task.FromFloat(42.0))
assertJSON(t, `{"query":[{"val":42.000000}]}`, sg)
assertJSON(t, `{"query":[{"val":42}]}`, sg)
})

t.Run("With invalid floating points", func(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion query/outputnode.go
Original file line number Diff line number Diff line change
Expand Up @@ -670,7 +670,7 @@ func valToBytes(v types.Val) ([]byte, error) {
return nil, errors.New("Unsupported floating point number in float field")
}

return []byte(fmt.Sprintf("%f", f)), nil
return []byte(fmt.Sprintf("%g", f)), nil
case types.BoolID:
if v.Value.(bool) {
return boolTrue, nil
Expand Down
10 changes: 10 additions & 0 deletions query/outputnode_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -294,3 +294,13 @@ func TestMarshalTimeJson(t *testing.T) {
require.Equal(t, tc.out, string(out))
}
}

func TestMarshalFloat(t *testing.T) {
var (
in = types.Val{Tid: types.FloatID, Value: 0.123456789012345}
out = "0.123456789012345"
)
result, err := valToBytes(in)
require.NoError(t, err)
require.Equal(t, out, string(result))
}
48 changes: 24 additions & 24 deletions query/query0_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -625,7 +625,7 @@ func TestLevelBasedFacetVarAggSum(t *testing.T) {
"path|weight": 0.7
}
],
"sumw": 0.8
"sumw": 0.7999999999999999
}
]
}
Expand Down Expand Up @@ -661,7 +661,7 @@ func TestLevelBasedFacetVarSum(t *testing.T) {
"path": [
{
"count(follow)": 1,
"val(L4)": 1.2,
"val(L4)": 1.2000000000000002,
"path|weight": 0.1
},
{
Expand Down Expand Up @@ -692,7 +692,7 @@ func TestLevelBasedFacetVarSum(t *testing.T) {
},
{
"name": "Matt",
"val(L4)": 1.2
"val(L4)": 1.2000000000000002
}
]
}
Expand Down Expand Up @@ -914,19 +914,19 @@ func TestQueryConstMathVal(t *testing.T) {
"AgeOrder":[
{
"name":"Michonne",
"val(a)":9.000000
"val(a)":9
},
{
"name":"Rick Grimes",
"val(a)":9.000000
"val(a)":9
},
{
"name":"Andrea",
"val(a)":9.000000
"val(a)":9
},
{
"name":"Andrea With no friends",
"val(a)":9.000000
"val(a)":9
}
]
}
Expand Down Expand Up @@ -986,7 +986,7 @@ func TestQueryVarValAggNestedFuncConst(t *testing.T) {
`
js := processQueryNoErr(t, query)
require.JSONEq(t,
`{"data": {"MaxMe":[{"name":"Rick Grimes","val(a)":15,"val(n)":38,"val(p)":25.000000,"val(s)":38},{"name":"Andrea","val(a)":19,"val(n)":15,"val(p)":29.000000,"val(s)":15},{"name":"Michonne","val(a)":38,"val(n)":15,"val(p)":52.000000,"val(s)":19}],"MinMe":[{"name":"Rick Grimes","val(a)":15,"val(n)":38,"val(q)":-21660.000000,"val(s)":38},{"name":"Michonne","val(a)":38,"val(n)":15,"val(q)":-10830.000000,"val(s)":19},{"name":"Andrea","val(a)":19,"val(n)":15,"val(q)":-4275.000000,"val(s)":15}]}}`,
`{"data": {"MaxMe":[{"name":"Rick Grimes","val(a)":15,"val(n)":38,"val(p)":25,"val(s)":38},{"name":"Andrea","val(a)":19,"val(n)":15,"val(p)":29,"val(s)":15},{"name":"Michonne","val(a)":38,"val(n)":15,"val(p)":52,"val(s)":19}],"MinMe":[{"name":"Rick Grimes","val(a)":15,"val(n)":38,"val(q)":-21660,"val(s)":38},{"name":"Michonne","val(a)":38,"val(n)":15,"val(q)":-10830,"val(s)":19},{"name":"Andrea","val(a)":19,"val(n)":15,"val(q)":-4275,"val(s)":15}]}}`,
js)
}

Expand Down Expand Up @@ -1057,7 +1057,7 @@ func TestQueryVarValAggNestedFuncConditional(t *testing.T) {
`
js := processQueryNoErr(t, query)
require.JSONEq(t,
`{"data": {"ExpMe":[{"name":"Michonne","val(a)":38,"val(condExp)":1.000000,"val(n)":15},{"name":"Rick Grimes","val(a)":15,"val(condExp)":1.000000,"val(n)":38},{"name":"Andrea","val(a)":19,"val(condExp)":1.000000,"val(n)":15}],"LogMe":[{"name":"Michonne","val(a)":38,"val(condLog)":1.682606,"val(n)":15},{"name":"Andrea","val(a)":19,"val(condLog)":1.682606,"val(n)":15},{"name":"Rick Grimes","val(a)":15,"val(condLog)":2.260159,"val(n)":38}]}}`,
`{"data": {"ExpMe":[{"name":"Michonne","val(a)":38,"val(condExp)":1,"val(n)":15},{"name":"Rick Grimes","val(a)":15,"val(condExp)":1,"val(n)":38},{"name":"Andrea","val(a)":19,"val(condExp)":1,"val(n)":15}],"LogMe":[{"name":"Michonne","val(a)":38,"val(condLog)":1.6826061944859854,"val(n)":15},{"name":"Andrea","val(a)":19,"val(condLog)":1.6826061944859854,"val(n)":15},{"name":"Rick Grimes","val(a)":15,"val(condLog)":2.2601593585085435,"val(n)":38}]}}`,
js)
}

Expand Down Expand Up @@ -1091,7 +1091,7 @@ func TestQueryVarValAggNestedFuncConditional2(t *testing.T) {
`
js := processQueryNoErr(t, query)
require.JSONEq(t,
`{"data": {"ExpMe":[{"name":"Rick Grimes","val(a)":15,"val(condExp)":1.000000,"val(n)":38},{"name":"Andrea","val(a)":19,"val(condExp)":1.000000,"val(n)":15},{"name":"Michonne","val(a)":38,"val(condExp)":5.477226,"val(n)":15}],"LogMe":[{"name":"Rick Grimes","val(a)":15,"val(condLog)":1.000000,"val(n)":38},{"name":"Andrea","val(a)":19,"val(condLog)":1.000000,"val(n)":15},{"name":"Michonne","val(a)":38,"val(condLog)":7.500000,"val(n)":15}]}}`,
`{"data": {"ExpMe":[{"name":"Rick Grimes","val(a)":15,"val(condExp)":1,"val(n)":38},{"name":"Andrea","val(a)":19,"val(condExp)":1,"val(n)":15},{"name":"Michonne","val(a)":38,"val(condExp)":5.477225575051661,"val(n)":15}],"LogMe":[{"name":"Rick Grimes","val(a)":15,"val(condLog)":1,"val(n)":38},{"name":"Andrea","val(a)":19,"val(condLog)":1,"val(n)":15},{"name":"Michonne","val(a)":38,"val(condLog)":7.5,"val(n)":15}]}}`,
js)
}

Expand Down Expand Up @@ -1128,7 +1128,7 @@ func TestQueryVarValAggNestedFuncUnary(t *testing.T) {
`
js := processQueryNoErr(t, query)
require.JSONEq(t,
`{"data": {"ExpMe":[{"name":"Rick Grimes","val(a)":15,"val(combiExp)":16.000000,"val(n)":38,"val(s)":38},{"name":"Andrea","val(a)":19,"val(combiExp)":20.000000,"val(n)":15,"val(s)":15},{"name":"Michonne","val(a)":38,"val(combiExp)":92.598150,"val(n)":15,"val(s)":19}],"LogMe":[{"name":"Rick Grimes","val(a)":15,"val(combiLog)":-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000,"val(n)":38,"val(s)":38},{"name":"Andrea","val(a)":19,"val(combiLog)":-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000,"val(n)":15,"val(s)":15},{"name":"Michonne","val(a)":38,"val(combiLog)":39.386294,"val(n)":15,"val(s)":19}]}}`,
`{"data": {"ExpMe":[{"name":"Rick Grimes","val(a)":15,"val(combiExp)":16,"val(n)":38,"val(s)":38},{"name":"Andrea","val(a)":19,"val(combiExp)":20,"val(n)":15,"val(s)":15},{"name":"Michonne","val(a)":38,"val(combiExp)":92.59815003314424,"val(n)":15,"val(s)":19}],"LogMe":[{"name":"Rick Grimes","val(a)":15,"val(combiLog)":-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368,"val(n)":38,"val(s)":38},{"name":"Andrea","val(a)":19,"val(combiLog)":-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368,"val(n)":15,"val(s)":15},{"name":"Michonne","val(a)":38,"val(combiLog)":39.38629436111989,"val(n)":15,"val(s)":19}]}}`,
js)
}

Expand Down Expand Up @@ -1257,7 +1257,7 @@ func TestQueryVarValAggMul(t *testing.T) {
`
js := processQueryNoErr(t, query)
require.JSONEq(t,
`{"data": {"me":[{"name":"Andrea","val(mul)":19.000000,"val(n)":19,"val(s)":1},{"name":"Rick Grimes","val(mul)":15.000000,"val(n)":15,"val(s)":1},{"name":"Glenn Rhee","val(mul)":0.000000,"val(n)":15,"val(s)":0},{"name":"Daryl Dixon","val(mul)":0.000000,"val(n)":17,"val(s)":0},{"val(mul)":0.000000,"val(s)":0}]}}`,
`{"data": {"me":[{"name":"Andrea","val(mul)":19,"val(n)":19,"val(s)":1},{"name":"Rick Grimes","val(mul)":15,"val(n)":15,"val(s)":1},{"name":"Glenn Rhee","val(mul)":0,"val(n)":15,"val(s)":0},{"name":"Daryl Dixon","val(mul)":0,"val(n)":17,"val(s)":0},{"val(mul)":0,"val(s)":0}]}}`,
js)
}

Expand Down Expand Up @@ -1371,7 +1371,7 @@ func TestQueryVarValAggOrderDesc(t *testing.T) {
`
js := processQueryNoErr(t, query)
require.JSONEq(t,
`{"data": {"info":[{"friend":[{"age":15,"count(friend)":1,"val(sum)":16.000000},{"age":15,"count(friend)":0,"val(sum)":15.000000},{"age":17,"count(friend)":0,"val(sum)":17.000000},{"age":19,"count(friend)":1,"val(sum)":20.000000},{"count(friend)":0,"val(sum)":0.000000}]}],"me":[{"age":19,"count(friend)":1,"name":"Andrea"},{"age":17,"count(friend)":0,"name":"Daryl Dixon"},{"age":15,"count(friend)":1,"name":"Rick Grimes"},{"age":15,"count(friend)":0,"name":"Glenn Rhee"},{"count(friend)":0}]}}`,
`{"data": {"info":[{"friend":[{"age":15,"count(friend)":1,"val(sum)":16},{"age":15,"count(friend)":0,"val(sum)":15},{"age":17,"count(friend)":0,"val(sum)":17},{"age":19,"count(friend)":1,"val(sum)":20},{"count(friend)":0,"val(sum)":0}]}],"me":[{"age":19,"count(friend)":1,"name":"Andrea"},{"age":17,"count(friend)":0,"name":"Daryl Dixon"},{"age":15,"count(friend)":1,"name":"Rick Grimes"},{"age":15,"count(friend)":0,"name":"Glenn Rhee"},{"count(friend)":0}]}}`,
js)
}

Expand All @@ -1395,7 +1395,7 @@ func TestQueryVarValAggOrderAsc(t *testing.T) {
`
js := processQueryNoErr(t, query)
require.JSONEq(t,
`{"data": {"me":[{"age":15,"name":"Rick Grimes","survival_rate":1.600000},{"age":15,"name":"Glenn Rhee","survival_rate":1.600000},{"age":17,"name":"Daryl Dixon","survival_rate":1.600000},{"age":19,"name":"Andrea","survival_rate":1.600000}]}}`,
`{"data": {"me":[{"age":15,"name":"Rick Grimes","survival_rate":1.6},{"age":15,"name":"Glenn Rhee","survival_rate":1.6},{"age":17,"name":"Daryl Dixon","survival_rate":1.6},{"age":19,"name":"Andrea","survival_rate":1.6}]}}`,
js)
}

Expand Down Expand Up @@ -2140,7 +2140,7 @@ func TestVarInIneqScore(t *testing.T) {
}
`
js := processQueryNoErr(t, query)
require.JSONEq(t, `{"data": {"me":[{"name":"Daryl Dixon","val(a)":17,"val(s)":0,"val(score)":35.000000},{"name":"Andrea","val(a)":19,"val(s)":1,"val(score)":42.000000}]}}`,
require.JSONEq(t, `{"data": {"me":[{"name":"Daryl Dixon","val(a)":17,"val(s)":0,"val(score)":35},{"name":"Andrea","val(a)":19,"val(s)":1,"val(score)":42}]}}`,
js)
}

Expand Down Expand Up @@ -3082,7 +3082,7 @@ func TestFilterNonIndexedPredicate(t *testing.T) {
}
}
`,
`{"data":{"me":[{"noindex_salary":589.040000},{"noindex_salary":967.680000}]}}`,
`{"data":{"me":[{"noindex_salary":589.04},{"noindex_salary":967.68}]}}`,
},
{
`Test gt filter on non-indexed float`,
Expand All @@ -3093,7 +3093,7 @@ func TestFilterNonIndexedPredicate(t *testing.T) {
}
}
`,
`{"data":{"me":[{"noindex_salary":967.680000}]}}`,
`{"data":{"me":[{"noindex_salary":967.68}]}}`,
},
{
`Test le filter on non-indexed float`,
Expand All @@ -3104,7 +3104,7 @@ func TestFilterNonIndexedPredicate(t *testing.T) {
}
}
`,
`{"data":{"me":[{"noindex_salary":501.230000},{"noindex_salary":589.040000},{"noindex_salary":459.470000}]}}`,
`{"data":{"me":[{"noindex_salary":501.23},{"noindex_salary":589.04},{"noindex_salary":459.47}]}}`,
},
{
`Test lt filter on non-indexed float`,
Expand All @@ -3115,7 +3115,7 @@ func TestFilterNonIndexedPredicate(t *testing.T) {
}
},
`,
`{"data":{"me":[{"noindex_salary":501.230000},{"noindex_salary":459.470000}]}}`,
`{"data":{"me":[{"noindex_salary":501.23},{"noindex_salary":459.47}]}}`,
},
{
`Test eq filter on non-indexed float`,
Expand All @@ -3126,7 +3126,7 @@ func TestFilterNonIndexedPredicate(t *testing.T) {
}
}
`,
`{"data":{"me":[{"noindex_salary":589.040000}]}}`,
`{"data":{"me":[{"noindex_salary":589.04}]}}`,
},
{
`Test eq filter on non-indexed bool`,
Expand All @@ -3153,7 +3153,7 @@ func TestFilterNonIndexedPredicate(t *testing.T) {
}
}
`,
`{"data":{"me":[{"friend":[{"name":"Rick Grimes","survival_rate":1.600000},{"name":"Glenn Rhee","survival_rate":1.600000},{"name":"Daryl Dixon","survival_rate":1.600000},{"name":"Andrea","survival_rate":1.600000}]}]}}`,
`{"data":{"me":[{"friend":[{"name":"Rick Grimes","survival_rate":1.6},{"name":"Glenn Rhee","survival_rate":1.6},{"name":"Daryl Dixon","survival_rate":1.6},{"name":"Andrea","survival_rate":1.6}]}]}}`,
},
}

Expand Down Expand Up @@ -3271,7 +3271,7 @@ func TestBetweenFloat(t *testing.T) {
}
}
`,
`{"data":{"me":[{"uid":"0x2710","salary":10000.000000},{"uid":"0x2712","salary":10002.000000}]}}`,
`{"data":{"me":[{"uid":"0x2710","salary":10000},{"uid":"0x2712","salary":10002}]}}`,
},
{
`Test between salary 1 result`,
Expand All @@ -3283,7 +3283,7 @@ func TestBetweenFloat(t *testing.T) {
}
}
`,
`{"data":{"me":[{"uid":"0x2712","salary":10002.000000}]}}`,
`{"data":{"me":[{"uid":"0x2712","salary":10002}]}}`,
},
{
`Test between salary empty response`,
Expand Down Expand Up @@ -3319,7 +3319,7 @@ func TestBetweenFloat(t *testing.T) {
}
}
`,
`{"data":{"me":[{"uid":"0x4e20","average":[46.930000,55.100000]},{"uid":"0x4e21","average":[35.200000,49.330000]}]}}`,
`{"data":{"me":[{"uid":"0x4e20","average":[46.93,55.1]},{"uid":"0x4e21","average":[35.2,49.33]}]}}`,
},
}

Expand Down
18 changes: 9 additions & 9 deletions query/query1_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -806,7 +806,7 @@ func TestMathVarAlias(t *testing.T) {
}
`
js := processQueryNoErr(t, query)
require.JSONEq(t, `{"data": {"f":[{"a":76.000000,"age":38},{"a":30.000000,"age":15},{"a":38.000000,"age":19}]}}`, js)
require.JSONEq(t, `{"data": {"f":[{"a":76,"age":38},{"a":30,"age":15},{"a":38,"age":19}]}}`, js)
}

func TestMathVarAlias2(t *testing.T) {
Expand All @@ -824,7 +824,7 @@ func TestMathVarAlias2(t *testing.T) {
}
`
js := processQueryNoErr(t, query)
require.JSONEq(t, `{"data": {"me":[{"age":38,"doubleAge":76.000000},{"age":15,"doubleAge":30.000000},{"age":19,"doubleAge":38.000000}],"me2":[{"val(a)":76.000000},{"val(a)":30.000000},{"val(a)":38.000000}]}}`, js)
require.JSONEq(t, `{"data": {"me":[{"age":38,"doubleAge":76},{"age":15,"doubleAge":30},{"age":19,"doubleAge":38}],"me2":[{"val(a)":76},{"val(a)":30},{"val(a)":38}]}}`, js)
}

func TestMathVar3(t *testing.T) {
Expand All @@ -842,7 +842,7 @@ func TestMathVar3(t *testing.T) {
}
`
js := processQueryNoErr(t, query)
require.JSONEq(t, `{"data": {"me":[{"age":38,"val(a)":76.000000},{"age":15,"val(a)":30.000000},{"age":19,"val(a)":38.000000}],"me2":[{"val(a)":76.000000},{"val(a)":30.000000},{"val(a)":38.000000}]}}`, js)
require.JSONEq(t, `{"data": {"me":[{"age":38,"val(a)":76},{"age":15,"val(a)":30},{"age":19,"val(a)":38}],"me2":[{"val(a)":76},{"val(a)":30},{"val(a)":38}]}}`, js)
}

func TestMultipleEquality(t *testing.T) {
Expand Down Expand Up @@ -1424,7 +1424,7 @@ func TestAggregateRoot2(t *testing.T) {
}
`
js := processQueryNoErr(t, query)
require.JSONEq(t, `{"data": {"me":[{"avg(val(a))":24.000000},{"min(val(a))":15},{"max(val(a))":38}]}}`, js)
require.JSONEq(t, `{"data": {"me":[{"avg(val(a))":24},{"min(val(a))":15},{"max(val(a))":38}]}}`, js)
}

func TestAggregateRoot3(t *testing.T) {
Expand Down Expand Up @@ -1460,7 +1460,7 @@ func TestAggregateRoot4(t *testing.T) {
}
`
js := processQueryNoErr(t, query)
require.JSONEq(t, `{"data": {"me":[{"min(val(a))":15},{"max(val(a))":38},{"Sum":53.000000}]}}`, js)
require.JSONEq(t, `{"data": {"me":[{"min(val(a))":15},{"max(val(a))":38},{"Sum":53}]}}`, js)
}

func TestAggregateRoot5(t *testing.T) {
Expand Down Expand Up @@ -1713,7 +1713,7 @@ func TestMathCeil2(t *testing.T) {
}
`
js := processQueryNoErr(t, query)
require.JSONEq(t, `{"data": {"me":[{"ceilAge":14.000000}]}}`, js)
require.JSONEq(t, `{"data": {"me":[{"ceilAge":14}]}}`, js)
}

func TestUidAttr(t *testing.T) {
Expand Down Expand Up @@ -1954,7 +1954,7 @@ func TestMultiSort4(t *testing.T) {
}`
js := processQueryNoErr(t, query)
// Null value for third Alice comes at last.
require.JSONEq(t, `{"data": {"me":[{"name":"Alice","age":25,"salary":10000.000000},{"name":"Alice","age":75,"salary":10002.000000},{"name":"Alice","age":75},{"name":"Bob","age":75},{"name":"Bob","age":25},{"name":"Colin","age":25},{"name":"Elizabeth","age":75},{"name":"Elizabeth","age":25}]}}`, js)
require.JSONEq(t, `{"data": {"me":[{"name":"Alice","age":25,"salary":10000},{"name":"Alice","age":75,"salary":10002},{"name":"Alice","age":75},{"name":"Bob","age":75},{"name":"Bob","age":25},{"name":"Colin","age":25},{"name":"Elizabeth","age":75},{"name":"Elizabeth","age":25}]}}`, js)
}

func TestMultiSort5(t *testing.T) {
Expand All @@ -1968,7 +1968,7 @@ func TestMultiSort5(t *testing.T) {
}`
js := processQueryNoErr(t, query)
// Null value for third Alice comes at first.
require.JSONEq(t, `{"data": {"me":[{"name":"Alice","age":75,"salary":10002.000000},{"name":"Alice","age":25,"salary":10000.000000},{"name":"Alice","age":75},{"name":"Bob","age":25},{"name":"Bob","age":75},{"name":"Colin","age":25},{"name":"Elizabeth","age":25},{"name":"Elizabeth","age":75}]}}`, js)
require.JSONEq(t, `{"data": {"me":[{"name":"Alice","age":75,"salary":10002},{"name":"Alice","age":25,"salary":10000},{"name":"Alice","age":75},{"name":"Bob","age":25},{"name":"Bob","age":75},{"name":"Colin","age":25},{"name":"Elizabeth","age":25},{"name":"Elizabeth","age":75}]}}`, js)
}

func TestMultiSort6Paginate(t *testing.T) {
Expand Down Expand Up @@ -2422,7 +2422,7 @@ func TestMathAlias(t *testing.T) {
}`

js := processQueryNoErr(t, query)
require.JSONEq(t, `{"data": {"me":[{"count(friend)":5,"score":6.000000,"name":"Michonne"}]}}`, js)
require.JSONEq(t, `{"data": {"me":[{"count(friend)":5,"score":6,"name":"Michonne"}]}}`, js)
}

func TestUidVariable(t *testing.T) {
Expand Down
Loading
Loading