{
  "flinkVersion" : "2.1",
  "nodes" : [ {
    "id" : 1,
    "type" : "stream-exec-table-source-scan_1",
    "scanTableSource" : {
      "table" : {
        "identifier" : "`default_catalog`.`default_database`.`source_t`",
        "resolvedTable" : {
          "schema" : {
            "columns" : [ {
              "name" : "a",
              "dataType" : "VARCHAR(2147483647) NOT NULL"
            }, {
              "name" : "b",
              "dataType" : "INT NOT NULL"
            }, {
              "name" : "c",
              "dataType" : "VARCHAR(2147483647)"
            } ],
            "watermarkSpecs" : [ ],
            "primaryKey" : {
              "name" : "PK_a",
              "type" : "PRIMARY_KEY",
              "columns" : [ "a" ]
            }
          },
          "partitionKeys" : [ ]
        }
      },
      "abilities" : [ {
        "type" : "FilterPushDown",
        "predicates" : [ ]
      } ]
    },
    "outputType" : "ROW<`a` VARCHAR(2147483647) NOT NULL, `b` INT NOT NULL, `c` VARCHAR(2147483647)>",
    "description" : "TableSourceScan(table=[[default_catalog, default_database, source_t, filter=[]]], fields=[a, b, c])",
    "inputProperties" : [ ]
  }, {
    "id" : 2,
    "type" : "stream-exec-exchange_1",
    "inputProperties" : [ {
      "requiredDistribution" : {
        "type" : "HASH",
        "keys" : [ 0 ]
      },
      "damBehavior" : "PIPELINED",
      "priority" : 0
    } ],
    "outputType" : "ROW<`a` VARCHAR(2147483647) NOT NULL, `b` INT NOT NULL, `c` VARCHAR(2147483647)>",
    "description" : "Exchange(distribution=[hash[a]])"
  }, {
    "id" : 3,
    "type" : "stream-exec-changelog-normalize_1",
    "configuration" : {
      "table.exec.mini-batch.enabled" : "false",
      "table.exec.mini-batch.size" : "-1"
    },
    "uniqueKeys" : [ 0 ],
    "generateUpdateBefore" : true,
    "state" : [ {
      "index" : 0,
      "ttl" : "0 ms",
      "name" : "changelogNormalizeState"
    } ],
    "inputProperties" : [ {
      "requiredDistribution" : {
        "type" : "UNKNOWN"
      },
      "damBehavior" : "PIPELINED",
      "priority" : 0
    } ],
    "outputType" : "ROW<`a` VARCHAR(2147483647) NOT NULL, `b` INT NOT NULL, `c` VARCHAR(2147483647)>",
    "description" : "ChangelogNormalize(key=[a], condition=[(b < 10)])",
    "filterCondition" : {
      "kind" : "CALL",
      "syntax" : "BINARY",
      "internalName" : "$<$1",
      "operands" : [ {
        "kind" : "INPUT_REF",
        "inputIndex" : 1,
        "type" : "INT NOT NULL"
      }, {
        "kind" : "LITERAL",
        "value" : 10,
        "type" : "INT NOT NULL"
      } ],
      "type" : "BOOLEAN NOT NULL"
    }
  }, {
    "id" : 4,
    "type" : "stream-exec-sink_1",
    "configuration" : {
      "table.exec.sink.keyed-shuffle" : "AUTO",
      "table.exec.sink.not-null-enforcer" : "ERROR",
      "table.exec.sink.rowtime-inserter" : "ENABLED",
      "table.exec.sink.type-length-enforcer" : "IGNORE",
      "table.exec.sink.upsert-materialize" : "AUTO"
    },
    "dynamicTableSink" : {
      "table" : {
        "identifier" : "`default_catalog`.`default_database`.`sink_t`",
        "resolvedTable" : {
          "schema" : {
            "columns" : [ {
              "name" : "a",
              "dataType" : "VARCHAR(2147483647)"
            }, {
              "name" : "b",
              "dataType" : "INT"
            }, {
              "name" : "c",
              "dataType" : "VARCHAR(2147483647)"
            } ],
            "watermarkSpecs" : [ ]
          },
          "partitionKeys" : [ ]
        }
      }
    },
    "inputChangelogMode" : [ "INSERT", "UPDATE_BEFORE", "UPDATE_AFTER", "DELETE" ],
    "inputUpsertKey" : [ 0 ],
    "inputProperties" : [ {
      "requiredDistribution" : {
        "type" : "UNKNOWN"
      },
      "damBehavior" : "PIPELINED",
      "priority" : 0
    } ],
    "outputType" : "ROW<`a` VARCHAR(2147483647) NOT NULL, `b` INT NOT NULL, `c` VARCHAR(2147483647)>",
    "description" : "Sink(table=[default_catalog.default_database.sink_t], fields=[a, b, c])"
  } ],
  "edges" : [ {
    "source" : 1,
    "target" : 2,
    "shuffle" : {
      "type" : "FORWARD"
    },
    "shuffleMode" : "PIPELINED"
  }, {
    "source" : 2,
    "target" : 3,
    "shuffle" : {
      "type" : "FORWARD"
    },
    "shuffleMode" : "PIPELINED"
  }, {
    "source" : 3,
    "target" : 4,
    "shuffle" : {
      "type" : "FORWARD"
    },
    "shuffleMode" : "PIPELINED"
  } ]
}