使用C中的用户定义函数中止Postgres查询
当我中止使用C编写的用户定义函数的postgres查询时,上下文不会跳到中止Transaction,直到我完成了对用户定义函数的一次调用使用C中的用户定义函数中止Postgres查询,c,postgresql,C,Postgresql,当我中止使用C编写的用户定义函数的postgres查询时,上下文不会跳到中止Transaction,直到我完成了对用户定义函数的一次调用 为了测试这一点,我们可以在函数中放入类似sleep或while的内容,并检查当我们在这个函数中时,它不会中止处理,对此有什么解释吗?或者这是出乎意料的?您能详细说明一下吗?好吧,假设它应该在用户函数仍在执行时跳转-您认为它应该如何跳转?创建另一个线程?在同一线程中并行执行两个代码流?请重新编排。刚才我只能发现所描述的行为是预期的,并且设计得很好,而您想要的东西
为了测试这一点,我们可以在函数中放入类似sleep或while的内容,并检查当我们在这个函数中时,它不会中止处理,对此有什么解释吗?或者这是出乎意料的?您能详细说明一下吗?好吧,假设它应该在用户函数仍在执行时跳转-您认为它应该如何跳转?创建另一个线程?在同一线程中并行执行两个代码流?请重新编排。刚才我只能发现所描述的行为是预期的,并且设计得很好,而您想要的东西太奇怪了。C中的用户定义函数是动态加载库的一部分,所以不应该在那里处理SIGINT吗?您是否建议函数在单独的线程中执行,因此不能中断?在psql中发出控件C的正常情况下,只有当我在C函数中时,控件才会跳到中止事务处理程序。