天天看点

PostgreSQL UDF妙用 - mybatis等框架,不支持的语法都可以通过UDF来实现

PostgreSQL , UDF , 框架支持 , Django , mybatis , ibatis

PostgreSQL 的功能非常的强大,以至于一些框架可能无法完全发挥出PG的功能。

不过现在活跃的框架对PG的支持越来越好了,例如Django,就有专门针对PG的模块,可以使用PG的JSON,索引接口等功能。

<a href="https://docs.djangoproject.com/en/2.0/search/?q=postgresql">https://docs.djangoproject.com/en/2.0/search/?q=postgresql</a>

那么在框架不支持某些PG特性时,有什么方法让它支持起来呢?

答案是UDF,没错调用UDF就可以用到这些特殊的功能了。

打个比方,PG支持9种索引,语法如下:

<a href="https://github.com/digoal/blog/blob/master/201706/20170617_01.md">《自动选择正确索引访问接口(btree,hash,gin,gist,sp-gist,brin,bitmap...)的方法》</a>

<a href="https://github.com/digoal/blog/blob/master/201706/20170627_01.md">《PostgreSQL 9种索引的原理和应用场景》</a>

<a href="https://github.com/digoal/blog/blob/master/201705/20170512_01.md">《Greenplum 最佳实践 - 什么时候选择bitmap索引》</a>

而使用框架时,创建索引也许没有USING method的接口。

使用UDF就可以解决这个问题。

因为<code>select function($parameter)</code>所有框架都支持。

使用UDF,可以实现几乎所有的功能接口,使得任何框架都可以支持PG的所有功能。