wuchong commented on a change in pull request #12571: URL: https://github.com/apache/flink/pull/12571#discussion_r438551243
########## File path: docs/dev/table/connectors/formats/csv.md ########## @@ -167,159 +169,81 @@ Data Type Mapping Currently, the CSV schema is always derived from table schema. Explicitly defining an CSV schema is not supported yet. -Flink CSV format uses utility class `com.fasterxml.jackson.databind.node.ObjectNode` (for serialization) and `com.fasterxml.jackson.databind.JsonNode` (for deserialization) provided by `jackson` to convert Flink Data Types to and from CSV text. +Flink CSV format uses [jackson databind API](https://github.com/FasterXML/jackson-databind) to parse and generate CSV string. The following table lists the type mapping from Flink type to CSV type. <table class="table table-bordered"> <thead> <tr> <th class="text-left">Flink Data Type</th> - <th class="text-center">CSV conversion</th> + <th class="text-center">CSV Data Type</th> </tr> </thead> <tbody> - <tr> - <td>NULL</td> - <td> - {% highlight java %} - NullNode nullNode() - null - {% endhighlight %} - </td> - </tr> <tr> <td>CHAR / VARCHAR / STRING</td> - <td> - {% highlight java %} - TextNode textNode(String text) - String asText() - {% endhighlight %} - </td> + <td>string</td> </tr> <tr> <td>BOOLEAN</td> - <td> - {% highlight java %} - BooleanNode booleanNode(boolean v) - boolean asBoolean() - {% endhighlight %} - </td> + <td>boolean</td> </tr> <tr> <td>BINARY / VARBINARY</td> - <td> - {% highlight java %} - BinaryNode binaryNode(byte[] data) - byte[] binaryValue() - {% endhighlight %} - </td> + <td>string with encoding: base64</td> </tr> <tr> <td>DECIMAL</td> - <td> - {% highlight java %} - ValueNode numberNode(BigDecimal v) - BigDecimal decimalValue() - {% endhighlight %} - </td> + <td>number</td> </tr> <tr> <td>TINYINT</td> - <td> - {% highlight java %} - NumericNode numberNode(byte v) - byte Byte.parseByte(String s) - {% endhighlight %} - </td> + <td>number</td> </tr> <tr> <td>SMALLINT</td> - <td> - {% highlight java %} - NumericNode numberNode(short v) - short Short.parseShort(String s) - {% endhighlight %} - </td> + <td>number</td> </tr> <tr> - <td>INT/INTERVAL_YEAR_MONTH</td> - <td> - {% highlight java %} - NumericNode numberNode(int v) - int asInt() - {% endhighlight %} - </td> + <td>INT</td> + <td>number</td> </tr> <tr> - <td>BIGINT/INTERVAL_DAY_TIME</td> - <td> - {% highlight java %} - NumericNode numberNode(long v) - long asLong() - {% endhighlight %} - </td> + <td>BIGINT</td> + <td>number</td> </tr> <tr> <td>FLOAT</td> - <td> - {% highlight java %} - NumericNode numberNode(float v) - (float) double asDouble() - {% endhighlight %} - </td> + <td>number</td> </tr> <tr> <td>DOUBLE</td> - <td> - {% highlight java %} - NumericNode numberNode(double v) - double asDouble() - {% endhighlight %} - </td> + <td>number</td> </tr> <tr> <td>DATE</td> - <td> - {% highlight java %} - TextNode textNode(String isoLocalDate) - (int) Date.valueOf(String isoLocalDate) - {% endhighlight %} - </td> + <td>string with format: date</td> </tr> <tr> <td>TIME</td> - <td> - {% highlight java %} - TextNode textNode(String isoLocalTime) - LocalTime Time.valueOf(String isoLocalTime) - {% endhighlight %} - </td> + <td>string with format: time</td> </tr> <tr> <td>TIMESTAMP</td> - <td> - {% highlight java %} - TextNode textNode(String isoLocalDateTime) - Timestamp Timestamp.valueOf(String isoLocalDateTime) - {% endhighlight %} - </td> + <td>string with format: date-time</td> + </tr> + <tr> + <td>INTERVAL</td> + <td>number</td> </tr> <tr> <td>ARRAY</td> - <td> - {% highlight java %} - JsonNode get(int index) // For each array item, only deserialization supported. - {% endhighlight %} - </td> + <td>array <span class="label label-danger">Note</span> only deserialization is supported.</td> </tr> <tr> <td>ROW</td> - <td> - {% highlight java %} - JsonNode get(String fieldName) // For each field, only deserialization supported. - {% endhighlight %} - </td> + <td>object <span class="label label-danger">Note</span> only deserialization is supported.</td> Review comment: Both are supported? ########## File path: docs/dev/table/connectors/formats/csv.md ########## @@ -167,159 +169,81 @@ Data Type Mapping Currently, the CSV schema is always derived from table schema. Explicitly defining an CSV schema is not supported yet. -Flink CSV format uses utility class `com.fasterxml.jackson.databind.node.ObjectNode` (for serialization) and `com.fasterxml.jackson.databind.JsonNode` (for deserialization) provided by `jackson` to convert Flink Data Types to and from CSV text. +Flink CSV format uses [jackson databind API](https://github.com/FasterXML/jackson-databind) to parse and generate CSV string. The following table lists the type mapping from Flink type to CSV type. <table class="table table-bordered"> <thead> <tr> <th class="text-left">Flink Data Type</th> - <th class="text-center">CSV conversion</th> + <th class="text-center">CSV Data Type</th> </tr> </thead> <tbody> - <tr> - <td>NULL</td> - <td> - {% highlight java %} - NullNode nullNode() - null - {% endhighlight %} - </td> - </tr> <tr> <td>CHAR / VARCHAR / STRING</td> - <td> - {% highlight java %} - TextNode textNode(String text) - String asText() - {% endhighlight %} - </td> + <td>string</td> </tr> <tr> <td>BOOLEAN</td> - <td> - {% highlight java %} - BooleanNode booleanNode(boolean v) - boolean asBoolean() - {% endhighlight %} - </td> + <td>boolean</td> </tr> <tr> <td>BINARY / VARBINARY</td> - <td> - {% highlight java %} - BinaryNode binaryNode(byte[] data) - byte[] binaryValue() - {% endhighlight %} - </td> + <td>string with encoding: base64</td> </tr> <tr> <td>DECIMAL</td> - <td> - {% highlight java %} - ValueNode numberNode(BigDecimal v) - BigDecimal decimalValue() - {% endhighlight %} - </td> + <td>number</td> </tr> <tr> <td>TINYINT</td> - <td> - {% highlight java %} - NumericNode numberNode(byte v) - byte Byte.parseByte(String s) - {% endhighlight %} - </td> + <td>number</td> </tr> <tr> <td>SMALLINT</td> - <td> - {% highlight java %} - NumericNode numberNode(short v) - short Short.parseShort(String s) - {% endhighlight %} - </td> + <td>number</td> </tr> <tr> - <td>INT/INTERVAL_YEAR_MONTH</td> - <td> - {% highlight java %} - NumericNode numberNode(int v) - int asInt() - {% endhighlight %} - </td> + <td>INT</td> + <td>number</td> </tr> <tr> - <td>BIGINT/INTERVAL_DAY_TIME</td> - <td> - {% highlight java %} - NumericNode numberNode(long v) - long asLong() - {% endhighlight %} - </td> + <td>BIGINT</td> + <td>number</td> </tr> <tr> <td>FLOAT</td> - <td> - {% highlight java %} - NumericNode numberNode(float v) - (float) double asDouble() - {% endhighlight %} - </td> + <td>number</td> </tr> <tr> <td>DOUBLE</td> - <td> - {% highlight java %} - NumericNode numberNode(double v) - double asDouble() - {% endhighlight %} - </td> + <td>number</td> </tr> <tr> <td>DATE</td> - <td> - {% highlight java %} - TextNode textNode(String isoLocalDate) - (int) Date.valueOf(String isoLocalDate) - {% endhighlight %} - </td> + <td>string with format: date</td> </tr> <tr> <td>TIME</td> - <td> - {% highlight java %} - TextNode textNode(String isoLocalTime) - LocalTime Time.valueOf(String isoLocalTime) - {% endhighlight %} - </td> + <td>string with format: time</td> </tr> <tr> <td>TIMESTAMP</td> - <td> - {% highlight java %} - TextNode textNode(String isoLocalDateTime) - Timestamp Timestamp.valueOf(String isoLocalDateTime) - {% endhighlight %} - </td> + <td>string with format: date-time</td> + </tr> + <tr> + <td>INTERVAL</td> + <td>number</td> </tr> <tr> <td>ARRAY</td> - <td> - {% highlight java %} - JsonNode get(int index) // For each array item, only deserialization supported. - {% endhighlight %} - </td> + <td>array <span class="label label-danger">Note</span> only deserialization is supported.</td> Review comment: Both are supported? ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: [email protected]
