@@ -740,3 +740,108 @@ initReadOnlyStringInfo(StringInfo str, char *data, int len)
740
740
#define COMPARE_GT BTGreaterStrategyNumber
741
741
#define pk_cmptype pk_strategy
742
742
#endif
743
+
744
+ /* PG18 adds is_merge_delete param to ExecBR{Delete|Update}Triggers function.
745
+ * This has been backported to 17.6 but with a new name (ExecBR{Delete|Update}TriggersNew)j
746
+ * Add compat function to cover 3 versions (pre 17.6, 17.6 - 18, post 18)
747
+ * https://github.com/postgres/postgres/commit/5022ff25
748
+ */
749
+ #if PG_VERSION_NUM < 170006
750
+ #define ExecBRDeleteTriggersCompat (estate , \
751
+ epqstate , \
752
+ relinfo , \
753
+ tupleid , \
754
+ fdw_trigtuple , \
755
+ epqslot , \
756
+ tmresult , \
757
+ tmfd , \
758
+ is_merge_delete ) \
759
+ ExecBRDeleteTriggers(estate, epqstate, relinfo, tupleid, fdw_trigtuple, epqslot, tmresult, tmfd)
760
+ #define ExecBRUpdateTriggersCompat (estate , \
761
+ epqstate , \
762
+ relinfo , \
763
+ tupleid , \
764
+ fdw_trigtuple , \
765
+ epqslot , \
766
+ tmresult , \
767
+ tmfd , \
768
+ is_merge_delete ) \
769
+ ExecBRUpdateTriggers(estate, epqstate, relinfo, tupleid, fdw_trigtuple, epqslot, tmresult, tmfd)
770
+ #endif
771
+
772
+ #if PG_VERSION_NUM >= 170006 && PG_VERSION_NUM < 180000
773
+ #define ExecBRDeleteTriggersCompat (estate , \
774
+ epqstate , \
775
+ relinfo , \
776
+ tupleid , \
777
+ fdw_trigtuple , \
778
+ epqslot , \
779
+ tmresult , \
780
+ tmfd , \
781
+ is_merge_delete ) \
782
+ ExecBRDeleteTriggersNew(estate, \
783
+ epqstate, \
784
+ relinfo, \
785
+ tupleid, \
786
+ fdw_trigtuple, \
787
+ epqslot, \
788
+ tmresult, \
789
+ tmfd, \
790
+ is_merge_delete)
791
+ #define ExecBRUpdateTriggersCompat (estate , \
792
+ epqstate , \
793
+ relinfo , \
794
+ tupleid , \
795
+ fdw_trigtuple , \
796
+ epqslot , \
797
+ tmresult , \
798
+ tmfd , \
799
+ is_merge_delete ) \
800
+ ExecBRUpdateTriggersNew(estate, \
801
+ epqstate, \
802
+ relinfo, \
803
+ tupleid, \
804
+ fdw_trigtuple, \
805
+ epqslot, \
806
+ tmresult, \
807
+ tmfd, \
808
+ is_merge_delete)
809
+ #endif
810
+ #if PG18_GE
811
+ #define ExecBRDeleteTriggersCompat (estate , \
812
+ epqstate , \
813
+ relinfo , \
814
+ tupleid , \
815
+ fdw_trigtuple , \
816
+ epqslot , \
817
+ tmresult , \
818
+ tmfd , \
819
+ is_merge_delete ) \
820
+ ExecBRDeleteTriggers(estate, \
821
+ epqstate, \
822
+ relinfo, \
823
+ tupleid, \
824
+ fdw_trigtuple, \
825
+ epqslot, \
826
+ tmresult, \
827
+ tmfd, \
828
+ is_merge_delete)
829
+ #define ExecBRUpdateTriggersCompat (estate , \
830
+ epqstate , \
831
+ relinfo , \
832
+ tupleid , \
833
+ fdw_trigtuple , \
834
+ epqslot , \
835
+ tmresult , \
836
+ tmfd , \
837
+ is_merge_delete ) \
838
+ ExecBRUpdateTriggers(estate, \
839
+ epqstate, \
840
+ relinfo, \
841
+ tupleid, \
842
+ fdw_trigtuple, \
843
+ epqslot, \
844
+ tmresult, \
845
+ tmfd, \
846
+ is_merge_delete)
847
+ #endif
0 commit comments