postgresql 插件 之 pg_variables 插件
pg_variables 插件
地址: https://github.com/postgrespro/pg_variables
介绍:
pg_variables是一个当前用户会话级别的插件,相当于当前连接用户的全局变量,可以通过pgv_set设置变量,只要当前用户不退出连接,其他的地方就可以用pgv_get获取到通过pgv_set设置内容的值。在特定的场景下还是有些用处的。 默认的情况下,全量的值是事务无关的,只要设置了就有值,但是也可以将pgv_set的最后一个值,默认是非事务相关的,设置为true,这样,在事务中使用完后,这些变量将不存在了。 例如
SELECT pgv_set('vars', 'int1', 101);
BEGIN;
SELECT pgv_set('vars', 'int2', 102);
ROLLBACK;
SELECT * FROM pgv_list() order by package, name;
package | name | is_transactional
---------+------+------------------
vars | int1 | f
vars | int2 | f
如果是事务相关的,如
BEGIN;
SELECT pgv_set('vars', 'trans_int', 101, true);
SAVEPOINT sp1;
SELECT pgv_set('vars', 'trans_int', 102, true);
ROLLBACK TO sp1;
COMMIT;
SELECT pgv_get('vars', 'trans_int', NULL::int);
pgv_get
---------
101
安装:
$ cd pg_variables
$ make USE_PGXS=1
$ sudo make USE_PGXS=1 install
$ make USE_PGXS=1 installcheck
$ psql DB -c "CREATE EXTENSION pg_variables;"
更多详情,参一下官方地址就可以明白了。