{
  "status": "ROOT_REVIEW_REQUIRED_SOURCE_ONLY_NO_DB_EXECUTION",
  "target": "DM127.0.0.1:5237/ZHCT_APP.YDY_FOODS_COMPOSITION",
  "runtime": "/tmp/cdx-food-date-root-20261011",
  "budget": {
    "read": 46,
    "DDL": 2,
    "DML": 0,
    "HTTP": 0,
    "Auth": 0
  },
  "baseline": {
    "files": {
      "date-fresh-private.json": "e9f18d50843a0375a9a0c5d7387698fd66db2d67261ccfc405a4a5350b0190f0",
      "date-before62.jsonl": "495503d3f6e6a9899a8a44789946c0882b483f639348e2aadd8db64a401dfc89",
      "date-map0.jsonl": "de6ea9d74cfc60b2c95eda7b89ff0fc23bef9435dd8f5e4d6ce68e0c2e087a9d",
      "date-after62.jsonl": "495503d3f6e6a9899a8a44789946c0882b483f639348e2aadd8db64a401dfc89"
    },
    "rows": 2338,
    "columns": 62,
    "other_columns": 60,
    "actual_CAST0_changed": {
      "create_time": 0,
      "update_time": 0
    },
    "expected_owned_dependencies": [
      {
        "owner": "ZHCT_APP",
        "name": "TRG_YDY_FOODS_COMPOSITION_UT",
        "type": "TRIGGER",
        "referenced_owner": "ZHCT_APP",
        "referenced_name": "YDY_FOODS_COMPOSITION",
        "referenced_type": "TABLE",
        "referenced_link_name": null,
        "schemaid": "150995944",
        "dependency_type": "HARD"
      }
    ],
    "dependency_template_source": {
      "SHA256": "7235505367496cf281c30ea7c2fb570b850a31ee747d2d8c0dcd16b645337aca",
      "phase": "Prepay actual after_trigger_stable",
      "mapping_only": "name/referenced_name; expected template not fabricated Food evidence"
    }
  },
  "trigger": "TRG_YDY_FOODS_COMPOSITION_UT",
  "trigger_fields": {
    "numeric": [
      "ID",
      "EDIBLE_PART",
      "FOODS_STATUS",
      "GAS_FOOD",
      "CATEGORY",
      "MINUTE_SORT",
      "RECLASSIFY",
      "SFA",
      "MUFA",
      "PUFA",
      "CHOLESTEROL",
      "VA",
      "RENIERATENE",
      "RETINOL",
      "VB1",
      "VB2",
      "VPP",
      "VC",
      "VE",
      "FOLIC_ACID",
      "BIOTIN",
      "PANTOTHENIC_ACID",
      "CHOLINE",
      "POTASSIUM",
      "SODIUM",
      "CALCIUM",
      "MAGNESIUM",
      "IRON",
      "ZINC",
      "SELENIUM",
      "CATEGORY_TWO",
      "CATEGORY_THREE",
      "ENERGY",
      "CARBOHYDRATE",
      "PROTEIN",
      "FAT",
      "COOKING_FOOD",
      "COMMON_INGREDIENTS",
      "PURINE",
      "DIETARY_FIBER",
      "MOISTURE",
      "ASH",
      "GI",
      "GL",
      "IODINE",
      "PHOSPHORUS",
      "CUPRUM",
      "MANGANESE",
      "STORE_ID",
      "DISH_QUANTITY",
      "ORI_ID",
      "AI_FOODS_ID",
      "IS_DELETE",
      "CONDIMENT_STATE"
    ],
    "varchar": [
      "NAME",
      "EN_NAME",
      "SUB_NAME",
      "REGION",
      "PLACE",
      "CREATE_BY"
    ],
    "datetime": [
      "CREATE_TIME"
    ],
    "count": 61
  },
  "DDL_files": {
    "alter": {
      "path": "alter-food-two-date.sql",
      "SHA256": "166215f849f7d35baac91c46b0ca6dfda082eb0400ab671200593d2f1628c942"
    },
    "create_trigger": {
      "path": "create-food-trigger.sql",
      "SHA256": "dabcfd3189db8f4f4ce631a728ade640d67bce2c8a3f4b5b88a848d1bcd6f52b"
    }
  },
  "steps": [
    {
      "ordinal": 1,
      "kind": "read",
      "phase": "pre",
      "label": "identity",
      "SQL": "SELECT SYS_CONTEXT('USERENV','CURRENT_SCHEMA') AS db FROM DUAL",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 2,
      "kind": "read",
      "phase": "pre",
      "label": "version",
      "SQL": "SELECT * FROM V$VERSION",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 3,
      "kind": "read",
      "phase": "pre",
      "label": "columns",
      "SQL": "SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME=? ORDER BY COLUMN_ID",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 4,
      "kind": "read",
      "phase": "pre",
      "label": "table_ddl",
      "SQL": "SELECT DBMS_METADATA.GET_DDL('TABLE',?,'ZHCT_APP') AS ddl FROM DUAL",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 5,
      "kind": "read",
      "phase": "pre",
      "label": "indexes",
      "SQL": "SELECT * FROM USER_INDEXES WHERE TABLE_NAME=? ORDER BY INDEX_NAME",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 6,
      "kind": "read",
      "phase": "pre",
      "label": "index_columns",
      "SQL": "SELECT * FROM USER_IND_COLUMNS WHERE TABLE_NAME=? ORDER BY INDEX_NAME,COLUMN_POSITION",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 7,
      "kind": "read",
      "phase": "pre",
      "label": "constraints",
      "SQL": "SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME=? OR CONSTRAINT_TYPE='R' ORDER BY TABLE_NAME,CONSTRAINT_NAME",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 8,
      "kind": "read",
      "phase": "pre",
      "label": "constraint_columns",
      "SQL": "SELECT * FROM USER_CONS_COLUMNS WHERE TABLE_NAME=? OR CONSTRAINT_NAME IN (SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE CONSTRAINT_TYPE='R') ORDER BY TABLE_NAME,CONSTRAINT_NAME,POSITION",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 9,
      "kind": "read",
      "phase": "pre",
      "label": "triggers",
      "SQL": "SELECT * FROM USER_TRIGGERS WHERE TABLE_NAME=?",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 10,
      "kind": "read",
      "phase": "pre",
      "label": "objects",
      "SQL": "SELECT OBJECT_NAME,OBJECT_TYPE,STATUS FROM USER_OBJECTS WHERE OBJECT_NAME IN (?,?) ORDER BY OBJECT_NAME",
      "binds": [
        "YDY_FOODS_COMPOSITION",
        "TRG_YDY_FOODS_COMPOSITION_UT"
      ],
      "PDO_types": [
        2,
        2
      ]
    },
    {
      "ordinal": 11,
      "kind": "read",
      "phase": "pre",
      "label": "dependencies",
      "SQL": "SELECT * FROM USER_DEPENDENCIES WHERE REFERENCED_OWNER=? AND REFERENCED_NAME=?",
      "binds": [
        "ZHCT_APP",
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2,
        2
      ]
    },
    {
      "ordinal": 12,
      "kind": "read",
      "phase": "pre",
      "label": "rows_before",
      "SQL": "SELECT * FROM ydy_foods_composition ORDER BY id",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 13,
      "kind": "read",
      "phase": "pre",
      "label": "map0",
      "SQL": "SELECT ID,TO_CHAR(CREATE_TIME,'YYYY-MM-DD HH24:MI:SS.FF6') AS create_time_old,TO_CHAR(CAST(CREATE_TIME AS DATETIME(0)),'YYYY-MM-DD HH24:MI:SS.FF6') AS create_time_zero,TO_CHAR(UPDATE_TIME,'YYYY-MM-DD HH24:MI:SS.FF6') AS update_time_old,TO_CHAR(CAST(UPDATE_TIME AS DATETIME(0)),'YYYY-MM-DD HH24:MI:SS.FF6') AS update_time_zero FROM YDY_FOODS_COMPOSITION ORDER BY ID",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 14,
      "kind": "read",
      "phase": "pre",
      "label": "rows_after",
      "SQL": "SELECT * FROM ydy_foods_composition ORDER BY id",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 15,
      "kind": "read",
      "phase": "pre",
      "label": "clock",
      "SQL": "SELECT CURRENT_TIMESTAMP AS full_clock,CURRENT_TIMESTAMP(0) AS zero_clock FROM DUAL",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 16,
      "kind": "DDL",
      "phase": "pre",
      "label": "alter",
      "SQL": "ALTER TABLE ZHCT_APP.YDY_FOODS_COMPOSITION MODIFY (\n CREATE_TIME DATETIME(0) DEFAULT CURRENT_TIMESTAMP(0) NOT NULL,\n UPDATE_TIME DATETIME(0) DEFAULT CURRENT_TIMESTAMP(0) NOT NULL\n);",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 17,
      "kind": "read",
      "phase": "after_alter",
      "label": "identity",
      "SQL": "SELECT SYS_CONTEXT('USERENV','CURRENT_SCHEMA') AS db FROM DUAL",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 18,
      "kind": "read",
      "phase": "after_alter",
      "label": "version",
      "SQL": "SELECT * FROM V$VERSION",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 19,
      "kind": "read",
      "phase": "after_alter",
      "label": "columns",
      "SQL": "SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME=? ORDER BY COLUMN_ID",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 20,
      "kind": "read",
      "phase": "after_alter",
      "label": "table_ddl",
      "SQL": "SELECT DBMS_METADATA.GET_DDL('TABLE',?,'ZHCT_APP') AS ddl FROM DUAL",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 21,
      "kind": "read",
      "phase": "after_alter",
      "label": "indexes",
      "SQL": "SELECT * FROM USER_INDEXES WHERE TABLE_NAME=? ORDER BY INDEX_NAME",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 22,
      "kind": "read",
      "phase": "after_alter",
      "label": "index_columns",
      "SQL": "SELECT * FROM USER_IND_COLUMNS WHERE TABLE_NAME=? ORDER BY INDEX_NAME,COLUMN_POSITION",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 23,
      "kind": "read",
      "phase": "after_alter",
      "label": "constraints",
      "SQL": "SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME=? OR CONSTRAINT_TYPE='R' ORDER BY TABLE_NAME,CONSTRAINT_NAME",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 24,
      "kind": "read",
      "phase": "after_alter",
      "label": "constraint_columns",
      "SQL": "SELECT * FROM USER_CONS_COLUMNS WHERE TABLE_NAME=? OR CONSTRAINT_NAME IN (SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE CONSTRAINT_TYPE='R') ORDER BY TABLE_NAME,CONSTRAINT_NAME,POSITION",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 25,
      "kind": "read",
      "phase": "after_alter",
      "label": "triggers",
      "SQL": "SELECT * FROM USER_TRIGGERS WHERE TABLE_NAME=?",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 26,
      "kind": "read",
      "phase": "after_alter",
      "label": "objects",
      "SQL": "SELECT OBJECT_NAME,OBJECT_TYPE,STATUS FROM USER_OBJECTS WHERE OBJECT_NAME IN (?,?) ORDER BY OBJECT_NAME",
      "binds": [
        "YDY_FOODS_COMPOSITION",
        "TRG_YDY_FOODS_COMPOSITION_UT"
      ],
      "PDO_types": [
        2,
        2
      ]
    },
    {
      "ordinal": 27,
      "kind": "read",
      "phase": "after_alter",
      "label": "dependencies",
      "SQL": "SELECT * FROM USER_DEPENDENCIES WHERE REFERENCED_OWNER=? AND REFERENCED_NAME=?",
      "binds": [
        "ZHCT_APP",
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2,
        2
      ]
    },
    {
      "ordinal": 28,
      "kind": "read",
      "phase": "after_alter",
      "label": "rows_before",
      "SQL": "SELECT * FROM ydy_foods_composition ORDER BY id",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 29,
      "kind": "read",
      "phase": "after_alter",
      "label": "map0",
      "SQL": "SELECT ID,TO_CHAR(CREATE_TIME,'YYYY-MM-DD HH24:MI:SS.FF6') AS create_time_old,TO_CHAR(CAST(CREATE_TIME AS DATETIME(0)),'YYYY-MM-DD HH24:MI:SS.FF6') AS create_time_zero,TO_CHAR(UPDATE_TIME,'YYYY-MM-DD HH24:MI:SS.FF6') AS update_time_old,TO_CHAR(CAST(UPDATE_TIME AS DATETIME(0)),'YYYY-MM-DD HH24:MI:SS.FF6') AS update_time_zero FROM YDY_FOODS_COMPOSITION ORDER BY ID",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 30,
      "kind": "read",
      "phase": "after_alter",
      "label": "rows_after",
      "SQL": "SELECT * FROM ydy_foods_composition ORDER BY id",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 31,
      "kind": "read",
      "phase": "after_alter",
      "label": "clock",
      "SQL": "SELECT CURRENT_TIMESTAMP AS full_clock,CURRENT_TIMESTAMP(0) AS zero_clock FROM DUAL",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 32,
      "kind": "DDL",
      "phase": "after_alter",
      "label": "create_trigger",
      "SQL": "CREATE TRIGGER ZHCT_APP.TRG_YDY_FOODS_COMPOSITION_UT\nBEFORE UPDATE ON ZHCT_APP.YDY_FOODS_COMPOSITION\nFOR EACH ROW\nBEGIN\n IF NOT UPDATING('UPDATE_TIME') THEN\n  IF\n    ((:NEW.ID IS NULL AND :OLD.ID IS NOT NULL) OR (:NEW.ID IS NOT NULL AND :OLD.ID IS NULL) OR (:NEW.ID IS NOT NULL AND :OLD.ID IS NOT NULL AND :NEW.ID <> :OLD.ID))\n OR\n    (NVL(LENGTHB(:NEW.NAME),-1) <> NVL(LENGTHB(:OLD.NAME),-1) OR NVL(RAWTOHEX(CHARTOBIN(:NEW.NAME)),'#') <> NVL(RAWTOHEX(CHARTOBIN(:OLD.NAME)),'#'))\n OR\n    ((:NEW.EDIBLE_PART IS NULL AND :OLD.EDIBLE_PART IS NOT NULL) OR (:NEW.EDIBLE_PART IS NOT NULL AND :OLD.EDIBLE_PART IS NULL) OR (:NEW.EDIBLE_PART IS NOT NULL AND :OLD.EDIBLE_PART IS NOT NULL AND :NEW.EDIBLE_PART <> :OLD.EDIBLE_PART))\n OR\n    (NVL(LENGTHB(:NEW.EN_NAME),-1) <> NVL(LENGTHB(:OLD.EN_NAME),-1) OR NVL(RAWTOHEX(CHARTOBIN(:NEW.EN_NAME)),'#') <> NVL(RAWTOHEX(CHARTOBIN(:OLD.EN_NAME)),'#'))\n OR\n    (NVL(LENGTHB(:NEW.SUB_NAME),-1) <> NVL(LENGTHB(:OLD.SUB_NAME),-1) OR NVL(RAWTOHEX(CHARTOBIN(:NEW.SUB_NAME)),'#') <> NVL(RAWTOHEX(CHARTOBIN(:OLD.SUB_NAME)),'#'))\n OR\n    (NVL(LENGTHB(:NEW.REGION),-1) <> NVL(LENGTHB(:OLD.REGION),-1) OR NVL(RAWTOHEX(CHARTOBIN(:NEW.REGION)),'#') <> NVL(RAWTOHEX(CHARTOBIN(:OLD.REGION)),'#'))\n OR\n    (NVL(LENGTHB(:NEW.PLACE),-1) <> NVL(LENGTHB(:OLD.PLACE),-1) OR NVL(RAWTOHEX(CHARTOBIN(:NEW.PLACE)),'#') <> NVL(RAWTOHEX(CHARTOBIN(:OLD.PLACE)),'#'))\n OR\n    ((:NEW.FOODS_STATUS IS NULL AND :OLD.FOODS_STATUS IS NOT NULL) OR (:NEW.FOODS_STATUS IS NOT NULL AND :OLD.FOODS_STATUS IS NULL) OR (:NEW.FOODS_STATUS IS NOT NULL AND :OLD.FOODS_STATUS IS NOT NULL AND :NEW.FOODS_STATUS <> :OLD.FOODS_STATUS))\n OR\n    ((:NEW.GAS_FOOD IS NULL AND :OLD.GAS_FOOD IS NOT NULL) OR (:NEW.GAS_FOOD IS NOT NULL AND :OLD.GAS_FOOD IS NULL) OR (:NEW.GAS_FOOD IS NOT NULL AND :OLD.GAS_FOOD IS NOT NULL AND :NEW.GAS_FOOD <> :OLD.GAS_FOOD))\n OR\n    ((:NEW.CATEGORY IS NULL AND :OLD.CATEGORY IS NOT NULL) OR (:NEW.CATEGORY IS NOT NULL AND :OLD.CATEGORY IS NULL) OR (:NEW.CATEGORY IS NOT NULL AND :OLD.CATEGORY IS NOT NULL AND :NEW.CATEGORY <> :OLD.CATEGORY))\n OR\n    ((:NEW.MINUTE_SORT IS NULL AND :OLD.MINUTE_SORT IS NOT NULL) OR (:NEW.MINUTE_SORT IS NOT NULL AND :OLD.MINUTE_SORT IS NULL) OR (:NEW.MINUTE_SORT IS NOT NULL AND :OLD.MINUTE_SORT IS NOT NULL AND :NEW.MINUTE_SORT <> :OLD.MINUTE_SORT))\n OR\n    ((:NEW.RECLASSIFY IS NULL AND :OLD.RECLASSIFY IS NOT NULL) OR (:NEW.RECLASSIFY IS NOT NULL AND :OLD.RECLASSIFY IS NULL) OR (:NEW.RECLASSIFY IS NOT NULL AND :OLD.RECLASSIFY IS NOT NULL AND :NEW.RECLASSIFY <> :OLD.RECLASSIFY))\n OR\n    ((:NEW.SFA IS NULL AND :OLD.SFA IS NOT NULL) OR (:NEW.SFA IS NOT NULL AND :OLD.SFA IS NULL) OR (:NEW.SFA IS NOT NULL AND :OLD.SFA IS NOT NULL AND :NEW.SFA <> :OLD.SFA))\n OR\n    ((:NEW.MUFA IS NULL AND :OLD.MUFA IS NOT NULL) OR (:NEW.MUFA IS NOT NULL AND :OLD.MUFA IS NULL) OR (:NEW.MUFA IS NOT NULL AND :OLD.MUFA IS NOT NULL AND :NEW.MUFA <> :OLD.MUFA))\n OR\n    ((:NEW.PUFA IS NULL AND :OLD.PUFA IS NOT NULL) OR (:NEW.PUFA IS NOT NULL AND :OLD.PUFA IS NULL) OR (:NEW.PUFA IS NOT NULL AND :OLD.PUFA IS NOT NULL AND :NEW.PUFA <> :OLD.PUFA))\n OR\n    ((:NEW.CHOLESTEROL IS NULL AND :OLD.CHOLESTEROL IS NOT NULL) OR (:NEW.CHOLESTEROL IS NOT NULL AND :OLD.CHOLESTEROL IS NULL) OR (:NEW.CHOLESTEROL IS NOT NULL AND :OLD.CHOLESTEROL IS NOT NULL AND :NEW.CHOLESTEROL <> :OLD.CHOLESTEROL))\n OR\n    ((:NEW.VA IS NULL AND :OLD.VA IS NOT NULL) OR (:NEW.VA IS NOT NULL AND :OLD.VA IS NULL) OR (:NEW.VA IS NOT NULL AND :OLD.VA IS NOT NULL AND :NEW.VA <> :OLD.VA))\n OR\n    ((:NEW.RENIERATENE IS NULL AND :OLD.RENIERATENE IS NOT NULL) OR (:NEW.RENIERATENE IS NOT NULL AND :OLD.RENIERATENE IS NULL) OR (:NEW.RENIERATENE IS NOT NULL AND :OLD.RENIERATENE IS NOT NULL AND :NEW.RENIERATENE <> :OLD.RENIERATENE))\n OR\n    ((:NEW.RETINOL IS NULL AND :OLD.RETINOL IS NOT NULL) OR (:NEW.RETINOL IS NOT NULL AND :OLD.RETINOL IS NULL) OR (:NEW.RETINOL IS NOT NULL AND :OLD.RETINOL IS NOT NULL AND :NEW.RETINOL <> :OLD.RETINOL))\n OR\n    ((:NEW.VB1 IS NULL AND :OLD.VB1 IS NOT NULL) OR (:NEW.VB1 IS NOT NULL AND :OLD.VB1 IS NULL) OR (:NEW.VB1 IS NOT NULL AND :OLD.VB1 IS NOT NULL AND :NEW.VB1 <> :OLD.VB1))\n OR\n    ((:NEW.VB2 IS NULL AND :OLD.VB2 IS NOT NULL) OR (:NEW.VB2 IS NOT NULL AND :OLD.VB2 IS NULL) OR (:NEW.VB2 IS NOT NULL AND :OLD.VB2 IS NOT NULL AND :NEW.VB2 <> :OLD.VB2))\n OR\n    ((:NEW.VPP IS NULL AND :OLD.VPP IS NOT NULL) OR (:NEW.VPP IS NOT NULL AND :OLD.VPP IS NULL) OR (:NEW.VPP IS NOT NULL AND :OLD.VPP IS NOT NULL AND :NEW.VPP <> :OLD.VPP))\n OR\n    ((:NEW.VC IS NULL AND :OLD.VC IS NOT NULL) OR (:NEW.VC IS NOT NULL AND :OLD.VC IS NULL) OR (:NEW.VC IS NOT NULL AND :OLD.VC IS NOT NULL AND :NEW.VC <> :OLD.VC))\n OR\n    ((:NEW.VE IS NULL AND :OLD.VE IS NOT NULL) OR (:NEW.VE IS NOT NULL AND :OLD.VE IS NULL) OR (:NEW.VE IS NOT NULL AND :OLD.VE IS NOT NULL AND :NEW.VE <> :OLD.VE))\n OR\n    ((:NEW.FOLIC_ACID IS NULL AND :OLD.FOLIC_ACID IS NOT NULL) OR (:NEW.FOLIC_ACID IS NOT NULL AND :OLD.FOLIC_ACID IS NULL) OR (:NEW.FOLIC_ACID IS NOT NULL AND :OLD.FOLIC_ACID IS NOT NULL AND :NEW.FOLIC_ACID <> :OLD.FOLIC_ACID))\n OR\n    ((:NEW.BIOTIN IS NULL AND :OLD.BIOTIN IS NOT NULL) OR (:NEW.BIOTIN IS NOT NULL AND :OLD.BIOTIN IS NULL) OR (:NEW.BIOTIN IS NOT NULL AND :OLD.BIOTIN IS NOT NULL AND :NEW.BIOTIN <> :OLD.BIOTIN))\n OR\n    ((:NEW.PANTOTHENIC_ACID IS NULL AND :OLD.PANTOTHENIC_ACID IS NOT NULL) OR (:NEW.PANTOTHENIC_ACID IS NOT NULL AND :OLD.PANTOTHENIC_ACID IS NULL) OR (:NEW.PANTOTHENIC_ACID IS NOT NULL AND :OLD.PANTOTHENIC_ACID IS NOT NULL AND :NEW.PANTOTHENIC_ACID <> :OLD.PANTOTHENIC_ACID))\n OR\n    ((:NEW.CHOLINE IS NULL AND :OLD.CHOLINE IS NOT NULL) OR (:NEW.CHOLINE IS NOT NULL AND :OLD.CHOLINE IS NULL) OR (:NEW.CHOLINE IS NOT NULL AND :OLD.CHOLINE IS NOT NULL AND :NEW.CHOLINE <> :OLD.CHOLINE))\n OR\n    ((:NEW.POTASSIUM IS NULL AND :OLD.POTASSIUM IS NOT NULL) OR (:NEW.POTASSIUM IS NOT NULL AND :OLD.POTASSIUM IS NULL) OR (:NEW.POTASSIUM IS NOT NULL AND :OLD.POTASSIUM IS NOT NULL AND :NEW.POTASSIUM <> :OLD.POTASSIUM))\n OR\n    ((:NEW.SODIUM IS NULL AND :OLD.SODIUM IS NOT NULL) OR (:NEW.SODIUM IS NOT NULL AND :OLD.SODIUM IS NULL) OR (:NEW.SODIUM IS NOT NULL AND :OLD.SODIUM IS NOT NULL AND :NEW.SODIUM <> :OLD.SODIUM))\n OR\n    ((:NEW.CALCIUM IS NULL AND :OLD.CALCIUM IS NOT NULL) OR (:NEW.CALCIUM IS NOT NULL AND :OLD.CALCIUM IS NULL) OR (:NEW.CALCIUM IS NOT NULL AND :OLD.CALCIUM IS NOT NULL AND :NEW.CALCIUM <> :OLD.CALCIUM))\n OR\n    ((:NEW.MAGNESIUM IS NULL AND :OLD.MAGNESIUM IS NOT NULL) OR (:NEW.MAGNESIUM IS NOT NULL AND :OLD.MAGNESIUM IS NULL) OR (:NEW.MAGNESIUM IS NOT NULL AND :OLD.MAGNESIUM IS NOT NULL AND :NEW.MAGNESIUM <> :OLD.MAGNESIUM))\n OR\n    ((:NEW.IRON IS NULL AND :OLD.IRON IS NOT NULL) OR (:NEW.IRON IS NOT NULL AND :OLD.IRON IS NULL) OR (:NEW.IRON IS NOT NULL AND :OLD.IRON IS NOT NULL AND :NEW.IRON <> :OLD.IRON))\n OR\n    ((:NEW.ZINC IS NULL AND :OLD.ZINC IS NOT NULL) OR (:NEW.ZINC IS NOT NULL AND :OLD.ZINC IS NULL) OR (:NEW.ZINC IS NOT NULL AND :OLD.ZINC IS NOT NULL AND :NEW.ZINC <> :OLD.ZINC))\n OR\n    ((:NEW.SELENIUM IS NULL AND :OLD.SELENIUM IS NOT NULL) OR (:NEW.SELENIUM IS NOT NULL AND :OLD.SELENIUM IS NULL) OR (:NEW.SELENIUM IS NOT NULL AND :OLD.SELENIUM IS NOT NULL AND :NEW.SELENIUM <> :OLD.SELENIUM))\n OR\n    ((:NEW.CATEGORY_TWO IS NULL AND :OLD.CATEGORY_TWO IS NOT NULL) OR (:NEW.CATEGORY_TWO IS NOT NULL AND :OLD.CATEGORY_TWO IS NULL) OR (:NEW.CATEGORY_TWO IS NOT NULL AND :OLD.CATEGORY_TWO IS NOT NULL AND :NEW.CATEGORY_TWO <> :OLD.CATEGORY_TWO))\n OR\n    ((:NEW.CATEGORY_THREE IS NULL AND :OLD.CATEGORY_THREE IS NOT NULL) OR (:NEW.CATEGORY_THREE IS NOT NULL AND :OLD.CATEGORY_THREE IS NULL) OR (:NEW.CATEGORY_THREE IS NOT NULL AND :OLD.CATEGORY_THREE IS NOT NULL AND :NEW.CATEGORY_THREE <> :OLD.CATEGORY_THREE))\n OR\n    ((:NEW.ENERGY IS NULL AND :OLD.ENERGY IS NOT NULL) OR (:NEW.ENERGY IS NOT NULL AND :OLD.ENERGY IS NULL) OR (:NEW.ENERGY IS NOT NULL AND :OLD.ENERGY IS NOT NULL AND :NEW.ENERGY <> :OLD.ENERGY))\n OR\n    ((:NEW.CARBOHYDRATE IS NULL AND :OLD.CARBOHYDRATE IS NOT NULL) OR (:NEW.CARBOHYDRATE IS NOT NULL AND :OLD.CARBOHYDRATE IS NULL) OR (:NEW.CARBOHYDRATE IS NOT NULL AND :OLD.CARBOHYDRATE IS NOT NULL AND :NEW.CARBOHYDRATE <> :OLD.CARBOHYDRATE))\n OR\n    ((:NEW.PROTEIN IS NULL AND :OLD.PROTEIN IS NOT NULL) OR (:NEW.PROTEIN IS NOT NULL AND :OLD.PROTEIN IS NULL) OR (:NEW.PROTEIN IS NOT NULL AND :OLD.PROTEIN IS NOT NULL AND :NEW.PROTEIN <> :OLD.PROTEIN))\n OR\n    ((:NEW.FAT IS NULL AND :OLD.FAT IS NOT NULL) OR (:NEW.FAT IS NOT NULL AND :OLD.FAT IS NULL) OR (:NEW.FAT IS NOT NULL AND :OLD.FAT IS NOT NULL AND :NEW.FAT <> :OLD.FAT))\n OR\n    ((:NEW.COOKING_FOOD IS NULL AND :OLD.COOKING_FOOD IS NOT NULL) OR (:NEW.COOKING_FOOD IS NOT NULL AND :OLD.COOKING_FOOD IS NULL) OR (:NEW.COOKING_FOOD IS NOT NULL AND :OLD.COOKING_FOOD IS NOT NULL AND :NEW.COOKING_FOOD <> :OLD.COOKING_FOOD))\n OR\n    ((:NEW.COMMON_INGREDIENTS IS NULL AND :OLD.COMMON_INGREDIENTS IS NOT NULL) OR (:NEW.COMMON_INGREDIENTS IS NOT NULL AND :OLD.COMMON_INGREDIENTS IS NULL) OR (:NEW.COMMON_INGREDIENTS IS NOT NULL AND :OLD.COMMON_INGREDIENTS IS NOT NULL AND :NEW.COMMON_INGREDIENTS <> :OLD.COMMON_INGREDIENTS))\n OR\n    ((:NEW.PURINE IS NULL AND :OLD.PURINE IS NOT NULL) OR (:NEW.PURINE IS NOT NULL AND :OLD.PURINE IS NULL) OR (:NEW.PURINE IS NOT NULL AND :OLD.PURINE IS NOT NULL AND :NEW.PURINE <> :OLD.PURINE))\n OR\n    ((:NEW.DIETARY_FIBER IS NULL AND :OLD.DIETARY_FIBER IS NOT NULL) OR (:NEW.DIETARY_FIBER IS NOT NULL AND :OLD.DIETARY_FIBER IS NULL) OR (:NEW.DIETARY_FIBER IS NOT NULL AND :OLD.DIETARY_FIBER IS NOT NULL AND :NEW.DIETARY_FIBER <> :OLD.DIETARY_FIBER))\n OR\n    ((:NEW.MOISTURE IS NULL AND :OLD.MOISTURE IS NOT NULL) OR (:NEW.MOISTURE IS NOT NULL AND :OLD.MOISTURE IS NULL) OR (:NEW.MOISTURE IS NOT NULL AND :OLD.MOISTURE IS NOT NULL AND :NEW.MOISTURE <> :OLD.MOISTURE))\n OR\n    ((:NEW.ASH IS NULL AND :OLD.ASH IS NOT NULL) OR (:NEW.ASH IS NOT NULL AND :OLD.ASH IS NULL) OR (:NEW.ASH IS NOT NULL AND :OLD.ASH IS NOT NULL AND :NEW.ASH <> :OLD.ASH))\n OR\n    ((:NEW.GI IS NULL AND :OLD.GI IS NOT NULL) OR (:NEW.GI IS NOT NULL AND :OLD.GI IS NULL) OR (:NEW.GI IS NOT NULL AND :OLD.GI IS NOT NULL AND :NEW.GI <> :OLD.GI))\n OR\n    ((:NEW.GL IS NULL AND :OLD.GL IS NOT NULL) OR (:NEW.GL IS NOT NULL AND :OLD.GL IS NULL) OR (:NEW.GL IS NOT NULL AND :OLD.GL IS NOT NULL AND :NEW.GL <> :OLD.GL))\n OR\n    ((:NEW.IODINE IS NULL AND :OLD.IODINE IS NOT NULL) OR (:NEW.IODINE IS NOT NULL AND :OLD.IODINE IS NULL) OR (:NEW.IODINE IS NOT NULL AND :OLD.IODINE IS NOT NULL AND :NEW.IODINE <> :OLD.IODINE))\n OR\n    ((:NEW.PHOSPHORUS IS NULL AND :OLD.PHOSPHORUS IS NOT NULL) OR (:NEW.PHOSPHORUS IS NOT NULL AND :OLD.PHOSPHORUS IS NULL) OR (:NEW.PHOSPHORUS IS NOT NULL AND :OLD.PHOSPHORUS IS NOT NULL AND :NEW.PHOSPHORUS <> :OLD.PHOSPHORUS))\n OR\n    ((:NEW.CUPRUM IS NULL AND :OLD.CUPRUM IS NOT NULL) OR (:NEW.CUPRUM IS NOT NULL AND :OLD.CUPRUM IS NULL) OR (:NEW.CUPRUM IS NOT NULL AND :OLD.CUPRUM IS NOT NULL AND :NEW.CUPRUM <> :OLD.CUPRUM))\n OR\n    ((:NEW.MANGANESE IS NULL AND :OLD.MANGANESE IS NOT NULL) OR (:NEW.MANGANESE IS NOT NULL AND :OLD.MANGANESE IS NULL) OR (:NEW.MANGANESE IS NOT NULL AND :OLD.MANGANESE IS NOT NULL AND :NEW.MANGANESE <> :OLD.MANGANESE))\n OR\n    ((:NEW.STORE_ID IS NULL AND :OLD.STORE_ID IS NOT NULL) OR (:NEW.STORE_ID IS NOT NULL AND :OLD.STORE_ID IS NULL) OR (:NEW.STORE_ID IS NOT NULL AND :OLD.STORE_ID IS NOT NULL AND :NEW.STORE_ID <> :OLD.STORE_ID))\n OR\n    ((:NEW.DISH_QUANTITY IS NULL AND :OLD.DISH_QUANTITY IS NOT NULL) OR (:NEW.DISH_QUANTITY IS NOT NULL AND :OLD.DISH_QUANTITY IS NULL) OR (:NEW.DISH_QUANTITY IS NOT NULL AND :OLD.DISH_QUANTITY IS NOT NULL AND :NEW.DISH_QUANTITY <> :OLD.DISH_QUANTITY))\n OR\n    ((:NEW.ORI_ID IS NULL AND :OLD.ORI_ID IS NOT NULL) OR (:NEW.ORI_ID IS NOT NULL AND :OLD.ORI_ID IS NULL) OR (:NEW.ORI_ID IS NOT NULL AND :OLD.ORI_ID IS NOT NULL AND :NEW.ORI_ID <> :OLD.ORI_ID))\n OR\n    ((:NEW.AI_FOODS_ID IS NULL AND :OLD.AI_FOODS_ID IS NOT NULL) OR (:NEW.AI_FOODS_ID IS NOT NULL AND :OLD.AI_FOODS_ID IS NULL) OR (:NEW.AI_FOODS_ID IS NOT NULL AND :OLD.AI_FOODS_ID IS NOT NULL AND :NEW.AI_FOODS_ID <> :OLD.AI_FOODS_ID))\n OR\n    ((:NEW.IS_DELETE IS NULL AND :OLD.IS_DELETE IS NOT NULL) OR (:NEW.IS_DELETE IS NOT NULL AND :OLD.IS_DELETE IS NULL) OR (:NEW.IS_DELETE IS NOT NULL AND :OLD.IS_DELETE IS NOT NULL AND :NEW.IS_DELETE <> :OLD.IS_DELETE))\n OR\n    (NVL(LENGTHB(:NEW.CREATE_BY),-1) <> NVL(LENGTHB(:OLD.CREATE_BY),-1) OR NVL(RAWTOHEX(CHARTOBIN(:NEW.CREATE_BY)),'#') <> NVL(RAWTOHEX(CHARTOBIN(:OLD.CREATE_BY)),'#'))\n OR\n    ((:NEW.CREATE_TIME IS NULL AND :OLD.CREATE_TIME IS NOT NULL) OR (:NEW.CREATE_TIME IS NOT NULL AND :OLD.CREATE_TIME IS NULL) OR (:NEW.CREATE_TIME IS NOT NULL AND :OLD.CREATE_TIME IS NOT NULL AND :NEW.CREATE_TIME <> :OLD.CREATE_TIME))\n OR\n    ((:NEW.CONDIMENT_STATE IS NULL AND :OLD.CONDIMENT_STATE IS NOT NULL) OR (:NEW.CONDIMENT_STATE IS NOT NULL AND :OLD.CONDIMENT_STATE IS NULL) OR (:NEW.CONDIMENT_STATE IS NOT NULL AND :OLD.CONDIMENT_STATE IS NOT NULL AND :NEW.CONDIMENT_STATE <> :OLD.CONDIMENT_STATE))\n  THEN\n   :NEW.UPDATE_TIME := TO_TIMESTAMP(TO_CHAR(CURRENT_TIMESTAMP,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS');\n  END IF;\n END IF;\nEND;",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 33,
      "kind": "read",
      "phase": "after_trigger",
      "label": "identity",
      "SQL": "SELECT SYS_CONTEXT('USERENV','CURRENT_SCHEMA') AS db FROM DUAL",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 34,
      "kind": "read",
      "phase": "after_trigger",
      "label": "version",
      "SQL": "SELECT * FROM V$VERSION",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 35,
      "kind": "read",
      "phase": "after_trigger",
      "label": "columns",
      "SQL": "SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME=? ORDER BY COLUMN_ID",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 36,
      "kind": "read",
      "phase": "after_trigger",
      "label": "table_ddl",
      "SQL": "SELECT DBMS_METADATA.GET_DDL('TABLE',?,'ZHCT_APP') AS ddl FROM DUAL",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 37,
      "kind": "read",
      "phase": "after_trigger",
      "label": "indexes",
      "SQL": "SELECT * FROM USER_INDEXES WHERE TABLE_NAME=? ORDER BY INDEX_NAME",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 38,
      "kind": "read",
      "phase": "after_trigger",
      "label": "index_columns",
      "SQL": "SELECT * FROM USER_IND_COLUMNS WHERE TABLE_NAME=? ORDER BY INDEX_NAME,COLUMN_POSITION",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 39,
      "kind": "read",
      "phase": "after_trigger",
      "label": "constraints",
      "SQL": "SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME=? OR CONSTRAINT_TYPE='R' ORDER BY TABLE_NAME,CONSTRAINT_NAME",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 40,
      "kind": "read",
      "phase": "after_trigger",
      "label": "constraint_columns",
      "SQL": "SELECT * FROM USER_CONS_COLUMNS WHERE TABLE_NAME=? OR CONSTRAINT_NAME IN (SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE CONSTRAINT_TYPE='R') ORDER BY TABLE_NAME,CONSTRAINT_NAME,POSITION",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 41,
      "kind": "read",
      "phase": "after_trigger",
      "label": "triggers",
      "SQL": "SELECT * FROM USER_TRIGGERS WHERE TABLE_NAME=?",
      "binds": [
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2
      ]
    },
    {
      "ordinal": 42,
      "kind": "read",
      "phase": "after_trigger",
      "label": "objects",
      "SQL": "SELECT OBJECT_NAME,OBJECT_TYPE,STATUS FROM USER_OBJECTS WHERE OBJECT_NAME IN (?,?) ORDER BY OBJECT_NAME",
      "binds": [
        "YDY_FOODS_COMPOSITION",
        "TRG_YDY_FOODS_COMPOSITION_UT"
      ],
      "PDO_types": [
        2,
        2
      ]
    },
    {
      "ordinal": 43,
      "kind": "read",
      "phase": "after_trigger",
      "label": "dependencies",
      "SQL": "SELECT * FROM USER_DEPENDENCIES WHERE REFERENCED_OWNER=? AND REFERENCED_NAME=?",
      "binds": [
        "ZHCT_APP",
        "YDY_FOODS_COMPOSITION"
      ],
      "PDO_types": [
        2,
        2
      ]
    },
    {
      "ordinal": 44,
      "kind": "read",
      "phase": "after_trigger",
      "label": "rows_before",
      "SQL": "SELECT * FROM ydy_foods_composition ORDER BY id",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 45,
      "kind": "read",
      "phase": "after_trigger",
      "label": "map0",
      "SQL": "SELECT ID,TO_CHAR(CREATE_TIME,'YYYY-MM-DD HH24:MI:SS.FF6') AS create_time_old,TO_CHAR(CAST(CREATE_TIME AS DATETIME(0)),'YYYY-MM-DD HH24:MI:SS.FF6') AS create_time_zero,TO_CHAR(UPDATE_TIME,'YYYY-MM-DD HH24:MI:SS.FF6') AS update_time_old,TO_CHAR(CAST(UPDATE_TIME AS DATETIME(0)),'YYYY-MM-DD HH24:MI:SS.FF6') AS update_time_zero FROM YDY_FOODS_COMPOSITION ORDER BY ID",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 46,
      "kind": "read",
      "phase": "after_trigger",
      "label": "rows_after",
      "SQL": "SELECT * FROM ydy_foods_composition ORDER BY id",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 47,
      "kind": "read",
      "phase": "after_trigger",
      "label": "clock",
      "SQL": "SELECT CURRENT_TIMESTAMP AS full_clock,CURRENT_TIMESTAMP(0) AS zero_clock FROM DUAL",
      "binds": [],
      "PDO_types": []
    },
    {
      "ordinal": 48,
      "kind": "read",
      "phase": "final_definition",
      "label": "trigger_ddl",
      "SQL": "SELECT DBMS_METADATA.GET_DDL('TRIGGER',?,'ZHCT_APP') AS ddl FROM DUAL",
      "binds": [
        "TRG_YDY_FOODS_COMPOSITION_UT"
      ],
      "PDO_types": [
        2
      ]
    }
  ]
}
