[ASTERIXDB-3522][COMP] Invalid sample query generated

- user model changes: no
- storage format changes: no
- interface changes: no

Ext-ref: MB-64066

Change-Id: I5504e494c72dab692607f26d33839b280c4a3fcc
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19025
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Peeyush Gupta <peeyush.gupta@couchbase.com>
Reviewed-by: Vijay Sarathy <vijay.sarathy@couchbase.com>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java
index d6ea457..2c430b1 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java
@@ -613,14 +613,14 @@
                 if (selectivityAnnotation != null) {
                     sel = selectivityAnnotation.getSelectivity();
                 } else {
-                    if (leafInput.getOperatorTag().equals(LogicalOperatorTag.SELECT)) {
-                        selOp = (SelectOperator) joinEnum.getStatsHandle().findSelectOpWithExpr(leafInput, afce);
-                        if (selOp == null) {
+                    selOp = (SelectOperator) joinEnum.getStatsHandle().findSelectOpWithExpr(leafInput, afce);
+                    if (selOp == null) {
+                        if (leafInput.getOperatorTag().equals(LogicalOperatorTag.SELECT)) {
                             selOp = (SelectOperator) leafInput;
+                        } else {
+                            selOp = new SelectOperator(new MutableObject<>(afce));
+                            selOp.getInputs().add(new MutableObject<>(leafInput));
                         }
-                    } else {
-                        selOp = new SelectOperator(new MutableObject<>(afce));
-                        selOp.getInputs().add(new MutableObject<>(leafInput));
                     }
                     sel = joinEnum.getStatsHandle().findSelectivityForThisPredicate(selOp, afce,
                             chosenIndex.getIndexType().equals(DatasetConfig.IndexType.ARRAY)
diff --git a/asterixdb/asterix-app/src/test/resources/cc-analyze.conf b/asterixdb/asterix-app/src/test/resources/cc-analyze.conf
index 16fa0ae..93a4d15 100644
--- a/asterixdb/asterix-app/src/test/resources/cc-analyze.conf
+++ b/asterixdb/asterix-app/src/test/resources/cc-analyze.conf
@@ -54,3 +54,4 @@
 log.level = INFO
 compiler.groupmemory=64MB
 storage.buffercache.pagesize=32KB
+compiler.internal.sanitycheck=true
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/object_add/object_add.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/object_add/object_add.7.query.sqlpp
index 71f6974..c593461 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/object_add/object_add.7.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/object_add/object_add.7.query.sqlpp
@@ -18,7 +18,10 @@
  */
 
 // For OBJECT_ADD.
+// ASTERIXDB-3522 disable parallel sort. enable when fixed
+
 USE     TestDataverse;
+set `compiler.sort.parallel` "false";
 LET     openUValues = (
           FROM    UsersOpen U2
           WHERE   U2._id = 4
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/object_put/object_put.7.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/object_put/object_put.7.query.sqlpp
index 52943a0..8525e24 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/object_put/object_put.7.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/object_put/object_put.7.query.sqlpp
@@ -18,7 +18,10 @@
  */
 
 // For OBJECT_PUT.
+// ASTERIXDB-3522 disable parallel sort. enable when fixed
+
 USE     TestDataverse;
+set `compiler.sort.parallel` "false";
 LET     openUValues = (
           FROM    UsersOpen U2
           WHERE   U2._id = 4