* Process BEFORE EACH STATEMENT triggers */
| 2476 | * Process BEFORE EACH STATEMENT triggers |
| 2477 | */ |
| 2478 | static void |
| 2479 | fireBSTriggers(ModifyTableState *node) |
| 2480 | { |
| 2481 | ModifyTable *plan = (ModifyTable *) node->ps.plan; |
| 2482 | ResultRelInfo *resultRelInfo = node->rootResultRelInfo; |
| 2483 | |
| 2484 | switch (node->operation) |
| 2485 | { |
| 2486 | case CMD_INSERT: |
| 2487 | ExecBSInsertTriggers(node->ps.state, resultRelInfo); |
| 2488 | if (plan->onConflictAction == ONCONFLICT_UPDATE) |
| 2489 | ExecBSUpdateTriggers(node->ps.state, |
| 2490 | resultRelInfo); |
| 2491 | break; |
| 2492 | case CMD_UPDATE: |
| 2493 | ExecBSUpdateTriggers(node->ps.state, resultRelInfo); |
| 2494 | break; |
| 2495 | case CMD_DELETE: |
| 2496 | ExecBSDeleteTriggers(node->ps.state, resultRelInfo); |
| 2497 | break; |
| 2498 | default: |
| 2499 | elog(ERROR, "unknown operation"); |
| 2500 | break; |
| 2501 | } |
| 2502 | } |
| 2503 | |
| 2504 | /* |
| 2505 | * Process AFTER EACH STATEMENT triggers |
no test coverage detected