paul-rogers commented on PR #13106:
URL: https://github.com/apache/druid/pull/13106#issuecomment-1276829856

   By popular demand, here is the example from the PR description converted to 
YAML:
   
   ```yaml
   cases:
     - name:  SELECT constant array expression from table
       description: Converted from testSelectConstantArrayExpressionFromTable()
       input:
         sql: |
           SELECT ARRAY[1,2] as arr, dim1 
           FROM foo 
           LIMIT 1
   
         options:
           sqlCompatibleNulls: both
           vectorize: true
       expected:
         schema:
           - name: arr
             type: INTEGER ARRAY
           - name: dim1 
             Type: VARCHAR
         plan: |
           LogicalSort(fetch=[1])
             LogicalProject(arr=[ARRAY(1, 2)], dim1=[$2])
               LogicalTableScan(table=[[druid, foo]])
   
         native: |
           {
             "queryType" : "scan",
             "dataSource" : {
               "type" : "table",
               "name" : "foo"
             },
             "intervals" : {
               "type" : "intervals",
               "intervals" : [ 
"-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ]
             },
             "virtualColumns" : [ {
               "type" : "expression",
               "name" : "v0",
               "expression" : "array(1,2)",
               "outputType" : "ARRAY<LONG>"
             } ],
             "resultFormat" : "compactedList",
             "limit" : 1,
             "columns" : [ "dim1", "v0" ],
             "legacy" : false,
             "granularity" : {
               "type" : "all"
             }
           }
   
         results:
           - ["[1,2]",""]
   ```
   
   Some thoughts:
   
   * It works. Validated with [Yamllint](http://www.yamllint.com/).
   * Easier to handle the structured bits (name, description, options, context).
   * The fact that literal text has to be indented is a nuisance.
   * The result does not really solve the "wall of text" issue that folks 
raised about the proposed format.
   
   One alternative is to use YAML for the structured stuff, text for the other 
stuff. But, that ends up pretty much with the format  that is proposed with a 
few less sections:
   
   ```text
   ==============================================================
   name:  SELECT constant array expression from table
   description: Converted from testSelectConstantArrayExpressionFromTable()
   options:
       sqlCompatibleNulls: both
       vectorize: true
   === SQL
   ...
   === schema
   ...
   === plan
   ...
   === native
   ...
   ```
   
   Here, 4 (or more) equals signs introduces a new test case, where the first 
section is YAML. The other sections are as defined before. I'm not sure this is 
a huge win.
   
   Thoughts?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to