* view_has_instead_trigger - does view have an INSTEAD OF trigger for event? * * If it does, we don't want to treat it as auto-updatable. This test can't * be folded into view_query_is_auto_updatable because it's not an error * condition. */
| 2538 | * condition. |
| 2539 | */ |
| 2540 | static bool |
| 2541 | view_has_instead_trigger(Relation view, CmdType event) |
| 2542 | { |
| 2543 | TriggerDesc *trigDesc = view->trigdesc; |
| 2544 | |
| 2545 | switch (event) |
| 2546 | { |
| 2547 | case CMD_INSERT: |
| 2548 | if (trigDesc && trigDesc->trig_insert_instead_row) |
| 2549 | return true; |
| 2550 | break; |
| 2551 | case CMD_UPDATE: |
| 2552 | if (trigDesc && trigDesc->trig_update_instead_row) |
| 2553 | return true; |
| 2554 | break; |
| 2555 | case CMD_DELETE: |
| 2556 | if (trigDesc && trigDesc->trig_delete_instead_row) |
| 2557 | return true; |
| 2558 | break; |
| 2559 | default: |
| 2560 | elog(ERROR, "unrecognized CmdType: %d", (int) event); |
| 2561 | break; |
| 2562 | } |
| 2563 | return false; |
| 2564 | } |
| 2565 | |
| 2566 | |
| 2567 | /* |
no outgoing calls
no test coverage detected