xuyang created FLINK-34381:
------------------------------

             Summary: `RelDataType#getFullTypeString` should be used to print 
in `RelTreeWriterImpl` if `withRowType` is true instead of `Object#toString`
                 Key: FLINK-34381
                 URL: https://issues.apache.org/jira/browse/FLINK-34381
             Project: Flink
          Issue Type: Technical Debt
          Components: Table SQL / Planner
    Affects Versions: 1.9.0, 1.19.0
            Reporter: xuyang


Currently `RelTreeWriterImpl` use `rel.getRowType.toString` to print row type.
{code:java}
if (withRowType) {
  s.append(", rowType=[").append(rel.getRowType.toString).append("]")
} {code}
However, looking deeper into the code, we should use 
`rel.getRowType.getFullTypeString` to print the row type. Because the function 
`getFullTypeString` will print richer type information such as `nullable`. Take 
`StructuredRelDataType` as an example, the diff is below:
{code:java}
// source
util.addTableSource[(Long, Int, String)]("MyTable", 'a, 'b, 'c)

// sql
SELECT a, c FROM MyTable

// rel.getRowType.toString
RecordType(BIGINT a, VARCHAR(2147483647) c)

// rel.getRowType.getFullTypeString
RecordType(BIGINT a, VARCHAR(2147483647) CHARACTER SET "UTF-16LE" c) NOT 
NULL{code}
   



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to