[
https://issues.apache.org/jira/browse/CALCITE-3120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16863667#comment-16863667
]
Andrei Sereda commented on CALCITE-3120:
----------------------------------------
Yes order shouldn't matter (after {{$group}}).
I think the problem is that this test is run only on real mongo (see
{{MongoAssertions.assumeRealMongoInstance()}}) at some point Project / Sort
expression order changed upstream and the test wasn't updated.
On the positive side, I might have found an alternative to
[fongo|https://github.com/fakemongo/fongo] where all integration tests pass. If
so, we may not need "double mongo" test configuration as before (real vs fongo).
Otherwise I'm not sure what is best way to keep string query checker up-to-date
in calcite. Eg. sometimes it may rewrite {{A = B}} into {{B = A}} and the test
will fail.
> MongoAdapterTest.testGroupByAvgSumCount fails due the order of sort query
> -------------------------------------------------------------------------
>
> Key: CALCITE-3120
> URL: https://issues.apache.org/jira/browse/CALCITE-3120
> Project: Calcite
> Issue Type: Bug
> Components: mongodb-adapter
> Affects Versions: 1.19.0
> Reporter: Stamatis Zampetakis
> Assignee: Stamatis Zampetakis
> Priority: Major
>
> The MongoAdapterTest.testGroupByAvgSumCount fails because $sort operator does
> not appear at the middle of the query but in the end.
> {noformat}
> org.junit.ComparisonFailure:
> expected and actual Mongo queries (pipelines) do not match
> expected:<...$project" : {
> "[POP" : "$pop",
> "STATE" : "$state"
> }
> }
> {
> "$group" : {
> "_id" : "$STATE",
> "_1" : {
> "$sum" : "$POP"
> },
> "_2" : {
> "$sum" : {
> "$cond" : [{
> "$eq" : ["POP", null]
> }, 0, 1]
> }
> }
> }
> }
> {
> "$project" : {
> "STATE" : "$_id",
> "_1" : "$_1",
> "_2" : "$_2"
> }
> }
> {
> "$sort" : {
> "STATE" : 1
> }
> }
> {
> "$project" : {
> "STATE" : 1,
> "A" : {
> "$divide" : [{
> "$cond" : [{
> "$eq" : ["$_2", {
> "$literal" : 0
> }]
> }, null, "$_1"]
> }, "$_2"]
> },
> "S" : {
> "$cond" : [{
> "$eq" : ["$_2", {
> "$literal" : 0
> }]
> }, null, "$_1"]
> },
> "C" : "$_2"]
> }
> }> but was:<...$project" : {
> "[STATE" : "$state",
> "POP" : "$pop"
> }
> }
> {
> "$group" : {
> "_id" : "$STATE",
> "_1" : {
> "$sum" : "$POP"
> },
> "_2" : {
> "$sum" : {
> "$cond" : [{
> "$eq" : ["POP", null]
> }, 0, 1]
> }
> }
> }
> }
> {
> "$project" : {
> "STATE" : "$_id",
> "_1" : "$_1",
> "_2" : "$_2"
> }
> }
> {
> "$project" : {
> "STATE" : 1,
> "A" : {
> "$divide" : [{
> "$cond" : [{
> "$eq" : ["$_2", {
> "$literal" : 0
> }]
> }, null, "$_1"]
> }, "$_2"]
> },
> "S" : {
> "$cond" : [{
> "$eq" : ["$_2", {
> "$literal" : 0
> }]
> }, null, "$_1"]
> },
> "C" : "$_2"
> }
> }
> {
> "$sort" : {
> "STATE" : 1]
> }
> }>
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)