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 9744 게시물 읽기
No. 9744
PostgreSQL JDBC 및 현재 접속한 세션 정보 가져오기
작성자
궁금궁금
작성일
2016-12-22 11:52
조회수
8,630

 

안녕하세요 PostgreSQL 질문 드립니다.

현재 사용하고 있는 버전은 최신 버전인 9.6 입니다.

 

지금 어떤 External Function을 만들고 그 함수를 실행할 때, 세션 정보를 가져오는 C 라이브러리를 구현했습니다. 

그런데, C 라이브러리에서 세션 정보를 가져올 때, 새로 connection을 맺어서 정보를 가져오므로,

Function을 실행하는 세션의 정보와 전혀 다른 정보를 가져오게 됩니다.

위와 같은 상황과 관련 해서 질문 드립니다.

 

1. PostgreSQL JDBC에 getCopyAPI() 라는 함수가 있던데, 정확히 어떤 일을 하는 지요?

 

2. Oracle JDBC에는 접속 정보 없이, 현재의 접속 정보로 접속할 수 있는 defaultConnection() 이란 함수가 있는데,

이와 같은 기능을 하는 함수는 없나요? 아무리 찾아도 나오지는 않네요.. 

 

3. C 라이브러리에서 접속 정보 없이, Function을 실행하는 세션의 정보를 가져올 수는 없나요? 

 

답변 부탁드립니다. 

 

감사합니다!

 

 

 

 

 

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

 

1. getCopyAPI() 함수는 SQL 명령어 COPY 를 사용해서 클라이언트로 넘어오는 자료를 처리하는 함수입니다.

2. defaultConnection() 함수는 오라클 고유 확장 함수입니다. jdbc 기본 getConnection() 함수의 결과와 같을 것 같네요.

3. 무엇을 어떻게 하고싶은지 몰라서 답변을 어떻게 드려야 할지 모르겠네요.

 

그 external function 이라는 놈이 어떤 놈이고 뭐하는 놈인지 몰라서 ....

 

김상기(ioseph)님이 2016-12-23 10:42에 작성한 댓글입니다.

음 PostgreSQL DB레벨에서 사용할 수 있는 함수를 C 라이브러리로 작성했습니다.

 

C 라이브러리로 select pid from pg_stat_activity 를 실행하게끔 만드려면 

PQConnectdb("user=   , dbname=   , password=   ");

이렇게 user / dbname / password 라는 접속 정보를 입력해서 connection을 맺어야 하지 않습니까?

 

이때, 이 함수를 실행하려고 접속한 세션 A 라는 세션과 함수 내부에서 쿼리를 실행하려고 Connection 정보를 줘 접속하는 세션 B 가 다르게 생성되어 버립니다. 

 

DB레벨에서 함수를 실행하고자 하는 세션 A

라이브러리 레벨에서 쿼리를 수행할 대 접속하는 세션 B 

 

이렇게 두개의 세션이 생겨버립니다.

 

DB 레벨에서 함수를 실행하고자 하는 세션 A의 커넥션 정보를 라이브러리 레벨에서 가져올 수 있는 방법이 묻고 싶은 것이었습니다!

 

제발 알려주시면 감사하겠습니다...

 

 

 

궁금궁금님이 2016-12-23 14:10에 작성한 댓글입니다. Edit

디비 레벨에서 사용하는 함수라 함은 사용자 정의 함수를 말하는 것인지요?

select my_function();

이렇게 쿼리로 사용하려고 하는 함수를 말합니까? 이 부분이라면, 그냥 현재 클라이언트와 관련된 각종 예약어들을 사용하면 됩니다. current_user, current_database ....

저 my_function()에서 왜 새 연결을 해야하는지 이해가 되지 않아서.

 

혹 server side C api를 이야기 하는 것이라면,

http://postgresql.kr/docs/current/spi.html

페이지를 참조하세요.

김상기(ioseph)님이 2016-12-23 15:57에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9748libpq-be.h 의 Port 구조체 정보 가져오기 [3]
궁금궁금
2016-12-30
8597
9747Postgresql C 라이브러리 [3]
궁금궁금
2016-12-23
7657
9746윈도우 환경에서 이중화 방법 [3]
사랑
2016-12-22
9411
9744PostgreSQL JDBC 및 현재 접속한 세션 정보 가져오기 [3]
궁금궁금
2016-12-22
8630
9742User Defined Type 리스트 보는 방법 [4]
고은진
2016-12-12
8050
9741DB 물리디스크 공간확보 문제 질의드립니다. Drop table관련 [1]
PG마스터
2016-12-11
8250
9740공공기관, 행정기관에서 postgresql 을 쓰는 사례가 있나요? [1]
전상도
2016-12-08
8087
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다