diff --git a/engine.go b/engine.go index a555633ce3..8d4ceb3fdb 100644 --- a/engine.go +++ b/engine.go @@ -454,7 +454,7 @@ func (e *Engine) QueryWithBindings(ctx *sql.Context, query string, parsed sqlpar // PrepQueryPlanForExecution prepares a query plan for execution and returns the result schema with a row iterator to // begin spooling results -func (e *Engine) PrepQueryPlanForExecution(ctx *sql.Context, _ string, plan sql.Node) (sql.Schema, sql.RowIter, *sql.QueryFlags, error) { +func (e *Engine) PrepQueryPlanForExecution(ctx *sql.Context, _ string, plan sql.Node, qFlags *sql.QueryFlags) (sql.Schema, sql.RowIter, *sql.QueryFlags, error) { // Give the integrator a chance to reject the session before proceeding // TODO: this check doesn't belong here err := ctx.Session.ValidateSession(ctx) @@ -482,9 +482,9 @@ func (e *Engine) PrepQueryPlanForExecution(ctx *sql.Context, _ string, plan sql. return nil, nil, nil, err } - iter = finalizeIters(ctx, plan, nil, iter) + iter = finalizeIters(ctx, plan, qFlags, iter) - return plan.Schema(), iter, nil, nil + return plan.Schema(), iter, qFlags, nil } // BoundQueryPlan returns query plan for the given statement with the given bindings applied @@ -866,6 +866,7 @@ func findCreateEventNode(planTree sql.Node) (*plan.CreateEvent, error) { // finalizeIters applies the final transformations on sql.RowIter before execution. func finalizeIters(ctx *sql.Context, analyzed sql.Node, qFlags *sql.QueryFlags, iter sql.RowIter) sql.RowIter { + iter = rowexec.AddTriggerRollbackIter(ctx, qFlags, iter) iter = rowexec.AddTransactionCommittingIter(qFlags, iter) iter = plan.AddTrackedRowIter(ctx, analyzed, iter) iter = rowexec.AddExpressionCloser(analyzed, iter) diff --git a/enginetest/queries/integration_plans.go b/enginetest/queries/integration_plans.go index d1eae0827d..8eb9613bbe 100644 --- a/enginetest/queries/integration_plans.go +++ b/enginetest/queries/integration_plans.go @@ -17864,47 +17864,46 @@ WHERE nd.FGG57 IS NOT NULL AND nd.KNG7T IS NULL`, Query: ` UPDATE S3FQX SET ADWYM = 0, FPUYA = 0`, - ExpectedPlan: "TriggerRollback\n" + - " └─ RowUpdateAccumulator\n" + - " └─ Update\n" + - " └─ Trigger(CREATE TRIGGER S3FQX_on_update BEFORE UPDATE ON S3FQX\n" + - " FOR EACH ROW\n" + - " BEGIN\n" + - " IF NEW.ADWYM NOT IN (0, 1)\n" + - " THEN\n" + - " -- SET @custom_error_message = 'The ADWYM field is an int boolean (0/1).';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The ADWYM field is an int boolean (0/1).';\n" + - " END IF;\n" + - " IF NEW.FPUYA NOT IN (0, 1)\n" + - " THEN\n" + - " -- SET @custom_error_message = 'The FPUYA field is an int boolean (0/1).';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The FPUYA field is an int boolean (0/1).';\n" + - " END IF;\n" + - " END//)\n" + - " ├─ UpdateSource(SET s3fqx.ADWYM:1!null = 0 (tinyint),SET s3fqx.FPUYA:2!null = 0 (tinyint))\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: S3FQX\n" + - " │ └─ columns: [id adwym fpuya]\n" + - " └─ BEGIN .. END\n" + - " ├─ IF BLOCK\n" + - " │ └─ IF(NOT\n" + - " │ └─ IN\n" + - " │ ├─ left: new.ADWYM:4!null\n" + - " │ └─ right: TUPLE(0 (tinyint), 1 (tinyint))\n" + - " │ )\n" + - " │ └─ BLOCK\n" + - " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The ADWYM field is an int boolean (0/1)., MYSQL_ERRNO = 1644\n" + - " └─ IF BLOCK\n" + - " └─ IF(NOT\n" + - " └─ IN\n" + - " ├─ left: new.FPUYA:5!null\n" + - " └─ right: TUPLE(0 (tinyint), 1 (tinyint))\n" + - " )\n" + - " └─ BLOCK\n" + - " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The FPUYA field is an int boolean (0/1)., MYSQL_ERRNO = 1644\n" + + ExpectedPlan: "RowUpdateAccumulator\n" + + " └─ Update\n" + + " └─ Trigger(CREATE TRIGGER S3FQX_on_update BEFORE UPDATE ON S3FQX\n" + + " FOR EACH ROW\n" + + " BEGIN\n" + + " IF NEW.ADWYM NOT IN (0, 1)\n" + + " THEN\n" + + " -- SET @custom_error_message = 'The ADWYM field is an int boolean (0/1).';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The ADWYM field is an int boolean (0/1).';\n" + + " END IF;\n" + + " IF NEW.FPUYA NOT IN (0, 1)\n" + + " THEN\n" + + " -- SET @custom_error_message = 'The FPUYA field is an int boolean (0/1).';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The FPUYA field is an int boolean (0/1).';\n" + + " END IF;\n" + + " END//)\n" + + " ├─ UpdateSource(SET s3fqx.ADWYM:1!null = 0 (tinyint),SET s3fqx.FPUYA:2!null = 0 (tinyint))\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: S3FQX\n" + + " │ └─ columns: [id adwym fpuya]\n" + + " └─ BEGIN .. END\n" + + " ├─ IF BLOCK\n" + + " │ └─ IF(NOT\n" + + " │ └─ IN\n" + + " │ ├─ left: new.ADWYM:4!null\n" + + " │ └─ right: TUPLE(0 (tinyint), 1 (tinyint))\n" + + " │ )\n" + + " │ └─ BLOCK\n" + + " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The ADWYM field is an int boolean (0/1)., MYSQL_ERRNO = 1644\n" + + " └─ IF BLOCK\n" + + " └─ IF(NOT\n" + + " └─ IN\n" + + " ├─ left: new.FPUYA:5!null\n" + + " └─ right: TUPLE(0 (tinyint), 1 (tinyint))\n" + + " )\n" + + " └─ BLOCK\n" + + " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The FPUYA field is an int boolean (0/1)., MYSQL_ERRNO = 1644\n" + "", }, { @@ -17921,68 +17920,67 @@ FROM YK2GW WHERE id IN ('1','2','3')`, - ExpectedPlan: "TriggerRollback\n" + - " └─ RowUpdateAccumulator\n" + - " └─ Insert(id, NFRYN, IXUXU, FHCYT)\n" + - " ├─ InsertDestination\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: THNTS\n" + - " │ └─ columns: [id nfryn ixuxu fhcyt]\n" + - " └─ Trigger(CREATE TRIGGER THNTS_on_insert BEFORE INSERT ON THNTS\n" + - " FOR EACH ROW\n" + - " BEGIN\n" + - " IF\n" + - " NEW.IXUXU IS NULL\n" + - " THEN\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The IXUXU field is mandatory.';\n" + - " END IF;\n" + - " END//)\n" + - " ├─ Project\n" + - " │ ├─ columns: [id:0!null, NFRYN:1!null, IXUXU:2, FHCYT:3]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ alias-string: select id from JMRQL where DZLIM = 'T4IBQ'\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [jmrql.id:34!null]\n" + - " │ │ └─ IndexedTableAccess(JMRQL)\n" + - " │ │ ├─ index: [JMRQL.DZLIM]\n" + - " │ │ ├─ static: [{[T4IBQ, T4IBQ]}]\n" + - " │ │ ├─ colSet: (36-38)\n" + - " │ │ ├─ tableId: 3\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: JMRQL\n" + - " │ │ └─ columns: [id dzlim]\n" + - " │ │ as NFRYN, yk2gw.id:0!null as IXUXU, NULL (null) as FHCYT]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [yk2gw.id:0!null, yk2gw.FTQLQ:1!null, yk2gw.TUXML:2, yk2gw.PAEF5:3, yk2gw.RUCY4:4, yk2gw.TPNJ6:5!null, yk2gw.LBL53:6, yk2gw.NB3QS:7, yk2gw.EO7IV:8, yk2gw.MUHJF:9, yk2gw.FM34L:10, yk2gw.TY5RF:11, yk2gw.ZHTLH:12, yk2gw.NPB7W:13, yk2gw.SX3HH:14, yk2gw.ISBNF:15, yk2gw.YA7YB:16, yk2gw.C5YKB:17, yk2gw.QK7KT:18, yk2gw.FFGE6:19, yk2gw.FIIGJ:20, yk2gw.SH3NC:21, yk2gw.NTENA:22, yk2gw.M4AUB:23, yk2gw.X5AIR:24, yk2gw.SAB6M:25, yk2gw.G5QI5:26, yk2gw.ZVQVD:27, yk2gw.YKSSU:28, yk2gw.FHCYT:29, lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ alias-string: select id from JMRQL where DZLIM = 'T4IBQ'\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [jmrql.id:30!null]\n" + - " │ │ └─ IndexedTableAccess(JMRQL)\n" + - " │ │ ├─ index: [JMRQL.DZLIM]\n" + - " │ │ ├─ static: [{[T4IBQ, T4IBQ]}]\n" + - " │ │ ├─ colSet: (36-38)\n" + - " │ │ ├─ tableId: 3\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: JMRQL\n" + - " │ │ └─ columns: [id dzlim]\n" + - " │ │ as NFRYN, yk2gw.id:0!null as IXUXU, NULL (null) as FHCYT]\n" + - " │ └─ IndexedTableAccess(YK2GW)\n" + - " │ ├─ index: [YK2GW.id]\n" + - " │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + - " │ ├─ colSet: (5-34)\n" + - " │ ├─ tableId: 2\n" + - " │ └─ Table\n" + - " │ ├─ name: YK2GW\n" + - " │ └─ columns: [id ftqlq tuxml paef5 rucy4 tpnj6 lbl53 nb3qs eo7iv muhjf fm34l ty5rf zhtlh npb7w sx3hh isbnf ya7yb c5ykb qk7kt ffge6 fiigj sh3nc ntena m4aub x5air sab6m g5qi5 zvqvd ykssu fhcyt]\n" + - " └─ BEGIN .. END\n" + - " └─ IF BLOCK\n" + - " └─ IF(new.IXUXU:2 IS NULL)\n" + - " └─ BLOCK\n" + - " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The IXUXU field is mandatory., MYSQL_ERRNO = 1644\n" + + ExpectedPlan: "RowUpdateAccumulator\n" + + " └─ Insert(id, NFRYN, IXUXU, FHCYT)\n" + + " ├─ InsertDestination\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: THNTS\n" + + " │ └─ columns: [id nfryn ixuxu fhcyt]\n" + + " └─ Trigger(CREATE TRIGGER THNTS_on_insert BEFORE INSERT ON THNTS\n" + + " FOR EACH ROW\n" + + " BEGIN\n" + + " IF\n" + + " NEW.IXUXU IS NULL\n" + + " THEN\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The IXUXU field is mandatory.';\n" + + " END IF;\n" + + " END//)\n" + + " ├─ Project\n" + + " │ ├─ columns: [id:0!null, NFRYN:1!null, IXUXU:2, FHCYT:3]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ alias-string: select id from JMRQL where DZLIM = 'T4IBQ'\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [jmrql.id:34!null]\n" + + " │ │ └─ IndexedTableAccess(JMRQL)\n" + + " │ │ ├─ index: [JMRQL.DZLIM]\n" + + " │ │ ├─ static: [{[T4IBQ, T4IBQ]}]\n" + + " │ │ ├─ colSet: (36-38)\n" + + " │ │ ├─ tableId: 3\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: JMRQL\n" + + " │ │ └─ columns: [id dzlim]\n" + + " │ │ as NFRYN, yk2gw.id:0!null as IXUXU, NULL (null) as FHCYT]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [yk2gw.id:0!null, yk2gw.FTQLQ:1!null, yk2gw.TUXML:2, yk2gw.PAEF5:3, yk2gw.RUCY4:4, yk2gw.TPNJ6:5!null, yk2gw.LBL53:6, yk2gw.NB3QS:7, yk2gw.EO7IV:8, yk2gw.MUHJF:9, yk2gw.FM34L:10, yk2gw.TY5RF:11, yk2gw.ZHTLH:12, yk2gw.NPB7W:13, yk2gw.SX3HH:14, yk2gw.ISBNF:15, yk2gw.YA7YB:16, yk2gw.C5YKB:17, yk2gw.QK7KT:18, yk2gw.FFGE6:19, yk2gw.FIIGJ:20, yk2gw.SH3NC:21, yk2gw.NTENA:22, yk2gw.M4AUB:23, yk2gw.X5AIR:24, yk2gw.SAB6M:25, yk2gw.G5QI5:26, yk2gw.ZVQVD:27, yk2gw.YKSSU:28, yk2gw.FHCYT:29, lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ alias-string: select id from JMRQL where DZLIM = 'T4IBQ'\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [jmrql.id:30!null]\n" + + " │ │ └─ IndexedTableAccess(JMRQL)\n" + + " │ │ ├─ index: [JMRQL.DZLIM]\n" + + " │ │ ├─ static: [{[T4IBQ, T4IBQ]}]\n" + + " │ │ ├─ colSet: (36-38)\n" + + " │ │ ├─ tableId: 3\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: JMRQL\n" + + " │ │ └─ columns: [id dzlim]\n" + + " │ │ as NFRYN, yk2gw.id:0!null as IXUXU, NULL (null) as FHCYT]\n" + + " │ └─ IndexedTableAccess(YK2GW)\n" + + " │ ├─ index: [YK2GW.id]\n" + + " │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + + " │ ├─ colSet: (5-34)\n" + + " │ ├─ tableId: 2\n" + + " │ └─ Table\n" + + " │ ├─ name: YK2GW\n" + + " │ └─ columns: [id ftqlq tuxml paef5 rucy4 tpnj6 lbl53 nb3qs eo7iv muhjf fm34l ty5rf zhtlh npb7w sx3hh isbnf ya7yb c5ykb qk7kt ffge6 fiigj sh3nc ntena m4aub x5air sab6m g5qi5 zvqvd ykssu fhcyt]\n" + + " └─ BEGIN .. END\n" + + " └─ IF BLOCK\n" + + " └─ IF(new.IXUXU:2 IS NULL)\n" + + " └─ BLOCK\n" + + " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The IXUXU field is mandatory., MYSQL_ERRNO = 1644\n" + "", }, { @@ -18019,122 +18017,121 @@ FROM AND rn.WNUNU IS NULL AND rn.HHVLX IS NULL -- Keep only where no corresponding is found ) ITWML`, - ExpectedPlan: "TriggerRollback\n" + - " └─ RowUpdateAccumulator\n" + - " └─ Insert(id, WNUNU, HHVLX, HVHRZ, YKSSU, FHCYT)\n" + - " ├─ InsertDestination\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: QYWQD\n" + - " │ └─ columns: [id wnunu hhvlx hvhrz ykssu fhcyt]\n" + - " └─ Trigger(CREATE TRIGGER QYWQD_on_insert BEFORE INSERT ON QYWQD\n" + - " FOR EACH ROW\n" + - " BEGIN\n" + - " IF\n" + - " (SELECT FFTBJ FROM NOXN3 WHERE id = NEW.WNUNU) <> (SELECT BRQP2 FROM NOXN3 WHERE id = NEW.HHVLX)\n" + - " THEN\n" + - " -- SET @custom_error_message = 'The target UWBAI of the upstream edge must be the same as the source UWBAI of the downstream edge (the enzyme UWBAI).';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The target UWBAI of the upstream edge must be the same as the source UWBAI of the downstream edge (the enzyme UWBAI).';\n" + - " END IF;\n" + - " END//)\n" + - " ├─ Project\n" + - " │ ├─ columns: [id:0!null, WNUNU:1!null, HHVLX:2!null, HVHRZ:3!null, YKSSU:4, FHCYT:5]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, itwml.DRIWM:0!null as WNUNU, itwml.JIEVY:1!null as HHVLX, 1 (decimal(2,1)) as HVHRZ, NULL (null) as YKSSU, NULL (null) as FHCYT]\n" + - " │ └─ SubqueryAlias\n" + - " │ ├─ name: itwml\n" + - " │ ├─ outerVisibility: false\n" + - " │ ├─ isLateral: false\n" + - " │ ├─ cacheable: true\n" + - " │ ├─ colSet: (36-38)\n" + - " │ ├─ tableId: 5\n" + - " │ └─ Project\n" + - " │ ├─ columns: [sn.id:0!null as DRIWM, skpm6.id:4!null as JIEVY, sn.ECDKM:2 as HVHRZ]\n" + - " │ └─ Filter\n" + - " │ ├─ AND\n" + - " │ │ ├─ rn.WNUNU:6!null IS NULL\n" + - " │ │ └─ rn.HHVLX:7!null IS NULL\n" + - " │ └─ LeftOuterLookupJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ rn.HHVLX:7!null\n" + - " │ │ └─ skpm6.id:4!null\n" + - " │ ├─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ sn.FFTBJ:1!null\n" + - " │ │ │ └─ skpm6.BRQP2:5!null\n" + - " │ │ ├─ Filter\n" + - " │ │ │ ├─ Eq\n" + - " │ │ │ │ ├─ sn.NUMK2:3!null\n" + - " │ │ │ │ └─ 1 (int)\n" + - " │ │ │ └─ TableAlias(sn)\n" + - " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (7-16)\n" + - " │ │ │ ├─ tableId: 2\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: NOXN3\n" + - " │ │ │ └─ columns: [id fftbj ecdkm numk2]\n" + - " │ │ └─ TableAlias(skpm6)\n" + - " │ │ └─ IndexedTableAccess(NOXN3)\n" + - " │ │ ├─ index: [NOXN3.BRQP2]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (17-26)\n" + - " │ │ ├─ tableId: 3\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: NOXN3\n" + - " │ │ └─ columns: [id brqp2]\n" + - " │ └─ TableAlias(rn)\n" + - " │ └─ IndexedTableAccess(QYWQD)\n" + - " │ ├─ index: [QYWQD.WNUNU]\n" + - " │ ├─ keys: [sn.id:0!null]\n" + - " │ ├─ colSet: (27-32)\n" + - " │ ├─ tableId: 4\n" + - " │ └─ Table\n" + - " │ ├─ name: QYWQD\n" + - " │ └─ columns: [wnunu hhvlx]\n" + - " └─ BEGIN .. END\n" + - " └─ IF BLOCK\n" + - " └─ IF(NOT\n" + - " └─ Eq\n" + - " ├─ Subquery\n" + - " │ ├─ cacheable: false\n" + - " │ ├─ alias-string: select FFTBJ from NOXN3 where id = NEW.WNUNU\n" + - " │ └─ Project\n" + - " │ ├─ columns: [noxn3.FFTBJ:7!null]\n" + - " │ └─ Filter\n" + - " │ ├─ Eq\n" + - " │ │ ├─ noxn3.id:6!null\n" + - " │ │ └─ new.WNUNU:1!null\n" + - " │ └─ IndexedTableAccess(NOXN3)\n" + - " │ ├─ index: [NOXN3.id]\n" + - " │ ├─ keys: [new.WNUNU:1!null]\n" + - " │ ├─ colSet: (13-22)\n" + - " │ ├─ tableId: 3\n" + - " │ └─ Table\n" + - " │ ├─ name: NOXN3\n" + - " │ └─ columns: [id fftbj]\n" + - " └─ Subquery\n" + - " ├─ cacheable: false\n" + - " ├─ alias-string: select BRQP2 from NOXN3 where id = NEW.HHVLX\n" + - " └─ Project\n" + - " ├─ columns: [noxn3.BRQP2:7!null]\n" + - " └─ Filter\n" + - " ├─ Eq\n" + - " │ ├─ noxn3.id:6!null\n" + - " │ └─ new.HHVLX:2!null\n" + - " └─ IndexedTableAccess(NOXN3)\n" + - " ├─ index: [NOXN3.id]\n" + - " ├─ keys: [new.HHVLX:2!null]\n" + - " ├─ colSet: (23-32)\n" + - " ├─ tableId: 4\n" + - " └─ Table\n" + - " ├─ name: NOXN3\n" + - " └─ columns: [id brqp2]\n" + - " )\n" + - " └─ BLOCK\n" + - " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The target UWBAI of the upstream edge must be the same as the source UWBAI of the downstream edge (the enzyme UWBAI)., MYSQL_ERRNO = 1644\n" + + ExpectedPlan: "RowUpdateAccumulator\n" + + " └─ Insert(id, WNUNU, HHVLX, HVHRZ, YKSSU, FHCYT)\n" + + " ├─ InsertDestination\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: QYWQD\n" + + " │ └─ columns: [id wnunu hhvlx hvhrz ykssu fhcyt]\n" + + " └─ Trigger(CREATE TRIGGER QYWQD_on_insert BEFORE INSERT ON QYWQD\n" + + " FOR EACH ROW\n" + + " BEGIN\n" + + " IF\n" + + " (SELECT FFTBJ FROM NOXN3 WHERE id = NEW.WNUNU) <> (SELECT BRQP2 FROM NOXN3 WHERE id = NEW.HHVLX)\n" + + " THEN\n" + + " -- SET @custom_error_message = 'The target UWBAI of the upstream edge must be the same as the source UWBAI of the downstream edge (the enzyme UWBAI).';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The target UWBAI of the upstream edge must be the same as the source UWBAI of the downstream edge (the enzyme UWBAI).';\n" + + " END IF;\n" + + " END//)\n" + + " ├─ Project\n" + + " │ ├─ columns: [id:0!null, WNUNU:1!null, HHVLX:2!null, HVHRZ:3!null, YKSSU:4, FHCYT:5]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, itwml.DRIWM:0!null as WNUNU, itwml.JIEVY:1!null as HHVLX, 1 (decimal(2,1)) as HVHRZ, NULL (null) as YKSSU, NULL (null) as FHCYT]\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: itwml\n" + + " │ ├─ outerVisibility: false\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (36-38)\n" + + " │ ├─ tableId: 5\n" + + " │ └─ Project\n" + + " │ ├─ columns: [sn.id:0!null as DRIWM, skpm6.id:4!null as JIEVY, sn.ECDKM:2 as HVHRZ]\n" + + " │ └─ Filter\n" + + " │ ├─ AND\n" + + " │ │ ├─ rn.WNUNU:6!null IS NULL\n" + + " │ │ └─ rn.HHVLX:7!null IS NULL\n" + + " │ └─ LeftOuterLookupJoin\n" + + " │ ├─ Eq\n" + + " │ │ ├─ rn.HHVLX:7!null\n" + + " │ │ └─ skpm6.id:4!null\n" + + " │ ├─ MergeJoin\n" + + " │ │ ├─ cmp: Eq\n" + + " │ │ │ ├─ sn.FFTBJ:1!null\n" + + " │ │ │ └─ skpm6.BRQP2:5!null\n" + + " │ │ ├─ Filter\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ sn.NUMK2:3!null\n" + + " │ │ │ │ └─ 1 (int)\n" + + " │ │ │ └─ TableAlias(sn)\n" + + " │ │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ │ ├─ index: [NOXN3.FFTBJ]\n" + + " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ colSet: (7-16)\n" + + " │ │ │ ├─ tableId: 2\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: NOXN3\n" + + " │ │ │ └─ columns: [id fftbj ecdkm numk2]\n" + + " │ │ └─ TableAlias(skpm6)\n" + + " │ │ └─ IndexedTableAccess(NOXN3)\n" + + " │ │ ├─ index: [NOXN3.BRQP2]\n" + + " │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ ├─ colSet: (17-26)\n" + + " │ │ ├─ tableId: 3\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: NOXN3\n" + + " │ │ └─ columns: [id brqp2]\n" + + " │ └─ TableAlias(rn)\n" + + " │ └─ IndexedTableAccess(QYWQD)\n" + + " │ ├─ index: [QYWQD.WNUNU]\n" + + " │ ├─ keys: [sn.id:0!null]\n" + + " │ ├─ colSet: (27-32)\n" + + " │ ├─ tableId: 4\n" + + " │ └─ Table\n" + + " │ ├─ name: QYWQD\n" + + " │ └─ columns: [wnunu hhvlx]\n" + + " └─ BEGIN .. END\n" + + " └─ IF BLOCK\n" + + " └─ IF(NOT\n" + + " └─ Eq\n" + + " ├─ Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ ├─ alias-string: select FFTBJ from NOXN3 where id = NEW.WNUNU\n" + + " │ └─ Project\n" + + " │ ├─ columns: [noxn3.FFTBJ:7!null]\n" + + " │ └─ Filter\n" + + " │ ├─ Eq\n" + + " │ │ ├─ noxn3.id:6!null\n" + + " │ │ └─ new.WNUNU:1!null\n" + + " │ └─ IndexedTableAccess(NOXN3)\n" + + " │ ├─ index: [NOXN3.id]\n" + + " │ ├─ keys: [new.WNUNU:1!null]\n" + + " │ ├─ colSet: (13-22)\n" + + " │ ├─ tableId: 3\n" + + " │ └─ Table\n" + + " │ ├─ name: NOXN3\n" + + " │ └─ columns: [id fftbj]\n" + + " └─ Subquery\n" + + " ├─ cacheable: false\n" + + " ├─ alias-string: select BRQP2 from NOXN3 where id = NEW.HHVLX\n" + + " └─ Project\n" + + " ├─ columns: [noxn3.BRQP2:7!null]\n" + + " └─ Filter\n" + + " ├─ Eq\n" + + " │ ├─ noxn3.id:6!null\n" + + " │ └─ new.HHVLX:2!null\n" + + " └─ IndexedTableAccess(NOXN3)\n" + + " ├─ index: [NOXN3.id]\n" + + " ├─ keys: [new.HHVLX:2!null]\n" + + " ├─ colSet: (23-32)\n" + + " ├─ tableId: 4\n" + + " └─ Table\n" + + " ├─ name: NOXN3\n" + + " └─ columns: [id brqp2]\n" + + " )\n" + + " └─ BLOCK\n" + + " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The target UWBAI of the upstream edge must be the same as the source UWBAI of the downstream edge (the enzyme UWBAI)., MYSQL_ERRNO = 1644\n" + "", }, { @@ -18150,65 +18147,64 @@ FROM TDRVG WHERE id IN ('1','2','3')`, - ExpectedPlan: "TriggerRollback\n" + - " └─ RowUpdateAccumulator\n" + - " └─ Insert(id, QZ7E7, SSHPJ, FHCYT)\n" + - " ├─ InsertDestination\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: WE72E\n" + - " │ └─ columns: [id qz7e7 sshpj fhcyt]\n" + - " └─ Trigger(CREATE TRIGGER WE72E_on_insert BEFORE INSERT ON WE72E\n" + - " FOR EACH ROW\n" + - " BEGIN\n" + - " IF\n" + - " NEW.QZ7E7 IN (SELECT SVAZ4 FROM TPXHZ)\n" + - " OR\n" + - " NEW.SSHPJ IN (SELECT SVAZ4 FROM TPXHZ)\n" + - " THEN\n" + - " -- SET @custom_error_message = (SELECT error_message FROM trigger_helper_error_message WHERE DZLIM = 'SVAZ4');\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'String field contains invalid value, like empty string, ''none'', ''null'', ''n/a'', ''nan'' etc.';\n" + - " END IF;\n" + - " END//)\n" + - " ├─ Project\n" + - " │ ├─ columns: [id:0!null, QZ7E7:1!null, SSHPJ:2!null, FHCYT:3]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [tdrvg.id:0!null, tdrvg.SFJ6L:2!null, tdrvg.SSHPJ:1!null, NULL (null) as FHCYT]\n" + - " │ └─ IndexedTableAccess(TDRVG)\n" + - " │ ├─ index: [TDRVG.id]\n" + - " │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + - " │ ├─ colSet: (5-9)\n" + - " │ ├─ tableId: 2\n" + - " │ └─ Table\n" + - " │ ├─ name: TDRVG\n" + - " │ └─ columns: [id sshpj sfj6l]\n" + - " └─ BEGIN .. END\n" + - " └─ IF BLOCK\n" + - " └─ IF(Or\n" + - " ├─ InSubquery\n" + - " │ ├─ left: new.QZ7E7:1!null\n" + - " │ └─ right: Subquery\n" + - " │ ├─ cacheable: false\n" + - " │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + - " │ └─ Table\n" + - " │ ├─ name: TPXHZ\n" + - " │ ├─ columns: [svaz4]\n" + - " │ ├─ colSet: (9,10)\n" + - " │ └─ tableId: 3\n" + - " └─ InSubquery\n" + - " ├─ left: new.SSHPJ:2!null\n" + - " └─ right: Subquery\n" + - " ├─ cacheable: false\n" + - " ├─ alias-string: select SVAZ4 from TPXHZ\n" + - " └─ Table\n" + - " ├─ name: TPXHZ\n" + - " ├─ columns: [svaz4]\n" + - " ├─ colSet: (11,12)\n" + - " └─ tableId: 4\n" + - " )\n" + - " └─ BLOCK\n" + - " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = String field contains invalid value, like empty string, 'none', 'null', 'n/a', 'nan' etc., MYSQL_ERRNO = 1644\n" + + ExpectedPlan: "RowUpdateAccumulator\n" + + " └─ Insert(id, QZ7E7, SSHPJ, FHCYT)\n" + + " ├─ InsertDestination\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: WE72E\n" + + " │ └─ columns: [id qz7e7 sshpj fhcyt]\n" + + " └─ Trigger(CREATE TRIGGER WE72E_on_insert BEFORE INSERT ON WE72E\n" + + " FOR EACH ROW\n" + + " BEGIN\n" + + " IF\n" + + " NEW.QZ7E7 IN (SELECT SVAZ4 FROM TPXHZ)\n" + + " OR\n" + + " NEW.SSHPJ IN (SELECT SVAZ4 FROM TPXHZ)\n" + + " THEN\n" + + " -- SET @custom_error_message = (SELECT error_message FROM trigger_helper_error_message WHERE DZLIM = 'SVAZ4');\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'String field contains invalid value, like empty string, ''none'', ''null'', ''n/a'', ''nan'' etc.';\n" + + " END IF;\n" + + " END//)\n" + + " ├─ Project\n" + + " │ ├─ columns: [id:0!null, QZ7E7:1!null, SSHPJ:2!null, FHCYT:3]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [tdrvg.id:0!null, tdrvg.SFJ6L:2!null, tdrvg.SSHPJ:1!null, NULL (null) as FHCYT]\n" + + " │ └─ IndexedTableAccess(TDRVG)\n" + + " │ ├─ index: [TDRVG.id]\n" + + " │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + + " │ ├─ colSet: (5-9)\n" + + " │ ├─ tableId: 2\n" + + " │ └─ Table\n" + + " │ ├─ name: TDRVG\n" + + " │ └─ columns: [id sshpj sfj6l]\n" + + " └─ BEGIN .. END\n" + + " └─ IF BLOCK\n" + + " └─ IF(Or\n" + + " ├─ InSubquery\n" + + " │ ├─ left: new.QZ7E7:1!null\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + + " │ └─ Table\n" + + " │ ├─ name: TPXHZ\n" + + " │ ├─ columns: [svaz4]\n" + + " │ ├─ colSet: (9,10)\n" + + " │ └─ tableId: 3\n" + + " └─ InSubquery\n" + + " ├─ left: new.SSHPJ:2!null\n" + + " └─ right: Subquery\n" + + " ├─ cacheable: false\n" + + " ├─ alias-string: select SVAZ4 from TPXHZ\n" + + " └─ Table\n" + + " ├─ name: TPXHZ\n" + + " ├─ columns: [svaz4]\n" + + " ├─ colSet: (11,12)\n" + + " └─ tableId: 4\n" + + " )\n" + + " └─ BLOCK\n" + + " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = String field contains invalid value, like empty string, 'none', 'null', 'n/a', 'nan' etc., MYSQL_ERRNO = 1644\n" + "", }, { @@ -18253,202 +18249,201 @@ ON YBBG5.id = nd.XQDYT WHERE ufc.id IN ('1','2','3')`, - ExpectedPlan: "TriggerRollback\n" + - " └─ RowUpdateAccumulator\n" + - " └─ Insert(id, GXLUB, LUEVY, XQDYT, AMYXQ, OZTQF, Z35GY, KKGN5)\n" + - " ├─ InsertDestination\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: AMYXQ\n" + - " │ └─ columns: [id gxlub luevy xqdyt amyxq oztqf z35gy kkgn5]\n" + - " └─ Trigger(CREATE TRIGGER AMYXQ_on_insert BEFORE INSERT ON AMYXQ\n" + - " FOR EACH ROW\n" + - " BEGIN\n" + - " IF\n" + - " (SELECT FGG57 FROM E2I7U WHERE id = NEW.LUEVY) IS NULL\n" + - " THEN\n" + - " -- SET @custom_error_message = 'The given UWBAI can not be connected to a AMYXQ record as it does not have IYDZV.';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The given UWBAI can not be connected to a AMYXQ record as it does not have IYDZV.';\n" + - " END IF;\n" + - " IF\n" + - " NEW.AMYXQ < 0 OR NEW.OZTQF < 0 OR NEW.Z35GY < 0\n" + - " THEN\n" + - " -- SET @custom_error_message = 'All values in AMYXQ must ne non-negative.';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'All values in AMYXQ must ne non-negative.';\n" + - " END IF;\n" + - " END//)\n" + - " ├─ Project\n" + - " │ ├─ columns: [id:0!null, GXLUB:1!null, LUEVY:2!null, XQDYT:3!null, AMYXQ:4!null, OZTQF:5!null, Z35GY:6!null, KKGN5:7]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select /*+ JOIN_ORDER(cla, bs) */ bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ufc.T4IBQ\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [bs.id:41!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ cla.FTQLQ:40!null\n" + - " │ │ │ └─ ufc.T4IBQ:1\n" + - " │ │ └─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ cla.id:39!null\n" + - " │ │ │ └─ bs.IXUXU:42\n" + - " │ │ ├─ TableAlias(cla)\n" + - " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ ├─ index: [YK2GW.id]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (45-74)\n" + - " │ │ │ ├─ tableId: 6\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: YK2GW\n" + - " │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ └─ TableAlias(bs)\n" + - " │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (41-44)\n" + - " │ │ ├─ tableId: 5\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: THNTS\n" + - " │ │ └─ columns: [id ixuxu]\n" + - " │ │ as GXLUB, nd.id:11!null as LUEVY, nd.XQDYT:20!null as XQDYT, (ufc.AMYXQ:3 + 0 (decimal(2,1))) as AMYXQ, CASE WHEN Eq\n" + - " │ │ ├─ ybbg5.DZLIM:29!null\n" + - " │ │ └─ KTNZ2 (longtext)\n" + - " │ │ THEN (ufc.KTNZ2:4 + 0 (decimal(2,1))) WHEN Eq\n" + - " │ │ ├─ ybbg5.DZLIM:29!null\n" + - " │ │ └─ HIID2 (longtext)\n" + - " │ │ THEN (ufc.HIID2:5 + 0 (decimal(2,1))) WHEN Eq\n" + - " │ │ ├─ ybbg5.DZLIM:29!null\n" + - " │ │ └─ SH7TP (longtext)\n" + - " │ │ THEN (ufc.SH7TP:8 + 0 (decimal(2,1))) WHEN Eq\n" + - " │ │ ├─ ybbg5.DZLIM:29!null\n" + - " │ │ └─ VVKNB (longtext)\n" + - " │ │ THEN (ufc.VVKNB:7 + 0 (decimal(2,1))) WHEN Eq\n" + - " │ │ ├─ ybbg5.DZLIM:29!null\n" + - " │ │ └─ DN3OQ (longtext)\n" + - " │ │ THEN (ufc.DN3OQ:6 + 0 (decimal(2,1))) ELSE NULL (null) END as OZTQF, (ufc.SRZZO:9 + 0 (decimal(2,1))) as Z35GY, ufc.id:0!null as KKGN5]\n" + + ExpectedPlan: "RowUpdateAccumulator\n" + + " └─ Insert(id, GXLUB, LUEVY, XQDYT, AMYXQ, OZTQF, Z35GY, KKGN5)\n" + + " ├─ InsertDestination\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: AMYXQ\n" + + " │ └─ columns: [id gxlub luevy xqdyt amyxq oztqf z35gy kkgn5]\n" + + " └─ Trigger(CREATE TRIGGER AMYXQ_on_insert BEFORE INSERT ON AMYXQ\n" + + " FOR EACH ROW\n" + + " BEGIN\n" + + " IF\n" + + " (SELECT FGG57 FROM E2I7U WHERE id = NEW.LUEVY) IS NULL\n" + + " THEN\n" + + " -- SET @custom_error_message = 'The given UWBAI can not be connected to a AMYXQ record as it does not have IYDZV.';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The given UWBAI can not be connected to a AMYXQ record as it does not have IYDZV.';\n" + + " END IF;\n" + + " IF\n" + + " NEW.AMYXQ < 0 OR NEW.OZTQF < 0 OR NEW.Z35GY < 0\n" + + " THEN\n" + + " -- SET @custom_error_message = 'All values in AMYXQ must ne non-negative.';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'All values in AMYXQ must ne non-negative.';\n" + + " END IF;\n" + + " END//)\n" + + " ├─ Project\n" + + " │ ├─ columns: [id:0!null, GXLUB:1!null, LUEVY:2!null, XQDYT:3!null, AMYXQ:4!null, OZTQF:5!null, Z35GY:6!null, KKGN5:7]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select /*+ JOIN_ORDER(cla, bs) */ bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ufc.T4IBQ\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [bs.id:41!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ cla.FTQLQ:40!null\n" + + " │ │ │ └─ ufc.T4IBQ:1\n" + + " │ │ └─ MergeJoin\n" + + " │ │ ├─ cmp: Eq\n" + + " │ │ │ ├─ cla.id:39!null\n" + + " │ │ │ └─ bs.IXUXU:42\n" + + " │ │ ├─ TableAlias(cla)\n" + + " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ colSet: (45-74)\n" + + " │ │ │ ├─ tableId: 6\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: YK2GW\n" + + " │ │ │ └─ columns: [id ftqlq]\n" + + " │ │ └─ TableAlias(bs)\n" + + " │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ ├─ colSet: (41-44)\n" + + " │ │ ├─ tableId: 5\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: THNTS\n" + + " │ │ └─ columns: [id ixuxu]\n" + + " │ │ as GXLUB, nd.id:11!null as LUEVY, nd.XQDYT:20!null as XQDYT, (ufc.AMYXQ:3 + 0 (decimal(2,1))) as AMYXQ, CASE WHEN Eq\n" + + " │ │ ├─ ybbg5.DZLIM:29!null\n" + + " │ │ └─ KTNZ2 (longtext)\n" + + " │ │ THEN (ufc.KTNZ2:4 + 0 (decimal(2,1))) WHEN Eq\n" + + " │ │ ├─ ybbg5.DZLIM:29!null\n" + + " │ │ └─ HIID2 (longtext)\n" + + " │ │ THEN (ufc.HIID2:5 + 0 (decimal(2,1))) WHEN Eq\n" + + " │ │ ├─ ybbg5.DZLIM:29!null\n" + + " │ │ └─ SH7TP (longtext)\n" + + " │ │ THEN (ufc.SH7TP:8 + 0 (decimal(2,1))) WHEN Eq\n" + + " │ │ ├─ ybbg5.DZLIM:29!null\n" + + " │ │ └─ VVKNB (longtext)\n" + + " │ │ THEN (ufc.VVKNB:7 + 0 (decimal(2,1))) WHEN Eq\n" + + " │ │ ├─ ybbg5.DZLIM:29!null\n" + + " │ │ └─ DN3OQ (longtext)\n" + + " │ │ THEN (ufc.DN3OQ:6 + 0 (decimal(2,1))) ELSE NULL (null) END as OZTQF, (ufc.SRZZO:9 + 0 (decimal(2,1))) as Z35GY, ufc.id:0!null as KKGN5]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ufc.id:0!null, ufc.T4IBQ:1, ufc.ZH72S:2, ufc.AMYXQ:3, ufc.KTNZ2:4, ufc.HIID2:5, ufc.DN3OQ:6, ufc.VVKNB:7, ufc.SH7TP:8, ufc.SRZZO:9, ufc.QZ6VT:10, nd.id:11!null, nd.DKCAJ:12!null, nd.KNG7T:13, nd.TW55N:14!null, nd.QRQXW:15!null, nd.ECXAJ:16!null, nd.FGG57:17, nd.ZH72S:18, nd.FSK67:19!null, nd.XQDYT:20!null, nd.TCE7A:21, nd.IWV2H:22, nd.HPCMS:23!null, nd.N5CC2:24, nd.FHCYT:25, nd.ETAQ7:26, nd.A75X7:27, ybbg5.id:28!null, ybbg5.DZLIM:29!null, ybbg5.F3YUE:30, lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select /*+ JOIN_ORDER(cla, bs) */ bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ufc.T4IBQ\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [bs.id:33!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ cla.FTQLQ:32!null\n" + + " │ │ │ └─ ufc.T4IBQ:1\n" + + " │ │ └─ MergeJoin\n" + + " │ │ ├─ cmp: Eq\n" + + " │ │ │ ├─ cla.id:31!null\n" + + " │ │ │ └─ bs.IXUXU:34\n" + + " │ │ ├─ TableAlias(cla)\n" + + " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ │ ├─ index: [YK2GW.id]\n" + + " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ colSet: (45-74)\n" + + " │ │ │ ├─ tableId: 6\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: YK2GW\n" + + " │ │ │ └─ columns: [id ftqlq]\n" + + " │ │ └─ TableAlias(bs)\n" + + " │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ ├─ colSet: (41-44)\n" + + " │ │ ├─ tableId: 5\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: THNTS\n" + + " │ │ └─ columns: [id ixuxu]\n" + + " │ │ as GXLUB, nd.id:11!null as LUEVY, nd.XQDYT:20!null as XQDYT, (ufc.AMYXQ:3 + 0 (decimal(2,1))) as AMYXQ, CASE WHEN Eq\n" + + " │ │ ├─ ybbg5.DZLIM:29!null\n" + + " │ │ └─ KTNZ2 (longtext)\n" + + " │ │ THEN (ufc.KTNZ2:4 + 0 (decimal(2,1))) WHEN Eq\n" + + " │ │ ├─ ybbg5.DZLIM:29!null\n" + + " │ │ └─ HIID2 (longtext)\n" + + " │ │ THEN (ufc.HIID2:5 + 0 (decimal(2,1))) WHEN Eq\n" + + " │ │ ├─ ybbg5.DZLIM:29!null\n" + + " │ │ └─ SH7TP (longtext)\n" + + " │ │ THEN (ufc.SH7TP:8 + 0 (decimal(2,1))) WHEN Eq\n" + + " │ │ ├─ ybbg5.DZLIM:29!null\n" + + " │ │ └─ VVKNB (longtext)\n" + + " │ │ THEN (ufc.VVKNB:7 + 0 (decimal(2,1))) WHEN Eq\n" + + " │ │ ├─ ybbg5.DZLIM:29!null\n" + + " │ │ └─ DN3OQ (longtext)\n" + + " │ │ THEN (ufc.DN3OQ:6 + 0 (decimal(2,1))) ELSE NULL (null) END as OZTQF, (ufc.SRZZO:9 + 0 (decimal(2,1))) as Z35GY, ufc.id:0!null as KKGN5]\n" + + " │ └─ InnerJoin\n" + + " │ ├─ Eq\n" + + " │ │ ├─ nd.ZH72S:18\n" + + " │ │ └─ ufc.ZH72S:2\n" + + " │ ├─ TableAlias(ufc)\n" + + " │ │ └─ IndexedTableAccess(SISUT)\n" + + " │ │ ├─ index: [SISUT.id]\n" + + " │ │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + + " │ │ ├─ colSet: (9-19)\n" + + " │ │ ├─ tableId: 2\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: SISUT\n" + + " │ │ └─ columns: [id t4ibq zh72s amyxq ktnz2 hiid2 dn3oq vvknb sh7tp srzzo qz6vt]\n" + + " │ └─ MergeJoin\n" + + " │ ├─ cmp: Eq\n" + + " │ │ ├─ nd.XQDYT:20!null\n" + + " │ │ └─ ybbg5.id:28!null\n" + + " │ ├─ TableAlias(nd)\n" + + " │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ ├─ index: [E2I7U.XQDYT]\n" + + " │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ ├─ colSet: (20-36)\n" + + " │ │ ├─ tableId: 3\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: E2I7U\n" + + " │ │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + + " │ └─ TableAlias(ybbg5)\n" + + " │ └─ IndexedTableAccess(XGSJM)\n" + + " │ ├─ index: [XGSJM.id]\n" + + " │ ├─ static: [{[NULL, ∞)}]\n" + + " │ ├─ colSet: (37-39)\n" + + " │ ├─ tableId: 4\n" + + " │ └─ Table\n" + + " │ ├─ name: XGSJM\n" + + " │ └─ columns: [id dzlim f3yue]\n" + + " └─ BEGIN .. END\n" + + " ├─ IF BLOCK\n" + + " │ └─ IF(Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ ├─ alias-string: select FGG57 from E2I7U where id = NEW.LUEVY\n" + " │ └─ Project\n" + - " │ ├─ columns: [ufc.id:0!null, ufc.T4IBQ:1, ufc.ZH72S:2, ufc.AMYXQ:3, ufc.KTNZ2:4, ufc.HIID2:5, ufc.DN3OQ:6, ufc.VVKNB:7, ufc.SH7TP:8, ufc.SRZZO:9, ufc.QZ6VT:10, nd.id:11!null, nd.DKCAJ:12!null, nd.KNG7T:13, nd.TW55N:14!null, nd.QRQXW:15!null, nd.ECXAJ:16!null, nd.FGG57:17, nd.ZH72S:18, nd.FSK67:19!null, nd.XQDYT:20!null, nd.TCE7A:21, nd.IWV2H:22, nd.HPCMS:23!null, nd.N5CC2:24, nd.FHCYT:25, nd.ETAQ7:26, nd.A75X7:27, ybbg5.id:28!null, ybbg5.DZLIM:29!null, ybbg5.F3YUE:30, lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select /*+ JOIN_ORDER(cla, bs) */ bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ufc.T4IBQ\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [bs.id:33!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ cla.FTQLQ:32!null\n" + - " │ │ │ └─ ufc.T4IBQ:1\n" + - " │ │ └─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ cla.id:31!null\n" + - " │ │ │ └─ bs.IXUXU:34\n" + - " │ │ ├─ TableAlias(cla)\n" + - " │ │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ │ ├─ index: [YK2GW.id]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (45-74)\n" + - " │ │ │ ├─ tableId: 6\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: YK2GW\n" + - " │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ └─ TableAlias(bs)\n" + - " │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (41-44)\n" + - " │ │ ├─ tableId: 5\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: THNTS\n" + - " │ │ └─ columns: [id ixuxu]\n" + - " │ │ as GXLUB, nd.id:11!null as LUEVY, nd.XQDYT:20!null as XQDYT, (ufc.AMYXQ:3 + 0 (decimal(2,1))) as AMYXQ, CASE WHEN Eq\n" + - " │ │ ├─ ybbg5.DZLIM:29!null\n" + - " │ │ └─ KTNZ2 (longtext)\n" + - " │ │ THEN (ufc.KTNZ2:4 + 0 (decimal(2,1))) WHEN Eq\n" + - " │ │ ├─ ybbg5.DZLIM:29!null\n" + - " │ │ └─ HIID2 (longtext)\n" + - " │ │ THEN (ufc.HIID2:5 + 0 (decimal(2,1))) WHEN Eq\n" + - " │ │ ├─ ybbg5.DZLIM:29!null\n" + - " │ │ └─ SH7TP (longtext)\n" + - " │ │ THEN (ufc.SH7TP:8 + 0 (decimal(2,1))) WHEN Eq\n" + - " │ │ ├─ ybbg5.DZLIM:29!null\n" + - " │ │ └─ VVKNB (longtext)\n" + - " │ │ THEN (ufc.VVKNB:7 + 0 (decimal(2,1))) WHEN Eq\n" + - " │ │ ├─ ybbg5.DZLIM:29!null\n" + - " │ │ └─ DN3OQ (longtext)\n" + - " │ │ THEN (ufc.DN3OQ:6 + 0 (decimal(2,1))) ELSE NULL (null) END as OZTQF, (ufc.SRZZO:9 + 0 (decimal(2,1))) as Z35GY, ufc.id:0!null as KKGN5]\n" + - " │ └─ InnerJoin\n" + + " │ ├─ columns: [e2i7u.FGG57:9]\n" + + " │ └─ Filter\n" + " │ ├─ Eq\n" + - " │ │ ├─ nd.ZH72S:18\n" + - " │ │ └─ ufc.ZH72S:2\n" + - " │ ├─ TableAlias(ufc)\n" + - " │ │ └─ IndexedTableAccess(SISUT)\n" + - " │ │ ├─ index: [SISUT.id]\n" + - " │ │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + - " │ │ ├─ colSet: (9-19)\n" + - " │ │ ├─ tableId: 2\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: SISUT\n" + - " │ │ └─ columns: [id t4ibq zh72s amyxq ktnz2 hiid2 dn3oq vvknb sh7tp srzzo qz6vt]\n" + - " │ └─ MergeJoin\n" + - " │ ├─ cmp: Eq\n" + - " │ │ ├─ nd.XQDYT:20!null\n" + - " │ │ └─ ybbg5.id:28!null\n" + - " │ ├─ TableAlias(nd)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.XQDYT]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (20-36)\n" + - " │ │ ├─ tableId: 3\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: E2I7U\n" + - " │ │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + - " │ └─ TableAlias(ybbg5)\n" + - " │ └─ IndexedTableAccess(XGSJM)\n" + - " │ ├─ index: [XGSJM.id]\n" + - " │ ├─ static: [{[NULL, ∞)}]\n" + - " │ ├─ colSet: (37-39)\n" + - " │ ├─ tableId: 4\n" + - " │ └─ Table\n" + - " │ ├─ name: XGSJM\n" + - " │ └─ columns: [id dzlim f3yue]\n" + - " └─ BEGIN .. END\n" + - " ├─ IF BLOCK\n" + - " │ └─ IF(Subquery\n" + - " │ ├─ cacheable: false\n" + - " │ ├─ alias-string: select FGG57 from E2I7U where id = NEW.LUEVY\n" + - " │ └─ Project\n" + - " │ ├─ columns: [e2i7u.FGG57:9]\n" + - " │ └─ Filter\n" + - " │ ├─ Eq\n" + - " │ │ ├─ e2i7u.id:8!null\n" + - " │ │ └─ new.LUEVY:2!null\n" + - " │ └─ IndexedTableAccess(E2I7U)\n" + - " │ ├─ index: [E2I7U.id]\n" + - " │ ├─ keys: [new.LUEVY:2!null]\n" + - " │ ├─ colSet: (17-33)\n" + - " │ ├─ tableId: 3\n" + - " │ └─ Table\n" + - " │ ├─ name: E2I7U\n" + - " │ └─ columns: [id fgg57]\n" + - " │ IS NULL)\n" + - " │ └─ BLOCK\n" + - " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The given UWBAI can not be connected to a AMYXQ record as it does not have IYDZV., MYSQL_ERRNO = 1644\n" + - " └─ IF BLOCK\n" + - " └─ IF(Or\n" + - " ├─ Or\n" + - " │ ├─ LessThan\n" + - " │ │ ├─ new.AMYXQ:4!null\n" + - " │ │ └─ 0 (tinyint)\n" + - " │ └─ LessThan\n" + - " │ ├─ new.OZTQF:5!null\n" + - " │ └─ 0 (tinyint)\n" + - " └─ LessThan\n" + - " ├─ new.Z35GY:6!null\n" + - " └─ 0 (tinyint)\n" + - " )\n" + - " └─ BLOCK\n" + - " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = All values in AMYXQ must ne non-negative., MYSQL_ERRNO = 1644\n" + + " │ │ ├─ e2i7u.id:8!null\n" + + " │ │ └─ new.LUEVY:2!null\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.id]\n" + + " │ ├─ keys: [new.LUEVY:2!null]\n" + + " │ ├─ colSet: (17-33)\n" + + " │ ├─ tableId: 3\n" + + " │ └─ Table\n" + + " │ ├─ name: E2I7U\n" + + " │ └─ columns: [id fgg57]\n" + + " │ IS NULL)\n" + + " │ └─ BLOCK\n" + + " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The given UWBAI can not be connected to a AMYXQ record as it does not have IYDZV., MYSQL_ERRNO = 1644\n" + + " └─ IF BLOCK\n" + + " └─ IF(Or\n" + + " ├─ Or\n" + + " │ ├─ LessThan\n" + + " │ │ ├─ new.AMYXQ:4!null\n" + + " │ │ └─ 0 (tinyint)\n" + + " │ └─ LessThan\n" + + " │ ├─ new.OZTQF:5!null\n" + + " │ └─ 0 (tinyint)\n" + + " └─ LessThan\n" + + " ├─ new.Z35GY:6!null\n" + + " └─ 0 (tinyint)\n" + + " )\n" + + " └─ BLOCK\n" + + " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = All values in AMYXQ must ne non-negative., MYSQL_ERRNO = 1644\n" + "", }, { @@ -18469,180 +18464,179 @@ FROM FG26Y ums WHERE ums.id IN ('1','2','3')`, - ExpectedPlan: "TriggerRollback\n" + - " └─ RowUpdateAccumulator\n" + - " └─ Insert(id, GXLUB, CH3FR, D237E, JOGI6)\n" + - " ├─ InsertDestination\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: SZQWJ\n" + - " │ └─ columns: [id gxlub ch3fr d237e jogi6]\n" + - " └─ Trigger(CREATE TRIGGER SZQWJ_on_insert BEFORE INSERT ON SZQWJ\n" + - " FOR EACH ROW\n" + - " BEGIN\n" + - " IF\n" + - " (SELECT DZLIM FROM XOAOP WHERE id = NEW.CH3FR) NOT IN ('NER', 'BER', 'HR', 'MMR')\n" + - " THEN\n" + - " -- SET @custom_error_message = 'The ECUWU must be one of the following: ''NER'', ''BER'', ''HR'', ''MMR''.';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The ECUWU must be one of the following: ''NER'', ''BER'', ''HR'', ''MMR''.';\n" + - " END IF;\n" + - " IF\n" + - " NEW.D237E NOT IN (0, 1)\n" + - " THEN\n" + - " -- SET @custom_error_message = 'The D237E field must be either 0 or 1.';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The D237E field must be either 0 or 1.';\n" + - " END IF;\n" + - " END//)\n" + - " ├─ Project\n" + - " │ ├─ columns: [id:0!null, GXLUB:1!null, CH3FR:2!null, D237E:3!null, JOGI6:4]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ums.T4IBQ\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [bs.id:12!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ cla.FTQLQ:15!null\n" + - " │ │ │ └─ ums.T4IBQ:1\n" + - " │ │ └─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ bs.IXUXU:13\n" + - " │ │ │ └─ cla.id:14!null\n" + - " │ │ ├─ TableAlias(bs)\n" + - " │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (14-17)\n" + - " │ │ │ ├─ tableId: 3\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: THNTS\n" + - " │ │ │ └─ columns: [id ixuxu]\n" + - " │ │ └─ TableAlias(cla)\n" + - " │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ ├─ index: [YK2GW.id]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (18-47)\n" + - " │ │ ├─ tableId: 4\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: YK2GW\n" + - " │ │ └─ columns: [id ftqlq]\n" + - " │ │ as GXLUB, Subquery\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ alias-string: select id from XOAOP where DZLIM = 'NER'\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [xoaop.id:12!null]\n" + - " │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ ├─ index: [XOAOP.DZLIM]\n" + - " │ │ ├─ static: [{[NER, NER]}]\n" + - " │ │ ├─ colSet: (49-51)\n" + - " │ │ ├─ tableId: 5\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: XOAOP\n" + - " │ │ └─ columns: [id dzlim]\n" + - " │ │ as CH3FR, CASE WHEN GreaterThan\n" + - " │ │ ├─ ums.ner:2\n" + - " │ │ └─ 0.5 (decimal(2,1))\n" + - " │ │ THEN 1 (tinyint) WHEN LessThan\n" + - " │ │ ├─ ums.ner:2\n" + - " │ │ └─ 0.5 (decimal(2,1))\n" + - " │ │ THEN 0 (tinyint) ELSE NULL (null) END as D237E, ums.id:0!null as JOGI6]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [ums.id:0!null, ums.T4IBQ:1, ums.ner:2, ums.ber:3, ums.hr:4, ums.mmr:5, ums.QZ6VT:6, lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + ExpectedPlan: "RowUpdateAccumulator\n" + + " └─ Insert(id, GXLUB, CH3FR, D237E, JOGI6)\n" + + " ├─ InsertDestination\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: SZQWJ\n" + + " │ └─ columns: [id gxlub ch3fr d237e jogi6]\n" + + " └─ Trigger(CREATE TRIGGER SZQWJ_on_insert BEFORE INSERT ON SZQWJ\n" + + " FOR EACH ROW\n" + + " BEGIN\n" + + " IF\n" + + " (SELECT DZLIM FROM XOAOP WHERE id = NEW.CH3FR) NOT IN ('NER', 'BER', 'HR', 'MMR')\n" + + " THEN\n" + + " -- SET @custom_error_message = 'The ECUWU must be one of the following: ''NER'', ''BER'', ''HR'', ''MMR''.';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The ECUWU must be one of the following: ''NER'', ''BER'', ''HR'', ''MMR''.';\n" + + " END IF;\n" + + " IF\n" + + " NEW.D237E NOT IN (0, 1)\n" + + " THEN\n" + + " -- SET @custom_error_message = 'The D237E field must be either 0 or 1.';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The D237E field must be either 0 or 1.';\n" + + " END IF;\n" + + " END//)\n" + + " ├─ Project\n" + + " │ ├─ columns: [id:0!null, GXLUB:1!null, CH3FR:2!null, D237E:3!null, JOGI6:4]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ums.T4IBQ\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [bs.id:12!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ cla.FTQLQ:15!null\n" + + " │ │ │ └─ ums.T4IBQ:1\n" + + " │ │ └─ MergeJoin\n" + + " │ │ ├─ cmp: Eq\n" + + " │ │ │ ├─ bs.IXUXU:13\n" + + " │ │ │ └─ cla.id:14!null\n" + + " │ │ ├─ TableAlias(bs)\n" + + " │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ colSet: (14-17)\n" + + " │ │ │ ├─ tableId: 3\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: THNTS\n" + + " │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ └─ TableAlias(cla)\n" + + " │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ ├─ index: [YK2GW.id]\n" + + " │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ ├─ colSet: (18-47)\n" + + " │ │ ├─ tableId: 4\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: YK2GW\n" + + " │ │ └─ columns: [id ftqlq]\n" + + " │ │ as GXLUB, Subquery\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ alias-string: select id from XOAOP where DZLIM = 'NER'\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [xoaop.id:12!null]\n" + + " │ │ └─ IndexedTableAccess(XOAOP)\n" + + " │ │ ├─ index: [XOAOP.DZLIM]\n" + + " │ │ ├─ static: [{[NER, NER]}]\n" + + " │ │ ├─ colSet: (49-51)\n" + + " │ │ ├─ tableId: 5\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: XOAOP\n" + + " │ │ └─ columns: [id dzlim]\n" + + " │ │ as CH3FR, CASE WHEN GreaterThan\n" + + " │ │ ├─ ums.ner:2\n" + + " │ │ └─ 0.5 (decimal(2,1))\n" + + " │ │ THEN 1 (tinyint) WHEN LessThan\n" + + " │ │ ├─ ums.ner:2\n" + + " │ │ └─ 0.5 (decimal(2,1))\n" + + " │ │ THEN 0 (tinyint) ELSE NULL (null) END as D237E, ums.id:0!null as JOGI6]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ums.id:0!null, ums.T4IBQ:1, ums.ner:2, ums.ber:3, ums.hr:4, ums.mmr:5, ums.QZ6VT:6, lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ums.T4IBQ\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [bs.id:7!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ cla.FTQLQ:10!null\n" + + " │ │ │ └─ ums.T4IBQ:1\n" + + " │ │ └─ MergeJoin\n" + + " │ │ ├─ cmp: Eq\n" + + " │ │ │ ├─ bs.IXUXU:8\n" + + " │ │ │ └─ cla.id:9!null\n" + + " │ │ ├─ TableAlias(bs)\n" + + " │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ colSet: (14-17)\n" + + " │ │ │ ├─ tableId: 3\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: THNTS\n" + + " │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ └─ TableAlias(cla)\n" + + " │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ ├─ index: [YK2GW.id]\n" + + " │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ ├─ colSet: (18-47)\n" + + " │ │ ├─ tableId: 4\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: YK2GW\n" + + " │ │ └─ columns: [id ftqlq]\n" + + " │ │ as GXLUB, Subquery\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ alias-string: select id from XOAOP where DZLIM = 'NER'\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [xoaop.id:7!null]\n" + + " │ │ └─ IndexedTableAccess(XOAOP)\n" + + " │ │ ├─ index: [XOAOP.DZLIM]\n" + + " │ │ ├─ static: [{[NER, NER]}]\n" + + " │ │ ├─ colSet: (49-51)\n" + + " │ │ ├─ tableId: 5\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: XOAOP\n" + + " │ │ └─ columns: [id dzlim]\n" + + " │ │ as CH3FR, CASE WHEN GreaterThan\n" + + " │ │ ├─ ums.ner:2\n" + + " │ │ └─ 0.5 (decimal(2,1))\n" + + " │ │ THEN 1 (tinyint) WHEN LessThan\n" + + " │ │ ├─ ums.ner:2\n" + + " │ │ └─ 0.5 (decimal(2,1))\n" + + " │ │ THEN 0 (tinyint) ELSE NULL (null) END as D237E, ums.id:0!null as JOGI6]\n" + + " │ └─ TableAlias(ums)\n" + + " │ └─ IndexedTableAccess(FG26Y)\n" + + " │ ├─ index: [FG26Y.id]\n" + + " │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + + " │ ├─ colSet: (6-12)\n" + + " │ ├─ tableId: 2\n" + + " │ └─ Table\n" + + " │ ├─ name: FG26Y\n" + + " │ └─ columns: [id t4ibq ner ber hr mmr qz6vt]\n" + + " └─ BEGIN .. END\n" + + " ├─ IF BLOCK\n" + + " │ └─ IF(NOT\n" + + " │ └─ IN\n" + + " │ ├─ left: Subquery\n" + " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ums.T4IBQ\n" + + " │ │ ├─ alias-string: select DZLIM from XOAOP where id = NEW.CH3FR\n" + " │ │ └─ Project\n" + - " │ │ ├─ columns: [bs.id:7!null]\n" + + " │ │ ├─ columns: [xoaop.DZLIM:6!null]\n" + " │ │ └─ Filter\n" + " │ │ ├─ Eq\n" + - " │ │ │ ├─ cla.FTQLQ:10!null\n" + - " │ │ │ └─ ums.T4IBQ:1\n" + - " │ │ └─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ bs.IXUXU:8\n" + - " │ │ │ └─ cla.id:9!null\n" + - " │ │ ├─ TableAlias(bs)\n" + - " │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (14-17)\n" + - " │ │ │ ├─ tableId: 3\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: THNTS\n" + - " │ │ │ └─ columns: [id ixuxu]\n" + - " │ │ └─ TableAlias(cla)\n" + - " │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ ├─ index: [YK2GW.id]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (18-47)\n" + - " │ │ ├─ tableId: 4\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: YK2GW\n" + - " │ │ └─ columns: [id ftqlq]\n" + - " │ │ as GXLUB, Subquery\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ alias-string: select id from XOAOP where DZLIM = 'NER'\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [xoaop.id:7!null]\n" + - " │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ ├─ index: [XOAOP.DZLIM]\n" + - " │ │ ├─ static: [{[NER, NER]}]\n" + - " │ │ ├─ colSet: (49-51)\n" + - " │ │ ├─ tableId: 5\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: XOAOP\n" + - " │ │ └─ columns: [id dzlim]\n" + - " │ │ as CH3FR, CASE WHEN GreaterThan\n" + - " │ │ ├─ ums.ner:2\n" + - " │ │ └─ 0.5 (decimal(2,1))\n" + - " │ │ THEN 1 (tinyint) WHEN LessThan\n" + - " │ │ ├─ ums.ner:2\n" + - " │ │ └─ 0.5 (decimal(2,1))\n" + - " │ │ THEN 0 (tinyint) ELSE NULL (null) END as D237E, ums.id:0!null as JOGI6]\n" + - " │ └─ TableAlias(ums)\n" + - " │ └─ IndexedTableAccess(FG26Y)\n" + - " │ ├─ index: [FG26Y.id]\n" + - " │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + - " │ ├─ colSet: (6-12)\n" + - " │ ├─ tableId: 2\n" + - " │ └─ Table\n" + - " │ ├─ name: FG26Y\n" + - " │ └─ columns: [id t4ibq ner ber hr mmr qz6vt]\n" + - " └─ BEGIN .. END\n" + - " ├─ IF BLOCK\n" + - " │ └─ IF(NOT\n" + - " │ └─ IN\n" + - " │ ├─ left: Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select DZLIM from XOAOP where id = NEW.CH3FR\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [xoaop.DZLIM:6!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ xoaop.id:5!null\n" + - " │ │ │ └─ new.CH3FR:2!null\n" + - " │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ ├─ index: [XOAOP.id]\n" + - " │ │ ├─ keys: [new.CH3FR:2!null]\n" + - " │ │ ├─ colSet: (11-13)\n" + - " │ │ ├─ tableId: 3\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: XOAOP\n" + - " │ │ └─ columns: [id dzlim]\n" + - " │ └─ right: TUPLE(NER (longtext), BER (longtext), HR (longtext), MMR (longtext))\n" + - " │ )\n" + - " │ └─ BLOCK\n" + - " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The ECUWU must be one of the following: 'NER', 'BER', 'HR', 'MMR'., MYSQL_ERRNO = 1644\n" + - " └─ IF BLOCK\n" + - " └─ IF(NOT\n" + - " └─ IN\n" + - " ├─ left: new.D237E:3!null\n" + - " └─ right: TUPLE(0 (tinyint), 1 (tinyint))\n" + - " )\n" + - " └─ BLOCK\n" + - " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The D237E field must be either 0 or 1., MYSQL_ERRNO = 1644\n" + + " │ │ │ ├─ xoaop.id:5!null\n" + + " │ │ │ └─ new.CH3FR:2!null\n" + + " │ │ └─ IndexedTableAccess(XOAOP)\n" + + " │ │ ├─ index: [XOAOP.id]\n" + + " │ │ ├─ keys: [new.CH3FR:2!null]\n" + + " │ │ ├─ colSet: (11-13)\n" + + " │ │ ├─ tableId: 3\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: XOAOP\n" + + " │ │ └─ columns: [id dzlim]\n" + + " │ └─ right: TUPLE(NER (longtext), BER (longtext), HR (longtext), MMR (longtext))\n" + + " │ )\n" + + " │ └─ BLOCK\n" + + " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The ECUWU must be one of the following: 'NER', 'BER', 'HR', 'MMR'., MYSQL_ERRNO = 1644\n" + + " └─ IF BLOCK\n" + + " └─ IF(NOT\n" + + " └─ IN\n" + + " ├─ left: new.D237E:3!null\n" + + " └─ right: TUPLE(0 (tinyint), 1 (tinyint))\n" + + " )\n" + + " └─ BLOCK\n" + + " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The D237E field must be either 0 or 1., MYSQL_ERRNO = 1644\n" + "", }, { @@ -18663,180 +18657,179 @@ FROM FG26Y ums WHERE ums.id IN ('1','2','3')`, - ExpectedPlan: "TriggerRollback\n" + - " └─ RowUpdateAccumulator\n" + - " └─ Insert(id, GXLUB, CH3FR, D237E, JOGI6)\n" + - " ├─ InsertDestination\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: SZQWJ\n" + - " │ └─ columns: [id gxlub ch3fr d237e jogi6]\n" + - " └─ Trigger(CREATE TRIGGER SZQWJ_on_insert BEFORE INSERT ON SZQWJ\n" + - " FOR EACH ROW\n" + - " BEGIN\n" + - " IF\n" + - " (SELECT DZLIM FROM XOAOP WHERE id = NEW.CH3FR) NOT IN ('NER', 'BER', 'HR', 'MMR')\n" + - " THEN\n" + - " -- SET @custom_error_message = 'The ECUWU must be one of the following: ''NER'', ''BER'', ''HR'', ''MMR''.';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The ECUWU must be one of the following: ''NER'', ''BER'', ''HR'', ''MMR''.';\n" + - " END IF;\n" + - " IF\n" + - " NEW.D237E NOT IN (0, 1)\n" + - " THEN\n" + - " -- SET @custom_error_message = 'The D237E field must be either 0 or 1.';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The D237E field must be either 0 or 1.';\n" + - " END IF;\n" + - " END//)\n" + - " ├─ Project\n" + - " │ ├─ columns: [id:0!null, GXLUB:1!null, CH3FR:2!null, D237E:3!null, JOGI6:4]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ums.T4IBQ\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [bs.id:12!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ cla.FTQLQ:15!null\n" + - " │ │ │ └─ ums.T4IBQ:1\n" + - " │ │ └─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ bs.IXUXU:13\n" + - " │ │ │ └─ cla.id:14!null\n" + - " │ │ ├─ TableAlias(bs)\n" + - " │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (14-17)\n" + - " │ │ │ ├─ tableId: 3\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: THNTS\n" + - " │ │ │ └─ columns: [id ixuxu]\n" + - " │ │ └─ TableAlias(cla)\n" + - " │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ ├─ index: [YK2GW.id]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (18-47)\n" + - " │ │ ├─ tableId: 4\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: YK2GW\n" + - " │ │ └─ columns: [id ftqlq]\n" + - " │ │ as GXLUB, Subquery\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ alias-string: select id from XOAOP where DZLIM = 'BER'\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [xoaop.id:12!null]\n" + - " │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ ├─ index: [XOAOP.DZLIM]\n" + - " │ │ ├─ static: [{[BER, BER]}]\n" + - " │ │ ├─ colSet: (49-51)\n" + - " │ │ ├─ tableId: 5\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: XOAOP\n" + - " │ │ └─ columns: [id dzlim]\n" + - " │ │ as CH3FR, CASE WHEN GreaterThan\n" + - " │ │ ├─ ums.ber:3\n" + - " │ │ └─ 0.5 (decimal(2,1))\n" + - " │ │ THEN 1 (tinyint) WHEN LessThan\n" + - " │ │ ├─ ums.ber:3\n" + - " │ │ └─ 0.5 (decimal(2,1))\n" + - " │ │ THEN 0 (tinyint) ELSE NULL (null) END as D237E, ums.id:0!null as JOGI6]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [ums.id:0!null, ums.T4IBQ:1, ums.ner:2, ums.ber:3, ums.hr:4, ums.mmr:5, ums.QZ6VT:6, lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + ExpectedPlan: "RowUpdateAccumulator\n" + + " └─ Insert(id, GXLUB, CH3FR, D237E, JOGI6)\n" + + " ├─ InsertDestination\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: SZQWJ\n" + + " │ └─ columns: [id gxlub ch3fr d237e jogi6]\n" + + " └─ Trigger(CREATE TRIGGER SZQWJ_on_insert BEFORE INSERT ON SZQWJ\n" + + " FOR EACH ROW\n" + + " BEGIN\n" + + " IF\n" + + " (SELECT DZLIM FROM XOAOP WHERE id = NEW.CH3FR) NOT IN ('NER', 'BER', 'HR', 'MMR')\n" + + " THEN\n" + + " -- SET @custom_error_message = 'The ECUWU must be one of the following: ''NER'', ''BER'', ''HR'', ''MMR''.';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The ECUWU must be one of the following: ''NER'', ''BER'', ''HR'', ''MMR''.';\n" + + " END IF;\n" + + " IF\n" + + " NEW.D237E NOT IN (0, 1)\n" + + " THEN\n" + + " -- SET @custom_error_message = 'The D237E field must be either 0 or 1.';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The D237E field must be either 0 or 1.';\n" + + " END IF;\n" + + " END//)\n" + + " ├─ Project\n" + + " │ ├─ columns: [id:0!null, GXLUB:1!null, CH3FR:2!null, D237E:3!null, JOGI6:4]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ums.T4IBQ\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [bs.id:12!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ cla.FTQLQ:15!null\n" + + " │ │ │ └─ ums.T4IBQ:1\n" + + " │ │ └─ MergeJoin\n" + + " │ │ ├─ cmp: Eq\n" + + " │ │ │ ├─ bs.IXUXU:13\n" + + " │ │ │ └─ cla.id:14!null\n" + + " │ │ ├─ TableAlias(bs)\n" + + " │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ colSet: (14-17)\n" + + " │ │ │ ├─ tableId: 3\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: THNTS\n" + + " │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ └─ TableAlias(cla)\n" + + " │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ ├─ index: [YK2GW.id]\n" + + " │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ ├─ colSet: (18-47)\n" + + " │ │ ├─ tableId: 4\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: YK2GW\n" + + " │ │ └─ columns: [id ftqlq]\n" + + " │ │ as GXLUB, Subquery\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ alias-string: select id from XOAOP where DZLIM = 'BER'\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [xoaop.id:12!null]\n" + + " │ │ └─ IndexedTableAccess(XOAOP)\n" + + " │ │ ├─ index: [XOAOP.DZLIM]\n" + + " │ │ ├─ static: [{[BER, BER]}]\n" + + " │ │ ├─ colSet: (49-51)\n" + + " │ │ ├─ tableId: 5\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: XOAOP\n" + + " │ │ └─ columns: [id dzlim]\n" + + " │ │ as CH3FR, CASE WHEN GreaterThan\n" + + " │ │ ├─ ums.ber:3\n" + + " │ │ └─ 0.5 (decimal(2,1))\n" + + " │ │ THEN 1 (tinyint) WHEN LessThan\n" + + " │ │ ├─ ums.ber:3\n" + + " │ │ └─ 0.5 (decimal(2,1))\n" + + " │ │ THEN 0 (tinyint) ELSE NULL (null) END as D237E, ums.id:0!null as JOGI6]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ums.id:0!null, ums.T4IBQ:1, ums.ner:2, ums.ber:3, ums.hr:4, ums.mmr:5, ums.QZ6VT:6, lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ums.T4IBQ\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [bs.id:7!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ cla.FTQLQ:10!null\n" + + " │ │ │ └─ ums.T4IBQ:1\n" + + " │ │ └─ MergeJoin\n" + + " │ │ ├─ cmp: Eq\n" + + " │ │ │ ├─ bs.IXUXU:8\n" + + " │ │ │ └─ cla.id:9!null\n" + + " │ │ ├─ TableAlias(bs)\n" + + " │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ colSet: (14-17)\n" + + " │ │ │ ├─ tableId: 3\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: THNTS\n" + + " │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ └─ TableAlias(cla)\n" + + " │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ ├─ index: [YK2GW.id]\n" + + " │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ ├─ colSet: (18-47)\n" + + " │ │ ├─ tableId: 4\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: YK2GW\n" + + " │ │ └─ columns: [id ftqlq]\n" + + " │ │ as GXLUB, Subquery\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ alias-string: select id from XOAOP where DZLIM = 'BER'\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [xoaop.id:7!null]\n" + + " │ │ └─ IndexedTableAccess(XOAOP)\n" + + " │ │ ├─ index: [XOAOP.DZLIM]\n" + + " │ │ ├─ static: [{[BER, BER]}]\n" + + " │ │ ├─ colSet: (49-51)\n" + + " │ │ ├─ tableId: 5\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: XOAOP\n" + + " │ │ └─ columns: [id dzlim]\n" + + " │ │ as CH3FR, CASE WHEN GreaterThan\n" + + " │ │ ├─ ums.ber:3\n" + + " │ │ └─ 0.5 (decimal(2,1))\n" + + " │ │ THEN 1 (tinyint) WHEN LessThan\n" + + " │ │ ├─ ums.ber:3\n" + + " │ │ └─ 0.5 (decimal(2,1))\n" + + " │ │ THEN 0 (tinyint) ELSE NULL (null) END as D237E, ums.id:0!null as JOGI6]\n" + + " │ └─ TableAlias(ums)\n" + + " │ └─ IndexedTableAccess(FG26Y)\n" + + " │ ├─ index: [FG26Y.id]\n" + + " │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + + " │ ├─ colSet: (6-12)\n" + + " │ ├─ tableId: 2\n" + + " │ └─ Table\n" + + " │ ├─ name: FG26Y\n" + + " │ └─ columns: [id t4ibq ner ber hr mmr qz6vt]\n" + + " └─ BEGIN .. END\n" + + " ├─ IF BLOCK\n" + + " │ └─ IF(NOT\n" + + " │ └─ IN\n" + + " │ ├─ left: Subquery\n" + " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ums.T4IBQ\n" + + " │ │ ├─ alias-string: select DZLIM from XOAOP where id = NEW.CH3FR\n" + " │ │ └─ Project\n" + - " │ │ ├─ columns: [bs.id:7!null]\n" + + " │ │ ├─ columns: [xoaop.DZLIM:6!null]\n" + " │ │ └─ Filter\n" + " │ │ ├─ Eq\n" + - " │ │ │ ├─ cla.FTQLQ:10!null\n" + - " │ │ │ └─ ums.T4IBQ:1\n" + - " │ │ └─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ bs.IXUXU:8\n" + - " │ │ │ └─ cla.id:9!null\n" + - " │ │ ├─ TableAlias(bs)\n" + - " │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (14-17)\n" + - " │ │ │ ├─ tableId: 3\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: THNTS\n" + - " │ │ │ └─ columns: [id ixuxu]\n" + - " │ │ └─ TableAlias(cla)\n" + - " │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ ├─ index: [YK2GW.id]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (18-47)\n" + - " │ │ ├─ tableId: 4\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: YK2GW\n" + - " │ │ └─ columns: [id ftqlq]\n" + - " │ │ as GXLUB, Subquery\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ alias-string: select id from XOAOP where DZLIM = 'BER'\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [xoaop.id:7!null]\n" + - " │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ ├─ index: [XOAOP.DZLIM]\n" + - " │ │ ├─ static: [{[BER, BER]}]\n" + - " │ │ ├─ colSet: (49-51)\n" + - " │ │ ├─ tableId: 5\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: XOAOP\n" + - " │ │ └─ columns: [id dzlim]\n" + - " │ │ as CH3FR, CASE WHEN GreaterThan\n" + - " │ │ ├─ ums.ber:3\n" + - " │ │ └─ 0.5 (decimal(2,1))\n" + - " │ │ THEN 1 (tinyint) WHEN LessThan\n" + - " │ │ ├─ ums.ber:3\n" + - " │ │ └─ 0.5 (decimal(2,1))\n" + - " │ │ THEN 0 (tinyint) ELSE NULL (null) END as D237E, ums.id:0!null as JOGI6]\n" + - " │ └─ TableAlias(ums)\n" + - " │ └─ IndexedTableAccess(FG26Y)\n" + - " │ ├─ index: [FG26Y.id]\n" + - " │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + - " │ ├─ colSet: (6-12)\n" + - " │ ├─ tableId: 2\n" + - " │ └─ Table\n" + - " │ ├─ name: FG26Y\n" + - " │ └─ columns: [id t4ibq ner ber hr mmr qz6vt]\n" + - " └─ BEGIN .. END\n" + - " ├─ IF BLOCK\n" + - " │ └─ IF(NOT\n" + - " │ └─ IN\n" + - " │ ├─ left: Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select DZLIM from XOAOP where id = NEW.CH3FR\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [xoaop.DZLIM:6!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ xoaop.id:5!null\n" + - " │ │ │ └─ new.CH3FR:2!null\n" + - " │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ ├─ index: [XOAOP.id]\n" + - " │ │ ├─ keys: [new.CH3FR:2!null]\n" + - " │ │ ├─ colSet: (11-13)\n" + - " │ │ ├─ tableId: 3\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: XOAOP\n" + - " │ │ └─ columns: [id dzlim]\n" + - " │ └─ right: TUPLE(NER (longtext), BER (longtext), HR (longtext), MMR (longtext))\n" + - " │ )\n" + - " │ └─ BLOCK\n" + - " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The ECUWU must be one of the following: 'NER', 'BER', 'HR', 'MMR'., MYSQL_ERRNO = 1644\n" + - " └─ IF BLOCK\n" + - " └─ IF(NOT\n" + - " └─ IN\n" + - " ├─ left: new.D237E:3!null\n" + - " └─ right: TUPLE(0 (tinyint), 1 (tinyint))\n" + - " )\n" + - " └─ BLOCK\n" + - " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The D237E field must be either 0 or 1., MYSQL_ERRNO = 1644\n" + + " │ │ │ ├─ xoaop.id:5!null\n" + + " │ │ │ └─ new.CH3FR:2!null\n" + + " │ │ └─ IndexedTableAccess(XOAOP)\n" + + " │ │ ├─ index: [XOAOP.id]\n" + + " │ │ ├─ keys: [new.CH3FR:2!null]\n" + + " │ │ ├─ colSet: (11-13)\n" + + " │ │ ├─ tableId: 3\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: XOAOP\n" + + " │ │ └─ columns: [id dzlim]\n" + + " │ └─ right: TUPLE(NER (longtext), BER (longtext), HR (longtext), MMR (longtext))\n" + + " │ )\n" + + " │ └─ BLOCK\n" + + " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The ECUWU must be one of the following: 'NER', 'BER', 'HR', 'MMR'., MYSQL_ERRNO = 1644\n" + + " └─ IF BLOCK\n" + + " └─ IF(NOT\n" + + " └─ IN\n" + + " ├─ left: new.D237E:3!null\n" + + " └─ right: TUPLE(0 (tinyint), 1 (tinyint))\n" + + " )\n" + + " └─ BLOCK\n" + + " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The D237E field must be either 0 or 1., MYSQL_ERRNO = 1644\n" + "", }, { @@ -18857,180 +18850,179 @@ FROM FG26Y ums WHERE ums.id IN ('1','2','3')`, - ExpectedPlan: "TriggerRollback\n" + - " └─ RowUpdateAccumulator\n" + - " └─ Insert(id, GXLUB, CH3FR, D237E, JOGI6)\n" + - " ├─ InsertDestination\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: SZQWJ\n" + - " │ └─ columns: [id gxlub ch3fr d237e jogi6]\n" + - " └─ Trigger(CREATE TRIGGER SZQWJ_on_insert BEFORE INSERT ON SZQWJ\n" + - " FOR EACH ROW\n" + - " BEGIN\n" + - " IF\n" + - " (SELECT DZLIM FROM XOAOP WHERE id = NEW.CH3FR) NOT IN ('NER', 'BER', 'HR', 'MMR')\n" + - " THEN\n" + - " -- SET @custom_error_message = 'The ECUWU must be one of the following: ''NER'', ''BER'', ''HR'', ''MMR''.';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The ECUWU must be one of the following: ''NER'', ''BER'', ''HR'', ''MMR''.';\n" + - " END IF;\n" + - " IF\n" + - " NEW.D237E NOT IN (0, 1)\n" + - " THEN\n" + - " -- SET @custom_error_message = 'The D237E field must be either 0 or 1.';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The D237E field must be either 0 or 1.';\n" + - " END IF;\n" + - " END//)\n" + - " ├─ Project\n" + - " │ ├─ columns: [id:0!null, GXLUB:1!null, CH3FR:2!null, D237E:3!null, JOGI6:4]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ums.T4IBQ\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [bs.id:12!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ cla.FTQLQ:15!null\n" + - " │ │ │ └─ ums.T4IBQ:1\n" + - " │ │ └─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ bs.IXUXU:13\n" + - " │ │ │ └─ cla.id:14!null\n" + - " │ │ ├─ TableAlias(bs)\n" + - " │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (14-17)\n" + - " │ │ │ ├─ tableId: 3\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: THNTS\n" + - " │ │ │ └─ columns: [id ixuxu]\n" + - " │ │ └─ TableAlias(cla)\n" + - " │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ ├─ index: [YK2GW.id]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (18-47)\n" + - " │ │ ├─ tableId: 4\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: YK2GW\n" + - " │ │ └─ columns: [id ftqlq]\n" + - " │ │ as GXLUB, Subquery\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ alias-string: select id from XOAOP where DZLIM = 'HR'\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [xoaop.id:12!null]\n" + - " │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ ├─ index: [XOAOP.DZLIM]\n" + - " │ │ ├─ static: [{[HR, HR]}]\n" + - " │ │ ├─ colSet: (49-51)\n" + - " │ │ ├─ tableId: 5\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: XOAOP\n" + - " │ │ └─ columns: [id dzlim]\n" + - " │ │ as CH3FR, CASE WHEN GreaterThan\n" + - " │ │ ├─ ums.hr:4\n" + - " │ │ └─ 0.5 (decimal(2,1))\n" + - " │ │ THEN 1 (tinyint) WHEN LessThan\n" + - " │ │ ├─ ums.hr:4\n" + - " │ │ └─ 0.5 (decimal(2,1))\n" + - " │ │ THEN 0 (tinyint) ELSE NULL (null) END as D237E, ums.id:0!null as JOGI6]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [ums.id:0!null, ums.T4IBQ:1, ums.ner:2, ums.ber:3, ums.hr:4, ums.mmr:5, ums.QZ6VT:6, lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + ExpectedPlan: "RowUpdateAccumulator\n" + + " └─ Insert(id, GXLUB, CH3FR, D237E, JOGI6)\n" + + " ├─ InsertDestination\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: SZQWJ\n" + + " │ └─ columns: [id gxlub ch3fr d237e jogi6]\n" + + " └─ Trigger(CREATE TRIGGER SZQWJ_on_insert BEFORE INSERT ON SZQWJ\n" + + " FOR EACH ROW\n" + + " BEGIN\n" + + " IF\n" + + " (SELECT DZLIM FROM XOAOP WHERE id = NEW.CH3FR) NOT IN ('NER', 'BER', 'HR', 'MMR')\n" + + " THEN\n" + + " -- SET @custom_error_message = 'The ECUWU must be one of the following: ''NER'', ''BER'', ''HR'', ''MMR''.';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The ECUWU must be one of the following: ''NER'', ''BER'', ''HR'', ''MMR''.';\n" + + " END IF;\n" + + " IF\n" + + " NEW.D237E NOT IN (0, 1)\n" + + " THEN\n" + + " -- SET @custom_error_message = 'The D237E field must be either 0 or 1.';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The D237E field must be either 0 or 1.';\n" + + " END IF;\n" + + " END//)\n" + + " ├─ Project\n" + + " │ ├─ columns: [id:0!null, GXLUB:1!null, CH3FR:2!null, D237E:3!null, JOGI6:4]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ums.T4IBQ\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [bs.id:12!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ cla.FTQLQ:15!null\n" + + " │ │ │ └─ ums.T4IBQ:1\n" + + " │ │ └─ MergeJoin\n" + + " │ │ ├─ cmp: Eq\n" + + " │ │ │ ├─ bs.IXUXU:13\n" + + " │ │ │ └─ cla.id:14!null\n" + + " │ │ ├─ TableAlias(bs)\n" + + " │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ colSet: (14-17)\n" + + " │ │ │ ├─ tableId: 3\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: THNTS\n" + + " │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ └─ TableAlias(cla)\n" + + " │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ ├─ index: [YK2GW.id]\n" + + " │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ ├─ colSet: (18-47)\n" + + " │ │ ├─ tableId: 4\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: YK2GW\n" + + " │ │ └─ columns: [id ftqlq]\n" + + " │ │ as GXLUB, Subquery\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ alias-string: select id from XOAOP where DZLIM = 'HR'\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [xoaop.id:12!null]\n" + + " │ │ └─ IndexedTableAccess(XOAOP)\n" + + " │ │ ├─ index: [XOAOP.DZLIM]\n" + + " │ │ ├─ static: [{[HR, HR]}]\n" + + " │ │ ├─ colSet: (49-51)\n" + + " │ │ ├─ tableId: 5\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: XOAOP\n" + + " │ │ └─ columns: [id dzlim]\n" + + " │ │ as CH3FR, CASE WHEN GreaterThan\n" + + " │ │ ├─ ums.hr:4\n" + + " │ │ └─ 0.5 (decimal(2,1))\n" + + " │ │ THEN 1 (tinyint) WHEN LessThan\n" + + " │ │ ├─ ums.hr:4\n" + + " │ │ └─ 0.5 (decimal(2,1))\n" + + " │ │ THEN 0 (tinyint) ELSE NULL (null) END as D237E, ums.id:0!null as JOGI6]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ums.id:0!null, ums.T4IBQ:1, ums.ner:2, ums.ber:3, ums.hr:4, ums.mmr:5, ums.QZ6VT:6, lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ums.T4IBQ\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [bs.id:7!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ cla.FTQLQ:10!null\n" + + " │ │ │ └─ ums.T4IBQ:1\n" + + " │ │ └─ MergeJoin\n" + + " │ │ ├─ cmp: Eq\n" + + " │ │ │ ├─ bs.IXUXU:8\n" + + " │ │ │ └─ cla.id:9!null\n" + + " │ │ ├─ TableAlias(bs)\n" + + " │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ colSet: (14-17)\n" + + " │ │ │ ├─ tableId: 3\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: THNTS\n" + + " │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ └─ TableAlias(cla)\n" + + " │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ ├─ index: [YK2GW.id]\n" + + " │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ ├─ colSet: (18-47)\n" + + " │ │ ├─ tableId: 4\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: YK2GW\n" + + " │ │ └─ columns: [id ftqlq]\n" + + " │ │ as GXLUB, Subquery\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ alias-string: select id from XOAOP where DZLIM = 'HR'\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [xoaop.id:7!null]\n" + + " │ │ └─ IndexedTableAccess(XOAOP)\n" + + " │ │ ├─ index: [XOAOP.DZLIM]\n" + + " │ │ ├─ static: [{[HR, HR]}]\n" + + " │ │ ├─ colSet: (49-51)\n" + + " │ │ ├─ tableId: 5\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: XOAOP\n" + + " │ │ └─ columns: [id dzlim]\n" + + " │ │ as CH3FR, CASE WHEN GreaterThan\n" + + " │ │ ├─ ums.hr:4\n" + + " │ │ └─ 0.5 (decimal(2,1))\n" + + " │ │ THEN 1 (tinyint) WHEN LessThan\n" + + " │ │ ├─ ums.hr:4\n" + + " │ │ └─ 0.5 (decimal(2,1))\n" + + " │ │ THEN 0 (tinyint) ELSE NULL (null) END as D237E, ums.id:0!null as JOGI6]\n" + + " │ └─ TableAlias(ums)\n" + + " │ └─ IndexedTableAccess(FG26Y)\n" + + " │ ├─ index: [FG26Y.id]\n" + + " │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + + " │ ├─ colSet: (6-12)\n" + + " │ ├─ tableId: 2\n" + + " │ └─ Table\n" + + " │ ├─ name: FG26Y\n" + + " │ └─ columns: [id t4ibq ner ber hr mmr qz6vt]\n" + + " └─ BEGIN .. END\n" + + " ├─ IF BLOCK\n" + + " │ └─ IF(NOT\n" + + " │ └─ IN\n" + + " │ ├─ left: Subquery\n" + " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ums.T4IBQ\n" + + " │ │ ├─ alias-string: select DZLIM from XOAOP where id = NEW.CH3FR\n" + " │ │ └─ Project\n" + - " │ │ ├─ columns: [bs.id:7!null]\n" + + " │ │ ├─ columns: [xoaop.DZLIM:6!null]\n" + " │ │ └─ Filter\n" + " │ │ ├─ Eq\n" + - " │ │ │ ├─ cla.FTQLQ:10!null\n" + - " │ │ │ └─ ums.T4IBQ:1\n" + - " │ │ └─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ bs.IXUXU:8\n" + - " │ │ │ └─ cla.id:9!null\n" + - " │ │ ├─ TableAlias(bs)\n" + - " │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (14-17)\n" + - " │ │ │ ├─ tableId: 3\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: THNTS\n" + - " │ │ │ └─ columns: [id ixuxu]\n" + - " │ │ └─ TableAlias(cla)\n" + - " │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ ├─ index: [YK2GW.id]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (18-47)\n" + - " │ │ ├─ tableId: 4\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: YK2GW\n" + - " │ │ └─ columns: [id ftqlq]\n" + - " │ │ as GXLUB, Subquery\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ alias-string: select id from XOAOP where DZLIM = 'HR'\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [xoaop.id:7!null]\n" + - " │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ ├─ index: [XOAOP.DZLIM]\n" + - " │ │ ├─ static: [{[HR, HR]}]\n" + - " │ │ ├─ colSet: (49-51)\n" + - " │ │ ├─ tableId: 5\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: XOAOP\n" + - " │ │ └─ columns: [id dzlim]\n" + - " │ │ as CH3FR, CASE WHEN GreaterThan\n" + - " │ │ ├─ ums.hr:4\n" + - " │ │ └─ 0.5 (decimal(2,1))\n" + - " │ │ THEN 1 (tinyint) WHEN LessThan\n" + - " │ │ ├─ ums.hr:4\n" + - " │ │ └─ 0.5 (decimal(2,1))\n" + - " │ │ THEN 0 (tinyint) ELSE NULL (null) END as D237E, ums.id:0!null as JOGI6]\n" + - " │ └─ TableAlias(ums)\n" + - " │ └─ IndexedTableAccess(FG26Y)\n" + - " │ ├─ index: [FG26Y.id]\n" + - " │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + - " │ ├─ colSet: (6-12)\n" + - " │ ├─ tableId: 2\n" + - " │ └─ Table\n" + - " │ ├─ name: FG26Y\n" + - " │ └─ columns: [id t4ibq ner ber hr mmr qz6vt]\n" + - " └─ BEGIN .. END\n" + - " ├─ IF BLOCK\n" + - " │ └─ IF(NOT\n" + - " │ └─ IN\n" + - " │ ├─ left: Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select DZLIM from XOAOP where id = NEW.CH3FR\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [xoaop.DZLIM:6!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ xoaop.id:5!null\n" + - " │ │ │ └─ new.CH3FR:2!null\n" + - " │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ ├─ index: [XOAOP.id]\n" + - " │ │ ├─ keys: [new.CH3FR:2!null]\n" + - " │ │ ├─ colSet: (11-13)\n" + - " │ │ ├─ tableId: 3\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: XOAOP\n" + - " │ │ └─ columns: [id dzlim]\n" + - " │ └─ right: TUPLE(NER (longtext), BER (longtext), HR (longtext), MMR (longtext))\n" + - " │ )\n" + - " │ └─ BLOCK\n" + - " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The ECUWU must be one of the following: 'NER', 'BER', 'HR', 'MMR'., MYSQL_ERRNO = 1644\n" + - " └─ IF BLOCK\n" + - " └─ IF(NOT\n" + - " └─ IN\n" + - " ├─ left: new.D237E:3!null\n" + - " └─ right: TUPLE(0 (tinyint), 1 (tinyint))\n" + - " )\n" + - " └─ BLOCK\n" + - " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The D237E field must be either 0 or 1., MYSQL_ERRNO = 1644\n" + + " │ │ │ ├─ xoaop.id:5!null\n" + + " │ │ │ └─ new.CH3FR:2!null\n" + + " │ │ └─ IndexedTableAccess(XOAOP)\n" + + " │ │ ├─ index: [XOAOP.id]\n" + + " │ │ ├─ keys: [new.CH3FR:2!null]\n" + + " │ │ ├─ colSet: (11-13)\n" + + " │ │ ├─ tableId: 3\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: XOAOP\n" + + " │ │ └─ columns: [id dzlim]\n" + + " │ └─ right: TUPLE(NER (longtext), BER (longtext), HR (longtext), MMR (longtext))\n" + + " │ )\n" + + " │ └─ BLOCK\n" + + " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The ECUWU must be one of the following: 'NER', 'BER', 'HR', 'MMR'., MYSQL_ERRNO = 1644\n" + + " └─ IF BLOCK\n" + + " └─ IF(NOT\n" + + " └─ IN\n" + + " ├─ left: new.D237E:3!null\n" + + " └─ right: TUPLE(0 (tinyint), 1 (tinyint))\n" + + " )\n" + + " └─ BLOCK\n" + + " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The D237E field must be either 0 or 1., MYSQL_ERRNO = 1644\n" + "", }, { @@ -19051,180 +19043,179 @@ FROM FG26Y ums WHERE ums.id IN ('1','2','3')`, - ExpectedPlan: "TriggerRollback\n" + - " └─ RowUpdateAccumulator\n" + - " └─ Insert(id, GXLUB, CH3FR, D237E, JOGI6)\n" + - " ├─ InsertDestination\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: SZQWJ\n" + - " │ └─ columns: [id gxlub ch3fr d237e jogi6]\n" + - " └─ Trigger(CREATE TRIGGER SZQWJ_on_insert BEFORE INSERT ON SZQWJ\n" + - " FOR EACH ROW\n" + - " BEGIN\n" + - " IF\n" + - " (SELECT DZLIM FROM XOAOP WHERE id = NEW.CH3FR) NOT IN ('NER', 'BER', 'HR', 'MMR')\n" + - " THEN\n" + - " -- SET @custom_error_message = 'The ECUWU must be one of the following: ''NER'', ''BER'', ''HR'', ''MMR''.';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The ECUWU must be one of the following: ''NER'', ''BER'', ''HR'', ''MMR''.';\n" + - " END IF;\n" + - " IF\n" + - " NEW.D237E NOT IN (0, 1)\n" + - " THEN\n" + - " -- SET @custom_error_message = 'The D237E field must be either 0 or 1.';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The D237E field must be either 0 or 1.';\n" + - " END IF;\n" + - " END//)\n" + - " ├─ Project\n" + - " │ ├─ columns: [id:0!null, GXLUB:1!null, CH3FR:2!null, D237E:3!null, JOGI6:4]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ums.T4IBQ\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [bs.id:12!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ cla.FTQLQ:15!null\n" + - " │ │ │ └─ ums.T4IBQ:1\n" + - " │ │ └─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ bs.IXUXU:13\n" + - " │ │ │ └─ cla.id:14!null\n" + - " │ │ ├─ TableAlias(bs)\n" + - " │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (14-17)\n" + - " │ │ │ ├─ tableId: 3\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: THNTS\n" + - " │ │ │ └─ columns: [id ixuxu]\n" + - " │ │ └─ TableAlias(cla)\n" + - " │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ ├─ index: [YK2GW.id]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (18-47)\n" + - " │ │ ├─ tableId: 4\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: YK2GW\n" + - " │ │ └─ columns: [id ftqlq]\n" + - " │ │ as GXLUB, Subquery\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ alias-string: select id from XOAOP where DZLIM = 'MMR'\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [xoaop.id:12!null]\n" + - " │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ ├─ index: [XOAOP.DZLIM]\n" + - " │ │ ├─ static: [{[MMR, MMR]}]\n" + - " │ │ ├─ colSet: (49-51)\n" + - " │ │ ├─ tableId: 5\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: XOAOP\n" + - " │ │ └─ columns: [id dzlim]\n" + - " │ │ as CH3FR, CASE WHEN GreaterThan\n" + - " │ │ ├─ ums.mmr:5\n" + - " │ │ └─ 0.5 (decimal(2,1))\n" + - " │ │ THEN 1 (tinyint) WHEN LessThan\n" + - " │ │ ├─ ums.mmr:5\n" + - " │ │ └─ 0.5 (decimal(2,1))\n" + - " │ │ THEN 0 (tinyint) ELSE NULL (null) END as D237E, ums.id:0!null as JOGI6]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [ums.id:0!null, ums.T4IBQ:1, ums.ner:2, ums.ber:3, ums.hr:4, ums.mmr:5, ums.QZ6VT:6, lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + ExpectedPlan: "RowUpdateAccumulator\n" + + " └─ Insert(id, GXLUB, CH3FR, D237E, JOGI6)\n" + + " ├─ InsertDestination\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: SZQWJ\n" + + " │ └─ columns: [id gxlub ch3fr d237e jogi6]\n" + + " └─ Trigger(CREATE TRIGGER SZQWJ_on_insert BEFORE INSERT ON SZQWJ\n" + + " FOR EACH ROW\n" + + " BEGIN\n" + + " IF\n" + + " (SELECT DZLIM FROM XOAOP WHERE id = NEW.CH3FR) NOT IN ('NER', 'BER', 'HR', 'MMR')\n" + + " THEN\n" + + " -- SET @custom_error_message = 'The ECUWU must be one of the following: ''NER'', ''BER'', ''HR'', ''MMR''.';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The ECUWU must be one of the following: ''NER'', ''BER'', ''HR'', ''MMR''.';\n" + + " END IF;\n" + + " IF\n" + + " NEW.D237E NOT IN (0, 1)\n" + + " THEN\n" + + " -- SET @custom_error_message = 'The D237E field must be either 0 or 1.';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The D237E field must be either 0 or 1.';\n" + + " END IF;\n" + + " END//)\n" + + " ├─ Project\n" + + " │ ├─ columns: [id:0!null, GXLUB:1!null, CH3FR:2!null, D237E:3!null, JOGI6:4]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ums.T4IBQ\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [bs.id:12!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ cla.FTQLQ:15!null\n" + + " │ │ │ └─ ums.T4IBQ:1\n" + + " │ │ └─ MergeJoin\n" + + " │ │ ├─ cmp: Eq\n" + + " │ │ │ ├─ bs.IXUXU:13\n" + + " │ │ │ └─ cla.id:14!null\n" + + " │ │ ├─ TableAlias(bs)\n" + + " │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ colSet: (14-17)\n" + + " │ │ │ ├─ tableId: 3\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: THNTS\n" + + " │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ └─ TableAlias(cla)\n" + + " │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ ├─ index: [YK2GW.id]\n" + + " │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ ├─ colSet: (18-47)\n" + + " │ │ ├─ tableId: 4\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: YK2GW\n" + + " │ │ └─ columns: [id ftqlq]\n" + + " │ │ as GXLUB, Subquery\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ alias-string: select id from XOAOP where DZLIM = 'MMR'\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [xoaop.id:12!null]\n" + + " │ │ └─ IndexedTableAccess(XOAOP)\n" + + " │ │ ├─ index: [XOAOP.DZLIM]\n" + + " │ │ ├─ static: [{[MMR, MMR]}]\n" + + " │ │ ├─ colSet: (49-51)\n" + + " │ │ ├─ tableId: 5\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: XOAOP\n" + + " │ │ └─ columns: [id dzlim]\n" + + " │ │ as CH3FR, CASE WHEN GreaterThan\n" + + " │ │ ├─ ums.mmr:5\n" + + " │ │ └─ 0.5 (decimal(2,1))\n" + + " │ │ THEN 1 (tinyint) WHEN LessThan\n" + + " │ │ ├─ ums.mmr:5\n" + + " │ │ └─ 0.5 (decimal(2,1))\n" + + " │ │ THEN 0 (tinyint) ELSE NULL (null) END as D237E, ums.id:0!null as JOGI6]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [ums.id:0!null, ums.T4IBQ:1, ums.ner:2, ums.ber:3, ums.hr:4, ums.mmr:5, ums.QZ6VT:6, lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ums.T4IBQ\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [bs.id:7!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ cla.FTQLQ:10!null\n" + + " │ │ │ └─ ums.T4IBQ:1\n" + + " │ │ └─ MergeJoin\n" + + " │ │ ├─ cmp: Eq\n" + + " │ │ │ ├─ bs.IXUXU:8\n" + + " │ │ │ └─ cla.id:9!null\n" + + " │ │ ├─ TableAlias(bs)\n" + + " │ │ │ └─ IndexedTableAccess(THNTS)\n" + + " │ │ │ ├─ index: [THNTS.IXUXU]\n" + + " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ │ ├─ colSet: (14-17)\n" + + " │ │ │ ├─ tableId: 3\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: THNTS\n" + + " │ │ │ └─ columns: [id ixuxu]\n" + + " │ │ └─ TableAlias(cla)\n" + + " │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ ├─ index: [YK2GW.id]\n" + + " │ │ ├─ static: [{[NULL, ∞)}]\n" + + " │ │ ├─ colSet: (18-47)\n" + + " │ │ ├─ tableId: 4\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: YK2GW\n" + + " │ │ └─ columns: [id ftqlq]\n" + + " │ │ as GXLUB, Subquery\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ alias-string: select id from XOAOP where DZLIM = 'MMR'\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [xoaop.id:7!null]\n" + + " │ │ └─ IndexedTableAccess(XOAOP)\n" + + " │ │ ├─ index: [XOAOP.DZLIM]\n" + + " │ │ ├─ static: [{[MMR, MMR]}]\n" + + " │ │ ├─ colSet: (49-51)\n" + + " │ │ ├─ tableId: 5\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: XOAOP\n" + + " │ │ └─ columns: [id dzlim]\n" + + " │ │ as CH3FR, CASE WHEN GreaterThan\n" + + " │ │ ├─ ums.mmr:5\n" + + " │ │ └─ 0.5 (decimal(2,1))\n" + + " │ │ THEN 1 (tinyint) WHEN LessThan\n" + + " │ │ ├─ ums.mmr:5\n" + + " │ │ └─ 0.5 (decimal(2,1))\n" + + " │ │ THEN 0 (tinyint) ELSE NULL (null) END as D237E, ums.id:0!null as JOGI6]\n" + + " │ └─ TableAlias(ums)\n" + + " │ └─ IndexedTableAccess(FG26Y)\n" + + " │ ├─ index: [FG26Y.id]\n" + + " │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + + " │ ├─ colSet: (6-12)\n" + + " │ ├─ tableId: 2\n" + + " │ └─ Table\n" + + " │ ├─ name: FG26Y\n" + + " │ └─ columns: [id t4ibq ner ber hr mmr qz6vt]\n" + + " └─ BEGIN .. END\n" + + " ├─ IF BLOCK\n" + + " │ └─ IF(NOT\n" + + " │ └─ IN\n" + + " │ ├─ left: Subquery\n" + " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select bs.id from THNTS as bs join YK2GW as cla on cla.id = bs.IXUXU where cla.FTQLQ = ums.T4IBQ\n" + + " │ │ ├─ alias-string: select DZLIM from XOAOP where id = NEW.CH3FR\n" + " │ │ └─ Project\n" + - " │ │ ├─ columns: [bs.id:7!null]\n" + + " │ │ ├─ columns: [xoaop.DZLIM:6!null]\n" + " │ │ └─ Filter\n" + " │ │ ├─ Eq\n" + - " │ │ │ ├─ cla.FTQLQ:10!null\n" + - " │ │ │ └─ ums.T4IBQ:1\n" + - " │ │ └─ MergeJoin\n" + - " │ │ ├─ cmp: Eq\n" + - " │ │ │ ├─ bs.IXUXU:8\n" + - " │ │ │ └─ cla.id:9!null\n" + - " │ │ ├─ TableAlias(bs)\n" + - " │ │ │ └─ IndexedTableAccess(THNTS)\n" + - " │ │ │ ├─ index: [THNTS.IXUXU]\n" + - " │ │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ │ ├─ colSet: (14-17)\n" + - " │ │ │ ├─ tableId: 3\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: THNTS\n" + - " │ │ │ └─ columns: [id ixuxu]\n" + - " │ │ └─ TableAlias(cla)\n" + - " │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ ├─ index: [YK2GW.id]\n" + - " │ │ ├─ static: [{[NULL, ∞)}]\n" + - " │ │ ├─ colSet: (18-47)\n" + - " │ │ ├─ tableId: 4\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: YK2GW\n" + - " │ │ └─ columns: [id ftqlq]\n" + - " │ │ as GXLUB, Subquery\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ alias-string: select id from XOAOP where DZLIM = 'MMR'\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [xoaop.id:7!null]\n" + - " │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ ├─ index: [XOAOP.DZLIM]\n" + - " │ │ ├─ static: [{[MMR, MMR]}]\n" + - " │ │ ├─ colSet: (49-51)\n" + - " │ │ ├─ tableId: 5\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: XOAOP\n" + - " │ │ └─ columns: [id dzlim]\n" + - " │ │ as CH3FR, CASE WHEN GreaterThan\n" + - " │ │ ├─ ums.mmr:5\n" + - " │ │ └─ 0.5 (decimal(2,1))\n" + - " │ │ THEN 1 (tinyint) WHEN LessThan\n" + - " │ │ ├─ ums.mmr:5\n" + - " │ │ └─ 0.5 (decimal(2,1))\n" + - " │ │ THEN 0 (tinyint) ELSE NULL (null) END as D237E, ums.id:0!null as JOGI6]\n" + - " │ └─ TableAlias(ums)\n" + - " │ └─ IndexedTableAccess(FG26Y)\n" + - " │ ├─ index: [FG26Y.id]\n" + - " │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + - " │ ├─ colSet: (6-12)\n" + - " │ ├─ tableId: 2\n" + - " │ └─ Table\n" + - " │ ├─ name: FG26Y\n" + - " │ └─ columns: [id t4ibq ner ber hr mmr qz6vt]\n" + - " └─ BEGIN .. END\n" + - " ├─ IF BLOCK\n" + - " │ └─ IF(NOT\n" + - " │ └─ IN\n" + - " │ ├─ left: Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select DZLIM from XOAOP where id = NEW.CH3FR\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [xoaop.DZLIM:6!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ xoaop.id:5!null\n" + - " │ │ │ └─ new.CH3FR:2!null\n" + - " │ │ └─ IndexedTableAccess(XOAOP)\n" + - " │ │ ├─ index: [XOAOP.id]\n" + - " │ │ ├─ keys: [new.CH3FR:2!null]\n" + - " │ │ ├─ colSet: (11-13)\n" + - " │ │ ├─ tableId: 3\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: XOAOP\n" + - " │ │ └─ columns: [id dzlim]\n" + - " │ └─ right: TUPLE(NER (longtext), BER (longtext), HR (longtext), MMR (longtext))\n" + - " │ )\n" + - " │ └─ BLOCK\n" + - " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The ECUWU must be one of the following: 'NER', 'BER', 'HR', 'MMR'., MYSQL_ERRNO = 1644\n" + - " └─ IF BLOCK\n" + - " └─ IF(NOT\n" + - " └─ IN\n" + - " ├─ left: new.D237E:3!null\n" + - " └─ right: TUPLE(0 (tinyint), 1 (tinyint))\n" + - " )\n" + - " └─ BLOCK\n" + - " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The D237E field must be either 0 or 1., MYSQL_ERRNO = 1644\n" + + " │ │ │ ├─ xoaop.id:5!null\n" + + " │ │ │ └─ new.CH3FR:2!null\n" + + " │ │ └─ IndexedTableAccess(XOAOP)\n" + + " │ │ ├─ index: [XOAOP.id]\n" + + " │ │ ├─ keys: [new.CH3FR:2!null]\n" + + " │ │ ├─ colSet: (11-13)\n" + + " │ │ ├─ tableId: 3\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: XOAOP\n" + + " │ │ └─ columns: [id dzlim]\n" + + " │ └─ right: TUPLE(NER (longtext), BER (longtext), HR (longtext), MMR (longtext))\n" + + " │ )\n" + + " │ └─ BLOCK\n" + + " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The ECUWU must be one of the following: 'NER', 'BER', 'HR', 'MMR'., MYSQL_ERRNO = 1644\n" + + " └─ IF BLOCK\n" + + " └─ IF(NOT\n" + + " └─ IN\n" + + " ├─ left: new.D237E:3!null\n" + + " └─ right: TUPLE(0 (tinyint), 1 (tinyint))\n" + + " )\n" + + " └─ BLOCK\n" + + " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The D237E field must be either 0 or 1., MYSQL_ERRNO = 1644\n" + "", }, { @@ -19250,86 +19241,85 @@ WHERE AND umf.id IN ('1','2','3') ) NCVD2`, - ExpectedPlan: "TriggerRollback\n" + - " └─ RowUpdateAccumulator\n" + - " └─ Insert(id, BTXC5, FHCYT)\n" + - " ├─ InsertDestination\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: TPXBU\n" + - " │ └─ columns: [id btxc5 fhcyt]\n" + - " └─ Trigger(CREATE TRIGGER TPXBU_on_insert BEFORE INSERT ON TPXBU\n" + - " FOR EACH ROW\n" + - " BEGIN\n" + - " IF\n" + - " NEW.BTXC5 IN (SELECT SVAZ4 FROM TPXHZ)\n" + - " THEN\n" + - " -- SET @custom_error_message = (SELECT error_message FROM trigger_helper_error_message WHERE DZLIM = 'SVAZ4');\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'String field contains invalid value, like empty string, ''none'', ''null'', ''n/a'', ''nan'' etc.';\n" + - " END IF;\n" + - " END//)\n" + - " ├─ Project\n" + - " │ ├─ columns: [id:0!null, BTXC5:1, FHCYT:2]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, ncvd2.BTXC5:0 as BTXC5, NULL (null) as FHCYT]\n" + - " │ └─ SubqueryAlias\n" + - " │ ├─ name: ncvd2\n" + - " │ ├─ outerVisibility: false\n" + - " │ ├─ isLateral: false\n" + - " │ ├─ cacheable: true\n" + - " │ ├─ colSet: (33)\n" + - " │ ├─ tableId: 4\n" + - " │ └─ Distinct\n" + - " │ └─ Project\n" + - " │ ├─ columns: [umf.SYPKF:8 as BTXC5]\n" + - " │ └─ Filter\n" + - " │ ├─ AND\n" + - " │ │ ├─ AND\n" + - " │ │ │ ├─ NOT\n" + - " │ │ │ │ └─ InSubquery\n" + - " │ │ │ │ ├─ left: umf.SYPKF:8\n" + - " │ │ │ │ └─ right: Subquery\n" + - " │ │ │ │ ├─ cacheable: true\n" + - " │ │ │ │ ├─ alias-string: select BTXC5 from TPXBU where BTXC5 is not null\n" + - " │ │ │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ │ │ ├─ index: [TPXBU.BTXC5]\n" + - " │ │ │ │ ├─ static: [{(NULL, ∞)}]\n" + - " │ │ │ │ ├─ colSet: (29-31)\n" + - " │ │ │ │ ├─ tableId: 3\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: TPXBU\n" + - " │ │ │ │ └─ columns: [btxc5]\n" + - " │ │ │ └─ NOT\n" + - " │ │ │ └─ umf.SYPKF:8 IS NULL\n" + - " │ │ └─ NOT\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ umf.SYPKF:8\n" + - " │ │ └─ N/A (longtext)\n" + - " │ └─ TableAlias(umf)\n" + - " │ └─ IndexedTableAccess(NZKPM)\n" + - " │ ├─ index: [NZKPM.id]\n" + - " │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + - " │ ├─ colSet: (4-28)\n" + - " │ ├─ tableId: 2\n" + - " │ └─ Table\n" + - " │ ├─ name: NZKPM\n" + - " │ └─ columns: [id t4ibq fgg57 sshpj nla6o sfj6l tjpt7 arn5p sypkf ivfmk ide43 az6sp fsdy2 xosd4 hmw4h s76om vaf zroh6 qcgts lnfm6 tvawl hdlcl bhhw6 fhcyt qz6vt]\n" + - " └─ BEGIN .. END\n" + - " └─ IF BLOCK\n" + - " └─ IF(InSubquery\n" + - " ├─ left: new.BTXC5:1\n" + - " └─ right: Subquery\n" + - " ├─ cacheable: false\n" + - " ├─ alias-string: select SVAZ4 from TPXHZ\n" + - " └─ Table\n" + - " ├─ name: TPXHZ\n" + - " ├─ columns: [svaz4]\n" + - " ├─ colSet: (7,8)\n" + - " └─ tableId: 3\n" + - " )\n" + - " └─ BLOCK\n" + - " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = String field contains invalid value, like empty string, 'none', 'null', 'n/a', 'nan' etc., MYSQL_ERRNO = 1644\n" + + ExpectedPlan: "RowUpdateAccumulator\n" + + " └─ Insert(id, BTXC5, FHCYT)\n" + + " ├─ InsertDestination\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: TPXBU\n" + + " │ └─ columns: [id btxc5 fhcyt]\n" + + " └─ Trigger(CREATE TRIGGER TPXBU_on_insert BEFORE INSERT ON TPXBU\n" + + " FOR EACH ROW\n" + + " BEGIN\n" + + " IF\n" + + " NEW.BTXC5 IN (SELECT SVAZ4 FROM TPXHZ)\n" + + " THEN\n" + + " -- SET @custom_error_message = (SELECT error_message FROM trigger_helper_error_message WHERE DZLIM = 'SVAZ4');\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'String field contains invalid value, like empty string, ''none'', ''null'', ''n/a'', ''nan'' etc.';\n" + + " END IF;\n" + + " END//)\n" + + " ├─ Project\n" + + " │ ├─ columns: [id:0!null, BTXC5:1, FHCYT:2]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, ncvd2.BTXC5:0 as BTXC5, NULL (null) as FHCYT]\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: ncvd2\n" + + " │ ├─ outerVisibility: false\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (33)\n" + + " │ ├─ tableId: 4\n" + + " │ └─ Distinct\n" + + " │ └─ Project\n" + + " │ ├─ columns: [umf.SYPKF:8 as BTXC5]\n" + + " │ └─ Filter\n" + + " │ ├─ AND\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ NOT\n" + + " │ │ │ │ └─ InSubquery\n" + + " │ │ │ │ ├─ left: umf.SYPKF:8\n" + + " │ │ │ │ └─ right: Subquery\n" + + " │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ ├─ alias-string: select BTXC5 from TPXBU where BTXC5 is not null\n" + + " │ │ │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ │ │ ├─ index: [TPXBU.BTXC5]\n" + + " │ │ │ │ ├─ static: [{(NULL, ∞)}]\n" + + " │ │ │ │ ├─ colSet: (29-31)\n" + + " │ │ │ │ ├─ tableId: 3\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: TPXBU\n" + + " │ │ │ │ └─ columns: [btxc5]\n" + + " │ │ │ └─ NOT\n" + + " │ │ │ └─ umf.SYPKF:8 IS NULL\n" + + " │ │ └─ NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ umf.SYPKF:8\n" + + " │ │ └─ N/A (longtext)\n" + + " │ └─ TableAlias(umf)\n" + + " │ └─ IndexedTableAccess(NZKPM)\n" + + " │ ├─ index: [NZKPM.id]\n" + + " │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + + " │ ├─ colSet: (4-28)\n" + + " │ ├─ tableId: 2\n" + + " │ └─ Table\n" + + " │ ├─ name: NZKPM\n" + + " │ └─ columns: [id t4ibq fgg57 sshpj nla6o sfj6l tjpt7 arn5p sypkf ivfmk ide43 az6sp fsdy2 xosd4 hmw4h s76om vaf zroh6 qcgts lnfm6 tvawl hdlcl bhhw6 fhcyt qz6vt]\n" + + " └─ BEGIN .. END\n" + + " └─ IF BLOCK\n" + + " └─ IF(InSubquery\n" + + " ├─ left: new.BTXC5:1\n" + + " └─ right: Subquery\n" + + " ├─ cacheable: false\n" + + " ├─ alias-string: select SVAZ4 from TPXHZ\n" + + " └─ Table\n" + + " ├─ name: TPXHZ\n" + + " ├─ columns: [svaz4]\n" + + " ├─ colSet: (7,8)\n" + + " └─ tableId: 3\n" + + " )\n" + + " └─ BLOCK\n" + + " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = String field contains invalid value, like empty string, 'none', 'null', 'n/a', 'nan' etc., MYSQL_ERRNO = 1644\n" + "", }, { @@ -19401,424 +19391,423 @@ ON TJ5D2.SYPKF = umf.SYPKF INNER JOIN YK2GW cla ON umf.T4IBQ = cla.FTQLQ INNER JOIN THNTS bs ON cla.id = bs.IXUXU`, - ExpectedPlan: "TriggerRollback\n" + - " └─ RowUpdateAccumulator\n" + - " └─ Insert(id, GXLUB, LUEVY, M22QN, TJPT7, ARN5P, XOSD4, IDE43, HMW4H, ZBT6R, FSDY2, LT7K6, SPPYD, QCGTS, TEUJA, QQV4M, FHCYT)\n" + - " ├─ InsertDestination\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: HGMQ6\n" + - " │ └─ columns: [id gxlub luevy m22qn tjpt7 arn5p xosd4 ide43 hmw4h zbt6r fsdy2 lt7k6 sppyd qcgts teuja qqv4m fhcyt]\n" + - " └─ Trigger(CREATE TRIGGER HGMQ6_on_insert BEFORE INSERT ON HGMQ6\n" + - " FOR EACH ROW\n" + - " BEGIN\n" + - " IF\n" + - " NEW.TJPT7 IN (SELECT SVAZ4 FROM TPXHZ)\n" + - " OR\n" + - " NEW.ARN5P IN (SELECT SVAZ4 FROM TPXHZ)\n" + - " OR\n" + - " NEW.XOSD4 IN (SELECT SVAZ4 FROM TPXHZ)\n" + - " OR\n" + - " NEW.IDE43 IN (SELECT SVAZ4 FROM TPXHZ)\n" + - " OR\n" + - " NEW.HMW4H IN (SELECT SVAZ4 FROM TPXHZ)\n" + - " THEN\n" + - " -- SET @custom_error_message = (SELECT error_message FROM trigger_helper_error_message WHERE DZLIM = 'SVAZ4');\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'String field contains invalid value, like empty string, ''none'', ''null'', ''n/a'', ''nan'' etc.';\n" + - " END IF;\n" + - " IF\n" + - " NEW.FSDY2 NOT IN ('benign', 'VUS', 'SRARY', 'UBQWG')\n" + - " THEN\n" + - " -- SET @custom_error_message = 'FSDY2 must be either ''benign'', ''VUS'', ''SRARY'' or ''UBQWG''.';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'FSDY2 must be either ''benign'', ''VUS'', ''SRARY'' or ''UBQWG''.';\n" + - " END IF;\n" + - " IF NEW.LT7K6 IS NOT NULL AND NEW.SPPYD IS NOT NULL\n" + - " THEN\n" + - " -- SET @custom_error_message = 'If LT7K6 has value, SPPYD must be NULL.';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'If LT7K6 has value, SPPYD must be NULL.';\n" + - " END IF;\n" + - " IF NEW.LT7K6 IS NULL AND (NEW.SPPYD IS NULL OR NEW.SPPYD <> 0.5)\n" + - " THEN\n" + - " -- SET @custom_error_message = 'If LT7K6 does not have value, SPPYD must be 0.5.';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'If LT7K6 does not have value, SPPYD must be 0.5.';\n" + - " END IF;\n" + - " END//)\n" + - " ├─ Project\n" + - " │ ├─ columns: [id:0!null, GXLUB:1!null, LUEVY:2!null, M22QN:3!null, TJPT7:4!null, ARN5P:5!null, XOSD4:6!null, IDE43:7, HMW4H:8, ZBT6R:9, FSDY2:10!null, LT7K6:11, SPPYD:12, QCGTS:13, TEUJA:14, QQV4M:15, FHCYT:16]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [umf.id:0!null as id, bs.id:63!null as GXLUB, CASE WHEN NOT\n" + - " │ │ └─ tj5d2.id:25!null IS NULL\n" + - " │ │ THEN Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select nd_for_id_overridden.id from E2I7U as nd_for_id_overridden where nd_for_id_overridden.TW55N = TJ5D2.H4DMT\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [nd_for_id_overridden.id:84!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ nd_for_id_overridden.TW55N:85!null\n" + - " │ │ │ └─ tj5d2.H4DMT:29!null\n" + - " │ │ └─ TableAlias(nd_for_id_overridden)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.TW55N]\n" + - " │ │ ├─ keys: [tj5d2.H4DMT:29!null]\n" + - " │ │ ├─ colSet: (159-175)\n" + - " │ │ ├─ tableId: 9\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: E2I7U\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ │ ELSE Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select nd_for_id.id from E2I7U as nd_for_id where nd_for_id.FGG57 is not null and nd_for_id.FGG57 = umf.FGG57\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [nd_for_id.id:84!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ nd_for_id.FGG57:85\n" + - " │ │ │ └─ umf.FGG57:2\n" + - " │ │ └─ TableAlias(nd_for_id)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.FGG57]\n" + - " │ │ ├─ static: [{(NULL, ∞)}]\n" + - " │ │ ├─ colSet: (176-192)\n" + - " │ │ ├─ tableId: 10\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: E2I7U\n" + - " │ │ └─ columns: [id fgg57]\n" + - " │ │ END as LUEVY, CASE WHEN Eq\n" + - " │ │ ├─ umf.SYPKF:8\n" + - " │ │ └─ N/A (longtext)\n" + - " │ │ THEN Subquery\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ alias-string: select id from TPXBU where BTXC5 is null\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [tpxbu.id:84!null]\n" + - " │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ ├─ index: [TPXBU.BTXC5]\n" + - " │ │ ├─ static: [{[NULL, NULL]}]\n" + - " │ │ ├─ colSet: (194-196)\n" + - " │ │ ├─ tableId: 11\n" + + ExpectedPlan: "RowUpdateAccumulator\n" + + " └─ Insert(id, GXLUB, LUEVY, M22QN, TJPT7, ARN5P, XOSD4, IDE43, HMW4H, ZBT6R, FSDY2, LT7K6, SPPYD, QCGTS, TEUJA, QQV4M, FHCYT)\n" + + " ├─ InsertDestination\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: HGMQ6\n" + + " │ └─ columns: [id gxlub luevy m22qn tjpt7 arn5p xosd4 ide43 hmw4h zbt6r fsdy2 lt7k6 sppyd qcgts teuja qqv4m fhcyt]\n" + + " └─ Trigger(CREATE TRIGGER HGMQ6_on_insert BEFORE INSERT ON HGMQ6\n" + + " FOR EACH ROW\n" + + " BEGIN\n" + + " IF\n" + + " NEW.TJPT7 IN (SELECT SVAZ4 FROM TPXHZ)\n" + + " OR\n" + + " NEW.ARN5P IN (SELECT SVAZ4 FROM TPXHZ)\n" + + " OR\n" + + " NEW.XOSD4 IN (SELECT SVAZ4 FROM TPXHZ)\n" + + " OR\n" + + " NEW.IDE43 IN (SELECT SVAZ4 FROM TPXHZ)\n" + + " OR\n" + + " NEW.HMW4H IN (SELECT SVAZ4 FROM TPXHZ)\n" + + " THEN\n" + + " -- SET @custom_error_message = (SELECT error_message FROM trigger_helper_error_message WHERE DZLIM = 'SVAZ4');\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'String field contains invalid value, like empty string, ''none'', ''null'', ''n/a'', ''nan'' etc.';\n" + + " END IF;\n" + + " IF\n" + + " NEW.FSDY2 NOT IN ('benign', 'VUS', 'SRARY', 'UBQWG')\n" + + " THEN\n" + + " -- SET @custom_error_message = 'FSDY2 must be either ''benign'', ''VUS'', ''SRARY'' or ''UBQWG''.';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'FSDY2 must be either ''benign'', ''VUS'', ''SRARY'' or ''UBQWG''.';\n" + + " END IF;\n" + + " IF NEW.LT7K6 IS NOT NULL AND NEW.SPPYD IS NOT NULL\n" + + " THEN\n" + + " -- SET @custom_error_message = 'If LT7K6 has value, SPPYD must be NULL.';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'If LT7K6 has value, SPPYD must be NULL.';\n" + + " END IF;\n" + + " IF NEW.LT7K6 IS NULL AND (NEW.SPPYD IS NULL OR NEW.SPPYD <> 0.5)\n" + + " THEN\n" + + " -- SET @custom_error_message = 'If LT7K6 does not have value, SPPYD must be 0.5.';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'If LT7K6 does not have value, SPPYD must be 0.5.';\n" + + " END IF;\n" + + " END//)\n" + + " ├─ Project\n" + + " │ ├─ columns: [id:0!null, GXLUB:1!null, LUEVY:2!null, M22QN:3!null, TJPT7:4!null, ARN5P:5!null, XOSD4:6!null, IDE43:7, HMW4H:8, ZBT6R:9, FSDY2:10!null, LT7K6:11, SPPYD:12, QCGTS:13, TEUJA:14, QQV4M:15, FHCYT:16]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [umf.id:0!null as id, bs.id:63!null as GXLUB, CASE WHEN NOT\n" + + " │ │ └─ tj5d2.id:25!null IS NULL\n" + + " │ │ THEN Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select nd_for_id_overridden.id from E2I7U as nd_for_id_overridden where nd_for_id_overridden.TW55N = TJ5D2.H4DMT\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [nd_for_id_overridden.id:84!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ nd_for_id_overridden.TW55N:85!null\n" + + " │ │ │ └─ tj5d2.H4DMT:29!null\n" + + " │ │ └─ TableAlias(nd_for_id_overridden)\n" + + " │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ ├─ index: [E2I7U.TW55N]\n" + + " │ │ ├─ keys: [tj5d2.H4DMT:29!null]\n" + + " │ │ ├─ colSet: (159-175)\n" + + " │ │ ├─ tableId: 9\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: E2I7U\n" + + " │ │ └─ columns: [id tw55n]\n" + + " │ │ ELSE Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select nd_for_id.id from E2I7U as nd_for_id where nd_for_id.FGG57 is not null and nd_for_id.FGG57 = umf.FGG57\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [nd_for_id.id:84!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ nd_for_id.FGG57:85\n" + + " │ │ │ └─ umf.FGG57:2\n" + + " │ │ └─ TableAlias(nd_for_id)\n" + + " │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ ├─ index: [E2I7U.FGG57]\n" + + " │ │ ├─ static: [{(NULL, ∞)}]\n" + + " │ │ ├─ colSet: (176-192)\n" + + " │ │ ├─ tableId: 10\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: E2I7U\n" + + " │ │ └─ columns: [id fgg57]\n" + + " │ │ END as LUEVY, CASE WHEN Eq\n" + + " │ │ ├─ umf.SYPKF:8\n" + + " │ │ └─ N/A (longtext)\n" + + " │ │ THEN Subquery\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ alias-string: select id from TPXBU where BTXC5 is null\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [tpxbu.id:84!null]\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.BTXC5]\n" + + " │ │ ├─ static: [{[NULL, NULL]}]\n" + + " │ │ ├─ colSet: (194-196)\n" + + " │ │ ├─ tableId: 11\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: TPXBU\n" + + " │ │ └─ columns: [id btxc5]\n" + + " │ │ ELSE Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select aac.id from TPXBU as aac where aac.BTXC5 = umf.SYPKF\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.id:84!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ aac.BTXC5:85\n" + + " │ │ │ └─ umf.SYPKF:8\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.BTXC5]\n" + + " │ │ ├─ keys: [umf.SYPKF:8]\n" + + " │ │ ├─ colSet: (197-199)\n" + + " │ │ ├─ tableId: 12\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: TPXBU\n" + + " │ │ └─ columns: [id btxc5]\n" + + " │ │ END as M22QN, umf.TJPT7:6 as TJPT7, umf.ARN5P:7 as ARN5P, umf.XOSD4:13 as XOSD4, umf.IDE43:10 as IDE43, CASE WHEN NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ umf.HMW4H:14\n" + + " │ │ └─ N/A (longtext)\n" + + " │ │ THEN umf.HMW4H:14 ELSE NULL (null) END as HMW4H, CASE WHEN NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ umf.S76OM:15\n" + + " │ │ └─ N/A (longtext)\n" + + " │ │ THEN (umf.S76OM:15 + 0 (tinyint)) ELSE NULL (null) END as ZBT6R, CASE WHEN NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ umf.FSDY2:12\n" + + " │ │ └─ N/A (longtext)\n" + + " │ │ THEN umf.FSDY2:12 ELSE VUS (longtext) END as FSDY2, CASE WHEN NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ umf.vaf:16\n" + + " │ │ └─ (longtext)\n" + + " │ │ THEN (umf.vaf:16 + 0 (decimal(2,1))) ELSE NULL (null) END as LT7K6, CASE WHEN NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ umf.ZROH6:17\n" + + " │ │ └─ (longtext)\n" + + " │ │ THEN (umf.ZROH6:17 + 0 (decimal(2,1))) ELSE NULL (null) END as SPPYD, CASE WHEN NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ umf.QCGTS:18\n" + + " │ │ └─ (longtext)\n" + + " │ │ THEN (umf.QCGTS:18 + 0 (decimal(2,1))) ELSE NULL (null) END as QCGTS, umf.id:0!null as TEUJA, tj5d2.id:25!null as QQV4M, umf.FHCYT:23 as FHCYT]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [umf.id:0!null, umf.T4IBQ:1, umf.FGG57:2, umf.SSHPJ:3, umf.NLA6O:4, umf.SFJ6L:5, umf.TJPT7:6, umf.ARN5P:7, umf.SYPKF:8, umf.IVFMK:9, umf.IDE43:10, umf.AZ6SP:11, umf.FSDY2:12, umf.XOSD4:13, umf.HMW4H:14, umf.S76OM:15, umf.vaf:16, umf.ZROH6:17, umf.QCGTS:18, umf.LNFM6:19, umf.TVAWL:20, umf.HDLCL:21, umf.BHHW6:22, umf.FHCYT:23, umf.QZ6VT:24, tj5d2.id:25!null, tj5d2.T4IBQ:26!null, tj5d2.V7UFH:27!null, tj5d2.SYPKF:28!null, tj5d2.H4DMT:29!null, tj5d2.SWCQV:30!null, tj5d2.YKSSU:31, tj5d2.FHCYT:32, cla.id:33!null, cla.FTQLQ:34!null, cla.TUXML:35, cla.PAEF5:36, cla.RUCY4:37, cla.TPNJ6:38!null, cla.LBL53:39, cla.NB3QS:40, cla.EO7IV:41, cla.MUHJF:42, cla.FM34L:43, cla.TY5RF:44, cla.ZHTLH:45, cla.NPB7W:46, cla.SX3HH:47, cla.ISBNF:48, cla.YA7YB:49, cla.C5YKB:50, cla.QK7KT:51, cla.FFGE6:52, cla.FIIGJ:53, cla.SH3NC:54, cla.NTENA:55, cla.M4AUB:56, cla.X5AIR:57, cla.SAB6M:58, cla.G5QI5:59, cla.ZVQVD:60, cla.YKSSU:61, cla.FHCYT:62, bs.id:63!null, bs.NFRYN:64!null, bs.IXUXU:65, bs.FHCYT:66, umf.id:0!null as id, bs.id:63!null as GXLUB, CASE WHEN NOT\n" + + " │ │ └─ tj5d2.id:25!null IS NULL\n" + + " │ │ THEN Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select nd_for_id_overridden.id from E2I7U as nd_for_id_overridden where nd_for_id_overridden.TW55N = TJ5D2.H4DMT\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [nd_for_id_overridden.id:67!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ nd_for_id_overridden.TW55N:68!null\n" + + " │ │ │ └─ tj5d2.H4DMT:29!null\n" + + " │ │ └─ TableAlias(nd_for_id_overridden)\n" + + " │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ ├─ index: [E2I7U.TW55N]\n" + + " │ │ ├─ keys: [tj5d2.H4DMT:29!null]\n" + + " │ │ ├─ colSet: (159-175)\n" + + " │ │ ├─ tableId: 9\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: E2I7U\n" + + " │ │ └─ columns: [id tw55n]\n" + + " │ │ ELSE Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select nd_for_id.id from E2I7U as nd_for_id where nd_for_id.FGG57 is not null and nd_for_id.FGG57 = umf.FGG57\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [nd_for_id.id:67!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ nd_for_id.FGG57:68\n" + + " │ │ │ └─ umf.FGG57:2\n" + + " │ │ └─ TableAlias(nd_for_id)\n" + + " │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ ├─ index: [E2I7U.FGG57]\n" + + " │ │ ├─ static: [{(NULL, ∞)}]\n" + + " │ │ ├─ colSet: (176-192)\n" + + " │ │ ├─ tableId: 10\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: E2I7U\n" + + " │ │ └─ columns: [id fgg57]\n" + + " │ │ END as LUEVY, CASE WHEN Eq\n" + + " │ │ ├─ umf.SYPKF:8\n" + + " │ │ └─ N/A (longtext)\n" + + " │ │ THEN Subquery\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ alias-string: select id from TPXBU where BTXC5 is null\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [tpxbu.id:67!null]\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.BTXC5]\n" + + " │ │ ├─ static: [{[NULL, NULL]}]\n" + + " │ │ ├─ colSet: (194-196)\n" + + " │ │ ├─ tableId: 11\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: TPXBU\n" + + " │ │ └─ columns: [id btxc5]\n" + + " │ │ ELSE Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select aac.id from TPXBU as aac where aac.BTXC5 = umf.SYPKF\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.id:67!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ aac.BTXC5:68\n" + + " │ │ │ └─ umf.SYPKF:8\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.BTXC5]\n" + + " │ │ ├─ keys: [umf.SYPKF:8]\n" + + " │ │ ├─ colSet: (197-199)\n" + + " │ │ ├─ tableId: 12\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: TPXBU\n" + + " │ │ └─ columns: [id btxc5]\n" + + " │ │ END as M22QN, umf.TJPT7:6 as TJPT7, umf.ARN5P:7 as ARN5P, umf.XOSD4:13 as XOSD4, umf.IDE43:10 as IDE43, CASE WHEN NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ umf.HMW4H:14\n" + + " │ │ └─ N/A (longtext)\n" + + " │ │ THEN umf.HMW4H:14 ELSE NULL (null) END as HMW4H, CASE WHEN NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ umf.S76OM:15\n" + + " │ │ └─ N/A (longtext)\n" + + " │ │ THEN (umf.S76OM:15 + 0 (tinyint)) ELSE NULL (null) END as ZBT6R, CASE WHEN NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ umf.FSDY2:12\n" + + " │ │ └─ N/A (longtext)\n" + + " │ │ THEN umf.FSDY2:12 ELSE VUS (longtext) END as FSDY2, CASE WHEN NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ umf.vaf:16\n" + + " │ │ └─ (longtext)\n" + + " │ │ THEN (umf.vaf:16 + 0 (decimal(2,1))) ELSE NULL (null) END as LT7K6, CASE WHEN NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ umf.ZROH6:17\n" + + " │ │ └─ (longtext)\n" + + " │ │ THEN (umf.ZROH6:17 + 0 (decimal(2,1))) ELSE NULL (null) END as SPPYD, CASE WHEN NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ umf.QCGTS:18\n" + + " │ │ └─ (longtext)\n" + + " │ │ THEN (umf.QCGTS:18 + 0 (decimal(2,1))) ELSE NULL (null) END as QCGTS, umf.id:0!null as TEUJA, tj5d2.id:25!null as QQV4M, umf.FHCYT:23 as FHCYT]\n" + + " │ └─ LookupJoin\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ LeftOuterJoin\n" + + " │ │ │ ├─ AND\n" + + " │ │ │ │ ├─ AND\n" + + " │ │ │ │ │ ├─ AND\n" + + " │ │ │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ │ │ ├─ tj5d2.SWCQV:30!null\n" + + " │ │ │ │ │ │ │ └─ 0 (int)\n" + + " │ │ │ │ │ │ └─ Eq\n" + + " │ │ │ │ │ │ ├─ tj5d2.T4IBQ:26!null\n" + + " │ │ │ │ │ │ └─ umf.T4IBQ:1\n" + + " │ │ │ │ │ └─ Eq\n" + + " │ │ │ │ │ ├─ tj5d2.V7UFH:27!null\n" + + " │ │ │ │ │ └─ umf.FGG57:2\n" + + " │ │ │ │ └─ Eq\n" + + " │ │ │ │ ├─ tj5d2.SYPKF:28!null\n" + + " │ │ │ │ └─ umf.SYPKF:8\n" + + " │ │ │ ├─ SubqueryAlias\n" + + " │ │ │ │ ├─ name: umf\n" + + " │ │ │ │ ├─ outerVisibility: false\n" + + " │ │ │ │ ├─ isLateral: false\n" + + " │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ ├─ colSet: (90-114)\n" + + " │ │ │ │ ├─ tableId: 5\n" + + " │ │ │ │ └─ Filter\n" + + " │ │ │ │ ├─ AND\n" + + " │ │ │ │ │ ├─ AND\n" + + " │ │ │ │ │ │ ├─ InSubquery\n" + + " │ │ │ │ │ │ │ ├─ left: nzkpm.T4IBQ:1\n" + + " │ │ │ │ │ │ │ └─ right: Subquery\n" + + " │ │ │ │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ │ │ │ ├─ alias-string: select FTQLQ from YK2GW\n" + + " │ │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ │ ├─ name: YK2GW\n" + + " │ │ │ │ │ │ │ ├─ columns: [ftqlq]\n" + + " │ │ │ │ │ │ │ ├─ colSet: (43-72)\n" + + " │ │ │ │ │ │ │ └─ tableId: 3\n" + + " │ │ │ │ │ │ └─ InSubquery\n" + + " │ │ │ │ │ │ ├─ left: nzkpm.FGG57:2\n" + + " │ │ │ │ │ │ └─ right: Subquery\n" + + " │ │ │ │ │ │ ├─ cacheable: true\n" + + " │ │ │ │ │ │ ├─ alias-string: select FGG57 from E2I7U where FGG57 is not null\n" + + " │ │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ │ │ │ │ ├─ index: [E2I7U.FGG57]\n" + + " │ │ │ │ │ │ ├─ static: [{(NULL, ∞)}]\n" + + " │ │ │ │ │ │ ├─ colSet: (73-89)\n" + + " │ │ │ │ │ │ ├─ tableId: 4\n" + + " │ │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ │ ├─ name: E2I7U\n" + + " │ │ │ │ │ │ └─ columns: [fgg57]\n" + + " │ │ │ │ │ └─ NOT\n" + + " │ │ │ │ │ └─ Eq\n" + + " │ │ │ │ │ ├─ nzkpm.ARN5P:7\n" + + " │ │ │ │ │ └─ N/A (longtext)\n" + + " │ │ │ │ └─ IndexedTableAccess(NZKPM)\n" + + " │ │ │ │ ├─ index: [NZKPM.id]\n" + + " │ │ │ │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + + " │ │ │ │ ├─ colSet: (18-42)\n" + + " │ │ │ │ ├─ tableId: 2\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: NZKPM\n" + + " │ │ │ │ └─ columns: [id t4ibq fgg57 sshpj nla6o sfj6l tjpt7 arn5p sypkf ivfmk ide43 az6sp fsdy2 xosd4 hmw4h s76om vaf zroh6 qcgts lnfm6 tvawl hdlcl bhhw6 fhcyt qz6vt]\n" + + " │ │ │ └─ TableAlias(tj5d2)\n" + + " │ │ │ └─ ProcessTable\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: SZW6V\n" + + " │ │ │ └─ columns: [id t4ibq v7ufh sypkf h4dmt swcqv ykssu fhcyt]\n" + + " │ │ └─ TableAlias(cla)\n" + + " │ │ └─ IndexedTableAccess(YK2GW)\n" + + " │ │ ├─ index: [YK2GW.FTQLQ]\n" + + " │ │ ├─ keys: [umf.T4IBQ:1]\n" + + " │ │ ├─ colSet: (123-152)\n" + + " │ │ ├─ tableId: 7\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: YK2GW\n" + + " │ │ └─ columns: [id ftqlq tuxml paef5 rucy4 tpnj6 lbl53 nb3qs eo7iv muhjf fm34l ty5rf zhtlh npb7w sx3hh isbnf ya7yb c5ykb qk7kt ffge6 fiigj sh3nc ntena m4aub x5air sab6m g5qi5 zvqvd ykssu fhcyt]\n" + + " │ └─ TableAlias(bs)\n" + + " │ └─ IndexedTableAccess(THNTS)\n" + + " │ ├─ index: [THNTS.IXUXU]\n" + + " │ ├─ keys: [cla.id:33!null]\n" + + " │ ├─ colSet: (153-156)\n" + + " │ ├─ tableId: 8\n" + + " │ └─ Table\n" + + " │ ├─ name: THNTS\n" + + " │ └─ columns: [id nfryn ixuxu fhcyt]\n" + + " └─ BEGIN .. END\n" + + " ├─ IF BLOCK\n" + + " │ └─ IF(Or\n" + + " │ ├─ Or\n" + + " │ │ ├─ Or\n" + + " │ │ │ ├─ Or\n" + + " │ │ │ │ ├─ InSubquery\n" + + " │ │ │ │ │ ├─ left: new.TJPT7:4!null\n" + + " │ │ │ │ │ └─ right: Subquery\n" + + " │ │ │ │ │ ├─ cacheable: false\n" + + " │ │ │ │ │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: TPXHZ\n" + + " │ │ │ │ │ ├─ columns: [svaz4]\n" + + " │ │ │ │ │ ├─ colSet: (35,36)\n" + + " │ │ │ │ │ └─ tableId: 3\n" + + " │ │ │ │ └─ InSubquery\n" + + " │ │ │ │ ├─ left: new.ARN5P:5!null\n" + + " │ │ │ │ └─ right: Subquery\n" + + " │ │ │ │ ├─ cacheable: false\n" + + " │ │ │ │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: TPXHZ\n" + + " │ │ │ │ ├─ columns: [svaz4]\n" + + " │ │ │ │ ├─ colSet: (37,38)\n" + + " │ │ │ │ └─ tableId: 4\n" + + " │ │ │ └─ InSubquery\n" + + " │ │ │ ├─ left: new.XOSD4:6!null\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: TPXHZ\n" + + " │ │ │ ├─ columns: [svaz4]\n" + + " │ │ │ ├─ colSet: (39,40)\n" + + " │ │ │ └─ tableId: 5\n" + + " │ │ └─ InSubquery\n" + + " │ │ ├─ left: new.IDE43:7\n" + + " │ │ └─ right: Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + " │ │ └─ Table\n" + - " │ │ ├─ name: TPXBU\n" + - " │ │ └─ columns: [id btxc5]\n" + - " │ │ ELSE Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select aac.id from TPXBU as aac where aac.BTXC5 = umf.SYPKF\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [aac.id:84!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ aac.BTXC5:85\n" + - " │ │ │ └─ umf.SYPKF:8\n" + - " │ │ └─ TableAlias(aac)\n" + - " │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ ├─ index: [TPXBU.BTXC5]\n" + - " │ │ ├─ keys: [umf.SYPKF:8]\n" + - " │ │ ├─ colSet: (197-199)\n" + - " │ │ ├─ tableId: 12\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: TPXBU\n" + - " │ │ └─ columns: [id btxc5]\n" + - " │ │ END as M22QN, umf.TJPT7:6 as TJPT7, umf.ARN5P:7 as ARN5P, umf.XOSD4:13 as XOSD4, umf.IDE43:10 as IDE43, CASE WHEN NOT\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ umf.HMW4H:14\n" + - " │ │ └─ N/A (longtext)\n" + - " │ │ THEN umf.HMW4H:14 ELSE NULL (null) END as HMW4H, CASE WHEN NOT\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ umf.S76OM:15\n" + - " │ │ └─ N/A (longtext)\n" + - " │ │ THEN (umf.S76OM:15 + 0 (tinyint)) ELSE NULL (null) END as ZBT6R, CASE WHEN NOT\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ umf.FSDY2:12\n" + - " │ │ └─ N/A (longtext)\n" + - " │ │ THEN umf.FSDY2:12 ELSE VUS (longtext) END as FSDY2, CASE WHEN NOT\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ umf.vaf:16\n" + - " │ │ └─ (longtext)\n" + - " │ │ THEN (umf.vaf:16 + 0 (decimal(2,1))) ELSE NULL (null) END as LT7K6, CASE WHEN NOT\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ umf.ZROH6:17\n" + - " │ │ └─ (longtext)\n" + - " │ │ THEN (umf.ZROH6:17 + 0 (decimal(2,1))) ELSE NULL (null) END as SPPYD, CASE WHEN NOT\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ umf.QCGTS:18\n" + - " │ │ └─ (longtext)\n" + - " │ │ THEN (umf.QCGTS:18 + 0 (decimal(2,1))) ELSE NULL (null) END as QCGTS, umf.id:0!null as TEUJA, tj5d2.id:25!null as QQV4M, umf.FHCYT:23 as FHCYT]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [umf.id:0!null, umf.T4IBQ:1, umf.FGG57:2, umf.SSHPJ:3, umf.NLA6O:4, umf.SFJ6L:5, umf.TJPT7:6, umf.ARN5P:7, umf.SYPKF:8, umf.IVFMK:9, umf.IDE43:10, umf.AZ6SP:11, umf.FSDY2:12, umf.XOSD4:13, umf.HMW4H:14, umf.S76OM:15, umf.vaf:16, umf.ZROH6:17, umf.QCGTS:18, umf.LNFM6:19, umf.TVAWL:20, umf.HDLCL:21, umf.BHHW6:22, umf.FHCYT:23, umf.QZ6VT:24, tj5d2.id:25!null, tj5d2.T4IBQ:26!null, tj5d2.V7UFH:27!null, tj5d2.SYPKF:28!null, tj5d2.H4DMT:29!null, tj5d2.SWCQV:30!null, tj5d2.YKSSU:31, tj5d2.FHCYT:32, cla.id:33!null, cla.FTQLQ:34!null, cla.TUXML:35, cla.PAEF5:36, cla.RUCY4:37, cla.TPNJ6:38!null, cla.LBL53:39, cla.NB3QS:40, cla.EO7IV:41, cla.MUHJF:42, cla.FM34L:43, cla.TY5RF:44, cla.ZHTLH:45, cla.NPB7W:46, cla.SX3HH:47, cla.ISBNF:48, cla.YA7YB:49, cla.C5YKB:50, cla.QK7KT:51, cla.FFGE6:52, cla.FIIGJ:53, cla.SH3NC:54, cla.NTENA:55, cla.M4AUB:56, cla.X5AIR:57, cla.SAB6M:58, cla.G5QI5:59, cla.ZVQVD:60, cla.YKSSU:61, cla.FHCYT:62, bs.id:63!null, bs.NFRYN:64!null, bs.IXUXU:65, bs.FHCYT:66, umf.id:0!null as id, bs.id:63!null as GXLUB, CASE WHEN NOT\n" + - " │ │ └─ tj5d2.id:25!null IS NULL\n" + - " │ │ THEN Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select nd_for_id_overridden.id from E2I7U as nd_for_id_overridden where nd_for_id_overridden.TW55N = TJ5D2.H4DMT\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [nd_for_id_overridden.id:67!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ nd_for_id_overridden.TW55N:68!null\n" + - " │ │ │ └─ tj5d2.H4DMT:29!null\n" + - " │ │ └─ TableAlias(nd_for_id_overridden)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.TW55N]\n" + - " │ │ ├─ keys: [tj5d2.H4DMT:29!null]\n" + - " │ │ ├─ colSet: (159-175)\n" + - " │ │ ├─ tableId: 9\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: E2I7U\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ │ ELSE Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select nd_for_id.id from E2I7U as nd_for_id where nd_for_id.FGG57 is not null and nd_for_id.FGG57 = umf.FGG57\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [nd_for_id.id:67!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ nd_for_id.FGG57:68\n" + - " │ │ │ └─ umf.FGG57:2\n" + - " │ │ └─ TableAlias(nd_for_id)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.FGG57]\n" + - " │ │ ├─ static: [{(NULL, ∞)}]\n" + - " │ │ ├─ colSet: (176-192)\n" + - " │ │ ├─ tableId: 10\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: E2I7U\n" + - " │ │ └─ columns: [id fgg57]\n" + - " │ │ END as LUEVY, CASE WHEN Eq\n" + - " │ │ ├─ umf.SYPKF:8\n" + - " │ │ └─ N/A (longtext)\n" + - " │ │ THEN Subquery\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ alias-string: select id from TPXBU where BTXC5 is null\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [tpxbu.id:67!null]\n" + - " │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ ├─ index: [TPXBU.BTXC5]\n" + - " │ │ ├─ static: [{[NULL, NULL]}]\n" + - " │ │ ├─ colSet: (194-196)\n" + - " │ │ ├─ tableId: 11\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: TPXBU\n" + - " │ │ └─ columns: [id btxc5]\n" + - " │ │ ELSE Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select aac.id from TPXBU as aac where aac.BTXC5 = umf.SYPKF\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [aac.id:67!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ aac.BTXC5:68\n" + - " │ │ │ └─ umf.SYPKF:8\n" + - " │ │ └─ TableAlias(aac)\n" + - " │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ ├─ index: [TPXBU.BTXC5]\n" + - " │ │ ├─ keys: [umf.SYPKF:8]\n" + - " │ │ ├─ colSet: (197-199)\n" + - " │ │ ├─ tableId: 12\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: TPXBU\n" + - " │ │ └─ columns: [id btxc5]\n" + - " │ │ END as M22QN, umf.TJPT7:6 as TJPT7, umf.ARN5P:7 as ARN5P, umf.XOSD4:13 as XOSD4, umf.IDE43:10 as IDE43, CASE WHEN NOT\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ umf.HMW4H:14\n" + - " │ │ └─ N/A (longtext)\n" + - " │ │ THEN umf.HMW4H:14 ELSE NULL (null) END as HMW4H, CASE WHEN NOT\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ umf.S76OM:15\n" + - " │ │ └─ N/A (longtext)\n" + - " │ │ THEN (umf.S76OM:15 + 0 (tinyint)) ELSE NULL (null) END as ZBT6R, CASE WHEN NOT\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ umf.FSDY2:12\n" + - " │ │ └─ N/A (longtext)\n" + - " │ │ THEN umf.FSDY2:12 ELSE VUS (longtext) END as FSDY2, CASE WHEN NOT\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ umf.vaf:16\n" + - " │ │ └─ (longtext)\n" + - " │ │ THEN (umf.vaf:16 + 0 (decimal(2,1))) ELSE NULL (null) END as LT7K6, CASE WHEN NOT\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ umf.ZROH6:17\n" + - " │ │ └─ (longtext)\n" + - " │ │ THEN (umf.ZROH6:17 + 0 (decimal(2,1))) ELSE NULL (null) END as SPPYD, CASE WHEN NOT\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ umf.QCGTS:18\n" + - " │ │ └─ (longtext)\n" + - " │ │ THEN (umf.QCGTS:18 + 0 (decimal(2,1))) ELSE NULL (null) END as QCGTS, umf.id:0!null as TEUJA, tj5d2.id:25!null as QQV4M, umf.FHCYT:23 as FHCYT]\n" + - " │ └─ LookupJoin\n" + - " │ ├─ LookupJoin\n" + - " │ │ ├─ LeftOuterJoin\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ ├─ tj5d2.SWCQV:30!null\n" + - " │ │ │ │ │ │ │ └─ 0 (int)\n" + - " │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ ├─ tj5d2.T4IBQ:26!null\n" + - " │ │ │ │ │ │ └─ umf.T4IBQ:1\n" + - " │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ ├─ tj5d2.V7UFH:27!null\n" + - " │ │ │ │ │ └─ umf.FGG57:2\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ tj5d2.SYPKF:28!null\n" + - " │ │ │ │ └─ umf.SYPKF:8\n" + - " │ │ │ ├─ SubqueryAlias\n" + - " │ │ │ │ ├─ name: umf\n" + - " │ │ │ │ ├─ outerVisibility: false\n" + - " │ │ │ │ ├─ isLateral: false\n" + - " │ │ │ │ ├─ cacheable: true\n" + - " │ │ │ │ ├─ colSet: (90-114)\n" + - " │ │ │ │ ├─ tableId: 5\n" + - " │ │ │ │ └─ Filter\n" + - " │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ ├─ InSubquery\n" + - " │ │ │ │ │ │ │ ├─ left: nzkpm.T4IBQ:1\n" + - " │ │ │ │ │ │ │ └─ right: Subquery\n" + - " │ │ │ │ │ │ │ ├─ cacheable: true\n" + - " │ │ │ │ │ │ │ ├─ alias-string: select FTQLQ from YK2GW\n" + - " │ │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ │ ├─ name: YK2GW\n" + - " │ │ │ │ │ │ │ ├─ columns: [ftqlq]\n" + - " │ │ │ │ │ │ │ ├─ colSet: (43-72)\n" + - " │ │ │ │ │ │ │ └─ tableId: 3\n" + - " │ │ │ │ │ │ └─ InSubquery\n" + - " │ │ │ │ │ │ ├─ left: nzkpm.FGG57:2\n" + - " │ │ │ │ │ │ └─ right: Subquery\n" + - " │ │ │ │ │ │ ├─ cacheable: true\n" + - " │ │ │ │ │ │ ├─ alias-string: select FGG57 from E2I7U where FGG57 is not null\n" + - " │ │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ │ │ │ │ ├─ index: [E2I7U.FGG57]\n" + - " │ │ │ │ │ │ ├─ static: [{(NULL, ∞)}]\n" + - " │ │ │ │ │ │ ├─ colSet: (73-89)\n" + - " │ │ │ │ │ │ ├─ tableId: 4\n" + - " │ │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ │ ├─ name: E2I7U\n" + - " │ │ │ │ │ │ └─ columns: [fgg57]\n" + - " │ │ │ │ │ └─ NOT\n" + - " │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ ├─ nzkpm.ARN5P:7\n" + - " │ │ │ │ │ └─ N/A (longtext)\n" + - " │ │ │ │ └─ IndexedTableAccess(NZKPM)\n" + - " │ │ │ │ ├─ index: [NZKPM.id]\n" + - " │ │ │ │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + - " │ │ │ │ ├─ colSet: (18-42)\n" + - " │ │ │ │ ├─ tableId: 2\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: NZKPM\n" + - " │ │ │ │ └─ columns: [id t4ibq fgg57 sshpj nla6o sfj6l tjpt7 arn5p sypkf ivfmk ide43 az6sp fsdy2 xosd4 hmw4h s76om vaf zroh6 qcgts lnfm6 tvawl hdlcl bhhw6 fhcyt qz6vt]\n" + - " │ │ │ └─ TableAlias(tj5d2)\n" + - " │ │ │ └─ ProcessTable\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: SZW6V\n" + - " │ │ │ └─ columns: [id t4ibq v7ufh sypkf h4dmt swcqv ykssu fhcyt]\n" + - " │ │ └─ TableAlias(cla)\n" + - " │ │ └─ IndexedTableAccess(YK2GW)\n" + - " │ │ ├─ index: [YK2GW.FTQLQ]\n" + - " │ │ ├─ keys: [umf.T4IBQ:1]\n" + - " │ │ ├─ colSet: (123-152)\n" + - " │ │ ├─ tableId: 7\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: YK2GW\n" + - " │ │ └─ columns: [id ftqlq tuxml paef5 rucy4 tpnj6 lbl53 nb3qs eo7iv muhjf fm34l ty5rf zhtlh npb7w sx3hh isbnf ya7yb c5ykb qk7kt ffge6 fiigj sh3nc ntena m4aub x5air sab6m g5qi5 zvqvd ykssu fhcyt]\n" + - " │ └─ TableAlias(bs)\n" + - " │ └─ IndexedTableAccess(THNTS)\n" + - " │ ├─ index: [THNTS.IXUXU]\n" + - " │ ├─ keys: [cla.id:33!null]\n" + - " │ ├─ colSet: (153-156)\n" + - " │ ├─ tableId: 8\n" + - " │ └─ Table\n" + - " │ ├─ name: THNTS\n" + - " │ └─ columns: [id nfryn ixuxu fhcyt]\n" + - " └─ BEGIN .. END\n" + - " ├─ IF BLOCK\n" + - " │ └─ IF(Or\n" + - " │ ├─ Or\n" + - " │ │ ├─ Or\n" + - " │ │ │ ├─ Or\n" + - " │ │ │ │ ├─ InSubquery\n" + - " │ │ │ │ │ ├─ left: new.TJPT7:4!null\n" + - " │ │ │ │ │ └─ right: Subquery\n" + - " │ │ │ │ │ ├─ cacheable: false\n" + - " │ │ │ │ │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: TPXHZ\n" + - " │ │ │ │ │ ├─ columns: [svaz4]\n" + - " │ │ │ │ │ ├─ colSet: (35,36)\n" + - " │ │ │ │ │ └─ tableId: 3\n" + - " │ │ │ │ └─ InSubquery\n" + - " │ │ │ │ ├─ left: new.ARN5P:5!null\n" + - " │ │ │ │ └─ right: Subquery\n" + - " │ │ │ │ ├─ cacheable: false\n" + - " │ │ │ │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: TPXHZ\n" + - " │ │ │ │ ├─ columns: [svaz4]\n" + - " │ │ │ │ ├─ colSet: (37,38)\n" + - " │ │ │ │ └─ tableId: 4\n" + - " │ │ │ └─ InSubquery\n" + - " │ │ │ ├─ left: new.XOSD4:6!null\n" + - " │ │ │ └─ right: Subquery\n" + - " │ │ │ ├─ cacheable: false\n" + - " │ │ │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: TPXHZ\n" + - " │ │ │ ├─ columns: [svaz4]\n" + - " │ │ │ ├─ colSet: (39,40)\n" + - " │ │ │ └─ tableId: 5\n" + - " │ │ └─ InSubquery\n" + - " │ │ ├─ left: new.IDE43:7\n" + - " │ │ └─ right: Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: TPXHZ\n" + - " │ │ ├─ columns: [svaz4]\n" + - " │ │ ├─ colSet: (41,42)\n" + - " │ │ └─ tableId: 6\n" + - " │ └─ InSubquery\n" + - " │ ├─ left: new.HMW4H:8\n" + - " │ └─ right: Subquery\n" + - " │ ├─ cacheable: false\n" + - " │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + - " │ └─ Table\n" + - " │ ├─ name: TPXHZ\n" + - " │ ├─ columns: [svaz4]\n" + - " │ ├─ colSet: (43,44)\n" + - " │ └─ tableId: 7\n" + - " │ )\n" + - " │ └─ BLOCK\n" + - " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = String field contains invalid value, like empty string, 'none', 'null', 'n/a', 'nan' etc., MYSQL_ERRNO = 1644\n" + - " ├─ IF BLOCK\n" + - " │ └─ IF(NOT\n" + - " │ └─ IN\n" + - " │ ├─ left: new.FSDY2:10!null\n" + - " │ └─ right: TUPLE(benign (longtext), VUS (longtext), SRARY (longtext), UBQWG (longtext))\n" + - " │ )\n" + - " │ └─ BLOCK\n" + - " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = FSDY2 must be either 'benign', 'VUS', 'SRARY' or 'UBQWG'., MYSQL_ERRNO = 1644\n" + - " ├─ IF BLOCK\n" + - " │ └─ IF(AND\n" + - " │ ├─ NOT\n" + - " │ │ └─ new.LT7K6:11 IS NULL\n" + - " │ └─ NOT\n" + - " │ └─ new.SPPYD:12 IS NULL\n" + - " │ )\n" + - " │ └─ BLOCK\n" + - " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = If LT7K6 has value, SPPYD must be NULL., MYSQL_ERRNO = 1644\n" + - " └─ IF BLOCK\n" + - " └─ IF(AND\n" + - " ├─ new.LT7K6:11 IS NULL\n" + - " └─ Or\n" + - " ├─ new.SPPYD:12 IS NULL\n" + - " └─ NOT\n" + - " └─ Eq\n" + - " ├─ new.SPPYD:12\n" + - " └─ 0.5 (decimal(2,1))\n" + - " )\n" + - " └─ BLOCK\n" + - " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = If LT7K6 does not have value, SPPYD must be 0.5., MYSQL_ERRNO = 1644\n" + + " │ │ ├─ name: TPXHZ\n" + + " │ │ ├─ columns: [svaz4]\n" + + " │ │ ├─ colSet: (41,42)\n" + + " │ │ └─ tableId: 6\n" + + " │ └─ InSubquery\n" + + " │ ├─ left: new.HMW4H:8\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + + " │ └─ Table\n" + + " │ ├─ name: TPXHZ\n" + + " │ ├─ columns: [svaz4]\n" + + " │ ├─ colSet: (43,44)\n" + + " │ └─ tableId: 7\n" + + " │ )\n" + + " │ └─ BLOCK\n" + + " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = String field contains invalid value, like empty string, 'none', 'null', 'n/a', 'nan' etc., MYSQL_ERRNO = 1644\n" + + " ├─ IF BLOCK\n" + + " │ └─ IF(NOT\n" + + " │ └─ IN\n" + + " │ ├─ left: new.FSDY2:10!null\n" + + " │ └─ right: TUPLE(benign (longtext), VUS (longtext), SRARY (longtext), UBQWG (longtext))\n" + + " │ )\n" + + " │ └─ BLOCK\n" + + " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = FSDY2 must be either 'benign', 'VUS', 'SRARY' or 'UBQWG'., MYSQL_ERRNO = 1644\n" + + " ├─ IF BLOCK\n" + + " │ └─ IF(AND\n" + + " │ ├─ NOT\n" + + " │ │ └─ new.LT7K6:11 IS NULL\n" + + " │ └─ NOT\n" + + " │ └─ new.SPPYD:12 IS NULL\n" + + " │ )\n" + + " │ └─ BLOCK\n" + + " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = If LT7K6 has value, SPPYD must be NULL., MYSQL_ERRNO = 1644\n" + + " └─ IF BLOCK\n" + + " └─ IF(AND\n" + + " ├─ new.LT7K6:11 IS NULL\n" + + " └─ Or\n" + + " ├─ new.SPPYD:12 IS NULL\n" + + " └─ NOT\n" + + " └─ Eq\n" + + " ├─ new.SPPYD:12\n" + + " └─ 0.5 (decimal(2,1))\n" + + " )\n" + + " └─ BLOCK\n" + + " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = If LT7K6 does not have value, SPPYD must be 0.5., MYSQL_ERRNO = 1644\n" + "", }, { @@ -20450,251 +20439,250 @@ WHERE AND (rs.NO52D, rs.DKCAJ) NOT IN (SELECT DISTINCT NO52D, DKCAJ FROM SFEGG WHERE VYO5E IS NULL) )`, - ExpectedPlan: "TriggerRollback\n" + - " └─ RowUpdateAccumulator\n" + - " └─ Insert(id, NO52D, VYO5E, DKCAJ, ADURZ, FHCYT)\n" + - " ├─ InsertDestination\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: SFEGG\n" + - " │ └─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + - " └─ Trigger(CREATE TRIGGER SFEGG_on_insert BEFORE INSERT ON SFEGG\n" + - " FOR EACH ROW\n" + - " BEGIN\n" + - " IF\n" + - " NEW.NO52D IN (SELECT SVAZ4 FROM TPXHZ)\n" + - " OR NEW.VYO5E IN (SELECT SVAZ4 FROM TPXHZ)\n" + - " THEN\n" + - " -- SET @custom_error_message = (SELECT error_message FROM trigger_helper_error_message WHERE DZLIM = 'SVAZ4');\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'String field contains invalid value, like empty string, ''none'', ''null'', ''n/a'', ''nan'' etc.';\n" + - " END IF;\n" + - " IF\n" + - " NEW.ADURZ <= 0\n" + - " THEN\n" + - " -- SET @custom_error_message = 'ADURZ must be positive.';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'ADURZ must be positive.';\n" + - " END IF;\n" + - " END//)\n" + - " ├─ Project\n" + - " │ ├─ columns: [id:0!null, NO52D:1!null, VYO5E:2, DKCAJ:3!null, ADURZ:4!null, FHCYT:5]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, rs.NO52D:0 as NO52D, rs.VYO5E:1 as VYO5E, rs.DKCAJ:2!null as DKCAJ, CASE WHEN AND\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ rs.NO52D:0\n" + - " │ │ │ └─ FZB3D (longtext)\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ rs.F35MI:3!null\n" + - " │ │ └─ SUZTA (longtext)\n" + - " │ │ THEN 1 (tinyint) WHEN AND\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ rs.NO52D:0\n" + - " │ │ │ └─ FZB3D (longtext)\n" + - " │ │ └─ NOT\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ rs.F35MI:3!null\n" + - " │ │ └─ SUZTA (longtext)\n" + - " │ │ THEN 3 (tinyint) WHEN Or\n" + - " │ │ ├─ rs.NO52D LIKE 'AC%'\n" + - " │ │ └─ rs.NO52D LIKE 'EC%'\n" + - " │ │ THEN 3 (tinyint) WHEN AND\n" + - " │ │ ├─ rs.NO52D LIKE 'IC%'\n" + - " │ │ └─ rs.VYO5E:1 IS NULL\n" + - " │ │ THEN 2 (tinyint) WHEN AND\n" + - " │ │ ├─ rs.NO52D LIKE 'IC%'\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ rs.VYO5E:1\n" + - " │ │ └─ CF (longtext)\n" + - " │ │ THEN 1 (tinyint) WHEN AND\n" + - " │ │ ├─ AND\n" + - " │ │ │ ├─ rs.NO52D LIKE 'IC%'\n" + - " │ │ │ └─ NOT\n" + - " │ │ │ └─ rs.VYO5E:1 IS NULL\n" + - " │ │ └─ NOT\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ rs.VYO5E:1\n" + - " │ │ └─ CF (longtext)\n" + - " │ │ THEN 4 (tinyint) WHEN Eq\n" + - " │ │ ├─ rs.NO52D:0\n" + - " │ │ └─ Ki (longtext)\n" + - " │ │ THEN 1 (tinyint) WHEN Eq\n" + - " │ │ ├─ rs.NO52D:0\n" + - " │ │ └─ Kd (longtext)\n" + - " │ │ THEN 2 (tinyint) ELSE NULL (null) END as ADURZ, NULL (null) as FHCYT]\n" + - " │ └─ Filter\n" + - " │ ├─ Or\n" + - " │ │ ├─ AND\n" + - " │ │ │ ├─ NOT\n" + - " │ │ │ │ └─ rs.VYO5E:1 IS NULL\n" + - " │ │ │ └─ NOT\n" + - " │ │ │ └─ InSubquery\n" + - " │ │ │ ├─ left: TUPLE(rs.NO52D:0, rs.VYO5E:1, rs.DKCAJ:2!null)\n" + - " │ │ │ └─ right: Subquery\n" + - " │ │ │ ├─ cacheable: true\n" + - " │ │ │ ├─ alias-string: select distinct NO52D, VYO5E, DKCAJ from SFEGG where VYO5E is not null\n" + - " │ │ │ └─ Distinct\n" + - " │ │ │ └─ Project\n" + - " │ │ │ ├─ columns: [sfegg.NO52D:5!null, sfegg.VYO5E:6, sfegg.DKCAJ:7!null]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ NOT\n" + - " │ │ │ │ └─ sfegg.VYO5E:6 IS NULL\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: SFEGG\n" + - " │ │ │ ├─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + - " │ │ │ ├─ colSet: (60-65)\n" + - " │ │ │ └─ tableId: 8\n" + - " │ │ └─ AND\n" + - " │ │ ├─ rs.VYO5E:1 IS NULL\n" + - " │ │ └─ NOT\n" + - " │ │ └─ InSubquery\n" + - " │ │ ├─ left: TUPLE(rs.NO52D:0, rs.DKCAJ:2!null)\n" + - " │ │ └─ right: Subquery\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ alias-string: select distinct NO52D, DKCAJ from SFEGG where VYO5E is null\n" + - " │ │ └─ Distinct\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [sfegg.NO52D:5!null, sfegg.DKCAJ:7!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ sfegg.VYO5E:6 IS NULL\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: SFEGG\n" + - " │ │ ├─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + - " │ │ ├─ colSet: (66-71)\n" + - " │ │ └─ tableId: 9\n" + - " │ └─ SubqueryAlias\n" + - " │ ├─ name: rs\n" + - " │ ├─ outerVisibility: false\n" + - " │ ├─ isLateral: false\n" + - " │ ├─ cacheable: true\n" + - " │ ├─ colSet: (56-59)\n" + - " │ ├─ tableId: 7\n" + - " │ └─ Distinct\n" + - " │ └─ Project\n" + - " │ ├─ columns: [nk7fp.NO52D:0 as NO52D, CASE WHEN Eq\n" + - " │ │ ├─ nk7fp.VYO5E:1\n" + - " │ │ └─ N/A (longtext)\n" + - " │ │ THEN NULL (null) ELSE nk7fp.VYO5E:1 END as VYO5E, nt.id:21!null as DKCAJ, nt.DZLIM:22!null as F35MI]\n" + - " │ └─ HashJoin\n" + - " │ ├─ Eq\n" + - " │ │ ├─ nt.id:21!null\n" + - " │ │ └─ nd.DKCAJ:5!null\n" + - " │ ├─ LookupJoin\n" + - " │ │ ├─ Or\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ nk7fp.FVUCX:3!null IS NULL\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ nd.ZH72S:11\n" + - " │ │ │ │ └─ nk7fp.ZH72S:2\n" + - " │ │ │ └─ AND\n" + - " │ │ │ ├─ NOT\n" + - " │ │ │ │ └─ nk7fp.FVUCX:3!null IS NULL\n" + - " │ │ │ └─ Eq\n" + - " │ │ │ ├─ nd.TW55N:7!null\n" + - " │ │ │ └─ nk7fp.FVUCX:3!null\n" + - " │ │ ├─ SubqueryAlias\n" + - " │ │ │ ├─ name: nk7fp\n" + - " │ │ │ ├─ outerVisibility: false\n" + - " │ │ │ ├─ isLateral: false\n" + - " │ │ │ ├─ cacheable: true\n" + - " │ │ │ ├─ colSet: (28-31)\n" + - " │ │ │ ├─ tableId: 4\n" + - " │ │ │ └─ Distinct\n" + - " │ │ │ └─ Project\n" + - " │ │ │ ├─ columns: [uct.NO52D:7, uct.VYO5E:9, uct.ZH72S:2, i7hcr.FVUCX:17!null]\n" + - " │ │ │ └─ LeftOuterJoin\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ │ ├─ i7hcr.SWCQV:18!null\n" + - " │ │ │ │ │ │ │ └─ 0 (int)\n" + - " │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ ├─ i7hcr.TOFPN:14!null\n" + - " │ │ │ │ │ │ └─ uct.FTQLQ:1\n" + - " │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ ├─ i7hcr.SJYN2:15!null\n" + - " │ │ │ │ │ └─ uct.ZH72S:2\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ i7hcr.BTXC5:16!null\n" + - " │ │ │ │ └─ uct.LJLUM:5\n" + - " │ │ │ ├─ TableAlias(uct)\n" + - " │ │ │ │ └─ IndexedTableAccess(OUBDL)\n" + - " │ │ │ │ ├─ index: [OUBDL.id]\n" + - " │ │ │ │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + - " │ │ │ │ ├─ colSet: (7-19)\n" + - " │ │ │ │ ├─ tableId: 2\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: OUBDL\n" + - " │ │ │ │ └─ columns: [id ftqlq zh72s sfj6l v5dpx ljlum idpk7 no52d zrv3b vyo5e ykssu fhcyt qz6vt]\n" + - " │ │ │ └─ TableAlias(i7hcr)\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: EPZU6\n" + - " │ │ │ ├─ columns: [id tofpn sjyn2 btxc5 fvucx swcqv ykssu fhcyt]\n" + - " │ │ │ ├─ colSet: (20-27)\n" + - " │ │ │ └─ tableId: 3\n" + - " │ │ └─ TableAlias(nd)\n" + - " │ │ └─ Concat\n" + - " │ │ ├─ TableAlias(nd)\n" + - " │ │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ │ ├─ index: [E2I7U.TW55N]\n" + - " │ │ │ ├─ keys: [nk7fp.FVUCX:3!null]\n" + - " │ │ │ ├─ colSet: (32-48)\n" + - " │ │ │ ├─ tableId: 5\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: E2I7U\n" + - " │ │ │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + - " │ │ └─ TableAlias(nd)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.ZH72S]\n" + - " │ │ ├─ keys: [nk7fp.ZH72S:2]\n" + - " │ │ ├─ colSet: (32-48)\n" + - " │ │ ├─ tableId: 5\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: E2I7U\n" + - " │ │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + - " │ └─ HashLookup\n" + - " │ ├─ left-key: TUPLE(nd.DKCAJ:5!null)\n" + - " │ ├─ right-key: TUPLE(nt.id:0!null)\n" + - " │ └─ TableAlias(nt)\n" + - " │ └─ Table\n" + - " │ ├─ name: F35MI\n" + - " │ ├─ columns: [id dzlim f3yue]\n" + - " │ ├─ colSet: (49-51)\n" + - " │ └─ tableId: 6\n" + - " └─ BEGIN .. END\n" + - " ├─ IF BLOCK\n" + - " │ └─ IF(Or\n" + - " │ ├─ InSubquery\n" + - " │ │ ├─ left: new.NO52D:1!null\n" + - " │ │ └─ right: Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: TPXHZ\n" + - " │ │ ├─ columns: [svaz4]\n" + - " │ │ ├─ colSet: (13,14)\n" + - " │ │ └─ tableId: 3\n" + - " │ └─ InSubquery\n" + - " │ ├─ left: new.VYO5E:2\n" + - " │ └─ right: Subquery\n" + - " │ ├─ cacheable: false\n" + - " │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + - " │ └─ Table\n" + - " │ ├─ name: TPXHZ\n" + - " │ ├─ columns: [svaz4]\n" + - " │ ├─ colSet: (15,16)\n" + - " │ └─ tableId: 4\n" + - " │ )\n" + - " │ └─ BLOCK\n" + - " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = String field contains invalid value, like empty string, 'none', 'null', 'n/a', 'nan' etc., MYSQL_ERRNO = 1644\n" + - " └─ IF BLOCK\n" + - " └─ IF(LessThanOrEqual\n" + - " ├─ new.ADURZ:4!null\n" + - " └─ 0 (int)\n" + - " )\n" + - " └─ BLOCK\n" + - " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = ADURZ must be positive., MYSQL_ERRNO = 1644\n" + + ExpectedPlan: "RowUpdateAccumulator\n" + + " └─ Insert(id, NO52D, VYO5E, DKCAJ, ADURZ, FHCYT)\n" + + " ├─ InsertDestination\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: SFEGG\n" + + " │ └─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + + " └─ Trigger(CREATE TRIGGER SFEGG_on_insert BEFORE INSERT ON SFEGG\n" + + " FOR EACH ROW\n" + + " BEGIN\n" + + " IF\n" + + " NEW.NO52D IN (SELECT SVAZ4 FROM TPXHZ)\n" + + " OR NEW.VYO5E IN (SELECT SVAZ4 FROM TPXHZ)\n" + + " THEN\n" + + " -- SET @custom_error_message = (SELECT error_message FROM trigger_helper_error_message WHERE DZLIM = 'SVAZ4');\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'String field contains invalid value, like empty string, ''none'', ''null'', ''n/a'', ''nan'' etc.';\n" + + " END IF;\n" + + " IF\n" + + " NEW.ADURZ <= 0\n" + + " THEN\n" + + " -- SET @custom_error_message = 'ADURZ must be positive.';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'ADURZ must be positive.';\n" + + " END IF;\n" + + " END//)\n" + + " ├─ Project\n" + + " │ ├─ columns: [id:0!null, NO52D:1!null, VYO5E:2, DKCAJ:3!null, ADURZ:4!null, FHCYT:5]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, rs.NO52D:0 as NO52D, rs.VYO5E:1 as VYO5E, rs.DKCAJ:2!null as DKCAJ, CASE WHEN AND\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ rs.NO52D:0\n" + + " │ │ │ └─ FZB3D (longtext)\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ rs.F35MI:3!null\n" + + " │ │ └─ SUZTA (longtext)\n" + + " │ │ THEN 1 (tinyint) WHEN AND\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ rs.NO52D:0\n" + + " │ │ │ └─ FZB3D (longtext)\n" + + " │ │ └─ NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ rs.F35MI:3!null\n" + + " │ │ └─ SUZTA (longtext)\n" + + " │ │ THEN 3 (tinyint) WHEN Or\n" + + " │ │ ├─ rs.NO52D LIKE 'AC%'\n" + + " │ │ └─ rs.NO52D LIKE 'EC%'\n" + + " │ │ THEN 3 (tinyint) WHEN AND\n" + + " │ │ ├─ rs.NO52D LIKE 'IC%'\n" + + " │ │ └─ rs.VYO5E:1 IS NULL\n" + + " │ │ THEN 2 (tinyint) WHEN AND\n" + + " │ │ ├─ rs.NO52D LIKE 'IC%'\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ rs.VYO5E:1\n" + + " │ │ └─ CF (longtext)\n" + + " │ │ THEN 1 (tinyint) WHEN AND\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ rs.NO52D LIKE 'IC%'\n" + + " │ │ │ └─ NOT\n" + + " │ │ │ └─ rs.VYO5E:1 IS NULL\n" + + " │ │ └─ NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ rs.VYO5E:1\n" + + " │ │ └─ CF (longtext)\n" + + " │ │ THEN 4 (tinyint) WHEN Eq\n" + + " │ │ ├─ rs.NO52D:0\n" + + " │ │ └─ Ki (longtext)\n" + + " │ │ THEN 1 (tinyint) WHEN Eq\n" + + " │ │ ├─ rs.NO52D:0\n" + + " │ │ └─ Kd (longtext)\n" + + " │ │ THEN 2 (tinyint) ELSE NULL (null) END as ADURZ, NULL (null) as FHCYT]\n" + + " │ └─ Filter\n" + + " │ ├─ Or\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ NOT\n" + + " │ │ │ │ └─ rs.VYO5E:1 IS NULL\n" + + " │ │ │ └─ NOT\n" + + " │ │ │ └─ InSubquery\n" + + " │ │ │ ├─ left: TUPLE(rs.NO52D:0, rs.VYO5E:1, rs.DKCAJ:2!null)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ alias-string: select distinct NO52D, VYO5E, DKCAJ from SFEGG where VYO5E is not null\n" + + " │ │ │ └─ Distinct\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [sfegg.NO52D:5!null, sfegg.VYO5E:6, sfegg.DKCAJ:7!null]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ NOT\n" + + " │ │ │ │ └─ sfegg.VYO5E:6 IS NULL\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: SFEGG\n" + + " │ │ │ ├─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + + " │ │ │ ├─ colSet: (60-65)\n" + + " │ │ │ └─ tableId: 8\n" + + " │ │ └─ AND\n" + + " │ │ ├─ rs.VYO5E:1 IS NULL\n" + + " │ │ └─ NOT\n" + + " │ │ └─ InSubquery\n" + + " │ │ ├─ left: TUPLE(rs.NO52D:0, rs.DKCAJ:2!null)\n" + + " │ │ └─ right: Subquery\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ alias-string: select distinct NO52D, DKCAJ from SFEGG where VYO5E is null\n" + + " │ │ └─ Distinct\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [sfegg.NO52D:5!null, sfegg.DKCAJ:7!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ sfegg.VYO5E:6 IS NULL\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: SFEGG\n" + + " │ │ ├─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + + " │ │ ├─ colSet: (66-71)\n" + + " │ │ └─ tableId: 9\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: rs\n" + + " │ ├─ outerVisibility: false\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (56-59)\n" + + " │ ├─ tableId: 7\n" + + " │ └─ Distinct\n" + + " │ └─ Project\n" + + " │ ├─ columns: [nk7fp.NO52D:0 as NO52D, CASE WHEN Eq\n" + + " │ │ ├─ nk7fp.VYO5E:1\n" + + " │ │ └─ N/A (longtext)\n" + + " │ │ THEN NULL (null) ELSE nk7fp.VYO5E:1 END as VYO5E, nt.id:21!null as DKCAJ, nt.DZLIM:22!null as F35MI]\n" + + " │ └─ HashJoin\n" + + " │ ├─ Eq\n" + + " │ │ ├─ nt.id:21!null\n" + + " │ │ └─ nd.DKCAJ:5!null\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ Or\n" + + " │ │ │ ├─ AND\n" + + " │ │ │ │ ├─ nk7fp.FVUCX:3!null IS NULL\n" + + " │ │ │ │ └─ Eq\n" + + " │ │ │ │ ├─ nd.ZH72S:11\n" + + " │ │ │ │ └─ nk7fp.ZH72S:2\n" + + " │ │ │ └─ AND\n" + + " │ │ │ ├─ NOT\n" + + " │ │ │ │ └─ nk7fp.FVUCX:3!null IS NULL\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ nd.TW55N:7!null\n" + + " │ │ │ └─ nk7fp.FVUCX:3!null\n" + + " │ │ ├─ SubqueryAlias\n" + + " │ │ │ ├─ name: nk7fp\n" + + " │ │ │ ├─ outerVisibility: false\n" + + " │ │ │ ├─ isLateral: false\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ colSet: (28-31)\n" + + " │ │ │ ├─ tableId: 4\n" + + " │ │ │ └─ Distinct\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [uct.NO52D:7, uct.VYO5E:9, uct.ZH72S:2, i7hcr.FVUCX:17!null]\n" + + " │ │ │ └─ LeftOuterJoin\n" + + " │ │ │ ├─ AND\n" + + " │ │ │ │ ├─ AND\n" + + " │ │ │ │ │ ├─ AND\n" + + " │ │ │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ │ │ ├─ i7hcr.SWCQV:18!null\n" + + " │ │ │ │ │ │ │ └─ 0 (int)\n" + + " │ │ │ │ │ │ └─ Eq\n" + + " │ │ │ │ │ │ ├─ i7hcr.TOFPN:14!null\n" + + " │ │ │ │ │ │ └─ uct.FTQLQ:1\n" + + " │ │ │ │ │ └─ Eq\n" + + " │ │ │ │ │ ├─ i7hcr.SJYN2:15!null\n" + + " │ │ │ │ │ └─ uct.ZH72S:2\n" + + " │ │ │ │ └─ Eq\n" + + " │ │ │ │ ├─ i7hcr.BTXC5:16!null\n" + + " │ │ │ │ └─ uct.LJLUM:5\n" + + " │ │ │ ├─ TableAlias(uct)\n" + + " │ │ │ │ └─ IndexedTableAccess(OUBDL)\n" + + " │ │ │ │ ├─ index: [OUBDL.id]\n" + + " │ │ │ │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + + " │ │ │ │ ├─ colSet: (7-19)\n" + + " │ │ │ │ ├─ tableId: 2\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: OUBDL\n" + + " │ │ │ │ └─ columns: [id ftqlq zh72s sfj6l v5dpx ljlum idpk7 no52d zrv3b vyo5e ykssu fhcyt qz6vt]\n" + + " │ │ │ └─ TableAlias(i7hcr)\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: EPZU6\n" + + " │ │ │ ├─ columns: [id tofpn sjyn2 btxc5 fvucx swcqv ykssu fhcyt]\n" + + " │ │ │ ├─ colSet: (20-27)\n" + + " │ │ │ └─ tableId: 3\n" + + " │ │ └─ TableAlias(nd)\n" + + " │ │ └─ Concat\n" + + " │ │ ├─ TableAlias(nd)\n" + + " │ │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ │ ├─ index: [E2I7U.TW55N]\n" + + " │ │ │ ├─ keys: [nk7fp.FVUCX:3!null]\n" + + " │ │ │ ├─ colSet: (32-48)\n" + + " │ │ │ ├─ tableId: 5\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: E2I7U\n" + + " │ │ │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + + " │ │ └─ TableAlias(nd)\n" + + " │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ ├─ index: [E2I7U.ZH72S]\n" + + " │ │ ├─ keys: [nk7fp.ZH72S:2]\n" + + " │ │ ├─ colSet: (32-48)\n" + + " │ │ ├─ tableId: 5\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: E2I7U\n" + + " │ │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + + " │ └─ HashLookup\n" + + " │ ├─ left-key: TUPLE(nd.DKCAJ:5!null)\n" + + " │ ├─ right-key: TUPLE(nt.id:0!null)\n" + + " │ └─ TableAlias(nt)\n" + + " │ └─ Table\n" + + " │ ├─ name: F35MI\n" + + " │ ├─ columns: [id dzlim f3yue]\n" + + " │ ├─ colSet: (49-51)\n" + + " │ └─ tableId: 6\n" + + " └─ BEGIN .. END\n" + + " ├─ IF BLOCK\n" + + " │ └─ IF(Or\n" + + " │ ├─ InSubquery\n" + + " │ │ ├─ left: new.NO52D:1!null\n" + + " │ │ └─ right: Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: TPXHZ\n" + + " │ │ ├─ columns: [svaz4]\n" + + " │ │ ├─ colSet: (13,14)\n" + + " │ │ └─ tableId: 3\n" + + " │ └─ InSubquery\n" + + " │ ├─ left: new.VYO5E:2\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + + " │ └─ Table\n" + + " │ ├─ name: TPXHZ\n" + + " │ ├─ columns: [svaz4]\n" + + " │ ├─ colSet: (15,16)\n" + + " │ └─ tableId: 4\n" + + " │ )\n" + + " │ └─ BLOCK\n" + + " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = String field contains invalid value, like empty string, 'none', 'null', 'n/a', 'nan' etc., MYSQL_ERRNO = 1644\n" + + " └─ IF BLOCK\n" + + " └─ IF(LessThanOrEqual\n" + + " ├─ new.ADURZ:4!null\n" + + " └─ 0 (int)\n" + + " )\n" + + " └─ BLOCK\n" + + " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = ADURZ must be positive., MYSQL_ERRNO = 1644\n" + "", }, { @@ -20781,397 +20769,396 @@ ON WHERE -- In the case we could not build-in evidence class for some PQSXB.OVE3E IS NOT NULL`, - ExpectedPlan: "TriggerRollback\n" + - " └─ RowUpdateAccumulator\n" + - " └─ Insert(id, FZ2R5, LUEVY, M22QN, OVE3E, NRURT, OCA7E, XMM6Q, V5DPX, S3Q3Y, ZRV3B, FHCYT)\n" + - " ├─ InsertDestination\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: FLQLP\n" + - " │ └─ columns: [id fz2r5 luevy m22qn ove3e nrurt oca7e xmm6q v5dpx s3q3y zrv3b fhcyt]\n" + - " └─ Trigger(CREATE TRIGGER FLQLP_on_insert BEFORE INSERT ON FLQLP\n" + - " FOR EACH ROW\n" + - " BEGIN\n" + - " IF\n" + - " NEW.V5DPX IN (SELECT SVAZ4 FROM TPXHZ)\n" + - " THEN\n" + - " -- SET @custom_error_message = (SELECT error_message FROM trigger_helper_error_message WHERE DZLIM = 'SVAZ4');\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'String field contains invalid value, like empty string, ''none'', ''null'', ''n/a'', ''nan'' etc.';\n" + - " END IF;\n" + - " IF\n" + - " NEW.ZRV3B NOT IN ('=', '<=', '>=', '<', '>')\n" + - " THEN\n" + - " -- SET @custom_error_message = 'The ZRV3B must be on of the following: ''='', ''<='', ''>='', ''<'', ''>''.';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The ZRV3B must be on of the following: ''='', ''<='', ''>='', ''<'', ''>''.';\n" + - " END IF;\n" + - " END//)\n" + - " ├─ Project\n" + - " │ ├─ columns: [id:0!null, FZ2R5:1!null, LUEVY:2!null, M22QN:3!null, OVE3E:4!null, NRURT:5, OCA7E:6, XMM6Q:7, V5DPX:8!null, S3Q3Y:9!null, ZRV3B:10!null, FHCYT:11]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, pqsxb.FZ2R5:0 as FZ2R5, nd.id:12!null as LUEVY, Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select aac.id from TPXBU as aac where aac.BTXC5 = PQSXB.BTXC5\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [aac.id:41!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ aac.BTXC5:42\n" + - " │ │ │ └─ pqsxb.BTXC5:10\n" + - " │ │ └─ TableAlias(aac)\n" + - " │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ ├─ index: [TPXBU.BTXC5]\n" + - " │ │ ├─ keys: [pqsxb.BTXC5:10]\n" + - " │ │ ├─ colSet: (123-125)\n" + - " │ │ ├─ tableId: 10\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: TPXBU\n" + - " │ │ └─ columns: [id btxc5]\n" + - " │ │ as M22QN, pqsxb.OVE3E:1 as OVE3E, pqsxb.NRURT:2!null as NRURT, pqsxb.OCA7E:3!null as OCA7E, pqsxb.XMM6Q:4 as XMM6Q, pqsxb.V5DPX:5 as V5DPX, pqsxb.S3Q3Y:6 as S3Q3Y, pqsxb.ZRV3B:7 as ZRV3B, pqsxb.FHCYT:8 as FHCYT]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [pqsxb.FZ2R5:0, pqsxb.OVE3E:1, pqsxb.NRURT:2!null, pqsxb.OCA7E:3!null, pqsxb.XMM6Q:4, pqsxb.V5DPX:5, pqsxb.S3Q3Y:6, pqsxb.ZRV3B:7, pqsxb.FHCYT:8, pqsxb.K3B6V:9, pqsxb.BTXC5:10, pqsxb.H4DMT:11!null, nd.id:12!null, nd.DKCAJ:13!null, nd.KNG7T:14, nd.TW55N:15!null, nd.QRQXW:16!null, nd.ECXAJ:17!null, nd.FGG57:18, nd.ZH72S:19, nd.FSK67:20!null, nd.XQDYT:21!null, nd.TCE7A:22, nd.IWV2H:23, nd.HPCMS:24!null, nd.N5CC2:25, nd.FHCYT:26, nd.ETAQ7:27, nd.A75X7:28, lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, pqsxb.FZ2R5:0 as FZ2R5, nd.id:12!null as LUEVY, Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select aac.id from TPXBU as aac where aac.BTXC5 = PQSXB.BTXC5\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [aac.id:29!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ aac.BTXC5:30\n" + - " │ │ │ └─ pqsxb.BTXC5:10\n" + - " │ │ └─ TableAlias(aac)\n" + - " │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ ├─ index: [TPXBU.BTXC5]\n" + - " │ │ ├─ keys: [pqsxb.BTXC5:10]\n" + - " │ │ ├─ colSet: (123-125)\n" + - " │ │ ├─ tableId: 10\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: TPXBU\n" + - " │ │ └─ columns: [id btxc5]\n" + - " │ │ as M22QN, pqsxb.OVE3E:1 as OVE3E, pqsxb.NRURT:2!null as NRURT, pqsxb.OCA7E:3!null as OCA7E, pqsxb.XMM6Q:4 as XMM6Q, pqsxb.V5DPX:5 as V5DPX, pqsxb.S3Q3Y:6 as S3Q3Y, pqsxb.ZRV3B:7 as ZRV3B, pqsxb.FHCYT:8 as FHCYT]\n" + - " │ └─ Filter\n" + - " │ ├─ NOT\n" + - " │ │ └─ pqsxb.OVE3E:1 IS NULL\n" + - " │ └─ LookupJoin\n" + - " │ ├─ Or\n" + - " │ │ ├─ AND\n" + - " │ │ │ ├─ NOT\n" + - " │ │ │ │ └─ pqsxb.H4DMT:11!null IS NULL\n" + - " │ │ │ └─ Eq\n" + - " │ │ │ ├─ nd.TW55N:15!null\n" + - " │ │ │ └─ pqsxb.H4DMT:11!null\n" + - " │ │ └─ AND\n" + - " │ │ ├─ pqsxb.H4DMT:11!null IS NULL\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ nd.ZH72S:19\n" + - " │ │ └─ pqsxb.K3B6V:9\n" + - " │ ├─ SubqueryAlias\n" + - " │ │ ├─ name: pqsxb\n" + - " │ │ ├─ outerVisibility: false\n" + - " │ │ ├─ isLateral: false\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ colSet: (91-102)\n" + - " │ │ ├─ tableId: 8\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [Subquery\n" + - " │ │ │ ├─ cacheable: false\n" + - " │ │ │ ├─ alias-string: select id from JDLNA where JDLNA.FTQLQ = uct.FTQLQ\n" + - " │ │ │ └─ Project\n" + - " │ │ │ ├─ columns: [jdlna.id:33!null]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ Eq\n" + - " │ │ │ │ ├─ jdlna.FTQLQ:34!null\n" + - " │ │ │ │ └─ uct.FTQLQ:1\n" + - " │ │ │ └─ IndexedTableAccess(JDLNA)\n" + - " │ │ │ ├─ index: [JDLNA.FTQLQ]\n" + - " │ │ │ ├─ keys: [uct.FTQLQ:1]\n" + - " │ │ │ ├─ colSet: (34-38)\n" + - " │ │ │ ├─ tableId: 4\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: JDLNA\n" + - " │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ │ as FZ2R5, Subquery\n" + - " │ │ │ ├─ cacheable: false\n" + - " │ │ │ ├─ alias-string: select id from SFEGG where SFEGG.NO52D = uct.NO52D and (SFEGG.VYO5E = uct.VYO5E or (SFEGG.VYO5E is null and (uct.VYO5E is null or uct.VYO5E = 'N/A' or uct.VYO5E = 'NA'))) and SFEGG.DKCAJ = (select case when I7HCR.FVUCX is null then (select nd.DKCAJ from E2I7U as nd where nd.ZH72S = uct.ZH72S limit 1) else (select nd.DKCAJ from E2I7U as nd where nd.TW55N = I7HCR.FVUCX) end)\n" + - " │ │ │ └─ Project\n" + - " │ │ │ ├─ columns: [sfegg.id:33!null]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ sfegg.NO52D:34!null\n" + - " │ │ │ │ │ │ └─ uct.NO52D:7\n" + - " │ │ │ │ │ └─ Or\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ sfegg.VYO5E:35\n" + - " │ │ │ │ │ │ └─ uct.VYO5E:9\n" + - " │ │ │ │ │ └─ AND\n" + - " │ │ │ │ │ ├─ sfegg.VYO5E:35 IS NULL\n" + - " │ │ │ │ │ └─ Or\n" + - " │ │ │ │ │ ├─ Or\n" + - " │ │ │ │ │ │ ├─ uct.VYO5E:9 IS NULL\n" + - " │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ ├─ uct.VYO5E:9\n" + - " │ │ │ │ │ │ └─ N/A (longtext)\n" + - " │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ ├─ uct.VYO5E:9\n" + - " │ │ │ │ │ └─ NA (longtext)\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ sfegg.DKCAJ:36!null\n" + - " │ │ │ │ └─ Subquery\n" + - " │ │ │ │ ├─ cacheable: false\n" + - " │ │ │ │ ├─ alias-string: select case when I7HCR.FVUCX is null then (select nd.DKCAJ from E2I7U as nd where nd.ZH72S = uct.ZH72S limit 1) else (select nd.DKCAJ from E2I7U as nd where nd.TW55N = I7HCR.FVUCX) end\n" + - " │ │ │ │ └─ Project\n" + - " │ │ │ │ ├─ columns: [CASE WHEN i7hcr.FVUCX:17!null IS NULL THEN Subquery\n" + - " │ │ │ │ │ ├─ cacheable: false\n" + - " │ │ │ │ │ ├─ alias-string: select nd.DKCAJ from E2I7U as nd where nd.ZH72S = uct.ZH72S limit 1\n" + - " │ │ │ │ │ └─ Limit(1)\n" + - " │ │ │ │ │ └─ Project\n" + - " │ │ │ │ │ ├─ columns: [nd.DKCAJ:40!null]\n" + - " │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ nd.ZH72S:41\n" + - " │ │ │ │ │ │ └─ uct.ZH72S:2\n" + - " │ │ │ │ │ └─ TableAlias(nd)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + - " │ │ │ │ │ ├─ keys: [uct.ZH72S:2]\n" + - " │ │ │ │ │ ├─ colSet: (46-62)\n" + - " │ │ │ │ │ ├─ tableId: 6\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: E2I7U\n" + - " │ │ │ │ │ └─ columns: [dkcaj zh72s]\n" + - " │ │ │ │ │ ELSE Subquery\n" + - " │ │ │ │ │ ├─ cacheable: false\n" + - " │ │ │ │ │ ├─ alias-string: select nd.DKCAJ from E2I7U as nd where nd.TW55N = I7HCR.FVUCX\n" + - " │ │ │ │ │ └─ Project\n" + - " │ │ │ │ │ ├─ columns: [nd.DKCAJ:40!null]\n" + - " │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ nd.TW55N:41!null\n" + - " │ │ │ │ │ │ └─ i7hcr.FVUCX:17!null\n" + - " │ │ │ │ │ └─ TableAlias(nd)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ │ │ │ ├─ index: [E2I7U.TW55N]\n" + - " │ │ │ │ │ ├─ keys: [i7hcr.FVUCX:17!null]\n" + - " │ │ │ │ │ ├─ colSet: (63-79)\n" + - " │ │ │ │ │ ├─ tableId: 7\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: E2I7U\n" + - " │ │ │ │ │ └─ columns: [dkcaj tw55n]\n" + - " │ │ │ │ │ END as CASE\n" + - " │ │ │ │ │ WHEN I7HCR.FVUCX IS NULL\n" + - " │ │ │ │ │ THEN (SELECT nd.DKCAJ FROM E2I7U nd WHERE nd.ZH72S = uct.ZH72S LIMIT 1)\n" + - " │ │ │ │ │ ELSE\n" + - " │ │ │ │ │ (SELECT nd.DKCAJ FROM E2I7U nd WHERE nd.TW55N = I7HCR.FVUCX)\n" + - " │ │ │ │ │ END]\n" + - " │ │ │ │ └─ Project\n" + - " │ │ │ │ ├─ columns: [dual.:39!null]\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: \n" + - " │ │ │ │ ├─ columns: []\n" + - " │ │ │ │ ├─ colSet: ()\n" + - " │ │ │ │ └─ tableId: 0\n" + - " │ │ │ └─ IndexedTableAccess(SFEGG)\n" + - " │ │ │ ├─ index: [SFEGG.NO52D,SFEGG.VYO5E,SFEGG.DKCAJ]\n" + - " │ │ │ ├─ keys: [uct.NO52D:7]\n" + - " │ │ │ ├─ colSet: (40-45)\n" + - " │ │ │ ├─ tableId: 5\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: SFEGG\n" + - " │ │ │ └─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + - " │ │ │ as OVE3E, uct.id:0!null as NRURT, i7hcr.id:13!null as OCA7E, NULL (null) as XMM6Q, uct.V5DPX:4 as V5DPX, (uct.IDPK7:6 + 0 (decimal(2,1))) as S3Q3Y, uct.ZRV3B:8 as ZRV3B, CASE WHEN NOT\n" + - " │ │ │ └─ Eq\n" + - " │ │ │ ├─ uct.FHCYT:11\n" + - " │ │ │ └─ N/A (longtext)\n" + - " │ │ │ THEN uct.FHCYT:11 ELSE NULL (null) END as FHCYT, uct.ZH72S:2 as K3B6V, uct.LJLUM:5 as BTXC5, i7hcr.FVUCX:17!null as H4DMT]\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [uct.id:0!null, uct.FTQLQ:1, uct.ZH72S:2, uct.SFJ6L:3, uct.V5DPX:4, uct.LJLUM:5, uct.IDPK7:6, uct.NO52D:7, uct.ZRV3B:8, uct.VYO5E:9, uct.YKSSU:10, uct.FHCYT:11, uct.QZ6VT:12, i7hcr.id:13!null, i7hcr.TOFPN:14!null, i7hcr.SJYN2:15!null, i7hcr.BTXC5:16!null, i7hcr.FVUCX:17!null, i7hcr.SWCQV:18!null, i7hcr.YKSSU:19, i7hcr.FHCYT:20, Subquery\n" + - " │ │ │ ├─ cacheable: false\n" + - " │ │ │ ├─ alias-string: select id from JDLNA where JDLNA.FTQLQ = uct.FTQLQ\n" + - " │ │ │ └─ Project\n" + - " │ │ │ ├─ columns: [jdlna.id:21!null]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ Eq\n" + - " │ │ │ │ ├─ jdlna.FTQLQ:22!null\n" + - " │ │ │ │ └─ uct.FTQLQ:1\n" + - " │ │ │ └─ IndexedTableAccess(JDLNA)\n" + - " │ │ │ ├─ index: [JDLNA.FTQLQ]\n" + - " │ │ │ ├─ keys: [uct.FTQLQ:1]\n" + - " │ │ │ ├─ colSet: (34-38)\n" + - " │ │ │ ├─ tableId: 4\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: JDLNA\n" + - " │ │ │ └─ columns: [id ftqlq]\n" + - " │ │ │ as FZ2R5, Subquery\n" + - " │ │ │ ├─ cacheable: false\n" + - " │ │ │ ├─ alias-string: select id from SFEGG where SFEGG.NO52D = uct.NO52D and (SFEGG.VYO5E = uct.VYO5E or (SFEGG.VYO5E is null and (uct.VYO5E is null or uct.VYO5E = 'N/A' or uct.VYO5E = 'NA'))) and SFEGG.DKCAJ = (select case when I7HCR.FVUCX is null then (select nd.DKCAJ from E2I7U as nd where nd.ZH72S = uct.ZH72S limit 1) else (select nd.DKCAJ from E2I7U as nd where nd.TW55N = I7HCR.FVUCX) end)\n" + - " │ │ │ └─ Project\n" + - " │ │ │ ├─ columns: [sfegg.id:21!null]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ sfegg.NO52D:22!null\n" + - " │ │ │ │ │ │ └─ uct.NO52D:7\n" + - " │ │ │ │ │ └─ Or\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ sfegg.VYO5E:23\n" + - " │ │ │ │ │ │ └─ uct.VYO5E:9\n" + - " │ │ │ │ │ └─ AND\n" + - " │ │ │ │ │ ├─ sfegg.VYO5E:23 IS NULL\n" + - " │ │ │ │ │ └─ Or\n" + - " │ │ │ │ │ ├─ Or\n" + - " │ │ │ │ │ │ ├─ uct.VYO5E:9 IS NULL\n" + - " │ │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ │ ├─ uct.VYO5E:9\n" + - " │ │ │ │ │ │ └─ N/A (longtext)\n" + - " │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ ├─ uct.VYO5E:9\n" + - " │ │ │ │ │ └─ NA (longtext)\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ sfegg.DKCAJ:24!null\n" + - " │ │ │ │ └─ Subquery\n" + - " │ │ │ │ ├─ cacheable: false\n" + - " │ │ │ │ ├─ alias-string: select case when I7HCR.FVUCX is null then (select nd.DKCAJ from E2I7U as nd where nd.ZH72S = uct.ZH72S limit 1) else (select nd.DKCAJ from E2I7U as nd where nd.TW55N = I7HCR.FVUCX) end\n" + - " │ │ │ │ └─ Project\n" + - " │ │ │ │ ├─ columns: [CASE WHEN i7hcr.FVUCX:17!null IS NULL THEN Subquery\n" + - " │ │ │ │ │ ├─ cacheable: false\n" + - " │ │ │ │ │ ├─ alias-string: select nd.DKCAJ from E2I7U as nd where nd.ZH72S = uct.ZH72S limit 1\n" + - " │ │ │ │ │ └─ Limit(1)\n" + - " │ │ │ │ │ └─ Project\n" + - " │ │ │ │ │ ├─ columns: [nd.DKCAJ:28!null]\n" + - " │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ nd.ZH72S:29\n" + - " │ │ │ │ │ │ └─ uct.ZH72S:2\n" + - " │ │ │ │ │ └─ TableAlias(nd)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + - " │ │ │ │ │ ├─ keys: [uct.ZH72S:2]\n" + - " │ │ │ │ │ ├─ colSet: (46-62)\n" + - " │ │ │ │ │ ├─ tableId: 6\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: E2I7U\n" + - " │ │ │ │ │ └─ columns: [dkcaj zh72s]\n" + - " │ │ │ │ │ ELSE Subquery\n" + - " │ │ │ │ │ ├─ cacheable: false\n" + - " │ │ │ │ │ ├─ alias-string: select nd.DKCAJ from E2I7U as nd where nd.TW55N = I7HCR.FVUCX\n" + - " │ │ │ │ │ └─ Project\n" + - " │ │ │ │ │ ├─ columns: [nd.DKCAJ:28!null]\n" + - " │ │ │ │ │ └─ Filter\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ nd.TW55N:29!null\n" + - " │ │ │ │ │ │ └─ i7hcr.FVUCX:17!null\n" + - " │ │ │ │ │ └─ TableAlias(nd)\n" + - " │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ │ │ │ ├─ index: [E2I7U.TW55N]\n" + - " │ │ │ │ │ ├─ keys: [i7hcr.FVUCX:17!null]\n" + - " │ │ │ │ │ ├─ colSet: (63-79)\n" + - " │ │ │ │ │ ├─ tableId: 7\n" + - " │ │ │ │ │ └─ Table\n" + - " │ │ │ │ │ ├─ name: E2I7U\n" + - " │ │ │ │ │ └─ columns: [dkcaj tw55n]\n" + - " │ │ │ │ │ END as CASE\n" + - " │ │ │ │ │ WHEN I7HCR.FVUCX IS NULL\n" + - " │ │ │ │ │ THEN (SELECT nd.DKCAJ FROM E2I7U nd WHERE nd.ZH72S = uct.ZH72S LIMIT 1)\n" + - " │ │ │ │ │ ELSE\n" + - " │ │ │ │ │ (SELECT nd.DKCAJ FROM E2I7U nd WHERE nd.TW55N = I7HCR.FVUCX)\n" + - " │ │ │ │ │ END]\n" + - " │ │ │ │ └─ Project\n" + - " │ │ │ │ ├─ columns: [dual.:27!null]\n" + - " │ │ │ │ └─ Table\n" + - " │ │ │ │ ├─ name: \n" + - " │ │ │ │ ├─ columns: []\n" + - " │ │ │ │ ├─ colSet: ()\n" + - " │ │ │ │ └─ tableId: 0\n" + - " │ │ │ └─ IndexedTableAccess(SFEGG)\n" + - " │ │ │ ├─ index: [SFEGG.NO52D,SFEGG.VYO5E,SFEGG.DKCAJ]\n" + - " │ │ │ ├─ keys: [uct.NO52D:7]\n" + - " │ │ │ ├─ colSet: (40-45)\n" + - " │ │ │ ├─ tableId: 5\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: SFEGG\n" + - " │ │ │ └─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + - " │ │ │ as OVE3E, uct.id:0!null as NRURT, i7hcr.id:13!null as OCA7E, NULL (null) as XMM6Q, uct.V5DPX:4 as V5DPX, (uct.IDPK7:6 + 0 (decimal(2,1))) as S3Q3Y, uct.ZRV3B:8 as ZRV3B, CASE WHEN NOT\n" + - " │ │ │ └─ Eq\n" + - " │ │ │ ├─ uct.FHCYT:11\n" + - " │ │ │ └─ N/A (longtext)\n" + - " │ │ │ THEN uct.FHCYT:11 ELSE NULL (null) END as FHCYT, uct.ZH72S:2 as K3B6V, uct.LJLUM:5 as BTXC5, i7hcr.FVUCX:17!null as H4DMT]\n" + - " │ │ └─ LeftOuterJoin\n" + - " │ │ ├─ AND\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ AND\n" + - " │ │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ │ ├─ i7hcr.SWCQV:18!null\n" + - " │ │ │ │ │ │ └─ 0 (int)\n" + - " │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ ├─ i7hcr.TOFPN:14!null\n" + - " │ │ │ │ │ └─ uct.FTQLQ:1\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ i7hcr.SJYN2:15!null\n" + - " │ │ │ │ └─ uct.ZH72S:2\n" + - " │ │ │ └─ Eq\n" + - " │ │ │ ├─ i7hcr.BTXC5:16!null\n" + - " │ │ │ └─ uct.LJLUM:5\n" + - " │ │ ├─ TableAlias(uct)\n" + - " │ │ │ └─ IndexedTableAccess(OUBDL)\n" + - " │ │ │ ├─ index: [OUBDL.id]\n" + - " │ │ │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + - " │ │ │ ├─ colSet: (13-25)\n" + - " │ │ │ ├─ tableId: 2\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: OUBDL\n" + - " │ │ │ └─ columns: [id ftqlq zh72s sfj6l v5dpx ljlum idpk7 no52d zrv3b vyo5e ykssu fhcyt qz6vt]\n" + - " │ │ └─ TableAlias(i7hcr)\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: EPZU6\n" + - " │ │ ├─ columns: [id tofpn sjyn2 btxc5 fvucx swcqv ykssu fhcyt]\n" + - " │ │ ├─ colSet: (26-33)\n" + - " │ │ └─ tableId: 3\n" + - " │ └─ TableAlias(nd)\n" + - " │ └─ Concat\n" + - " │ ├─ TableAlias(nd)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.ZH72S]\n" + - " │ │ ├─ keys: [pqsxb.K3B6V:9]\n" + - " │ │ ├─ colSet: (103-119)\n" + - " │ │ ├─ tableId: 9\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: E2I7U\n" + - " │ │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + - " │ └─ TableAlias(nd)\n" + - " │ └─ IndexedTableAccess(E2I7U)\n" + - " │ ├─ index: [E2I7U.TW55N]\n" + - " │ ├─ keys: [pqsxb.H4DMT:11!null]\n" + - " │ ├─ colSet: (103-119)\n" + - " │ ├─ tableId: 9\n" + - " │ └─ Table\n" + - " │ ├─ name: E2I7U\n" + - " │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + - " └─ BEGIN .. END\n" + - " ├─ IF BLOCK\n" + - " │ └─ IF(InSubquery\n" + - " │ ├─ left: new.V5DPX:8!null\n" + - " │ └─ right: Subquery\n" + - " │ ├─ cacheable: false\n" + - " │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + - " │ └─ Table\n" + - " │ ├─ name: TPXHZ\n" + - " │ ├─ columns: [svaz4]\n" + - " │ ├─ colSet: (25,26)\n" + - " │ └─ tableId: 3\n" + - " │ )\n" + - " │ └─ BLOCK\n" + - " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = String field contains invalid value, like empty string, 'none', 'null', 'n/a', 'nan' etc., MYSQL_ERRNO = 1644\n" + - " └─ IF BLOCK\n" + - " └─ IF(NOT\n" + - " └─ IN\n" + - " ├─ left: new.ZRV3B:10!null\n" + - " └─ right: TUPLE(= (longtext), <= (longtext), >= (longtext), < (longtext), > (longtext))\n" + - " )\n" + - " └─ BLOCK\n" + - " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The ZRV3B must be on of the following: '=', '<=', '>=', '<', '>'., MYSQL_ERRNO = 1644\n" + + ExpectedPlan: "RowUpdateAccumulator\n" + + " └─ Insert(id, FZ2R5, LUEVY, M22QN, OVE3E, NRURT, OCA7E, XMM6Q, V5DPX, S3Q3Y, ZRV3B, FHCYT)\n" + + " ├─ InsertDestination\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: FLQLP\n" + + " │ └─ columns: [id fz2r5 luevy m22qn ove3e nrurt oca7e xmm6q v5dpx s3q3y zrv3b fhcyt]\n" + + " └─ Trigger(CREATE TRIGGER FLQLP_on_insert BEFORE INSERT ON FLQLP\n" + + " FOR EACH ROW\n" + + " BEGIN\n" + + " IF\n" + + " NEW.V5DPX IN (SELECT SVAZ4 FROM TPXHZ)\n" + + " THEN\n" + + " -- SET @custom_error_message = (SELECT error_message FROM trigger_helper_error_message WHERE DZLIM = 'SVAZ4');\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'String field contains invalid value, like empty string, ''none'', ''null'', ''n/a'', ''nan'' etc.';\n" + + " END IF;\n" + + " IF\n" + + " NEW.ZRV3B NOT IN ('=', '<=', '>=', '<', '>')\n" + + " THEN\n" + + " -- SET @custom_error_message = 'The ZRV3B must be on of the following: ''='', ''<='', ''>='', ''<'', ''>''.';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The ZRV3B must be on of the following: ''='', ''<='', ''>='', ''<'', ''>''.';\n" + + " END IF;\n" + + " END//)\n" + + " ├─ Project\n" + + " │ ├─ columns: [id:0!null, FZ2R5:1!null, LUEVY:2!null, M22QN:3!null, OVE3E:4!null, NRURT:5, OCA7E:6, XMM6Q:7, V5DPX:8!null, S3Q3Y:9!null, ZRV3B:10!null, FHCYT:11]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, pqsxb.FZ2R5:0 as FZ2R5, nd.id:12!null as LUEVY, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select aac.id from TPXBU as aac where aac.BTXC5 = PQSXB.BTXC5\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.id:41!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ aac.BTXC5:42\n" + + " │ │ │ └─ pqsxb.BTXC5:10\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.BTXC5]\n" + + " │ │ ├─ keys: [pqsxb.BTXC5:10]\n" + + " │ │ ├─ colSet: (123-125)\n" + + " │ │ ├─ tableId: 10\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: TPXBU\n" + + " │ │ └─ columns: [id btxc5]\n" + + " │ │ as M22QN, pqsxb.OVE3E:1 as OVE3E, pqsxb.NRURT:2!null as NRURT, pqsxb.OCA7E:3!null as OCA7E, pqsxb.XMM6Q:4 as XMM6Q, pqsxb.V5DPX:5 as V5DPX, pqsxb.S3Q3Y:6 as S3Q3Y, pqsxb.ZRV3B:7 as ZRV3B, pqsxb.FHCYT:8 as FHCYT]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [pqsxb.FZ2R5:0, pqsxb.OVE3E:1, pqsxb.NRURT:2!null, pqsxb.OCA7E:3!null, pqsxb.XMM6Q:4, pqsxb.V5DPX:5, pqsxb.S3Q3Y:6, pqsxb.ZRV3B:7, pqsxb.FHCYT:8, pqsxb.K3B6V:9, pqsxb.BTXC5:10, pqsxb.H4DMT:11!null, nd.id:12!null, nd.DKCAJ:13!null, nd.KNG7T:14, nd.TW55N:15!null, nd.QRQXW:16!null, nd.ECXAJ:17!null, nd.FGG57:18, nd.ZH72S:19, nd.FSK67:20!null, nd.XQDYT:21!null, nd.TCE7A:22, nd.IWV2H:23, nd.HPCMS:24!null, nd.N5CC2:25, nd.FHCYT:26, nd.ETAQ7:27, nd.A75X7:28, lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, pqsxb.FZ2R5:0 as FZ2R5, nd.id:12!null as LUEVY, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select aac.id from TPXBU as aac where aac.BTXC5 = PQSXB.BTXC5\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [aac.id:29!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ aac.BTXC5:30\n" + + " │ │ │ └─ pqsxb.BTXC5:10\n" + + " │ │ └─ TableAlias(aac)\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.BTXC5]\n" + + " │ │ ├─ keys: [pqsxb.BTXC5:10]\n" + + " │ │ ├─ colSet: (123-125)\n" + + " │ │ ├─ tableId: 10\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: TPXBU\n" + + " │ │ └─ columns: [id btxc5]\n" + + " │ │ as M22QN, pqsxb.OVE3E:1 as OVE3E, pqsxb.NRURT:2!null as NRURT, pqsxb.OCA7E:3!null as OCA7E, pqsxb.XMM6Q:4 as XMM6Q, pqsxb.V5DPX:5 as V5DPX, pqsxb.S3Q3Y:6 as S3Q3Y, pqsxb.ZRV3B:7 as ZRV3B, pqsxb.FHCYT:8 as FHCYT]\n" + + " │ └─ Filter\n" + + " │ ├─ NOT\n" + + " │ │ └─ pqsxb.OVE3E:1 IS NULL\n" + + " │ └─ LookupJoin\n" + + " │ ├─ Or\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ NOT\n" + + " │ │ │ │ └─ pqsxb.H4DMT:11!null IS NULL\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ nd.TW55N:15!null\n" + + " │ │ │ └─ pqsxb.H4DMT:11!null\n" + + " │ │ └─ AND\n" + + " │ │ ├─ pqsxb.H4DMT:11!null IS NULL\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ nd.ZH72S:19\n" + + " │ │ └─ pqsxb.K3B6V:9\n" + + " │ ├─ SubqueryAlias\n" + + " │ │ ├─ name: pqsxb\n" + + " │ │ ├─ outerVisibility: false\n" + + " │ │ ├─ isLateral: false\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ colSet: (91-102)\n" + + " │ │ ├─ tableId: 8\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ ├─ alias-string: select id from JDLNA where JDLNA.FTQLQ = uct.FTQLQ\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [jdlna.id:33!null]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ jdlna.FTQLQ:34!null\n" + + " │ │ │ │ └─ uct.FTQLQ:1\n" + + " │ │ │ └─ IndexedTableAccess(JDLNA)\n" + + " │ │ │ ├─ index: [JDLNA.FTQLQ]\n" + + " │ │ │ ├─ keys: [uct.FTQLQ:1]\n" + + " │ │ │ ├─ colSet: (34-38)\n" + + " │ │ │ ├─ tableId: 4\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: JDLNA\n" + + " │ │ │ └─ columns: [id ftqlq]\n" + + " │ │ │ as FZ2R5, Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ ├─ alias-string: select id from SFEGG where SFEGG.NO52D = uct.NO52D and (SFEGG.VYO5E = uct.VYO5E or (SFEGG.VYO5E is null and (uct.VYO5E is null or uct.VYO5E = 'N/A' or uct.VYO5E = 'NA'))) and SFEGG.DKCAJ = (select case when I7HCR.FVUCX is null then (select nd.DKCAJ from E2I7U as nd where nd.ZH72S = uct.ZH72S limit 1) else (select nd.DKCAJ from E2I7U as nd where nd.TW55N = I7HCR.FVUCX) end)\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [sfegg.id:33!null]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ AND\n" + + " │ │ │ │ ├─ AND\n" + + " │ │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ │ ├─ sfegg.NO52D:34!null\n" + + " │ │ │ │ │ │ └─ uct.NO52D:7\n" + + " │ │ │ │ │ └─ Or\n" + + " │ │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ │ ├─ sfegg.VYO5E:35\n" + + " │ │ │ │ │ │ └─ uct.VYO5E:9\n" + + " │ │ │ │ │ └─ AND\n" + + " │ │ │ │ │ ├─ sfegg.VYO5E:35 IS NULL\n" + + " │ │ │ │ │ └─ Or\n" + + " │ │ │ │ │ ├─ Or\n" + + " │ │ │ │ │ │ ├─ uct.VYO5E:9 IS NULL\n" + + " │ │ │ │ │ │ └─ Eq\n" + + " │ │ │ │ │ │ ├─ uct.VYO5E:9\n" + + " │ │ │ │ │ │ └─ N/A (longtext)\n" + + " │ │ │ │ │ └─ Eq\n" + + " │ │ │ │ │ ├─ uct.VYO5E:9\n" + + " │ │ │ │ │ └─ NA (longtext)\n" + + " │ │ │ │ └─ Eq\n" + + " │ │ │ │ ├─ sfegg.DKCAJ:36!null\n" + + " │ │ │ │ └─ Subquery\n" + + " │ │ │ │ ├─ cacheable: false\n" + + " │ │ │ │ ├─ alias-string: select case when I7HCR.FVUCX is null then (select nd.DKCAJ from E2I7U as nd where nd.ZH72S = uct.ZH72S limit 1) else (select nd.DKCAJ from E2I7U as nd where nd.TW55N = I7HCR.FVUCX) end\n" + + " │ │ │ │ └─ Project\n" + + " │ │ │ │ ├─ columns: [CASE WHEN i7hcr.FVUCX:17!null IS NULL THEN Subquery\n" + + " │ │ │ │ │ ├─ cacheable: false\n" + + " │ │ │ │ │ ├─ alias-string: select nd.DKCAJ from E2I7U as nd where nd.ZH72S = uct.ZH72S limit 1\n" + + " │ │ │ │ │ └─ Limit(1)\n" + + " │ │ │ │ │ └─ Project\n" + + " │ │ │ │ │ ├─ columns: [nd.DKCAJ:40!null]\n" + + " │ │ │ │ │ └─ Filter\n" + + " │ │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ │ ├─ nd.ZH72S:41\n" + + " │ │ │ │ │ │ └─ uct.ZH72S:2\n" + + " │ │ │ │ │ └─ TableAlias(nd)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + + " │ │ │ │ │ ├─ keys: [uct.ZH72S:2]\n" + + " │ │ │ │ │ ├─ colSet: (46-62)\n" + + " │ │ │ │ │ ├─ tableId: 6\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: E2I7U\n" + + " │ │ │ │ │ └─ columns: [dkcaj zh72s]\n" + + " │ │ │ │ │ ELSE Subquery\n" + + " │ │ │ │ │ ├─ cacheable: false\n" + + " │ │ │ │ │ ├─ alias-string: select nd.DKCAJ from E2I7U as nd where nd.TW55N = I7HCR.FVUCX\n" + + " │ │ │ │ │ └─ Project\n" + + " │ │ │ │ │ ├─ columns: [nd.DKCAJ:40!null]\n" + + " │ │ │ │ │ └─ Filter\n" + + " │ │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ │ ├─ nd.TW55N:41!null\n" + + " │ │ │ │ │ │ └─ i7hcr.FVUCX:17!null\n" + + " │ │ │ │ │ └─ TableAlias(nd)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ │ │ │ ├─ index: [E2I7U.TW55N]\n" + + " │ │ │ │ │ ├─ keys: [i7hcr.FVUCX:17!null]\n" + + " │ │ │ │ │ ├─ colSet: (63-79)\n" + + " │ │ │ │ │ ├─ tableId: 7\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: E2I7U\n" + + " │ │ │ │ │ └─ columns: [dkcaj tw55n]\n" + + " │ │ │ │ │ END as CASE\n" + + " │ │ │ │ │ WHEN I7HCR.FVUCX IS NULL\n" + + " │ │ │ │ │ THEN (SELECT nd.DKCAJ FROM E2I7U nd WHERE nd.ZH72S = uct.ZH72S LIMIT 1)\n" + + " │ │ │ │ │ ELSE\n" + + " │ │ │ │ │ (SELECT nd.DKCAJ FROM E2I7U nd WHERE nd.TW55N = I7HCR.FVUCX)\n" + + " │ │ │ │ │ END]\n" + + " │ │ │ │ └─ Project\n" + + " │ │ │ │ ├─ columns: [dual.:39!null]\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: \n" + + " │ │ │ │ ├─ columns: []\n" + + " │ │ │ │ ├─ colSet: ()\n" + + " │ │ │ │ └─ tableId: 0\n" + + " │ │ │ └─ IndexedTableAccess(SFEGG)\n" + + " │ │ │ ├─ index: [SFEGG.NO52D,SFEGG.VYO5E,SFEGG.DKCAJ]\n" + + " │ │ │ ├─ keys: [uct.NO52D:7]\n" + + " │ │ │ ├─ colSet: (40-45)\n" + + " │ │ │ ├─ tableId: 5\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: SFEGG\n" + + " │ │ │ └─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + + " │ │ │ as OVE3E, uct.id:0!null as NRURT, i7hcr.id:13!null as OCA7E, NULL (null) as XMM6Q, uct.V5DPX:4 as V5DPX, (uct.IDPK7:6 + 0 (decimal(2,1))) as S3Q3Y, uct.ZRV3B:8 as ZRV3B, CASE WHEN NOT\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ uct.FHCYT:11\n" + + " │ │ │ └─ N/A (longtext)\n" + + " │ │ │ THEN uct.FHCYT:11 ELSE NULL (null) END as FHCYT, uct.ZH72S:2 as K3B6V, uct.LJLUM:5 as BTXC5, i7hcr.FVUCX:17!null as H4DMT]\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [uct.id:0!null, uct.FTQLQ:1, uct.ZH72S:2, uct.SFJ6L:3, uct.V5DPX:4, uct.LJLUM:5, uct.IDPK7:6, uct.NO52D:7, uct.ZRV3B:8, uct.VYO5E:9, uct.YKSSU:10, uct.FHCYT:11, uct.QZ6VT:12, i7hcr.id:13!null, i7hcr.TOFPN:14!null, i7hcr.SJYN2:15!null, i7hcr.BTXC5:16!null, i7hcr.FVUCX:17!null, i7hcr.SWCQV:18!null, i7hcr.YKSSU:19, i7hcr.FHCYT:20, Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ ├─ alias-string: select id from JDLNA where JDLNA.FTQLQ = uct.FTQLQ\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [jdlna.id:21!null]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ jdlna.FTQLQ:22!null\n" + + " │ │ │ │ └─ uct.FTQLQ:1\n" + + " │ │ │ └─ IndexedTableAccess(JDLNA)\n" + + " │ │ │ ├─ index: [JDLNA.FTQLQ]\n" + + " │ │ │ ├─ keys: [uct.FTQLQ:1]\n" + + " │ │ │ ├─ colSet: (34-38)\n" + + " │ │ │ ├─ tableId: 4\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: JDLNA\n" + + " │ │ │ └─ columns: [id ftqlq]\n" + + " │ │ │ as FZ2R5, Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ ├─ alias-string: select id from SFEGG where SFEGG.NO52D = uct.NO52D and (SFEGG.VYO5E = uct.VYO5E or (SFEGG.VYO5E is null and (uct.VYO5E is null or uct.VYO5E = 'N/A' or uct.VYO5E = 'NA'))) and SFEGG.DKCAJ = (select case when I7HCR.FVUCX is null then (select nd.DKCAJ from E2I7U as nd where nd.ZH72S = uct.ZH72S limit 1) else (select nd.DKCAJ from E2I7U as nd where nd.TW55N = I7HCR.FVUCX) end)\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [sfegg.id:21!null]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ AND\n" + + " │ │ │ │ ├─ AND\n" + + " │ │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ │ ├─ sfegg.NO52D:22!null\n" + + " │ │ │ │ │ │ └─ uct.NO52D:7\n" + + " │ │ │ │ │ └─ Or\n" + + " │ │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ │ ├─ sfegg.VYO5E:23\n" + + " │ │ │ │ │ │ └─ uct.VYO5E:9\n" + + " │ │ │ │ │ └─ AND\n" + + " │ │ │ │ │ ├─ sfegg.VYO5E:23 IS NULL\n" + + " │ │ │ │ │ └─ Or\n" + + " │ │ │ │ │ ├─ Or\n" + + " │ │ │ │ │ │ ├─ uct.VYO5E:9 IS NULL\n" + + " │ │ │ │ │ │ └─ Eq\n" + + " │ │ │ │ │ │ ├─ uct.VYO5E:9\n" + + " │ │ │ │ │ │ └─ N/A (longtext)\n" + + " │ │ │ │ │ └─ Eq\n" + + " │ │ │ │ │ ├─ uct.VYO5E:9\n" + + " │ │ │ │ │ └─ NA (longtext)\n" + + " │ │ │ │ └─ Eq\n" + + " │ │ │ │ ├─ sfegg.DKCAJ:24!null\n" + + " │ │ │ │ └─ Subquery\n" + + " │ │ │ │ ├─ cacheable: false\n" + + " │ │ │ │ ├─ alias-string: select case when I7HCR.FVUCX is null then (select nd.DKCAJ from E2I7U as nd where nd.ZH72S = uct.ZH72S limit 1) else (select nd.DKCAJ from E2I7U as nd where nd.TW55N = I7HCR.FVUCX) end\n" + + " │ │ │ │ └─ Project\n" + + " │ │ │ │ ├─ columns: [CASE WHEN i7hcr.FVUCX:17!null IS NULL THEN Subquery\n" + + " │ │ │ │ │ ├─ cacheable: false\n" + + " │ │ │ │ │ ├─ alias-string: select nd.DKCAJ from E2I7U as nd where nd.ZH72S = uct.ZH72S limit 1\n" + + " │ │ │ │ │ └─ Limit(1)\n" + + " │ │ │ │ │ └─ Project\n" + + " │ │ │ │ │ ├─ columns: [nd.DKCAJ:28!null]\n" + + " │ │ │ │ │ └─ Filter\n" + + " │ │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ │ ├─ nd.ZH72S:29\n" + + " │ │ │ │ │ │ └─ uct.ZH72S:2\n" + + " │ │ │ │ │ └─ TableAlias(nd)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ │ │ │ ├─ index: [E2I7U.ZH72S]\n" + + " │ │ │ │ │ ├─ keys: [uct.ZH72S:2]\n" + + " │ │ │ │ │ ├─ colSet: (46-62)\n" + + " │ │ │ │ │ ├─ tableId: 6\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: E2I7U\n" + + " │ │ │ │ │ └─ columns: [dkcaj zh72s]\n" + + " │ │ │ │ │ ELSE Subquery\n" + + " │ │ │ │ │ ├─ cacheable: false\n" + + " │ │ │ │ │ ├─ alias-string: select nd.DKCAJ from E2I7U as nd where nd.TW55N = I7HCR.FVUCX\n" + + " │ │ │ │ │ └─ Project\n" + + " │ │ │ │ │ ├─ columns: [nd.DKCAJ:28!null]\n" + + " │ │ │ │ │ └─ Filter\n" + + " │ │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ │ ├─ nd.TW55N:29!null\n" + + " │ │ │ │ │ │ └─ i7hcr.FVUCX:17!null\n" + + " │ │ │ │ │ └─ TableAlias(nd)\n" + + " │ │ │ │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ │ │ │ ├─ index: [E2I7U.TW55N]\n" + + " │ │ │ │ │ ├─ keys: [i7hcr.FVUCX:17!null]\n" + + " │ │ │ │ │ ├─ colSet: (63-79)\n" + + " │ │ │ │ │ ├─ tableId: 7\n" + + " │ │ │ │ │ └─ Table\n" + + " │ │ │ │ │ ├─ name: E2I7U\n" + + " │ │ │ │ │ └─ columns: [dkcaj tw55n]\n" + + " │ │ │ │ │ END as CASE\n" + + " │ │ │ │ │ WHEN I7HCR.FVUCX IS NULL\n" + + " │ │ │ │ │ THEN (SELECT nd.DKCAJ FROM E2I7U nd WHERE nd.ZH72S = uct.ZH72S LIMIT 1)\n" + + " │ │ │ │ │ ELSE\n" + + " │ │ │ │ │ (SELECT nd.DKCAJ FROM E2I7U nd WHERE nd.TW55N = I7HCR.FVUCX)\n" + + " │ │ │ │ │ END]\n" + + " │ │ │ │ └─ Project\n" + + " │ │ │ │ ├─ columns: [dual.:27!null]\n" + + " │ │ │ │ └─ Table\n" + + " │ │ │ │ ├─ name: \n" + + " │ │ │ │ ├─ columns: []\n" + + " │ │ │ │ ├─ colSet: ()\n" + + " │ │ │ │ └─ tableId: 0\n" + + " │ │ │ └─ IndexedTableAccess(SFEGG)\n" + + " │ │ │ ├─ index: [SFEGG.NO52D,SFEGG.VYO5E,SFEGG.DKCAJ]\n" + + " │ │ │ ├─ keys: [uct.NO52D:7]\n" + + " │ │ │ ├─ colSet: (40-45)\n" + + " │ │ │ ├─ tableId: 5\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: SFEGG\n" + + " │ │ │ └─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + + " │ │ │ as OVE3E, uct.id:0!null as NRURT, i7hcr.id:13!null as OCA7E, NULL (null) as XMM6Q, uct.V5DPX:4 as V5DPX, (uct.IDPK7:6 + 0 (decimal(2,1))) as S3Q3Y, uct.ZRV3B:8 as ZRV3B, CASE WHEN NOT\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ uct.FHCYT:11\n" + + " │ │ │ └─ N/A (longtext)\n" + + " │ │ │ THEN uct.FHCYT:11 ELSE NULL (null) END as FHCYT, uct.ZH72S:2 as K3B6V, uct.LJLUM:5 as BTXC5, i7hcr.FVUCX:17!null as H4DMT]\n" + + " │ │ └─ LeftOuterJoin\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ AND\n" + + " │ │ │ │ ├─ AND\n" + + " │ │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ │ ├─ i7hcr.SWCQV:18!null\n" + + " │ │ │ │ │ │ └─ 0 (int)\n" + + " │ │ │ │ │ └─ Eq\n" + + " │ │ │ │ │ ├─ i7hcr.TOFPN:14!null\n" + + " │ │ │ │ │ └─ uct.FTQLQ:1\n" + + " │ │ │ │ └─ Eq\n" + + " │ │ │ │ ├─ i7hcr.SJYN2:15!null\n" + + " │ │ │ │ └─ uct.ZH72S:2\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ i7hcr.BTXC5:16!null\n" + + " │ │ │ └─ uct.LJLUM:5\n" + + " │ │ ├─ TableAlias(uct)\n" + + " │ │ │ └─ IndexedTableAccess(OUBDL)\n" + + " │ │ │ ├─ index: [OUBDL.id]\n" + + " │ │ │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + + " │ │ │ ├─ colSet: (13-25)\n" + + " │ │ │ ├─ tableId: 2\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: OUBDL\n" + + " │ │ │ └─ columns: [id ftqlq zh72s sfj6l v5dpx ljlum idpk7 no52d zrv3b vyo5e ykssu fhcyt qz6vt]\n" + + " │ │ └─ TableAlias(i7hcr)\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: EPZU6\n" + + " │ │ ├─ columns: [id tofpn sjyn2 btxc5 fvucx swcqv ykssu fhcyt]\n" + + " │ │ ├─ colSet: (26-33)\n" + + " │ │ └─ tableId: 3\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ Concat\n" + + " │ ├─ TableAlias(nd)\n" + + " │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ ├─ index: [E2I7U.ZH72S]\n" + + " │ │ ├─ keys: [pqsxb.K3B6V:9]\n" + + " │ │ ├─ colSet: (103-119)\n" + + " │ │ ├─ tableId: 9\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: E2I7U\n" + + " │ │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + + " │ └─ TableAlias(nd)\n" + + " │ └─ IndexedTableAccess(E2I7U)\n" + + " │ ├─ index: [E2I7U.TW55N]\n" + + " │ ├─ keys: [pqsxb.H4DMT:11!null]\n" + + " │ ├─ colSet: (103-119)\n" + + " │ ├─ tableId: 9\n" + + " │ └─ Table\n" + + " │ ├─ name: E2I7U\n" + + " │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + + " └─ BEGIN .. END\n" + + " ├─ IF BLOCK\n" + + " │ └─ IF(InSubquery\n" + + " │ ├─ left: new.V5DPX:8!null\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + + " │ └─ Table\n" + + " │ ├─ name: TPXHZ\n" + + " │ ├─ columns: [svaz4]\n" + + " │ ├─ colSet: (25,26)\n" + + " │ └─ tableId: 3\n" + + " │ )\n" + + " │ └─ BLOCK\n" + + " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = String field contains invalid value, like empty string, 'none', 'null', 'n/a', 'nan' etc., MYSQL_ERRNO = 1644\n" + + " └─ IF BLOCK\n" + + " └─ IF(NOT\n" + + " └─ IN\n" + + " ├─ left: new.ZRV3B:10!null\n" + + " └─ right: TUPLE(= (longtext), <= (longtext), >= (longtext), < (longtext), > (longtext))\n" + + " )\n" + + " └─ BLOCK\n" + + " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The ZRV3B must be on of the following: '=', '<=', '>=', '<', '>'., MYSQL_ERRNO = 1644\n" + "", }, { @@ -21223,190 +21210,189 @@ WHERE AND (rs.NO52D, rs.DKCAJ) NOT IN (SELECT DISTINCT NO52D, DKCAJ FROM SFEGG WHERE VYO5E IS NULL) )`, - ExpectedPlan: "TriggerRollback\n" + - " └─ RowUpdateAccumulator\n" + - " └─ Insert(id, NO52D, VYO5E, DKCAJ, ADURZ, FHCYT)\n" + - " ├─ InsertDestination\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: SFEGG\n" + - " │ └─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + - " └─ Trigger(CREATE TRIGGER SFEGG_on_insert BEFORE INSERT ON SFEGG\n" + - " FOR EACH ROW\n" + - " BEGIN\n" + - " IF\n" + - " NEW.NO52D IN (SELECT SVAZ4 FROM TPXHZ)\n" + - " OR NEW.VYO5E IN (SELECT SVAZ4 FROM TPXHZ)\n" + - " THEN\n" + - " -- SET @custom_error_message = (SELECT error_message FROM trigger_helper_error_message WHERE DZLIM = 'SVAZ4');\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'String field contains invalid value, like empty string, ''none'', ''null'', ''n/a'', ''nan'' etc.';\n" + - " END IF;\n" + - " IF\n" + - " NEW.ADURZ <= 0\n" + - " THEN\n" + - " -- SET @custom_error_message = 'ADURZ must be positive.';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'ADURZ must be positive.';\n" + - " END IF;\n" + - " END//)\n" + - " ├─ Project\n" + - " │ ├─ columns: [id:0!null, NO52D:1!null, VYO5E:2, DKCAJ:3!null, ADURZ:4!null, FHCYT:5]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, rs.NO52D:0!null as NO52D, rs.VYO5E:1 as VYO5E, rs.DKCAJ:2!null as DKCAJ, CASE WHEN AND\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ rs.NO52D:0!null\n" + - " │ │ │ └─ FZB3D (longtext)\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ rs.F35MI:3!null\n" + - " │ │ └─ SUZTA (longtext)\n" + - " │ │ THEN 1 (tinyint) WHEN AND\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ rs.NO52D:0!null\n" + - " │ │ │ └─ FZB3D (longtext)\n" + - " │ │ └─ NOT\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ rs.F35MI:3!null\n" + - " │ │ └─ SUZTA (longtext)\n" + - " │ │ THEN 3 (tinyint) WHEN Or\n" + - " │ │ ├─ rs.NO52D LIKE 'AC%'\n" + - " │ │ └─ rs.NO52D LIKE 'EC%'\n" + - " │ │ THEN 3 (tinyint) WHEN AND\n" + - " │ │ ├─ rs.NO52D LIKE 'IC%'\n" + - " │ │ └─ rs.VYO5E:1 IS NULL\n" + - " │ │ THEN 2 (tinyint) WHEN AND\n" + - " │ │ ├─ rs.NO52D LIKE 'IC%'\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ rs.VYO5E:1\n" + - " │ │ └─ CF (longtext)\n" + - " │ │ THEN 1 (tinyint) WHEN AND\n" + - " │ │ ├─ AND\n" + - " │ │ │ ├─ rs.NO52D LIKE 'IC%'\n" + - " │ │ │ └─ NOT\n" + - " │ │ │ └─ rs.VYO5E:1 IS NULL\n" + - " │ │ └─ NOT\n" + - " │ │ └─ Eq\n" + - " │ │ ├─ rs.VYO5E:1\n" + - " │ │ └─ CF (longtext)\n" + - " │ │ THEN 4 (tinyint) WHEN Eq\n" + - " │ │ ├─ rs.NO52D:0!null\n" + - " │ │ └─ Ki (longtext)\n" + - " │ │ THEN 1 (tinyint) WHEN Eq\n" + - " │ │ ├─ rs.NO52D:0!null\n" + - " │ │ └─ Kd (longtext)\n" + - " │ │ THEN 2 (tinyint) ELSE NULL (null) END as ADURZ, NULL (null) as FHCYT]\n" + - " │ └─ Filter\n" + - " │ ├─ Or\n" + - " │ │ ├─ AND\n" + - " │ │ │ ├─ NOT\n" + - " │ │ │ │ └─ rs.VYO5E:1 IS NULL\n" + - " │ │ │ └─ NOT\n" + - " │ │ │ └─ InSubquery\n" + - " │ │ │ ├─ left: TUPLE(rs.NO52D:0!null, rs.VYO5E:1, rs.DKCAJ:2!null)\n" + - " │ │ │ └─ right: Subquery\n" + - " │ │ │ ├─ cacheable: true\n" + - " │ │ │ ├─ alias-string: select distinct NO52D, VYO5E, DKCAJ from SFEGG where VYO5E is not null\n" + - " │ │ │ └─ Distinct\n" + - " │ │ │ └─ Project\n" + - " │ │ │ ├─ columns: [sfegg.NO52D:5!null, sfegg.VYO5E:6, sfegg.DKCAJ:7!null]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ NOT\n" + - " │ │ │ │ └─ sfegg.VYO5E:6 IS NULL\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: SFEGG\n" + - " │ │ │ ├─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + - " │ │ │ ├─ colSet: (48-53)\n" + - " │ │ │ └─ tableId: 6\n" + - " │ │ └─ AND\n" + - " │ │ ├─ rs.VYO5E:1 IS NULL\n" + - " │ │ └─ NOT\n" + - " │ │ └─ InSubquery\n" + - " │ │ ├─ left: TUPLE(rs.NO52D:0!null, rs.DKCAJ:2!null)\n" + - " │ │ └─ right: Subquery\n" + - " │ │ ├─ cacheable: true\n" + - " │ │ ├─ alias-string: select distinct NO52D, DKCAJ from SFEGG where VYO5E is null\n" + - " │ │ └─ Distinct\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [sfegg.NO52D:5!null, sfegg.DKCAJ:7!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ sfegg.VYO5E:6 IS NULL\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: SFEGG\n" + - " │ │ ├─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + - " │ │ ├─ colSet: (54-59)\n" + - " │ │ └─ tableId: 7\n" + - " │ └─ SubqueryAlias\n" + - " │ ├─ name: rs\n" + - " │ ├─ outerVisibility: false\n" + - " │ ├─ isLateral: false\n" + - " │ ├─ cacheable: true\n" + - " │ ├─ colSet: (44-47)\n" + - " │ ├─ tableId: 5\n" + - " │ └─ Distinct\n" + - " │ └─ Project\n" + - " │ ├─ columns: [tvtjs.NO52D:7!null as NO52D, tvtjs.VYO5E:9 as VYO5E, nt.id:30!null as DKCAJ, nt.DZLIM:31!null as F35MI]\n" + - " │ └─ LookupJoin\n" + - " │ ├─ LookupJoin\n" + - " │ │ ├─ TableAlias(tvtjs)\n" + - " │ │ │ └─ IndexedTableAccess(HU5A5)\n" + - " │ │ │ ├─ index: [HU5A5.id]\n" + - " │ │ │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + - " │ │ │ ├─ colSet: (7-19)\n" + - " │ │ │ ├─ tableId: 2\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: HU5A5\n" + - " │ │ │ └─ columns: [id tofpn i3vta sfj6l v5dpx ljlum idpk7 no52d zrv3b vyo5e swcqv ykssu fhcyt]\n" + - " │ │ └─ TableAlias(nd)\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.TW55N]\n" + - " │ │ ├─ keys: [tvtjs.I3VTA:2!null]\n" + - " │ │ ├─ colSet: (20-36)\n" + - " │ │ ├─ tableId: 3\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: E2I7U\n" + - " │ │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + - " │ └─ TableAlias(nt)\n" + - " │ └─ IndexedTableAccess(F35MI)\n" + - " │ ├─ index: [F35MI.id]\n" + - " │ ├─ keys: [nd.DKCAJ:14!null]\n" + - " │ ├─ colSet: (37-39)\n" + - " │ ├─ tableId: 4\n" + - " │ └─ Table\n" + - " │ ├─ name: F35MI\n" + - " │ └─ columns: [id dzlim f3yue]\n" + - " └─ BEGIN .. END\n" + - " ├─ IF BLOCK\n" + - " │ └─ IF(Or\n" + - " │ ├─ InSubquery\n" + - " │ │ ├─ left: new.NO52D:1!null\n" + - " │ │ └─ right: Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: TPXHZ\n" + - " │ │ ├─ columns: [svaz4]\n" + - " │ │ ├─ colSet: (13,14)\n" + - " │ │ └─ tableId: 3\n" + - " │ └─ InSubquery\n" + - " │ ├─ left: new.VYO5E:2\n" + - " │ └─ right: Subquery\n" + - " │ ├─ cacheable: false\n" + - " │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + - " │ └─ Table\n" + - " │ ├─ name: TPXHZ\n" + - " │ ├─ columns: [svaz4]\n" + - " │ ├─ colSet: (15,16)\n" + - " │ └─ tableId: 4\n" + - " │ )\n" + - " │ └─ BLOCK\n" + - " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = String field contains invalid value, like empty string, 'none', 'null', 'n/a', 'nan' etc., MYSQL_ERRNO = 1644\n" + - " └─ IF BLOCK\n" + - " └─ IF(LessThanOrEqual\n" + - " ├─ new.ADURZ:4!null\n" + - " └─ 0 (int)\n" + - " )\n" + - " └─ BLOCK\n" + - " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = ADURZ must be positive., MYSQL_ERRNO = 1644\n" + + ExpectedPlan: "RowUpdateAccumulator\n" + + " └─ Insert(id, NO52D, VYO5E, DKCAJ, ADURZ, FHCYT)\n" + + " ├─ InsertDestination\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: SFEGG\n" + + " │ └─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + + " └─ Trigger(CREATE TRIGGER SFEGG_on_insert BEFORE INSERT ON SFEGG\n" + + " FOR EACH ROW\n" + + " BEGIN\n" + + " IF\n" + + " NEW.NO52D IN (SELECT SVAZ4 FROM TPXHZ)\n" + + " OR NEW.VYO5E IN (SELECT SVAZ4 FROM TPXHZ)\n" + + " THEN\n" + + " -- SET @custom_error_message = (SELECT error_message FROM trigger_helper_error_message WHERE DZLIM = 'SVAZ4');\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'String field contains invalid value, like empty string, ''none'', ''null'', ''n/a'', ''nan'' etc.';\n" + + " END IF;\n" + + " IF\n" + + " NEW.ADURZ <= 0\n" + + " THEN\n" + + " -- SET @custom_error_message = 'ADURZ must be positive.';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'ADURZ must be positive.';\n" + + " END IF;\n" + + " END//)\n" + + " ├─ Project\n" + + " │ ├─ columns: [id:0!null, NO52D:1!null, VYO5E:2, DKCAJ:3!null, ADURZ:4!null, FHCYT:5]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, rs.NO52D:0!null as NO52D, rs.VYO5E:1 as VYO5E, rs.DKCAJ:2!null as DKCAJ, CASE WHEN AND\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ rs.NO52D:0!null\n" + + " │ │ │ └─ FZB3D (longtext)\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ rs.F35MI:3!null\n" + + " │ │ └─ SUZTA (longtext)\n" + + " │ │ THEN 1 (tinyint) WHEN AND\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ rs.NO52D:0!null\n" + + " │ │ │ └─ FZB3D (longtext)\n" + + " │ │ └─ NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ rs.F35MI:3!null\n" + + " │ │ └─ SUZTA (longtext)\n" + + " │ │ THEN 3 (tinyint) WHEN Or\n" + + " │ │ ├─ rs.NO52D LIKE 'AC%'\n" + + " │ │ └─ rs.NO52D LIKE 'EC%'\n" + + " │ │ THEN 3 (tinyint) WHEN AND\n" + + " │ │ ├─ rs.NO52D LIKE 'IC%'\n" + + " │ │ └─ rs.VYO5E:1 IS NULL\n" + + " │ │ THEN 2 (tinyint) WHEN AND\n" + + " │ │ ├─ rs.NO52D LIKE 'IC%'\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ rs.VYO5E:1\n" + + " │ │ └─ CF (longtext)\n" + + " │ │ THEN 1 (tinyint) WHEN AND\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ rs.NO52D LIKE 'IC%'\n" + + " │ │ │ └─ NOT\n" + + " │ │ │ └─ rs.VYO5E:1 IS NULL\n" + + " │ │ └─ NOT\n" + + " │ │ └─ Eq\n" + + " │ │ ├─ rs.VYO5E:1\n" + + " │ │ └─ CF (longtext)\n" + + " │ │ THEN 4 (tinyint) WHEN Eq\n" + + " │ │ ├─ rs.NO52D:0!null\n" + + " │ │ └─ Ki (longtext)\n" + + " │ │ THEN 1 (tinyint) WHEN Eq\n" + + " │ │ ├─ rs.NO52D:0!null\n" + + " │ │ └─ Kd (longtext)\n" + + " │ │ THEN 2 (tinyint) ELSE NULL (null) END as ADURZ, NULL (null) as FHCYT]\n" + + " │ └─ Filter\n" + + " │ ├─ Or\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ NOT\n" + + " │ │ │ │ └─ rs.VYO5E:1 IS NULL\n" + + " │ │ │ └─ NOT\n" + + " │ │ │ └─ InSubquery\n" + + " │ │ │ ├─ left: TUPLE(rs.NO52D:0!null, rs.VYO5E:1, rs.DKCAJ:2!null)\n" + + " │ │ │ └─ right: Subquery\n" + + " │ │ │ ├─ cacheable: true\n" + + " │ │ │ ├─ alias-string: select distinct NO52D, VYO5E, DKCAJ from SFEGG where VYO5E is not null\n" + + " │ │ │ └─ Distinct\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [sfegg.NO52D:5!null, sfegg.VYO5E:6, sfegg.DKCAJ:7!null]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ NOT\n" + + " │ │ │ │ └─ sfegg.VYO5E:6 IS NULL\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: SFEGG\n" + + " │ │ │ ├─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + + " │ │ │ ├─ colSet: (48-53)\n" + + " │ │ │ └─ tableId: 6\n" + + " │ │ └─ AND\n" + + " │ │ ├─ rs.VYO5E:1 IS NULL\n" + + " │ │ └─ NOT\n" + + " │ │ └─ InSubquery\n" + + " │ │ ├─ left: TUPLE(rs.NO52D:0!null, rs.DKCAJ:2!null)\n" + + " │ │ └─ right: Subquery\n" + + " │ │ ├─ cacheable: true\n" + + " │ │ ├─ alias-string: select distinct NO52D, DKCAJ from SFEGG where VYO5E is null\n" + + " │ │ └─ Distinct\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [sfegg.NO52D:5!null, sfegg.DKCAJ:7!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ sfegg.VYO5E:6 IS NULL\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: SFEGG\n" + + " │ │ ├─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + + " │ │ ├─ colSet: (54-59)\n" + + " │ │ └─ tableId: 7\n" + + " │ └─ SubqueryAlias\n" + + " │ ├─ name: rs\n" + + " │ ├─ outerVisibility: false\n" + + " │ ├─ isLateral: false\n" + + " │ ├─ cacheable: true\n" + + " │ ├─ colSet: (44-47)\n" + + " │ ├─ tableId: 5\n" + + " │ └─ Distinct\n" + + " │ └─ Project\n" + + " │ ├─ columns: [tvtjs.NO52D:7!null as NO52D, tvtjs.VYO5E:9 as VYO5E, nt.id:30!null as DKCAJ, nt.DZLIM:31!null as F35MI]\n" + + " │ └─ LookupJoin\n" + + " │ ├─ LookupJoin\n" + + " │ │ ├─ TableAlias(tvtjs)\n" + + " │ │ │ └─ IndexedTableAccess(HU5A5)\n" + + " │ │ │ ├─ index: [HU5A5.id]\n" + + " │ │ │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + + " │ │ │ ├─ colSet: (7-19)\n" + + " │ │ │ ├─ tableId: 2\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: HU5A5\n" + + " │ │ │ └─ columns: [id tofpn i3vta sfj6l v5dpx ljlum idpk7 no52d zrv3b vyo5e swcqv ykssu fhcyt]\n" + + " │ │ └─ TableAlias(nd)\n" + + " │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ ├─ index: [E2I7U.TW55N]\n" + + " │ │ ├─ keys: [tvtjs.I3VTA:2!null]\n" + + " │ │ ├─ colSet: (20-36)\n" + + " │ │ ├─ tableId: 3\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: E2I7U\n" + + " │ │ └─ columns: [id dkcaj kng7t tw55n qrqxw ecxaj fgg57 zh72s fsk67 xqdyt tce7a iwv2h hpcms n5cc2 fhcyt etaq7 a75x7]\n" + + " │ └─ TableAlias(nt)\n" + + " │ └─ IndexedTableAccess(F35MI)\n" + + " │ ├─ index: [F35MI.id]\n" + + " │ ├─ keys: [nd.DKCAJ:14!null]\n" + + " │ ├─ colSet: (37-39)\n" + + " │ ├─ tableId: 4\n" + + " │ └─ Table\n" + + " │ ├─ name: F35MI\n" + + " │ └─ columns: [id dzlim f3yue]\n" + + " └─ BEGIN .. END\n" + + " ├─ IF BLOCK\n" + + " │ └─ IF(Or\n" + + " │ ├─ InSubquery\n" + + " │ │ ├─ left: new.NO52D:1!null\n" + + " │ │ └─ right: Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: TPXHZ\n" + + " │ │ ├─ columns: [svaz4]\n" + + " │ │ ├─ colSet: (13,14)\n" + + " │ │ └─ tableId: 3\n" + + " │ └─ InSubquery\n" + + " │ ├─ left: new.VYO5E:2\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + + " │ └─ Table\n" + + " │ ├─ name: TPXHZ\n" + + " │ ├─ columns: [svaz4]\n" + + " │ ├─ colSet: (15,16)\n" + + " │ └─ tableId: 4\n" + + " │ )\n" + + " │ └─ BLOCK\n" + + " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = String field contains invalid value, like empty string, 'none', 'null', 'n/a', 'nan' etc., MYSQL_ERRNO = 1644\n" + + " └─ IF BLOCK\n" + + " └─ IF(LessThanOrEqual\n" + + " ├─ new.ADURZ:4!null\n" + + " └─ 0 (int)\n" + + " )\n" + + " └─ BLOCK\n" + + " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = ADURZ must be positive., MYSQL_ERRNO = 1644\n" + "", }, { @@ -21439,280 +21425,279 @@ FROM HU5A5 TVTJS WHERE TVTJS.id IN ('1','2','3')`, - ExpectedPlan: "TriggerRollback\n" + - " └─ RowUpdateAccumulator\n" + - " └─ Insert(id, FZ2R5, LUEVY, M22QN, OVE3E, NRURT, OCA7E, XMM6Q, V5DPX, S3Q3Y, ZRV3B, FHCYT)\n" + - " ├─ InsertDestination\n" + - " │ └─ ProcessTable\n" + - " │ └─ Table\n" + - " │ ├─ name: FLQLP\n" + - " │ └─ columns: [id fz2r5 luevy m22qn ove3e nrurt oca7e xmm6q v5dpx s3q3y zrv3b fhcyt]\n" + - " └─ Trigger(CREATE TRIGGER FLQLP_on_insert BEFORE INSERT ON FLQLP\n" + - " FOR EACH ROW\n" + - " BEGIN\n" + - " IF\n" + - " NEW.V5DPX IN (SELECT SVAZ4 FROM TPXHZ)\n" + - " THEN\n" + - " -- SET @custom_error_message = (SELECT error_message FROM trigger_helper_error_message WHERE DZLIM = 'SVAZ4');\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'String field contains invalid value, like empty string, ''none'', ''null'', ''n/a'', ''nan'' etc.';\n" + - " END IF;\n" + - " IF\n" + - " NEW.ZRV3B NOT IN ('=', '<=', '>=', '<', '>')\n" + - " THEN\n" + - " -- SET @custom_error_message = 'The ZRV3B must be on of the following: ''='', ''<='', ''>='', ''<'', ''>''.';\n" + - " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + - " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The ZRV3B must be on of the following: ''='', ''<='', ''>='', ''<'', ''>''.';\n" + - " END IF;\n" + - " END//)\n" + - " ├─ Project\n" + - " │ ├─ columns: [id:0!null, FZ2R5:1!null, LUEVY:2!null, M22QN:3!null, OVE3E:4!null, NRURT:5, OCA7E:6, XMM6Q:7, V5DPX:8!null, S3Q3Y:9!null, ZRV3B:10!null, FHCYT:11]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select id from JDLNA where JDLNA.FTQLQ = TVTJS.TOFPN\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [jdlna.id:25!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ jdlna.FTQLQ:26!null\n" + - " │ │ │ └─ tvtjs.TOFPN:1!null\n" + - " │ │ └─ IndexedTableAccess(JDLNA)\n" + - " │ │ ├─ index: [JDLNA.FTQLQ]\n" + - " │ │ ├─ keys: [tvtjs.TOFPN:1!null]\n" + - " │ │ ├─ colSet: (27-31)\n" + - " │ │ ├─ tableId: 3\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: JDLNA\n" + - " │ │ └─ columns: [id ftqlq]\n" + - " │ │ as FZ2R5, Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select id from E2I7U where TW55N = TVTJS.I3VTA\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [e2i7u.id:25!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ e2i7u.TW55N:26!null\n" + - " │ │ │ └─ tvtjs.I3VTA:2!null\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.TW55N]\n" + - " │ │ ├─ keys: [tvtjs.I3VTA:2!null]\n" + - " │ │ ├─ colSet: (33-49)\n" + - " │ │ ├─ tableId: 4\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: E2I7U\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ │ as LUEVY, Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select id from TPXBU where BTXC5 = TVTJS.LJLUM\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [tpxbu.id:25!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ tpxbu.BTXC5:26\n" + - " │ │ │ └─ tvtjs.LJLUM:5!null\n" + - " │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ ├─ index: [TPXBU.BTXC5]\n" + - " │ │ ├─ keys: [tvtjs.LJLUM:5!null]\n" + - " │ │ ├─ colSet: (51-53)\n" + - " │ │ ├─ tableId: 5\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: TPXBU\n" + - " │ │ └─ columns: [id btxc5]\n" + - " │ │ as M22QN, Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select id from SFEGG where SFEGG.NO52D = TVTJS.NO52D and (SFEGG.VYO5E = TVTJS.VYO5E or (SFEGG.VYO5E is null and (TVTJS.VYO5E is null or TVTJS.VYO5E = 'N/A' or TVTJS.VYO5E = 'NA'))) and SFEGG.DKCAJ = (select nd.DKCAJ from E2I7U as nd where nd.TW55N = TVTJS.I3VTA)\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [sfegg.id:25!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ AND\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ sfegg.NO52D:26!null\n" + - " │ │ │ │ │ └─ tvtjs.NO52D:7!null\n" + - " │ │ │ │ └─ Or\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ sfegg.VYO5E:27\n" + - " │ │ │ │ │ └─ tvtjs.VYO5E:9\n" + - " │ │ │ │ └─ AND\n" + - " │ │ │ │ ├─ sfegg.VYO5E:27 IS NULL\n" + - " │ │ │ │ └─ Or\n" + - " │ │ │ │ ├─ Or\n" + - " │ │ │ │ │ ├─ tvtjs.VYO5E:9 IS NULL\n" + - " │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ ├─ tvtjs.VYO5E:9\n" + - " │ │ │ │ │ └─ N/A (longtext)\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ tvtjs.VYO5E:9\n" + - " │ │ │ │ └─ NA (longtext)\n" + - " │ │ │ └─ Eq\n" + - " │ │ │ ├─ sfegg.DKCAJ:28!null\n" + - " │ │ │ └─ Subquery\n" + - " │ │ │ ├─ cacheable: false\n" + - " │ │ │ ├─ alias-string: select nd.DKCAJ from E2I7U as nd where nd.TW55N = TVTJS.I3VTA\n" + - " │ │ │ └─ Project\n" + - " │ │ │ ├─ columns: [nd.DKCAJ:31!null]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ Eq\n" + - " │ │ │ │ ├─ nd.TW55N:32!null\n" + - " │ │ │ │ └─ tvtjs.I3VTA:2!null\n" + - " │ │ │ └─ TableAlias(nd)\n" + - " │ │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ │ ├─ index: [E2I7U.TW55N]\n" + - " │ │ │ ├─ keys: [tvtjs.I3VTA:2!null]\n" + - " │ │ │ ├─ colSet: (61-77)\n" + - " │ │ │ ├─ tableId: 7\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: E2I7U\n" + - " │ │ │ └─ columns: [dkcaj tw55n]\n" + - " │ │ └─ IndexedTableAccess(SFEGG)\n" + - " │ │ ├─ index: [SFEGG.NO52D,SFEGG.VYO5E,SFEGG.DKCAJ]\n" + - " │ │ ├─ keys: [tvtjs.NO52D:7!null]\n" + - " │ │ ├─ colSet: (55-60)\n" + - " │ │ ├─ tableId: 6\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: SFEGG\n" + - " │ │ └─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + - " │ │ as OVE3E, NULL (null) as NRURT, NULL (null) as OCA7E, tvtjs.id:0!null as XMM6Q, tvtjs.V5DPX:4!null as V5DPX, (tvtjs.IDPK7:6!null + 0 (decimal(2,1))) as S3Q3Y, tvtjs.ZRV3B:8!null as ZRV3B, tvtjs.FHCYT:12 as FHCYT]\n" + - " │ └─ Project\n" + - " │ ├─ columns: [tvtjs.id:0!null, tvtjs.TOFPN:1!null, tvtjs.I3VTA:2!null, tvtjs.SFJ6L:3, tvtjs.V5DPX:4!null, tvtjs.LJLUM:5!null, tvtjs.IDPK7:6!null, tvtjs.NO52D:7!null, tvtjs.ZRV3B:8!null, tvtjs.VYO5E:9, tvtjs.SWCQV:10!null, tvtjs.YKSSU:11, tvtjs.FHCYT:12, lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select id from JDLNA where JDLNA.FTQLQ = TVTJS.TOFPN\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [jdlna.id:13!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ jdlna.FTQLQ:14!null\n" + - " │ │ │ └─ tvtjs.TOFPN:1!null\n" + - " │ │ └─ IndexedTableAccess(JDLNA)\n" + - " │ │ ├─ index: [JDLNA.FTQLQ]\n" + - " │ │ ├─ keys: [tvtjs.TOFPN:1!null]\n" + - " │ │ ├─ colSet: (27-31)\n" + - " │ │ ├─ tableId: 3\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: JDLNA\n" + - " │ │ └─ columns: [id ftqlq]\n" + - " │ │ as FZ2R5, Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select id from E2I7U where TW55N = TVTJS.I3VTA\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [e2i7u.id:13!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ e2i7u.TW55N:14!null\n" + - " │ │ │ └─ tvtjs.I3VTA:2!null\n" + - " │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ ├─ index: [E2I7U.TW55N]\n" + - " │ │ ├─ keys: [tvtjs.I3VTA:2!null]\n" + - " │ │ ├─ colSet: (33-49)\n" + - " │ │ ├─ tableId: 4\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: E2I7U\n" + - " │ │ └─ columns: [id tw55n]\n" + - " │ │ as LUEVY, Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select id from TPXBU where BTXC5 = TVTJS.LJLUM\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [tpxbu.id:13!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ Eq\n" + - " │ │ │ ├─ tpxbu.BTXC5:14\n" + - " │ │ │ └─ tvtjs.LJLUM:5!null\n" + - " │ │ └─ IndexedTableAccess(TPXBU)\n" + - " │ │ ├─ index: [TPXBU.BTXC5]\n" + - " │ │ ├─ keys: [tvtjs.LJLUM:5!null]\n" + - " │ │ ├─ colSet: (51-53)\n" + - " │ │ ├─ tableId: 5\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: TPXBU\n" + - " │ │ └─ columns: [id btxc5]\n" + - " │ │ as M22QN, Subquery\n" + - " │ │ ├─ cacheable: false\n" + - " │ │ ├─ alias-string: select id from SFEGG where SFEGG.NO52D = TVTJS.NO52D and (SFEGG.VYO5E = TVTJS.VYO5E or (SFEGG.VYO5E is null and (TVTJS.VYO5E is null or TVTJS.VYO5E = 'N/A' or TVTJS.VYO5E = 'NA'))) and SFEGG.DKCAJ = (select nd.DKCAJ from E2I7U as nd where nd.TW55N = TVTJS.I3VTA)\n" + - " │ │ └─ Project\n" + - " │ │ ├─ columns: [sfegg.id:13!null]\n" + - " │ │ └─ Filter\n" + - " │ │ ├─ AND\n" + - " │ │ │ ├─ AND\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ sfegg.NO52D:14!null\n" + - " │ │ │ │ │ └─ tvtjs.NO52D:7!null\n" + - " │ │ │ │ └─ Or\n" + - " │ │ │ │ ├─ Eq\n" + - " │ │ │ │ │ ├─ sfegg.VYO5E:15\n" + - " │ │ │ │ │ └─ tvtjs.VYO5E:9\n" + - " │ │ │ │ └─ AND\n" + - " │ │ │ │ ├─ sfegg.VYO5E:15 IS NULL\n" + - " │ │ │ │ └─ Or\n" + - " │ │ │ │ ├─ Or\n" + - " │ │ │ │ │ ├─ tvtjs.VYO5E:9 IS NULL\n" + - " │ │ │ │ │ └─ Eq\n" + - " │ │ │ │ │ ├─ tvtjs.VYO5E:9\n" + - " │ │ │ │ │ └─ N/A (longtext)\n" + - " │ │ │ │ └─ Eq\n" + - " │ │ │ │ ├─ tvtjs.VYO5E:9\n" + - " │ │ │ │ └─ NA (longtext)\n" + - " │ │ │ └─ Eq\n" + - " │ │ │ ├─ sfegg.DKCAJ:16!null\n" + - " │ │ │ └─ Subquery\n" + - " │ │ │ ├─ cacheable: false\n" + - " │ │ │ ├─ alias-string: select nd.DKCAJ from E2I7U as nd where nd.TW55N = TVTJS.I3VTA\n" + - " │ │ │ └─ Project\n" + - " │ │ │ ├─ columns: [nd.DKCAJ:19!null]\n" + - " │ │ │ └─ Filter\n" + - " │ │ │ ├─ Eq\n" + - " │ │ │ │ ├─ nd.TW55N:20!null\n" + - " │ │ │ │ └─ tvtjs.I3VTA:2!null\n" + - " │ │ │ └─ TableAlias(nd)\n" + - " │ │ │ └─ IndexedTableAccess(E2I7U)\n" + - " │ │ │ ├─ index: [E2I7U.TW55N]\n" + - " │ │ │ ├─ keys: [tvtjs.I3VTA:2!null]\n" + - " │ │ │ ├─ colSet: (61-77)\n" + - " │ │ │ ├─ tableId: 7\n" + - " │ │ │ └─ Table\n" + - " │ │ │ ├─ name: E2I7U\n" + - " │ │ │ └─ columns: [dkcaj tw55n]\n" + - " │ │ └─ IndexedTableAccess(SFEGG)\n" + - " │ │ ├─ index: [SFEGG.NO52D,SFEGG.VYO5E,SFEGG.DKCAJ]\n" + - " │ │ ├─ keys: [tvtjs.NO52D:7!null]\n" + - " │ │ ├─ colSet: (55-60)\n" + - " │ │ ├─ tableId: 6\n" + - " │ │ └─ Table\n" + - " │ │ ├─ name: SFEGG\n" + - " │ │ └─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + - " │ │ as OVE3E, NULL (null) as NRURT, NULL (null) as OCA7E, tvtjs.id:0!null as XMM6Q, tvtjs.V5DPX:4!null as V5DPX, (tvtjs.IDPK7:6!null + 0 (decimal(2,1))) as S3Q3Y, tvtjs.ZRV3B:8!null as ZRV3B, tvtjs.FHCYT:12 as FHCYT]\n" + - " │ └─ TableAlias(tvtjs)\n" + - " │ └─ IndexedTableAccess(HU5A5)\n" + - " │ ├─ index: [HU5A5.id]\n" + - " │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + - " │ ├─ colSet: (13-25)\n" + - " │ ├─ tableId: 2\n" + - " │ └─ Table\n" + - " │ ├─ name: HU5A5\n" + - " │ └─ columns: [id tofpn i3vta sfj6l v5dpx ljlum idpk7 no52d zrv3b vyo5e swcqv ykssu fhcyt]\n" + - " └─ BEGIN .. END\n" + - " ├─ IF BLOCK\n" + - " │ └─ IF(InSubquery\n" + - " │ ├─ left: new.V5DPX:8!null\n" + - " │ └─ right: Subquery\n" + - " │ ├─ cacheable: false\n" + - " │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + - " │ └─ Table\n" + - " │ ├─ name: TPXHZ\n" + - " │ ├─ columns: [svaz4]\n" + - " │ ├─ colSet: (25,26)\n" + - " │ └─ tableId: 3\n" + - " │ )\n" + - " │ └─ BLOCK\n" + - " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = String field contains invalid value, like empty string, 'none', 'null', 'n/a', 'nan' etc., MYSQL_ERRNO = 1644\n" + - " └─ IF BLOCK\n" + - " └─ IF(NOT\n" + - " └─ IN\n" + - " ├─ left: new.ZRV3B:10!null\n" + - " └─ right: TUPLE(= (longtext), <= (longtext), >= (longtext), < (longtext), > (longtext))\n" + - " )\n" + - " └─ BLOCK\n" + - " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The ZRV3B must be on of the following: '=', '<=', '>=', '<', '>'., MYSQL_ERRNO = 1644\n" + + ExpectedPlan: "RowUpdateAccumulator\n" + + " └─ Insert(id, FZ2R5, LUEVY, M22QN, OVE3E, NRURT, OCA7E, XMM6Q, V5DPX, S3Q3Y, ZRV3B, FHCYT)\n" + + " ├─ InsertDestination\n" + + " │ └─ ProcessTable\n" + + " │ └─ Table\n" + + " │ ├─ name: FLQLP\n" + + " │ └─ columns: [id fz2r5 luevy m22qn ove3e nrurt oca7e xmm6q v5dpx s3q3y zrv3b fhcyt]\n" + + " └─ Trigger(CREATE TRIGGER FLQLP_on_insert BEFORE INSERT ON FLQLP\n" + + " FOR EACH ROW\n" + + " BEGIN\n" + + " IF\n" + + " NEW.V5DPX IN (SELECT SVAZ4 FROM TPXHZ)\n" + + " THEN\n" + + " -- SET @custom_error_message = (SELECT error_message FROM trigger_helper_error_message WHERE DZLIM = 'SVAZ4');\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'String field contains invalid value, like empty string, ''none'', ''null'', ''n/a'', ''nan'' etc.';\n" + + " END IF;\n" + + " IF\n" + + " NEW.ZRV3B NOT IN ('=', '<=', '>=', '<', '>')\n" + + " THEN\n" + + " -- SET @custom_error_message = 'The ZRV3B must be on of the following: ''='', ''<='', ''>='', ''<'', ''>''.';\n" + + " -- SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = @custom_error_message;\n" + + " SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'The ZRV3B must be on of the following: ''='', ''<='', ''>='', ''<'', ''>''.';\n" + + " END IF;\n" + + " END//)\n" + + " ├─ Project\n" + + " │ ├─ columns: [id:0!null, FZ2R5:1!null, LUEVY:2!null, M22QN:3!null, OVE3E:4!null, NRURT:5, OCA7E:6, XMM6Q:7, V5DPX:8!null, S3Q3Y:9!null, ZRV3B:10!null, FHCYT:11]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select id from JDLNA where JDLNA.FTQLQ = TVTJS.TOFPN\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [jdlna.id:25!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ jdlna.FTQLQ:26!null\n" + + " │ │ │ └─ tvtjs.TOFPN:1!null\n" + + " │ │ └─ IndexedTableAccess(JDLNA)\n" + + " │ │ ├─ index: [JDLNA.FTQLQ]\n" + + " │ │ ├─ keys: [tvtjs.TOFPN:1!null]\n" + + " │ │ ├─ colSet: (27-31)\n" + + " │ │ ├─ tableId: 3\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: JDLNA\n" + + " │ │ └─ columns: [id ftqlq]\n" + + " │ │ as FZ2R5, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select id from E2I7U where TW55N = TVTJS.I3VTA\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [e2i7u.id:25!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ e2i7u.TW55N:26!null\n" + + " │ │ │ └─ tvtjs.I3VTA:2!null\n" + + " │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ ├─ index: [E2I7U.TW55N]\n" + + " │ │ ├─ keys: [tvtjs.I3VTA:2!null]\n" + + " │ │ ├─ colSet: (33-49)\n" + + " │ │ ├─ tableId: 4\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: E2I7U\n" + + " │ │ └─ columns: [id tw55n]\n" + + " │ │ as LUEVY, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select id from TPXBU where BTXC5 = TVTJS.LJLUM\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [tpxbu.id:25!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ tpxbu.BTXC5:26\n" + + " │ │ │ └─ tvtjs.LJLUM:5!null\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.BTXC5]\n" + + " │ │ ├─ keys: [tvtjs.LJLUM:5!null]\n" + + " │ │ ├─ colSet: (51-53)\n" + + " │ │ ├─ tableId: 5\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: TPXBU\n" + + " │ │ └─ columns: [id btxc5]\n" + + " │ │ as M22QN, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select id from SFEGG where SFEGG.NO52D = TVTJS.NO52D and (SFEGG.VYO5E = TVTJS.VYO5E or (SFEGG.VYO5E is null and (TVTJS.VYO5E is null or TVTJS.VYO5E = 'N/A' or TVTJS.VYO5E = 'NA'))) and SFEGG.DKCAJ = (select nd.DKCAJ from E2I7U as nd where nd.TW55N = TVTJS.I3VTA)\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [sfegg.id:25!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ AND\n" + + " │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ ├─ sfegg.NO52D:26!null\n" + + " │ │ │ │ │ └─ tvtjs.NO52D:7!null\n" + + " │ │ │ │ └─ Or\n" + + " │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ ├─ sfegg.VYO5E:27\n" + + " │ │ │ │ │ └─ tvtjs.VYO5E:9\n" + + " │ │ │ │ └─ AND\n" + + " │ │ │ │ ├─ sfegg.VYO5E:27 IS NULL\n" + + " │ │ │ │ └─ Or\n" + + " │ │ │ │ ├─ Or\n" + + " │ │ │ │ │ ├─ tvtjs.VYO5E:9 IS NULL\n" + + " │ │ │ │ │ └─ Eq\n" + + " │ │ │ │ │ ├─ tvtjs.VYO5E:9\n" + + " │ │ │ │ │ └─ N/A (longtext)\n" + + " │ │ │ │ └─ Eq\n" + + " │ │ │ │ ├─ tvtjs.VYO5E:9\n" + + " │ │ │ │ └─ NA (longtext)\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ sfegg.DKCAJ:28!null\n" + + " │ │ │ └─ Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ ├─ alias-string: select nd.DKCAJ from E2I7U as nd where nd.TW55N = TVTJS.I3VTA\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [nd.DKCAJ:31!null]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ nd.TW55N:32!null\n" + + " │ │ │ │ └─ tvtjs.I3VTA:2!null\n" + + " │ │ │ └─ TableAlias(nd)\n" + + " │ │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ │ ├─ index: [E2I7U.TW55N]\n" + + " │ │ │ ├─ keys: [tvtjs.I3VTA:2!null]\n" + + " │ │ │ ├─ colSet: (61-77)\n" + + " │ │ │ ├─ tableId: 7\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: E2I7U\n" + + " │ │ │ └─ columns: [dkcaj tw55n]\n" + + " │ │ └─ IndexedTableAccess(SFEGG)\n" + + " │ │ ├─ index: [SFEGG.NO52D,SFEGG.VYO5E,SFEGG.DKCAJ]\n" + + " │ │ ├─ keys: [tvtjs.NO52D:7!null]\n" + + " │ │ ├─ colSet: (55-60)\n" + + " │ │ ├─ tableId: 6\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: SFEGG\n" + + " │ │ └─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + + " │ │ as OVE3E, NULL (null) as NRURT, NULL (null) as OCA7E, tvtjs.id:0!null as XMM6Q, tvtjs.V5DPX:4!null as V5DPX, (tvtjs.IDPK7:6!null + 0 (decimal(2,1))) as S3Q3Y, tvtjs.ZRV3B:8!null as ZRV3B, tvtjs.FHCYT:12 as FHCYT]\n" + + " │ └─ Project\n" + + " │ ├─ columns: [tvtjs.id:0!null, tvtjs.TOFPN:1!null, tvtjs.I3VTA:2!null, tvtjs.SFJ6L:3, tvtjs.V5DPX:4!null, tvtjs.LJLUM:5!null, tvtjs.IDPK7:6!null, tvtjs.NO52D:7!null, tvtjs.ZRV3B:8!null, tvtjs.VYO5E:9, tvtjs.SWCQV:10!null, tvtjs.YKSSU:11, tvtjs.FHCYT:12, lpad(lower(concat(concat(hex((rand() * 4294967296)),lower(hex((rand() * 4294967296))),lower(hex((rand() * 4294967296)))))), 24, '0') as id, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select id from JDLNA where JDLNA.FTQLQ = TVTJS.TOFPN\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [jdlna.id:13!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ jdlna.FTQLQ:14!null\n" + + " │ │ │ └─ tvtjs.TOFPN:1!null\n" + + " │ │ └─ IndexedTableAccess(JDLNA)\n" + + " │ │ ├─ index: [JDLNA.FTQLQ]\n" + + " │ │ ├─ keys: [tvtjs.TOFPN:1!null]\n" + + " │ │ ├─ colSet: (27-31)\n" + + " │ │ ├─ tableId: 3\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: JDLNA\n" + + " │ │ └─ columns: [id ftqlq]\n" + + " │ │ as FZ2R5, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select id from E2I7U where TW55N = TVTJS.I3VTA\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [e2i7u.id:13!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ e2i7u.TW55N:14!null\n" + + " │ │ │ └─ tvtjs.I3VTA:2!null\n" + + " │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ ├─ index: [E2I7U.TW55N]\n" + + " │ │ ├─ keys: [tvtjs.I3VTA:2!null]\n" + + " │ │ ├─ colSet: (33-49)\n" + + " │ │ ├─ tableId: 4\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: E2I7U\n" + + " │ │ └─ columns: [id tw55n]\n" + + " │ │ as LUEVY, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select id from TPXBU where BTXC5 = TVTJS.LJLUM\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [tpxbu.id:13!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ Eq\n" + + " │ │ │ ├─ tpxbu.BTXC5:14\n" + + " │ │ │ └─ tvtjs.LJLUM:5!null\n" + + " │ │ └─ IndexedTableAccess(TPXBU)\n" + + " │ │ ├─ index: [TPXBU.BTXC5]\n" + + " │ │ ├─ keys: [tvtjs.LJLUM:5!null]\n" + + " │ │ ├─ colSet: (51-53)\n" + + " │ │ ├─ tableId: 5\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: TPXBU\n" + + " │ │ └─ columns: [id btxc5]\n" + + " │ │ as M22QN, Subquery\n" + + " │ │ ├─ cacheable: false\n" + + " │ │ ├─ alias-string: select id from SFEGG where SFEGG.NO52D = TVTJS.NO52D and (SFEGG.VYO5E = TVTJS.VYO5E or (SFEGG.VYO5E is null and (TVTJS.VYO5E is null or TVTJS.VYO5E = 'N/A' or TVTJS.VYO5E = 'NA'))) and SFEGG.DKCAJ = (select nd.DKCAJ from E2I7U as nd where nd.TW55N = TVTJS.I3VTA)\n" + + " │ │ └─ Project\n" + + " │ │ ├─ columns: [sfegg.id:13!null]\n" + + " │ │ └─ Filter\n" + + " │ │ ├─ AND\n" + + " │ │ │ ├─ AND\n" + + " │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ ├─ sfegg.NO52D:14!null\n" + + " │ │ │ │ │ └─ tvtjs.NO52D:7!null\n" + + " │ │ │ │ └─ Or\n" + + " │ │ │ │ ├─ Eq\n" + + " │ │ │ │ │ ├─ sfegg.VYO5E:15\n" + + " │ │ │ │ │ └─ tvtjs.VYO5E:9\n" + + " │ │ │ │ └─ AND\n" + + " │ │ │ │ ├─ sfegg.VYO5E:15 IS NULL\n" + + " │ │ │ │ └─ Or\n" + + " │ │ │ │ ├─ Or\n" + + " │ │ │ │ │ ├─ tvtjs.VYO5E:9 IS NULL\n" + + " │ │ │ │ │ └─ Eq\n" + + " │ │ │ │ │ ├─ tvtjs.VYO5E:9\n" + + " │ │ │ │ │ └─ N/A (longtext)\n" + + " │ │ │ │ └─ Eq\n" + + " │ │ │ │ ├─ tvtjs.VYO5E:9\n" + + " │ │ │ │ └─ NA (longtext)\n" + + " │ │ │ └─ Eq\n" + + " │ │ │ ├─ sfegg.DKCAJ:16!null\n" + + " │ │ │ └─ Subquery\n" + + " │ │ │ ├─ cacheable: false\n" + + " │ │ │ ├─ alias-string: select nd.DKCAJ from E2I7U as nd where nd.TW55N = TVTJS.I3VTA\n" + + " │ │ │ └─ Project\n" + + " │ │ │ ├─ columns: [nd.DKCAJ:19!null]\n" + + " │ │ │ └─ Filter\n" + + " │ │ │ ├─ Eq\n" + + " │ │ │ │ ├─ nd.TW55N:20!null\n" + + " │ │ │ │ └─ tvtjs.I3VTA:2!null\n" + + " │ │ │ └─ TableAlias(nd)\n" + + " │ │ │ └─ IndexedTableAccess(E2I7U)\n" + + " │ │ │ ├─ index: [E2I7U.TW55N]\n" + + " │ │ │ ├─ keys: [tvtjs.I3VTA:2!null]\n" + + " │ │ │ ├─ colSet: (61-77)\n" + + " │ │ │ ├─ tableId: 7\n" + + " │ │ │ └─ Table\n" + + " │ │ │ ├─ name: E2I7U\n" + + " │ │ │ └─ columns: [dkcaj tw55n]\n" + + " │ │ └─ IndexedTableAccess(SFEGG)\n" + + " │ │ ├─ index: [SFEGG.NO52D,SFEGG.VYO5E,SFEGG.DKCAJ]\n" + + " │ │ ├─ keys: [tvtjs.NO52D:7!null]\n" + + " │ │ ├─ colSet: (55-60)\n" + + " │ │ ├─ tableId: 6\n" + + " │ │ └─ Table\n" + + " │ │ ├─ name: SFEGG\n" + + " │ │ └─ columns: [id no52d vyo5e dkcaj adurz fhcyt]\n" + + " │ │ as OVE3E, NULL (null) as NRURT, NULL (null) as OCA7E, tvtjs.id:0!null as XMM6Q, tvtjs.V5DPX:4!null as V5DPX, (tvtjs.IDPK7:6!null + 0 (decimal(2,1))) as S3Q3Y, tvtjs.ZRV3B:8!null as ZRV3B, tvtjs.FHCYT:12 as FHCYT]\n" + + " │ └─ TableAlias(tvtjs)\n" + + " │ └─ IndexedTableAccess(HU5A5)\n" + + " │ ├─ index: [HU5A5.id]\n" + + " │ ├─ static: [{[1, 1]}, {[2, 2]}, {[3, 3]}]\n" + + " │ ├─ colSet: (13-25)\n" + + " │ ├─ tableId: 2\n" + + " │ └─ Table\n" + + " │ ├─ name: HU5A5\n" + + " │ └─ columns: [id tofpn i3vta sfj6l v5dpx ljlum idpk7 no52d zrv3b vyo5e swcqv ykssu fhcyt]\n" + + " └─ BEGIN .. END\n" + + " ├─ IF BLOCK\n" + + " │ └─ IF(InSubquery\n" + + " │ ├─ left: new.V5DPX:8!null\n" + + " │ └─ right: Subquery\n" + + " │ ├─ cacheable: false\n" + + " │ ├─ alias-string: select SVAZ4 from TPXHZ\n" + + " │ └─ Table\n" + + " │ ├─ name: TPXHZ\n" + + " │ ├─ columns: [svaz4]\n" + + " │ ├─ colSet: (25,26)\n" + + " │ └─ tableId: 3\n" + + " │ )\n" + + " │ └─ BLOCK\n" + + " │ └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = String field contains invalid value, like empty string, 'none', 'null', 'n/a', 'nan' etc., MYSQL_ERRNO = 1644\n" + + " └─ IF BLOCK\n" + + " └─ IF(NOT\n" + + " └─ IN\n" + + " ├─ left: new.ZRV3B:10!null\n" + + " └─ right: TUPLE(= (longtext), <= (longtext), >= (longtext), < (longtext), > (longtext))\n" + + " )\n" + + " └─ BLOCK\n" + + " └─ SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = The ZRV3B must be on of the following: '=', '<=', '>=', '<', '>'., MYSQL_ERRNO = 1644\n" + "", }, } diff --git a/server/handler.go b/server/handler.go index a6e0afd399..3ce0cf204a 100644 --- a/server/handler.go +++ b/server/handler.go @@ -1084,9 +1084,9 @@ func (h *Handler) executeBoundPlan( _ sqlparser.Statement, plan sql.Node, _ map[string]*querypb.BindVariable, - _ *sql.QueryFlags, + qFlags *sql.QueryFlags, ) (sql.Schema, sql.RowIter, *sql.QueryFlags, error) { - return h.e.PrepQueryPlanForExecution(ctx, query, plan) + return h.e.PrepQueryPlanForExecution(ctx, query, plan, qFlags) } func bindingsToExprs(bindings map[string]*querypb.BindVariable) (map[string]sqlparser.Expr, error) { diff --git a/sql/analyzer/rule_ids.go b/sql/analyzer/rule_ids.go index 97f923e4c9..fd6e183945 100644 --- a/sql/analyzer/rule_ids.go +++ b/sql/analyzer/rule_ids.go @@ -68,7 +68,6 @@ const ( assignRoutinesId // assignRoutines modifyUpdateExprsForJoinId // modifyUpdateExprsForJoin applyUpdateAccumulatorsId // applyUpdateAccumulators - wrapWithRollbackId // wrapWithRollback applyForeignKeysId // applyForeignKeys // validate diff --git a/sql/analyzer/ruleid_string.go b/sql/analyzer/ruleid_string.go index 7186bbc769..8b2855696f 100755 --- a/sql/analyzer/ruleid_string.go +++ b/sql/analyzer/ruleid_string.go @@ -66,27 +66,26 @@ func _() { _ = x[assignRoutinesId-55] _ = x[modifyUpdateExprsForJoinId-56] _ = x[applyUpdateAccumulatorsId-57] - _ = x[wrapWithRollbackId-58] - _ = x[applyForeignKeysId-59] - _ = x[validateResolvedId-60] - _ = x[validateOrderById-61] - _ = x[validateGroupById-62] - _ = x[validateSchemaSourceId-63] - _ = x[validateIndexCreationId-64] - _ = x[ValidateOperandsId-65] - _ = x[validateIntervalUsageId-66] - _ = x[validateSubqueryColumnsId-67] - _ = x[validateUnionSchemasMatchId-68] - _ = x[validateAggregationsId-69] - _ = x[validateDeleteFromId-70] - _ = x[cacheSubqueryAliasesInJoinsId-71] - _ = x[BacktickDefaulColumnValueNamesId-72] - _ = x[TrackProcessId-73] + _ = x[applyForeignKeysId-58] + _ = x[validateResolvedId-59] + _ = x[validateOrderById-60] + _ = x[validateGroupById-61] + _ = x[validateSchemaSourceId-62] + _ = x[validateIndexCreationId-63] + _ = x[ValidateOperandsId-64] + _ = x[validateIntervalUsageId-65] + _ = x[validateSubqueryColumnsId-66] + _ = x[validateUnionSchemasMatchId-67] + _ = x[validateAggregationsId-68] + _ = x[validateDeleteFromId-69] + _ = x[cacheSubqueryAliasesInJoinsId-70] + _ = x[BacktickDefaulColumnValueNamesId-71] + _ = x[TrackProcessId-72] } -const _RuleId_name = "applyDefaultSelectLimitvalidateOffsetAndLimitvalidateStarExpressionsvalidateCreateTablevalidateAlterTablevalidateExprSemloadStoredProceduresvalidateDropTablesresolveDropConstraintvalidateDropConstraintresolveCreateSelectresolveSubqueriesresolveUnionsresolveDescribeQueryvalidateColumnDefaultsvalidateCreateTriggervalidateCreateProcedurevalidateReadOnlyDatabasevalidateReadOnlyTransactionvalidateDatabaseSetvalidatePrivilegesapplyEventSchedulerflattenTableAliasespushdownSubqueryAliasFiltersvalidateCheckConstraintsreplaceCountStarreplaceCrossJoinsmoveJoinConditionsToFiltersimplifyFilterspushNotFiltershoistOutOfScopeFiltersunnestInSubqueriesunnestExistsSubqueriesfinalizeSubqueriesfinalizeUnionsloadTriggersprocessTruncateresolveAlterColumnstripTableNamesFromColumnDefaultsoptimizeJoinspushFiltersapplyIndexesFromOuterScopepruneTablesassignExecIndexesinlineSubqueryAliasRefseraseProjectionflattenDistinctreplaceAggreplaceIdxSortinsertTopNNodesreplaceIdxOrderByDistanceapplyHashInresolveInsertRowsapplyTriggersapplyProceduresassignRoutinesmodifyUpdateExprsForJoinapplyUpdateAccumulatorswrapWithRollbackapplyForeignKeysvalidateResolvedvalidateOrderByvalidateGroupByvalidateSchemaSourcevalidateIndexCreationvalidateOperandsvalidateIntervalUsagevalidateSubqueryColumnsvalidateUnionSchemasMatchvalidateAggregationsvalidateDeleteFromcacheSubqueryAliasesInJoinsbacktickDefaultColumnValueNamestrackProcess" +const _RuleId_name = "applyDefaultSelectLimitvalidateOffsetAndLimitvalidateStarExpressionsvalidateCreateTablevalidateAlterTablevalidateExprSemloadStoredProceduresvalidateDropTablesresolveDropConstraintvalidateDropConstraintresolveCreateSelectresolveSubqueriesresolveUnionsresolveDescribeQueryvalidateColumnDefaultsvalidateCreateTriggervalidateCreateProcedurevalidateReadOnlyDatabasevalidateReadOnlyTransactionvalidateDatabaseSetvalidatePrivilegesapplyEventSchedulerflattenTableAliasespushdownSubqueryAliasFiltersvalidateCheckConstraintsreplaceCountStarreplaceCrossJoinsmoveJoinConditionsToFiltersimplifyFilterspushNotFiltershoistOutOfScopeFiltersunnestInSubqueriesunnestExistsSubqueriesfinalizeSubqueriesfinalizeUnionsloadTriggersprocessTruncateresolveAlterColumnstripTableNamesFromColumnDefaultsoptimizeJoinspushFiltersapplyIndexesFromOuterScopepruneTablesassignExecIndexesinlineSubqueryAliasRefseraseProjectionflattenDistinctreplaceAggreplaceIdxSortinsertTopNNodesreplaceIdxOrderByDistanceapplyHashInresolveInsertRowsapplyTriggersapplyProceduresassignRoutinesmodifyUpdateExprsForJoinapplyUpdateAccumulatorsapplyForeignKeysvalidateResolvedvalidateOrderByvalidateGroupByvalidateSchemaSourcevalidateIndexCreationvalidateOperandsvalidateIntervalUsagevalidateSubqueryColumnsvalidateUnionSchemasMatchvalidateAggregationsvalidateDeleteFromcacheSubqueryAliasesInJoinsbacktickDefaultColumnValueNamestrackProcess" -var _RuleId_index = [...]uint16{0, 23, 45, 68, 87, 105, 120, 140, 158, 179, 201, 220, 237, 250, 270, 292, 313, 336, 360, 387, 406, 424, 443, 462, 490, 514, 530, 547, 573, 588, 602, 624, 642, 664, 682, 696, 708, 723, 741, 774, 787, 798, 824, 835, 852, 875, 890, 905, 915, 929, 944, 969, 980, 997, 1010, 1025, 1039, 1063, 1086, 1102, 1118, 1134, 1149, 1164, 1184, 1205, 1221, 1242, 1265, 1290, 1310, 1328, 1355, 1386, 1398} +var _RuleId_index = [...]uint16{0, 23, 45, 68, 87, 105, 120, 140, 158, 179, 201, 220, 237, 250, 270, 292, 313, 336, 360, 387, 406, 424, 443, 462, 490, 514, 530, 547, 573, 588, 602, 624, 642, 664, 682, 696, 708, 723, 741, 774, 787, 798, 824, 835, 852, 875, 890, 905, 915, 929, 944, 969, 980, 997, 1010, 1025, 1039, 1063, 1086, 1102, 1118, 1133, 1148, 1168, 1189, 1205, 1226, 1249, 1274, 1294, 1312, 1339, 1370, 1382} func (i RuleId) String() string { if i < 0 || i >= RuleId(len(_RuleId_index)-1) { diff --git a/sql/analyzer/rules.go b/sql/analyzer/rules.go index dc7a431b09..26438d7487 100644 --- a/sql/analyzer/rules.go +++ b/sql/analyzer/rules.go @@ -22,7 +22,6 @@ func init() { {applyTriggersId, applyTriggers}, {applyProceduresId, applyProcedures}, {applyUpdateAccumulatorsId, applyUpdateAccumulators}, - {wrapWithRollbackId, wrapWithRollback}, {inlineSubqueryAliasRefsId, inlineSubqueryAliasRefs}, {cacheSubqueryAliasesInJoinsId, cacheSubqueryAliasesInJoins}, {BacktickDefaulColumnValueNamesId, backtickDefaultColumnValueNames}, diff --git a/sql/analyzer/triggers.go b/sql/analyzer/triggers.go index 7fb8b4402a..4aea1ce3c7 100644 --- a/sql/analyzer/triggers.go +++ b/sql/analyzer/triggers.go @@ -346,6 +346,7 @@ func applyTrigger(ctx *sql.Context, a *Analyzer, originalNode, n sql.Node, scope switch n := c.Node.(type) { case *plan.InsertInto: + qFlags.Set(sql.QFlagTrigger) if trigger.TriggerTime == sqlparser.BeforeStr { triggerExecutor := plan.NewTriggerExecutor(n.Source, triggerLogic, plan.InsertTrigger, plan.TriggerTime(trigger.TriggerTime), sql.TriggerDefinition{ Name: trigger.TriggerName, @@ -359,6 +360,7 @@ func applyTrigger(ctx *sql.Context, a *Analyzer, originalNode, n sql.Node, scope }), transform.NewTree, nil } case *plan.Update: + qFlags.Set(sql.QFlagTrigger) if trigger.TriggerTime == sqlparser.BeforeStr { triggerExecutor := plan.NewTriggerExecutor(n.Child, triggerLogic, plan.UpdateTrigger, plan.TriggerTime(trigger.TriggerTime), sql.TriggerDefinition{ Name: trigger.TriggerName, @@ -387,6 +389,7 @@ func applyTrigger(ctx *sql.Context, a *Analyzer, originalNode, n sql.Node, scope "does not support triggers; retry with single table deletes") } + qFlags.Set(sql.QFlagTrigger) if trigger.TriggerTime == sqlparser.BeforeStr { triggerExecutor := plan.NewTriggerExecutor(n.Child, triggerLogic, plan.DeleteTrigger, plan.TriggerTime(trigger.TriggerTime), sql.TriggerDefinition{ Name: trigger.TriggerName, @@ -517,41 +520,3 @@ func orderTriggersAndReverseAfter(triggers []*plan.CreateTrigger) []*plan.Create func triggerEventsMatch(event plan.TriggerEvent, event2 string) bool { return strings.ToLower((string)(event)) == strings.ToLower(event2) } - -// wrapWithRollback wraps the entire tree iff it contains a trigger, allowing rollback when a trigger errors -func wrapWithRollback(ctx *sql.Context, a *Analyzer, n sql.Node, scope *plan.Scope, sel RuleSelector, qFlags *sql.QueryFlags) (sql.Node, transform.TreeIdentity, error) { - // Check if tree contains a TriggerExecutor - containsTrigger := false - transform.Inspect(n, func(n sql.Node) bool { - // After Triggers wrap nodes - if _, ok := n.(*plan.TriggerExecutor); ok { - containsTrigger = true - return false // done, don't bother to recurse - } - - // Before Triggers on Inserts are inside Source - if n, ok := n.(*plan.InsertInto); ok { - if _, ok := n.Source.(*plan.TriggerExecutor); ok { - containsTrigger = true - return false - } - } - - // Before Triggers on Delete and Update should be in children - return true - }) - - // No TriggerExecutor, so return same tree - if !containsTrigger { - return n, transform.SameTree, nil - } - - // If we don't have a transaction session we can't do rollbacks - _, ok := ctx.Session.(sql.TransactionSession) - if !ok { - return plan.NewNoopTriggerRollback(n), transform.NewTree, nil - } - - // Wrap tree with new node - return plan.NewTriggerRollback(n), transform.NewTree, nil -} diff --git a/sql/plan/trigger.go b/sql/plan/trigger.go index fe776e7ba5..d65bac4b31 100644 --- a/sql/plan/trigger.go +++ b/sql/plan/trigger.go @@ -103,103 +103,3 @@ func (t *TriggerExecutor) CheckPrivileges(ctx *sql.Context, opChecker sql.Privil func (t *TriggerExecutor) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte) { return sql.GetCoercibility(ctx, t.left) } - -// TriggerRollback is a node that wraps the entire tree iff it contains a trigger, creates a savepoint, and performs a -// rollback if something went wrong during execution -type TriggerRollback struct { - UnaryNode -} - -var _ sql.Node = (*TriggerRollback)(nil) -var _ sql.CollationCoercible = (*TriggerRollback)(nil) - -func NewTriggerRollback(child sql.Node) *TriggerRollback { - return &TriggerRollback{ - UnaryNode: UnaryNode{Child: child}, - } -} - -func (t *TriggerRollback) WithChildren(children ...sql.Node) (sql.Node, error) { - if len(children) != 1 { - return nil, sql.ErrInvalidChildrenNumber.New(t, len(children), 1) - } - - return NewTriggerRollback(children[0]), nil -} - -// CheckPrivileges implements the interface sql.Node. -func (t *TriggerRollback) CheckPrivileges(ctx *sql.Context, opChecker sql.PrivilegedOperationChecker) bool { - return t.Child.CheckPrivileges(ctx, opChecker) -} - -// CollationCoercibility implements the interface sql.CollationCoercible. -func (t *TriggerRollback) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte) { - return sql.GetCoercibility(ctx, t.Child) -} - -func (t *TriggerRollback) IsReadOnly() bool { - return t.Child.IsReadOnly() -} - -func (t *TriggerRollback) String() string { - pr := sql.NewTreePrinter() - _ = pr.WriteNode("TriggerRollback()") - _ = pr.WriteChildren(t.Child.String()) - return pr.String() -} - -func (t *TriggerRollback) DebugString() string { - pr := sql.NewTreePrinter() - _ = pr.WriteNode("TriggerRollback") - _ = pr.WriteChildren(sql.DebugString(t.Child)) - return pr.String() -} - -type NoopTriggerRollback struct { - UnaryNode -} - -var _ sql.Node = (*NoopTriggerRollback)(nil) -var _ sql.CollationCoercible = (*NoopTriggerRollback)(nil) - -func NewNoopTriggerRollback(child sql.Node) *NoopTriggerRollback { - return &NoopTriggerRollback{ - UnaryNode: UnaryNode{Child: child}, - } -} - -func (t *NoopTriggerRollback) WithChildren(children ...sql.Node) (sql.Node, error) { - if len(children) != 1 { - return nil, sql.ErrInvalidChildrenNumber.New(t, len(children), 1) - } - - return NewNoopTriggerRollback(children[0]), nil -} - -// CheckPrivileges implements the interface sql.Node. -func (t *NoopTriggerRollback) CheckPrivileges(ctx *sql.Context, opChecker sql.PrivilegedOperationChecker) bool { - return t.Child.CheckPrivileges(ctx, opChecker) -} - -// CollationCoercibility implements the interface sql.CollationCoercible. -func (t *NoopTriggerRollback) CollationCoercibility(ctx *sql.Context) (collation sql.CollationID, coercibility byte) { - return sql.GetCoercibility(ctx, t.Child) -} - -func (t *NoopTriggerRollback) IsReadOnly() bool { - return true -} - -func (t *NoopTriggerRollback) String() string { - pr := sql.NewTreePrinter() - _ = pr.WriteNode("TriggerRollback()") - _ = pr.WriteChildren(t.Child.String()) - return pr.String() -} - -func (t *NoopTriggerRollback) DebugString() string { - pr := sql.NewTreePrinter() - _ = pr.WriteNode("TriggerRollback") - _ = pr.WriteChildren(sql.DebugString(t.Child)) - return pr.String() -} diff --git a/sql/query_flags.go b/sql/query_flags.go index fcdd053c31..25b4035e0a 100644 --- a/sql/query_flags.go +++ b/sql/query_flags.go @@ -48,6 +48,7 @@ const ( QFlagDeferProjections // QFlagUndeferrableExprs indicates that the query has expressions that cannot be deferred QFlagUndeferrableExprs + QFlagTrigger ) type QueryFlags struct { @@ -69,6 +70,9 @@ func (qp *QueryFlags) Unset(flag int) { } func (qp *QueryFlags) IsSet(flag int) bool { + if qp == nil { + return false + } return qp.Flags.Contains(flag) } diff --git a/sql/rowexec/builder.go b/sql/rowexec/builder.go index 1cdaa80b94..62a560b17c 100644 --- a/sql/rowexec/builder.go +++ b/sql/rowexec/builder.go @@ -31,8 +31,7 @@ type ExecBuilderFunc func(ctx *sql.Context, n sql.Node, r sql.Row) (sql.RowIter, // sql.ExecSourceRel are also built into the tree. type BaseBuilder struct { // if override is provided, we try to build executor with this first - override sql.NodeExecBuilder - triggerSavePointCounter int // tracks the number of save points that have been created by triggers + override sql.NodeExecBuilder } func (b *BaseBuilder) Build(ctx *sql.Context, n sql.Node, r sql.Row) (sql.RowIter, error) { diff --git a/sql/rowexec/dml.go b/sql/rowexec/dml.go index 4c86bf17b5..c1b4d808b3 100644 --- a/sql/rowexec/dml.go +++ b/sql/rowexec/dml.go @@ -256,32 +256,6 @@ func (b *BaseBuilder) buildDropTable(ctx *sql.Context, n *plan.DropTable, row sq return rowIterWithOkResultWithZeroRowsAffected(), nil } -func (b *BaseBuilder) buildTriggerRollback(ctx *sql.Context, n *plan.TriggerRollback, row sql.Row) (sql.RowIter, error) { - childIter, err := b.buildNodeExec(ctx, n.Child, row) - if err != nil { - return nil, err - } - - savePointCounter := b.triggerSavePointCounter + 1 - savePointName := fmt.Sprintf("%s%v", TriggerSavePointPrefix, savePointCounter) - ctx.GetLogger().Tracef("TriggerRollback creating savepoint: %s", savePointName) - - ts, ok := ctx.Session.(sql.TransactionSession) - if !ok { - return nil, fmt.Errorf("expected a sql.TransactionSession, but got %T", ctx.Session) - } - - if err := ts.CreateSavepoint(ctx, ctx.GetTransaction(), savePointName); err != nil { - ctx.GetLogger().WithError(err).Errorf("CreateSavepoint failed") - } - b.triggerSavePointCounter = savePointCounter - - return &triggerRollbackIter{ - child: childIter, - savePointName: savePointName, - }, nil -} - func (b *BaseBuilder) buildAlterIndex(ctx *sql.Context, n *plan.AlterIndex, row sql.Row) (sql.RowIter, error) { err := b.executeAlterIndex(ctx, n) if err != nil { diff --git a/sql/rowexec/dml_iters.go b/sql/rowexec/dml_iters.go index 0c3bbc0b60..77184b9009 100644 --- a/sql/rowexec/dml_iters.go +++ b/sql/rowexec/dml_iters.go @@ -1,4 +1,4 @@ -// Copyright 2023 Dolthub, Inc. +// Copyright 2023-2024 Dolthub, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -33,6 +33,27 @@ type triggerRollbackIter struct { savePointName string } +func AddTriggerRollbackIter(ctx *sql.Context, qFlags *sql.QueryFlags, iter sql.RowIter) sql.RowIter { + if !qFlags.IsSet(sql.QFlagTrigger) { + return iter + } + + transSess, isTransSess := ctx.Session.(sql.TransactionSession) + if !isTransSess { + return iter + } + + ctx.GetLogger().Tracef("TriggerRollback creating savepoint: %s", TriggerSavePointPrefix) + if err := transSess.CreateSavepoint(ctx, ctx.GetTransaction(), TriggerSavePointPrefix); err != nil { + ctx.GetLogger().WithError(err).Errorf("CreateSavepoint failed") + } + + return &triggerRollbackIter{ + child: iter, + savePointName: TriggerSavePointPrefix, + } +} + func (t *triggerRollbackIter) Next(ctx *sql.Context) (row sql.Row, returnErr error) { childRow, err := t.child.Next(ctx) diff --git a/sql/rowexec/node_builder.gen.go b/sql/rowexec/node_builder.gen.go index f21c8a3ec7..4f2597d683 100644 --- a/sql/rowexec/node_builder.gen.go +++ b/sql/rowexec/node_builder.gen.go @@ -150,8 +150,6 @@ func (b *BaseBuilder) buildNodeExecNoAnalyze(ctx *sql.Context, n sql.Node, row s return b.buildHaving(ctx, n, row) case *plan.Signal: return b.buildSignal(ctx, n, row) - case *plan.TriggerRollback: - return b.buildTriggerRollback(ctx, n, row) case *plan.ExternalProcedure: return b.buildExternalProcedure(ctx, n, row) case *plan.Into: @@ -246,8 +244,6 @@ func (b *BaseBuilder) buildNodeExecNoAnalyze(ctx *sql.Context, n sql.Node, row s return b.buildCreateIndex(ctx, n, row) case *plan.Procedure: return b.buildProcedure(ctx, n, row) - case *plan.NoopTriggerRollback: - return b.buildNoopTriggerRollback(ctx, n, row) case *plan.With: return b.buildWith(ctx, n, row) case *plan.Project: diff --git a/sql/rowexec/transaction.go b/sql/rowexec/transaction.go index 6f1a0829cc..42273eaaa2 100644 --- a/sql/rowexec/transaction.go +++ b/sql/rowexec/transaction.go @@ -156,11 +156,6 @@ func (b *BaseBuilder) buildCommit(ctx *sql.Context, n *plan.Commit, row sql.Row) return sql.RowsToRowIter(), nil } -func (b *BaseBuilder) buildNoopTriggerRollback(ctx *sql.Context, n *plan.NoopTriggerRollback, row sql.Row) (sql.RowIter, error) { - return b.buildNodeExec(ctx, n.Child, row) - -} - func (b *BaseBuilder) buildKill(ctx *sql.Context, n *plan.Kill, row sql.Row) (sql.RowIter, error) { return &lazyRowIter{ func(ctx *sql.Context) (sql.Row, error) {