PostgreSQL SPI 예 학습
5956 단어 PostgreSQL
http://www.postgresql.org/docs/9.1/static/spi-examples.html
SPI 의 예 에 서 는 어떻게 컴 파일 하고 배 치 했 는 지 말 하지 않 았 습 니 다. 제 가 보충 하 겠 습 니 다.
컴 파일 및 배치:
[root@localhost soft]# export LD_LIBRARY_PATH=/usr/local/pgsql/lib
[root@localhost soft]# echo $LD_LIBRARY_PATH
/usr/local/pgsql/lib
[root@localhost test]# cc -fpic -I/usr/local/pgsql/include/server/ -shared -o execq.so execq.c
[root@localhost test]# ls
execq.c execq.so
[root@localhost test]#
[root@localhost test]# cp execq.so /usr/local/pgsql/lib
[root@localhost test]#
실행:
postgres=# create function execq(text,integer) returns integer as '/usr/local/pgsql/lib/execq.so','execq' language c strict;
CREATE FUNCTION
postgres=#
postgres=# select execq('create table abc(id integer)',0);
execq
-------
0
(1 row)
postgres=#
postgres=# insert into abc values( execq('insert into abc values(0)',0));
INSERT 0 1
postgres=#
postgres=# insert into abc values( execq('insert into abc values(0)',0));
INSERT 0 1
postgres=# select * from abc;
id
----
0
1
(2 rows)
postgres=#
postgres=# select execq('select * from abc',0);
INFO: EXECQ: 0
INFO: EXECQ: 1
execq
-------
2
(1 row)
postgres=#
postgres=# select execq('insert into abc select id+2 from abc',1);
execq
-------
2
(1 row)
postgres=# select * from abc;
id
----
0
1
2
3
(4 rows)
postgres=#
postgres=# select execq('select * from abc', 10);
INFO: EXECQ: 0
INFO: EXECQ: 1
INFO: EXECQ: 2
INFO: EXECQ: 3
execq
-------
4
(1 row)
postgres=#
[저자: 기술자 고 건 @ 블 로그 파 크 mail: [email protected] ]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redmine 데이터베이스를 MySQL에서 PostgreSQL로 마이그레이션 (보충)Redmine 의 Database 를 MySQL 로 운용하고 있었습니다만, MySQL 5.6 이상이나 MariaDB 에는 , , 이러한 티켓이 수년 동안 방치된 상황을 감안하여, PostgreSQL로 마이그레이션하기...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.