[FLINK-18090][core][table] Update Row#toString and provide legacy util
This updates the Row.toString method to provide a good summary string. In particular it fixes the following issues: Changeflag: According to FLIP-95, a row describes an entry in a changelog. Therefore, it should visible whether a row is an insert, delete, or update change. Now indicated with +I, -D, +U, -U. Nested rows: In the old implementation it was not visible whether nested rows exist or not due to missing start/end boundaries. Now indicated with [...] or {...}. Positioned rows vs. named rows: According to FLIP-136, it should be visible whether a row operates in name-based or position-based field mode. Now indicated with [...] or {...}. Nested arrays in maps and lists: In the old implementation arrays in maps or lists could not be represented. Wrong formatting: Most programming languages use a space after a comma. This is an incompatible change. If the legacy representation is still required for tests, the old behavior can be restored via the flag RowUtils.USE_LEGACY_TO_STRING for the local JVM. However, relying on the row's string representation for tests is not a good idea in general as field data types are not verified.
Showing
想要评论请 注册 或 登录