• kroki/tomash@moonlight.intranet's avatar
    Bug#19111: TRIGGERs selecting from a VIEW on the firing base table fail. · 4a28f8f1
    kroki/tomash@moonlight.intranet authored
    In a trigger or a function used in a statement it is possible to do
    SELECT from a table being modified by the statement.  However,
    encapsulation of such SELECT into a view and selecting from a view
    instead of direct SELECT was not possible.
    
    This happened because tables used by views (which in their turn
    were used from functions/triggers) were not excluded from checks
    in unique_table() routine as it happens for the rest of tables
    added to the statement table list for prelocking.
    
    With this fix we ignore all such tables in unique_table(), thus
    providing consistency: inside a trigger or a functions SELECT from
    a view may be used where plain SELECT is allowed.  Modification of
    the same table from function or trigger is still disallowed.  Also,
    this patch doesn't affect the case where SELECT from the table being
    modified is done outside of function of trigger, such SELECTs are
    still disallowed (this limitation and visibility problem when function
    select from a table being modified are subjects of bug 21326).  See
    also bug 22427.
    4a28f8f1
view.test 68 KB