我正在基于GiST作为扩展在 PostgreSQL 中创建自己的索引方法。我希望我的运算符中的一个函数(查看示例部分)根据用户定义的值表现不同 - 我希望避免用户不得不删除并再次创建运算符。
所以,我正在考虑引入一个GUC变量。但是,我不太确定如何适当地实现这一点。现在在我的实现中,操作符是使用 GUC 的值创建的,并且一旦 GUC 值在运行时发生变化,它的行为就不会有所不同。
我不确定是否必须以某种方式更改函数的签名以使用 GUC,或者是否必须引入一些指向 GUC 的指针。我找不到任何有用的材料,也没有完全理解实现这一目标的内部机制。
我必须使用哪些最佳实践来引入在运行时改变行为的运算符?不幸的是,我找不到太多关于在这种情况下编写内部函数/操作符/GUC 的信息,所以很高兴听到任何形式的反馈。