title: Using ROW() for nested data structure
body: <p>I've been successfully using JsonRowSerializationSchema from the flink-json artifact to create a <code>TableSink&lt;Row&gt;</code> and output json from SQL using ROW. It works great for emitting <em>flat</em> data:</p>
  
  <pre><code>INSERT INTO outputTable 
  SELECT 
    ROW(col1, col1)
  FROM inputTable
  &gt;&gt;&gt;&gt; OK:
  {"outCol1":"dasdasdas","outCol2":"dasdasdas"}
  </code></pre>
  
  <p>Now, I'm trying a nested schema and it breaks apart in a weird way:</p>
  
  <pre><code>INSERT INTO outputTable 
  SELECT 
    ROW('ttt', ROW('ppp'))
  FROM inputTable
  &gt;&gt;&gt;&gt; OK:
  {"outCol1":"ttt","outCol2":{"outCol3":"ppp"}}
  </code></pre>
  
  <hr>
  
  <pre><code>INSERT INTO outputTable 
  SELECT 
    ROW('ttt', ROW(col1))
  FROM inputTable
  &gt;&gt;&gt;&gt; OK:
  {"outCol1":"ttt","outCol2":{"outCol3":"dasdasdas"}}
  </code></pre>
  
  <hr>
  
  <pre><code>INSERT INTO outputTable 
  SELECT 
    ROW(col1, ROW(col1))
  FROM inputTable
  &gt;&gt;&gt;&gt; KO
  </code></pre>
  
  <p>It is a parsing problem, but I'm baffled as to why it could happen. col1 and 'ttt' are of String type expressions, and should be substitutable; but somehow the parser is perturbed by the following ROW, as the stacktrace say:</p>
  
  <pre><code>Caused by: org.apache.calcite.sql.parser.impl.ParseException: Encountered ", ROW" at line 3, column 11.
  Was expecting one of:
      ")" ...
      "," &lt;IDENTIFIER&gt; ...
      "," &lt;QUOTED_IDENTIFIER&gt; ...
      "," &lt;BACK_QUOTED_IDENTIFIER&gt; ...
      "," &lt;BRACKET_QUOTED_IDENTIFIER&gt; ...
      "," &lt;UNICODE_QUOTED_IDENTIFIER&gt; ...
  
      at org.apache.calcite.sql.parser.impl.SqlParserImpl.generateParseException(SqlParserImpl.java:23019)
      at org.apache.calcite.sql.parser.impl.SqlParserImpl.jj_consume_token(SqlParserImpl.java:22836)
      at org.apache.calcite.sql.parser.impl.SqlParserImpl.ParenthesizedSimpleIdentifierList(SqlParserImpl.java:4466)
      at org.apache.calcite.sql.parser.impl.SqlParserImpl.Expression3(SqlParserImpl.java:3328)
      at org.apache.calcite.sql.parser.impl.SqlParserImpl.Expression2b(SqlParserImpl.java:3066)
      at org.apache.calcite.sql.parser.impl.SqlParserImpl.Expression2(SqlParserImpl.java:3092)
      at org.apache.calcite.sql.parser.impl.SqlParserImpl.Expression(SqlParserImpl.java:3045)
      at ...
  </code></pre>
  
  <p>Am I missing something about the syntax? What is the parser trying to do? Should I be using ROW() in another way?</p>
  
  <p>Is this a bug?</p>