database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 9562 게시물 읽기
No. 9562
Postgre 외부 라이브러리 사용방법..
작성자
초보DBA(r00tlee)
작성일
2015-07-03 10:08
조회수
10,712

안녕하세요. PostgreSQL을 막 시작한 초보 새내기 입니다...

 

리눅스 환경 c로 만들어진 so파일을 PL단에서

ex) select abc() from dual; 이런식으로..

외부 라이브러리로 호출해야 하는데 메뉴얼이 전부 다 영어라서.. 많은 어려움을 겪고 있습니다.

 

PL단에서 so 파일을 호출하는 방법만 알면 c로 만들어진 so파일을 바로 호출하여 함수를 사용할 수 있는 것인지.. 아니면

c로 만들어진 so파일을 애초부터 Postgre에서 뭔가 제공하는 방법에 의해서 so파일을 만들어야 하는지 궁금합니다.

 

많은 도움 부탁드리겠습니다.

이 글에 대한 댓글이 총 8건 있습니다.

개발쪽은 잘 모르지만 제 생각엔 ㅋ

postgresql.conf에서

 

shared_preload_libraries = '$libdir/dbms_pipe,$libdir/edb_gen,$libdir/pg_stat_statements,$libdir/auto_explain'

이 파라미터에 해당 so파일 경로를 지정해주세요

김주왕(kimjuking)님이 2015-07-03 11:14에 작성한 댓글입니다.

so파일을 만들때 postgre만의 무언가를 위한 그런 절차가 필요한지 아니면

통상적으로 리눅스에서 c파일을 so파일로 만든 것을 바로 postgre에서 적용할 수 있는 것인지 궁금해요..

초보DBA(r00tlee)님이 2015-07-03 11:24에 작성한 댓글입니다.

http://postgresql.kr/docs/9.4/xfunc-c.html

설명처럼 abc() 함수를 만드려면, 

c 코드로 PostgreSQL용 인터페이스를 만들어야합니다. 

 

실 예제는

https://github.com/i0seph/textsearch_ko/blob/master/ts_mecab_ko.c

 

이런데서 살펴볼 수 있습니다. 

C 조금 만진다면 크게 어렵지는 않습니다. 

 

김상기(ioseph)님이 2015-07-03 13:07에 작성한 댓글입니다.

그렇게 만든 동적 라이브러리를 호출할려면(함수 사용) 어떻게 해야하는지 도움좀 주세요..

ex) create ... 무슨 작업을 거쳐야 하는데 작업방법...

초보DBA(r00tlee)님이 2015-07-03 15:47에 작성한 댓글입니다.
이 댓글은 2015-07-03 15:48에 마지막으로 수정되었습니다.

https://github.com/i0seph/textsearch_ko/blob/master/ts_mecab_ko.sql

김상기(ioseph)님이 2015-07-03 17:39에 작성한 댓글입니다.

postgresql-9.4.4.tar.gz 다운 받아서 압축 풀고나서

gcc -fpic -I/root/test/postgresql-9.4.4/src/include -c test.c 실행을 했더니

error: pg_config_ext.h: No such file or directory 등등 에러가 많이 나네요..

pg_config_ext.h 파일이 정말 존재하지도 않고요.. 도움좀 부탁드리겠습니다. ㅠ_ㅠ

초보DBA(r00tlee)님이 2015-07-06 10:11에 작성한 댓글입니다.

 개인적으로 pg_config 명령어를 수행하면 Command not found 라는 메세지가 실행이 되네요..

뭐가 잘못 된거에요?..

초보DBA(r00tlee)님이 2015-07-06 10:33에 작성한 댓글입니다.

 pg_config 가 있는 경로를 PATH 환경 변수에 추가 해 주셔야 합니다. 

 

리눅스라면, 쉘 프롬프트에서

export PATH=/usr/local/pgsql/bin:$PATH

이런식으로

김상기(ioseph)님이 2015-07-06 16:15에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9566에러 함수 관련... [2]
초보DBA
2015-07-07
11423
9565유저 확인방법.. [2]
초보DBA
2015-07-07
9791
9563pgbouncer 이용하려는데 잘 안되네요 [1]
심상호
2015-07-05
10695
9562Postgre 외부 라이브러리 사용방법.. [8]
초보DBA
2015-07-03
10712
9561Log의 원인을 잘모르겟네요 [3]
초DBA
2015-07-02
10164
9560ORACLE INSTR같은 문자열 검색 함수 없나요? [2]
발코더
2015-06-24
11457
9559create extension dblink 명령 실행시 문의드립니다.
정성헌
2015-06-19
10188
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다