Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Add new getTargetColumns to DynamicTableSink#Context.

Code Block
languagejava
            /**
         * Returns an {@link Optional} array of column index paths related to user specified target
 column list or an
     * column list or *an empty array when not specified. The array indices are 0-based and support
 composite columns
       * composite *columns within (possibly nested) structures.
         *
         * <p>This information comes from the column list of the DML clause, e.g., for a sink table
         * t1 which schema is: {@code a STRING, b ROW < b1 INT, b2 STRING>, c BIGINT}
         *
         * <ul>
         *   <li>insert: 'insert into t1(a, b.b2) ...', the column list will be 'a, b.b2', and will
         *       return {@code [[0], [1, 1]]}. The column list will be empty for 'insert into target
         *       select ...'.
         *   <li>update: 'update target set a=1, b.b1=2 where ...', the column list will be 'a,
         *       b.b1', will return {@code [[0], [1, 0]]}.
         * </ul>
         *
         * <p>Note: will always return empty array for the delete statement because it has no column
         * list.
         */
        intOptional<int[][]> getTargetColumns();


Proposed Changes

...