Command Triggers, v16
Started by Dimitri Fontainealmost 14 years ago50 messages
Hi,
I guess it's time to start a new thread here. Please find attached
version 16 of the command trigger patch, with augmented documentation
and “magic variable” support (TG_WHEN, TG_OBJECTID and such).
The current version of the patch only supports PLpgSQL, I need to add
support for the other languages in core but I though Thom would like to
be able to play with a new patch before I finish plpython, plperl and
pltcl support.
This patch also includes edits following latest reviews from both Thom,
Andres and Robert, in particular ANY command triggers are now called
from the same place as specific command triggers and receive the same
parameters.
Regards,
--
Dimitri Fontaine
http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support
Attachments:
command-trigger.v16.patch.gzapplication/octet-streamDownload
� \/bO�=kw�6���_����$�%�'��Q$��^Y�Jr����dn(R%)��m�����HP�I������`f0���W��]sC�G��d��f�l��W�����6-����o����ue��>�"�k����os:��B�N�0 W�v���[�~��"��fk>�=�N(��4"��[�I���}
=��3�Nb���kG����Nm6���sR��Y�������FS,x�#�������a��p�K=��������$$.{%I�M&4pfQ�Pw��J�.+%^L��U.�����P��N�v���=�1���U�9h_tOj02�����oG^0!^B���d<�@��G��������m�=���7�To�S[��Qg��I�%>�xiL !�Nl�������x5���yo�����
�u�e�����c���pl; �[\I<�C��W>^��w|F��^Wv��������@����� ��h1-oJqy����IdO}/N o�������p:��d����L]e��Jf[�)N�Z �S��DS�����z��������d>�AM�E4�GI3J�1� ~��M��V{j�?��
�>�� `���=$��}���p���[�>�g����-�h�@x��2��'��"�u�2/ g�>�����/U2����6�m e.�u(�o`j�%��1�=X�S�����qvR���;��dk&� �Jtq�?-�Bl>�d$����K $� L��^#�$�4{�����&P����^D�j�DM������Q�QO�|���~5��$N����� MPz������4�oLI+�����tF��
2X
�6c��=�o����n=%C�M��4����:���R���Fgd
������j���U�����vRMh������3)��������y��8����F�=H���
���$��Og�t�|S*�]Cp�1� ���P�s4���S^E\ejt}�>�a�0�)-�v����.1�������9�3p���� n���=�c�{���Fk[�fu��whVQ��z=�� ����9�Cy���q[�����H��\J�&cN 7�f��$���8!���M�Tp.���7Mi�i�j��
�1���lF�8%;�0��'�^���$oOo � ����|�Q�q{�s��%B�b�'�|p���"�20��?��#:���� Q�`�M�-� ���D>���f%[Y�^�q���/`���\�ze�|��>���" �����w�xAi^�8.��G��a�����"�P;��y��=��$��{�-�?[��d��$��e����X�5�Z����1�b#�s���+b"�4 1��>��Y�]I�#�+��q�SN' �E����sx�������x�"����s���fu��lnL&���h]�jh�������bgG���[��ln����f�C!�����<YW����Sb@�u�}�����e���\M`�r�y�p�6��L�q�S9<|"�8���.�_w�lK�y����M�v��K�v����*'��K�D�6
J���H(��`,�F��\�%�":���f���n�p�yS9~*�q�S9>*z�"H������
4���-�MS�nK���5
���J$8Uw�!,l����q`]Ua�w�������%[O��4
�$l�����e��~����n��0N@"���,(��
�������a�Lh����W��8�5�����7.���&�L;
{{���~'5���
�`>��>�e)��;^0���6�Hc��S�cp�f����Dm(��� 3_�SV�6���Y�:�3�)��0�?�*�Sl��YY�'��~
y6mB(�x.��������|8�� #?^�,�b�����#T��f�����������c*m�,Vn��:L�C�p��O�B�B_�.V��w������@��6��!�9L-��[� 1s� �K� |l\����u�i7�����n
�hk����e��`�fe�=)�3����yY��K]�2�rr��'7��2��Ec'�f������}��%KCV������~�e+���w�������`�u8'Stu�������&!�8A-� (�"�/������ �)�o�����}��*��r���ob��Y�6J�T�(������bl� ���B%��"k�����= d�[0W7L%a�O��
�<���4Fl����0
}�D|R��p�C��.$����-�D�xx ��'w�c5���:�����ca- ����O��k�����@G�����8���oxh�42x2����k�v0�x����(^���;�����9���\mO���YeO�ObP�S�{[��0����^���� 6����������e(>��6�}��O��p���'it�%di"~��W0�e��i������d�{h����6
+�
��I��,�5�g���7���Y�:�j��F�\t:
�v��v�z�|q�������O�[h���>��Vc� {��K�gl0P�Q#�o��N�{v�8�[^ ����g,$�N��7W�6���k���@�E����n���~��R$a L���^�g��i���W�����f47z��M@�������u~����XKz�����
��s��v�L���m}��U�+6/a�B�%*-���(�dJ���J&f�KU��:'��.���mY����������J5i��i�&*{Wy�4 �e�����2������ ��6��s�([h�(3Q%Y5�0�z��c��v��9Q�9Ad�������%"�����+t�ce����������ie���5���*E���&p�D7Q�+)��J�
�
bVh� Y�6'b�^0^���6+WD�s�����2=�4�WW��!�Tf8fQ&f}���5J
����h?��:����@�����B}�Cz���]k����6�2# SDZ)O�Ls0�yP}H����2���%f���P�(�MM� �<��8#���D�o��`�F��D� �-��G�q2�h�a�]�=Zpp����-�r�,K�\����OI������;��*�[Kk�-xi99t��Kse�l���Q�$|u���V���&"�V���G?�H2g�x� d�>-Y�+����l���&aE4�y�]!��|�
��!�Y��l`�q"��
���m9�E&���!a O�>A�B���W8X:}?�c����J �����B�p�O[��8�,��������3��!��_����p�����9V���E��U��k6%(P��f2����2�8
�i�c
���b�S9S�Q�HV�aA���2<k����3��5C�e��9&��sY��dx'n
�%Fm���+�4��:���m�{��� 9L�I!���Rb <����j��PM1�b���<{"�
�����?�I�2-0�O�N�*X�J��}�'Ws�;�
+M. 0���T�|� oJ����b�T��G��Hl��s�R�El-�3�x���L��?���K+�v�B�%o6����[!^�~�}DrG���6��huR����R��"A������ � �0k�Al����� �"��!�Al�5��V� l,��2������.o��Ta�n���)�LS��R8�D��T�*>P����������������s�BD����N�O����i����Z���K�%�Z�i�� �\�/�l)b�Q&����`,�������(&4��T&�hz��,�����R c�\���������X���v��^�$�AV�����B� vP�1����-��e���2
O�jt:Mu�L�Q�J�� ;L(�e��\2��5h�����g
,��"���t����Nd�k�2�mQ.�`<�#/Y�����t��
kK����40���@��fD|����D��3��:QtN�0H��t�-zrBV��eg��.q�-x�!��@�����p~��B�N�f+[��\gQx�����~��m��+E�����R;P�+���J]�]��X��D�M#�vPn,V�����w�
�@9�RhFq1�JrI[y�AMN�TU����% i����e:A����
���16��~7(�9���n���$��7�`;t�����\=����`�&l���I-p�'L f���aX���C�r�r�]����w����[e,@�Pn�z�U���E���c���J��i*r���S_�#*=�ZP���l��J���F���:��{,%c����}7a|����Q�H��_z����m`�74�C4���� ��v��T�.vv��R�
�k+�W��5�>p������e�-���.�c�%J���4�F�#}9h�:�������R��j6���"����������U��/,#y� ���F��2cf��?�b}jZ�l�M �'�#<v����O~�/YY��vM����#�V��&�����x�e��8K�_gk�[�b$��C����d�Yd�������*v"b�;y��A3i@��s�>�%7���_�n��T��K�{l�K^l���f&���8n����gK��$���\� c�[��f�Z�; ����87���9Q�)�Qb�l-����Q��6���4�K��(�T��9�'���bZW3 ���%����O�����wL8�kk� .�F\���X9�W�� }�HK k�; �><���I�w����F�����T'>5
~������W�eu �g��������F��,1����+�;K/��q[jogUv'��$���p�;������u�"j��,3���iZ�z^��Gfu���*�����������Y��?���5�n�����f~�����x���&�YB����3�"!��q|��������}��Z��g7Qx��E!���K"�_(�����+����s�Ys��E��w{�)/�8�������:E4�Y�F�H��g��,�����'��CU2YDP� ���J�� L��S�6f�nF�6E"�@f��4z�lyj�����"�J|��NKL�GDI`[I�p�1#���tQO���r���rh<X%�`t ��
�� .�u��X�a������������r�(]���-L��^��u�T�����#d����q�N/P���sjy�E��oc��a^����8Xpn�f�.�I��9���+���aewW����3O�,�"�uJLo��:(�����`��9���(S�{ �������������R���c%Zc����
��?/���+=�������z��h��RD'0���7����m�\���Q8f�A�3�
osX/bJ��y/I�l�=E
]�����v|f����"S���,�R{���F��C�L>G�����^- ��Zl��e�7����6~�����%��^IzK6;AP��c��&xt�4���[5�
���f�"�Cw7!>+Dyj�Z����!�e��<M<2������M��~\x�Py�mK�����|�0s47��������8\]#�A�k�0L���g�7v�W]�����qE�V���F"����l�m�'��-�����|w��|�9z�t��/�fl������K'�<���; �
�����?�O����D����r���F�^��w��Sr���%���&T���Hr
��0����V�I�'�s��7�����<��}��./��3p����=���}��<a����;����!��z�K6�8����H��C|g���$���
�'p�{A�����F^�/�+>'c'a_P8�S�_�,��?�����o�B��;��Y5���r�s��Z�Z
5R����C�=&�7��!@KC�}�Y�P�����i0�����lSF�w� ����j�z���>�I����g`�r+M�����
R��!wc��t`������\B��3�L��* (WG�%�E�Y���fF3�t�b���.����!�*�-��
��l�e�V&�F�p�m�����E�a~7u�r�&c��A�hg)��x��B���XR���DS���%���f�M���3�����Ei:����=��o*�G|sck�!����sE�q���?�7>
/���_a��'.��0��$��qL����h��j�o:����61yU�~����R�������+:�u�_��e�6�l
���a���j���7���;��3w��v�-����"�RJ&�oNe�A�K��y.C�9��#=�G��������O�!DL���8&�����7n�����=�PX�����>��s�Qc�o��DB�PC�#+���[��F7� A��8'�=ch�������5���� u:�i[g2/A��,��Xc��G�&��}K����v/�������|�G�oBn>q�$�����������B4�������j��V�
����_2,��,��|����5 �x��
3�����U�s��X�������&&��j���%E�P6@+�����P�L�`��@'�Zs
�8zxR�����'��$�#Pdo8�f?��T�"������7��>����Y^G��|����/V����\��C �#�R$����=56P��Y�Y��A���0�)O����1��,X���)����w���@�.����j������Z|����!��K��^�w������,]}�� ��m�`��b������U0��%�rW�G�qHN���L��ys���ix�:�6�n5��\���.K<�ap��^��G?��b >?8�#�p��z���s�RT����
����i����?���9;V"�m<L��F��C�bxq�������7p;��y�Xb�.�7/��T`���_����s�j9p+9$����*,}u�B����J�j�Q���`����I[f������8*6��6:�N���b���t���0�5���=�!�#�azt8{����������d� m��O�5
�����D��,+����]�����VG��[�����<��a8un�sP����"������|���E�Zb�� R��`�2L ;��2�u��F� �btg?��5�D����XRE��K��X�p�C�[�2^�B\�w�(���&����U�F�5��la������L��z��.������X�M������O���$���T�q����0|�4P��} ���f+!�����e��J+��.��\f�s$�4�G�B8�>����Gp��� ����s*�p'1=�@��)��4��h0IW�~��u�r�O�.��E���q�+E
���7�����n��/:��n�����"�a���Z>���uj�U]�+���� ��|����c����Q�4��jT�8q�7�q�����{��5����w��a����_g ��N��0 )c�X���`:9T� ?�(�B������+�j�][(*� PCkdbB/Z��+i�iv�������A����-*Z-�k ��l7�Z�\�E3m<���o��������������S=1�f4o������%��HI&aT�$�x9����3��Q<r(�9���>{�N���`e
������
�3`\U ���,�b��4��v{P�W
0o�;tW�N������
�����X2�u&����������K�K�:��8��
�|%�kt�;��;�qG~�I���:g+�d����A�#����Qn�a���&���5i6�"+�orW��o��*R1���vc���^o��"��Ai���8
`G�������+��*�5&;@t"����K�Xk���J ���v]� �}-N� U����m�U��U�?����h��`�B]��������f"���l������J���){��R��u�[��p�u6"�����fv�m
D���co��T�u�*�9����g\��]���7�;F�r��V4A�Q��FR.�(�L�U��x��
��7�o��7�9qH8�����@������s�j\G�d]��Q�@G���g�4q�h�K��`���PL4Zph���
^�������J������6�c���[ QM����1B[W�f��x��6���tO.tc�2
q���P8h+�Eb!���`#h��p��r�K�� OM*�����\�X�)�!���$?;+��H*
}�Q���2��|�c��.*�=�{�[q�W���p�4�m�g��BW��w�����qIt(���OJj����Z\��j�� N*�u ��V�S��UzNo�9�%�n���OCf��6�JY-�(���{���c��Sne�c&��������c�c��T7�D�+���hO C��~���)���rA�t���D9_��{�\�PRz�F�g,K(����zyS����r�oOnI��H|wTNY^0v,Dz`����������+�]q�l��Ol7�;����@�@���3l�hh~;\]��e9�Dk�*R�����a��o���'�fj�U4��y�� ���->4��v���4O��ID/j, �S�Xw���6F��L�vF��6�|��Z��\��jni�B�
������,���"�R�Q���N�SK������#��%^��T �]��e5G
2�
���DC�]^s����s�{v���{����%S����m���e���������m�a��pe�!��U=�#2f G�M �S�Fc����7��Y�E���\�G ^\`������� I0i�.���k<L�X�:�����LS�-���Y��i��jk��a_!����x�4�R��'�\�{t2�8���U�
��zK����_"���Y��_��['�����>Hy+�4�%����Jk�=�PO��J�&�\�PRl`�#'���c���5��N�� gq)A������V+�5�����M'�K������X�f��n�#z�"�*?v���Y����_F����]�����������8� T�F�&v�0�e_7��i�u�7��n�pI�Y��nv��y�o~�\bw�X�W�e0���o�"������KoAJN�_L����3����.���Wv�^������a�dF�YB3gJz�����c��?C�9~�����NK�i�m���M�R/�@l�h���NIxq��"�)������W�����f�$�J���!@Be
]�uV���F��}u�����!�����m�M�9�N�9m�~�]��@��\�r�����thq����I��`�M7X�^��=�z�
��/~��!P��i���0f���+nE��!O��4�h
W�'OQ��i:������5�.��P��.S)������=�Y��T���[Ukg��jM�m��������h�=0�l����c]�/_�w�Hk3�f���$^����&M��5��d^IM#5�2��i�[d���Vs�����B�W���c+�C���~Z@�8&�C���T�lKb�F�A���(dp2s�t�����m�'R�M���
E��o�����S7�2#��_G��oU-4�n����H���
�N�@v������_���f(��3��?�'
�r ����:�����UZs��71�G�jT��������h#��d<�>��(
�g��X�����o������O�"���g{0��%H�(���oe��.�/
pt�*���Z_%PTs(��=�l���P��C���mL�
X�\O �BC&gG��Y�I3F?[�c�Z�Y����F�E7�$rm�����-�5�)��$����G��5?Z��6�����?CJ������d|�NNuI���^������s1����d�����5���?T����_j �1c�1���"e������-�bu�gZ����3�kVg��V���*"K�.���l��n�jp�%�����G{����7:�tv����#���Im U��P8�4���j�#/o�,^U������#�3c��0�j�rK��#�������}����l��]��4��N��l���T�hb��x~_��\� �L�^��������e����b!@z�}����w/{(�%�+j,�����������U%��@�n���7h��n�s�?w�������?KE��|��v�����j�m���L&|3Qp��`������1>����ka�������T�#fw*���}��}u;7rS���LUh��c�R�Qm���a�����������D����l���'/�Y���M������������� ��������[���Fb8��l� ����\������*M�j�q�C�����������~6���^���8��I���X��9��!y���{��t���C���@�����sp���_)�)�%��E/W�F4�)4����8E� �#��R�W?I�S�O�#����?��r����nE��3A8�;�����lWe���u�b-���L�9��^�sM�7��������>��;"�<_�OZ):H�;��R9Ly_w��\����j��W� Q�3D��D���$��ruMP{����^�=��������� G�'�Dzg*�������4}2�'����i��������7e����$�1?�Fp�M{�m��,��I�.u��
2l�R5�4/vUn��D�D�zF�YV��9B8_KIyc�gWr�2!��l!O#��.RO�(<P1������I�����u�m�*���!'�����F>����(�������F�R����nE��>������h��3Y���pWX�
���
�]�Uo�u�������RO�,�I��)+���p��1"W��|��B�_�g��q9b�A��=g)�t��'��S�J����Mg"n��]�������%���)��3�+�
���sTe"=�Vk�V���3��1nlc�|�oF>3Rdu0y���}&�� �/��w�����HD���q�vq�/HeQM��F�4��Y�#�Ww��G���s�����&��V����N����g$���e����u�
M+c�|�<f$�.��k�xRJ�������XX�UXka]"!��!��L���A)���:���S�mx��q��M��k�J�� ;f���nx\G������+,i�4�����1�2�[���s��$��T�P�����w>L�Rn���}�X�vc�n�}jo^��
XG&+5_���w�S:
�>�`V���Itm�Qy6�m{R����$+�A�� *ztWxj�%���[ ]sz��� ��������V��
Wb������:�������w�T��{��S��y����18���F��9g��-a�q�w?�O~I���n�t������-�����'����`f��v��E��K���\->�n0��x������������]cMC��<���9*8�T���T���gT*�8p�x����~N�
IW��?M�X�J]�e=���4=@�8��?)N�Y;oY�6������� ��d��q'��>Q���/���9��[�?t�8��1��9���9����4k+�e�;������$���,�2��e��J�N��D��]��}6��8
��G��(������ <�z�)>�NJ��6?.y=�Cc����-p�h�R�qd�����i�v(T�s���<C�g$�c��H\�����a3��* 3�"
���;H����J�l����v�R�D��=��/v��+&�R��$��M& ������ �d��������w���&����$��d|tg[�V�gk��v4��p;�D�� ���wL��S\<�6m����*:rL��V��[��b>h+r� �M]I�{g�����l�K��b(�z�p �-F3���
I�vg�����P��g��[�T�j���x� �n[<�Z���&�= �
�����X�u�j�� B�9���{Y���9e�ag�A�s�R���u���:q�'\h�<���{�M'�a��s��p^`�'|,,VFiDU����a��hu��t��@F�z�{��������3�2[�����
�&�#'������i�SLN3*�9:������s���0����V���i���j�������trJ���;E��Pt�:�\� ��#5�q��<�^�FH���
3�������8�5���E�� ��C��s�Qsk2�s��S�r��Z@0�#�Z�����A<P���#���������Z���l����'D�;���d��x:�$|�l�f0�&�LS-�&�V��[k)��=���k�V`���Ukn]�N��8�V��7�`�=[�m�VTR��`|��_����d�Kc������i^E���.Q jQv�$/n�a�vl[���1���
'�N����=0+�5�f��l����4�+U�;"\��[�?��������0#�v�`��A�#~�� �)������h���;�0�>\$�0FB5���Qm�q�fy������kC3b��8qbL%�����i��n �KJK��Mc����E��wD
�B0����"