@@ -30,10 +30,26 @@ public void init() throws IOException {
3030
3131  @ Test 
3232  public  void  testBasicProjection () throws  IOException  {
33-     JSONObject  result  =
34-         executeQuery (
35-             source (TEST_INDEX_DYNAMIC , "fields firstname, lastname, department, salary | head 1" ));
33+     String  query  =
34+         source (TEST_INDEX_DYNAMIC , "fields firstname, lastname, department, salary | head 1" );
35+     assertExplainYaml (
36+         query ,
37+         "calcite:\n " 
38+             + "  logical: |\n " 
39+             + "    LogicalSystemLimit(fetch=[200], type=[QUERY_SIZE_LIMIT])\n " 
40+             + "      LogicalSort(fetch=[1])\n " 
41+             + "        LogicalProject(firstname=[$0], lastname=[$2], department=[ITEM($9," 
42+             + " 'department')], salary=[ITEM($9, 'salary')])\n " 
43+             + "          CalciteLogicalIndexScan(table=[[OpenSearch, test_dynamic_fields]])\n " 
44+             + "  physical: |\n " 
45+             + "    EnumerableLimit(fetch=[200])\n " 
46+             + "      EnumerableCalc(expr#0..9=[{inputs}], expr#10=['department']," 
47+             + " expr#11=[ITEM($t9, $t10)], expr#12=['salary'], expr#13=[ITEM($t9, $t12)]," 
48+             + " firstname=[$t0], lastname=[$t2], department=[$t11], salary=[$t13])\n " 
49+             + "        EnumerableLimit(fetch=[1])\n " 
50+             + "          CalciteEnumerableIndexScan(table=[[OpenSearch, test_dynamic_fields]])\n " );
3651
52+     JSONObject  result  = executeQuery (query );
3753    verifySchema (
3854        result ,
3955        schema ("firstname" , "string" ),
@@ -45,12 +61,31 @@ public void testBasicProjection() throws IOException {
4561
4662  @ Test 
4763  public  void  testEval () throws  IOException  {
48-     JSONObject  result  =
49-         executeQuery (
50-             source (
51-                 TEST_INDEX_DYNAMIC ,
52-                 "eval salary = cast(salary as int) * 2 | fields firstname," 
53-                     + " lastname, salary | head 1" ));
64+     String  query  =
65+         source (
66+             TEST_INDEX_DYNAMIC ,
67+             "eval salary = cast(salary as int) * 2 | fields firstname," 
68+                 + " lastname, salary | head 1" );
69+ 
70+     assertExplainYaml (
71+         query ,
72+         "calcite:\n " 
73+             + "  logical: |\n " 
74+             + "    LogicalSystemLimit(fetch=[200], type=[QUERY_SIZE_LIMIT])\n " 
75+             + "      LogicalSort(fetch=[1])\n " 
76+             + "        LogicalProject(firstname=[$0], lastname=[$2], salary=[*(SAFE_CAST(ITEM($9," 
77+             + " 'salary')), 2)])\n " 
78+             + "          CalciteLogicalIndexScan(table=[[OpenSearch, test_dynamic_fields]])\n " 
79+             + "  physical: |\n " 
80+             + "    EnumerableLimit(fetch=[200])\n " 
81+             + "      EnumerableCalc(expr#0..9=[{inputs}], expr#10=['salary'], expr#11=[ITEM($t9," 
82+             + " $t10)], expr#12=[SAFE_CAST($t11)], expr#13=[2], expr#14=[*($t12, $t13)]," 
83+             + " firstname=[$t0], lastname=[$t2], salary=[$t14])\n " 
84+             + "        EnumerableLimit(fetch=[1])\n " 
85+             + "          CalciteEnumerableIndexScan(table=[[OpenSearch, test_dynamic_fields]])\n " 
86+             + "" );
87+ 
88+     JSONObject  result  = executeQuery (query );
5489
5590    verifySchema (
5691        result ,
@@ -67,8 +102,8 @@ private void createTestIndexWithUnmappedFields() throws IOException {
67102    String  mapping  =
68103        "{" 
69104            + "\" mappings\" : {" 
70-             +  "   \" dynamic \" : false,"   // Disable dynamic mapping - extra fields won't be indexed but 
71-             // will be stored 
105+             // Disable dynamic mapping - extra fields won't be indexed but will be stored  
106+             +  "   \" dynamic \" : false," 
72107            + "  \" properties\" : {" 
73108            + "    \" firstname\" : {\" type\" : \" text\" }," 
74109            + "    \" lastname\" : {\" type\" : \" text\" }," 
0 commit comments