¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

31.1. �ǡ����١�����³����ؿ�

PostgreSQL�ΥХå�����ɥ����ФȤ���³���������ˤϡ��ʲ��δؿ�����Ѥ��ޤ��� ���ץꥱ�������ץ������ϥХå�����ɤȤ���³����٤�ʣ���ij������Ȥ��Ǥ��ޤ��� ��1�Ĥ���ͳ�Ȥ��ơ�ʣ���Υǡ����١����ؤΥ����������󤲤��ޤ����� �ġ�����³�ϡ�PQconnectdb��PQconnectdbParams�ޤ���PQsetdbLogin�ؿ���ƤӽФ����Ȥ�������PGconn���֥������Ȥˤ�ä�ɽ����ޤ��� �ʤ��������δؿ��ϡ�PGconn���֥������Ȥ˳�����Ƥ�ۤ�Τ鷺���ʥ����;͵������ʤ����������NULL�ǤϤʤ���˥��֥������ȤΥݥ��󥿤��֤��ޤ��� �ޤ���������³���֥������Ȥ��̤����䤤��碌���������ˡ�PQstatus�ؿ���ƤӽФ��ơ��ǡ����١����Ȥ���³�������������ɤ����򸡺����ʤ���Фʤ�ޤ���

警告

Unix��ǡ�libpq��³�򳫤����ץ������Υե������ϡ��ƤȻҤΥץ�������Ʊ�������åȤȥ��ڥ졼�ƥ��󥰥����ƥ�λ񸻤�ͭ���뤿�ᡢͽ�����̷�̤򾷤����Ȥ�����ޤ��� ������ͳ�ˤ�ꡢ�����¹Է�����ҥץ��������ɤ߹��ि��exec��Ԥ����Ȥ������ȸ��äƤ⡢���Τ褦�ʻ���ˡ�Ͽ侩����ޤ���

注意: Windows�Ǥϡ�ñ��Υǡ����١�����³��ȿ�����Ƴ��ϤȽ�λ�򷫤��֤���硢��ǽ����夵������ˡ������ޤ��� ����Ū�ˤϡ���³���ϤȽ�λ���Ф��ơ����줾��libpq��WSAStartup()��WSACleanup()��ƤӽФ��ޤ��� WSAStartup()��WSACleanup()���ͤ�����������줿����Windows�饤�֥�껲�ȥ�����Ȥ����ä����ޤ��� ���ȥ�����Ȥ����ä����ξ�硢WSACleanup()�ƤӽФ������ƤΥ꥽����������������Ƥ�DLL�ϥ�������ɤ���ޤ��� ����Ϲ�������Ǥ��� �������򤹤�ˤϡ��Ǹ�Υǡ����١�����³���Ĥ���������꥽��������������ʤ��褦�˥��ץꥱ������󤬼�ư��WSAStartup()��ƤӽФ����Ȥ��Ǥ��ޤ���

PQconnectdbParams

�����˥ǡ����١��������Фؤ���³��������ޤ���

PGconn *PQconnectdbParams(const char **keywords, const char **values, int expand_dbname);

���δؿ��ϡ�2�Ĥ�NULL��ü�����󤫤���������ѥ�᡼������Ѥ��ơ��ǡ����١����Ȥ���³�򿷤���1�ij�Ω���ޤ��� 1���ܤ�ʸ��������Ȥ�����������keywords�ǡ����줾�줬������ɤȤʤ�ޤ��� 2���ܤ�values�ǡ��ƥ�����ɤ��ͤ��󶡤��ޤ��� ��Ҥ�PQsetdbLogin�Ȥϰۤʤꡢ�ؿ��Υ����ͥ�����ѹ������˥ѥ�᡼��������ĥ�Ǥ��ޤ��Τǡ����ץꥱ�������ץ������򿷤��˺�������ݤˤϡ����δؿ�(�⤷������֥��å��⡼�ɤǤ褯���������򤹤�PQconnectStartParams��PQconnectPoll)����Ѥ��뤳�Ȥ򤪴��ᤷ�ޤ���

expand_dbname���󥼥��ξ�硢dbname������ɤ��ͤ�conninfoʸ����Ȥ���ǧ�������뤳�Ȥ��Ǥ��ޤ��� �ʲ��򻲾Ȥ��Ƥ���������

����������Ϥ��Ƥ��٤ƥǥե���ȥѥ�᡼������Ѥ��뤳�Ȥ��Ǥ��ޤ��� �ޤ��Ϥ���������1�İʾ�Υѥ�᡼�������������뤳�Ȥ�Ǥ��ޤ��� ������Ĺ���ϰ��פ��ʤ���Фʤ�ޤ��� keywords����κǸ����NULL���Ǥǽ�������ߤ��ޤ���

��������ͭ���ʥѥ�᡼���Υ�����ɤϰʲ��˼����̤�Ǥ���

host

��³����ۥ���̾����ꤷ�ޤ��� ���ΰ����򥹥�å���ǻϤ᤿��硢TCP/IP�ˤ���̿��ǤϤʤ���Unix�ɥᥤ����̿����������뤳�Ȥˤʤ�ޤ��� ���ξ�硢�����ͤϥ����åȥե�������Ǽ����ǥ��쥯�ȥ��̾���ˤʤ�ޤ��� host�����ꤵ��ʤ��ä����Υǥե���Ȥϡ�/tmp�ˤ���Unix�ɥᥤ��Υ����åȤ���³���뤳�ȤǤ��� �ʤޤ��ϡ�PostgreSQL�ι��ۻ��˻��ꤷ���̤Υǥ��쥯�ȥ�ˤ��륽���åȤǤ����� Unix�ɥᥤ�󥽥��åȤ�����ʤ��ޥ���ˤ�����ǥե���Ȥϡ�localhost����³���뤳�ȤǤ���

hostaddr

��³����ۥ��Ȥ�IP���ɥ쥹����ꤷ�ޤ��� ����ϡ�172.28.40.9�Ȥ��ä�ɸ��Ū��IPv4���ɥ쥹�񼰤Ǥʤ���Фʤ�ޤ��� ���Ѥ���ޥ����IPv6�򥵥ݡ��Ȥ�����ϡ����Υ��ɥ쥹����Ѥ��뤳�Ȥ�Ǥ��ޤ��� ���Υѥ�᡼���������ʸ���󤬻��ꤵ���ȡ�TCP/IP�̿�����˻��Ѥ���ޤ���

host�������hostaddr����Ѥ��뤳�Ȥǡ����ץꥱ������󤬥ۥ���̾�θ�����Ԥʤ鷺�˺Ѥߤޤ��� �ä˻���Ū���󤬤��륢�ץꥱ�������ǤϽ��פˤʤ�Ǥ��礦�� ��������Kerberos��GSSAPI�����SSPIǧ�ڤ�Ԥ����ץꥱ�������Ǥϡ��ۥ���̾��ɬ�פˤʤ�ޤ��� SSL������δ����ʸ��ڤ�Ԥ�����Ʊ�ͤǤ��� �ʲ��ε�§�����Ѥ���ޤ��� hostaddr��Ȥ鷺��host����ꤷ�����ϡ��ۥ���̾�θ�����ȯ�����ޤ��� host��Ȥ鷺��hostaddr����ꤷ����硢hostaddr�ϥ����ФΥ��ɥ쥹�Ȥʤ�ޤ��� �ۥ���̾��ɬ�פ��������³��Ԥ����Ԥ��ޤ��� host��hostaddr��ξ������ꤷ����硢hostaddr�������ФΥ��ɥ쥹�Ȥʤ�ޤ��� host���ͤ�ǧ�ڤ両����Ū��ɬ�פȤ���ʤ��¤�̵�뤵�졢ɬ�פȤ������ˤϥۥ���̾�Ȥ��ƻ��Ѥ���ޤ��� host��hostaddr���б�����ޥ����̾���Ȱ��פ��ʤ����ϡ�ǧ�ڤ˼��Ԥ����ǽ��������Τ����դ��Ƥ��������� �ޤ���hostaddr�ǤϤʤ�host��~/.pgpass(項31.14�򻲾�)�Ǥ���³�μ��̤˻��Ѥ���ޤ���

�ۥ���̾��ۥ��ȤΥ��ɥ쥹���Ѥ��ʤ���硢libpq�ϥ��������Unix�ɥᥤ�󥽥��åȤ���Ѥ�����³���ޤ��� ��������Unix�ɥᥤ�󥽥��åȤ�����ʤ��ޥ���Ǥϡ�localhost�ؤ���³���ߤޤ���

port

�����Хۥ��ȤǤ���³�ѤΥݡ����ֹ桢�ޤ��ϡ�Unix�ɥᥤ����³�ξ��ϡ������åȥե�����γ�ĥ�Ҥ���ꤷ�ޤ���

dbname

�ǡ����١���̾����ꤷ�ޤ��� �ǥե���Ȥϥ桼��̾��Ʊ���Ǥ���

user

�ǡ����١�������³����PostgreSQL�桼��̾����ꤷ�ޤ��� �ǥե���Ȥϡ����Υ��ץꥱ��������¹Ԥ��Ƥ���桼���Υ��ڥ졼�ƥ��󥰥����ƥ���̾����Ʊ���Ǥ���

password

�����Ф��ѥ���ɤˤ��ǧ�ڤ�ɬ�פȤ������˻��Ѥ����ѥ���ɤ���ꤷ�ޤ���

connect_timeout

��³�Ѥκ����Ե����֤���ñ��(10�ʿ�������ɽ����ʸ����Ȥ��Ƶ��Ҥ��Ƥ�������)�ǻ��ꤷ�ޤ��� �����⤷����̤����ϡ�̵�»��֤��Ե����̣���ޤ��� 2��̤�����Ե����֤���Ѥ��뤳�Ȥϴ���ޤ���

options

�¹Ի��˥����Ф��������륳�ޥ�ɥ饤�󥪥ץ������ɲä��ޤ��� �㤨�С������-c geqo=off�����ꤹ��ȡ�geqo�ѥ�᡼���Υ��å�����ͤ�off�ˤʤ�ޤ��� ͭ���ʥ��ץ����˴ؤ���ܺ٤�第18章��Ĵ�٤Ƥ���������

application_name

application_name����ѥ�᡼�����ͤ���ꤷ�ޤ���

fallback_application_name

application_name����ѥ�᡼����ͽ���ͤ���ꤷ�ޤ��� ��³�ѥ�᡼���ޤ���PGAPPNAME�Ķ��ѿ��ˤ��application_name���ͤ����ꤵ��ʤ����ˡ������ͤ����Ѥ���ޤ��� ͽ����̾������ꤹ�뤳�Ȥϡ��ǥե���ȤΥ��ץꥱ�������̾�����ꤷ���������桼���ˤ⤽����񤭤Ǥ���褦�ˤ��Ƥ�������������Ū�ʥ桼�ƥ���ƥ��ץ�������ͭ�ѤǤ���

keepalives

���饤�����¦�ˤ�����TCP�����ץ��饤�֤λ��Ѥ����椷�ޤ��� �ǥե�����ͤ�1�Ǥ��ꡢͭ���Ǥ��뤳�Ȥ��̣���ޤ��� �����������ץ��饤�֤�˾�ޤʤ����ϡ�̵���Ǥ��뤳�Ȥ��̣���를�������ꤹ�뤳�Ȥ��Ǥ��ޤ��� ���Υѥ�᡼����Unix�ɥᥤ�󥽥��åȷ�ͳ����³�Ǥ�̵�뤵��ޤ���

keepalives_idle

TCP�������Ф˥����ץ��饤�֥�å�����������������˳�ư��Ԥ�ʤ����֤���ñ�̤����椷�ޤ��� �����Ȥ����ͤǤϥ����ƥ�Υǥե���Ȥ���Ѥ��ޤ��� Unix�ɥᥤ�󥽥��åȷ�ͳ�Ǥʤ��줿��³�ξ��⤷���ϥ����ץ��饤�֤�̵���ʾ�硢���Υѥ�᡼����̵�뤵��ޤ��� �����TCP_KEEPIDLE�����åȥ��ץ����ޤ���TCP_KEEPALIVE�����åȥ��ץ�������ѤǤ��륷���ƥप���Windows�ǤΤߥ��ݡ��Ȥ���ޤ��� ¾�Υ����ƥ�Ǥϸ��̤�����ޤ���

keepalives_interval

TCP�����ץ��饤�֥�å��������Ф�������������Ф���ʤ����ˡ����ø�˺�����Ԥ��������椷�ޤ��� �����Ȥ����ͤǤϥ����ƥ�Υǥե���Ȥ���Ѥ��ޤ��� Unix�ɥᥤ�󥽥��åȷ�ͳ�Ǥʤ��줿��³�ξ�硢�ޤ��ϥ����ץ��饤�֤�̵���ˤ��Ƥ����硢���Υѥ�᡼����̵�뤵��ޤ��� �����TCP_KEEPINTVL�����åȥ��ץ�������ѤǤ��륷���ƥप���Windows�ǤΤߥ��ݡ��Ȥ���ޤ��� ¾�Υ����ƥ�Ǥϸ��̤�����ޤ���

keepalives_count

�����ФؤΥ��饤�������³�����פˤʤä��Ȥߤʤ��ޤǡ����󥭡��ץ��饤�֤η����ǧ��뤫�����椷�ޤ��� �����Ȥ����ͤǤϥ����ƥ�Υǥե���Ȥ���Ѥ��ޤ��� Unix�ɥᥤ�󥽥��åȷ�ͳ�Ǥʤ��줿��³�ξ�硢�ޤ��ϥ����ץ��饤�֤�̵���ˤ��Ƥ����硢���Υѥ�᡼����̵�뤵��ޤ��� �����TCP_KEEPCNT�����åȥ��ץ�������ѤǤ��륷���ƥ�ǤΤߥ��ݡ��Ȥ���ޤ��� ¾�Υ����ƥ�Ǥϸ��̤�����ޤ���

tty

̵�뤵��ޤ�(�����ϡ�����ϥ����ХǥХå����Ϥ��������������ꤹ���ΤǤ���)��

sslmode

���Υ��ץ����ϡ��ɤ�SSL�ˤ�������TCP/IP��³��ͥ���٤ǥ����Ф�Ĵ�䤹�뤫����ꤷ�ޤ��� 6�ĤΥ⡼�ɤ�����ޤ���

表 31-1. sslmode���ץ����

���ץ��������
disable��SSL��³�Τ߻��
allow�ǽ����SSL��³���ԡ� ���Ԥξ����SSL��³����
prefer�ʥǥե���ȡ��ǽ��SSL��³���ԡ� ���Ԥξ�硢��SSL��³����
requireSSL��³�Τ߻��
verify-caSSL��³�Τ߻�Ԥ��������о����񤬿��Ѥ��줿CA����ȯ�Ԥ��줿���򸡾�
verify-fullSSL��³�Τ߻�Ԥ��������о����񤬿��Ѥ��줿CA����ȯ�Ԥ��줿��������Ӥ��Υ����Хۥ���̾����������Τ�ΤȰ��פ��뤫�򸡾�

�����Υ��ץ���󤬤ɤΤ褦��ư���Τ��ˤĤ��Ƥ�項31.17�򻲾Ȥ��Ƥ���������

sslmode��Unix�ɥᥤ�󥽥��å��̿��Ǥ�̵�뤵��ޤ��� SSL���ݡ��Ȥʤ���PostgreSQL������ѥ��뤵�줿���ˡ�require��verify-ca��verify-full����Ѥ���ȥ��顼�ˤʤ�ޤ��� ������allow��prefer�ϻ��ѤǤ��ޤ������ºݤ�libpq��SSL��³������դ��ޤ���

requiressl

���Υ��ץ�����sslmode�����ٻ�������������ѻ�ͽ��ˤʤäƤ��ޤ���

1�����ꤹ�뤳�Ȥǡ������Фؤ�SSL��³��ɬ�פˤʤ�ޤ� (�����sslmode��require��Ʊ���Ǥ�)�� �����Ф�SSL��³������դ��ʤ���硢Libpq����³����䤷�ޤ��� 0(�ǥե����)�����ꤹ�뤳�Ȥǡ������Ф���³������Ĵ���Ԥ��ޤ��� (sslmode��prefer��Ʊ���Ǥ���) SSL���ݡ����դ���PostgreSQL�򥳥�ѥ��뤷�����ˤΤߡ����Υ��ץ�������ѤǤ��ޤ���

sslcert

���Υѥ�᡼���ϡ�~/.postgresql/postgresql.crt�Ȥ����ǥե���Ȥ��֤������륯�饤�����SSL������Υե�����̾����ꤷ�ޤ��� ���Υѥ�᡼����SSL��³����Ω���Ƥ��ʤ�����̵�뤵��ޤ���

sslkey

���Υѥ�᡼���ϥ��饤����Ⱦ�������Ф��ƻ��Ѥ������̩���ξ�����ꤷ�ޤ��� �ǥե���Ȥ�~/.postgresql/postgresql.key������˻��Ѥ����ե�����̾���ޤ��ϳ���"���󥸥�"�ʥ��󥸥�Ȥ�OpenSSL�����ɲ�ǽ�ʥ⥸�塼��ˤ��������륭������ꤹ�뤳�Ȥ��ǽ�Ǥ��� �������󥸥�λ���ˤϥ�����Ƕ��ڤä����󥸥�̾�ȥ��󥸥���ͭ�θ����̻Ҥ�ޤ�Ǥ��ʤ���Фʤ�ޤ��� SSL��³����Ω���Ƥ��ʤ���礳�Υѥ�᡼����̵�뤵��ޤ���

sslrootcert

���Υѥ�᡼����SSLǧ�ڶ�(CA)�ξ�����Υե�����̾����ꤷ�ޤ��� ���Υե����뤬¸�ߤ����硢�����о�����Ϥ�����ǧ�ڶɤ�1�Ĥǽ�̾����Ƥ��뤫�ɤ������ڤ���ޤ��� �ǥե���Ȥ�~/.postgresql/root.crt�Ǥ���

sslcrl

���Υѥ�᡼����SSL�����񼺸��ꥹ�ȡ�CRL�ˤΥե�����̾����ꤷ�ޤ��� ���Υե��������󤵤줿������¸�ߤ�����硢����ϥ����о������ǧ���褦�Ȥ�����˵��䤵��ޤ��� �ǥե���Ȥ�~/.postgresql/root.crl�Ǥ���

krbsrvname

Kerberos5�ޤ���GSSAPI��ǧ�ڻ��˻Ȥ���Kerberos�����ӥ�̾�Ǥ��� �������뤿��ˤϡ�����ϥ����Ф�Kerberosǧ������Υ����ӥ�̾�Ȱ��פ��Ƥ��ʤ���Фʤ�ޤ��� (項19.3.5�����項19.3.3�⻲�Ȥ��Ƥ���������)

gsslib

GSSAPIǧ�ڤǻ��Ѥ����GSS�饤�֥��Ǥ��� Windows��Τߤǻ��Ѥ���ޤ��� libpq��ǧ�ڤ��ǥե���Ȥ�SSPI�ǤϤʤ�������Ū��GSSAPI�饤�֥�����Ѥ�����ˤ�gssapi�����ꤷ�Ƥ���������

service

�ɲäΥѥ�᡼���Ѥ˻��Ѥ���륵���ӥ�̾�Ǥ��� pg_service.conf����ɲ�Ū����³�ѥ�᡼�����ݻ����륵���ӥ�̾����ꤷ�ޤ��� ����ˤ�ꥢ�ץꥱ�������ϥ����ӥ�̾���������Ǥ�����³�ѥ�᡼������Ū���ݼ�Ǥ���褦�ˤʤ�ޤ��� 項31.15�򻲾Ȥ��Ƥ���������

�ѥ�᡼�������ꤵ��ʤ��ä����ˤϡ��б�����Ķ��ѿ��������å�����ޤ���項31.13�򻲾Ȥ��Ƥ��������ˡ� �Ķ��ѿ������ꤵ��Ƥ��ʤ����ϡ����ꤵ�줿�Ȥ߹��ߤΥǥե�����ͤ����Ѥ���ޤ���

expand_dbname���󥼥������ġ�dbname��=���椬�ޤޤ���硢 PQconnectdb���Ϥ��줿���(���)�Ȥޤä���Ʊ����ˡ��conninfo�Ȥ��Ʋ�ᤵ��ޤ��� ����ޤǽ������줿������ɤ�conninfoʸ������Υ�����ɤǾ�񤭤���ޤ���

����Ū�˥�����ɤϤ������������Ƭ���饤��ǥå�����ǽ�������ޤ��� ���αƶ��ϥ�����ɤ������֤��줿���ǡ��Ǹ�˽������줿�ͤ��Ĥ뤳�Ȥˤʤ�ޤ��� ���Τ��ᡢdbname������ɤε��Ҿ������դ��뤳�Ȥǡ�conninfoʸ����ˤ�겿����񤭤���뤫��������񤭤���ʤ�������ꤹ�뤳�Ȥ��Ǥ��ޤ���

PQconnectdb

�����˥ǡ����١��������Фؤ���³��������ޤ���

PGconn *PQconnectdb(const char *conninfo);

���δؿ���conninfoʸ���󤫤���������ѥ�᡼������Ѥ��ơ��������ǡ����١�����³�򳫤��ޤ���

����ʸ������Ϥ��Ƥ��٤ƥǥե���ȥѥ�᡼������Ѥ��뤳�Ȥ��Ǥ��ޤ��� �ޤ�����ʸ���Ƕ��ڤ뤳�Ȥ�1�İʾ�Υѥ�᡼�������������뤳�Ȥ�Ǥ��ޤ��� �ƥѥ�᡼����keyword = value�Ȥ������������ꤵ��ޤ��� ���浭�������ζ���ʸ���Ͼ�ά��ǽ�Ǥ��� �����ͤ򵭽Ҥ��롢�⤷���ϡ�����ʸ����ޤ��ͤ򵭽Ҥ��뤿��ˤϡ��㤨��keyword = 'a value'�Τ褦��ñ�������Ǥ����äƤ��������� �����ñ������䤪��ӥХå�����å���ϥХå�����å���ǥ��������ס��Ĥޤ�\'�����\\�Τ褦�ˤ��ʤ���Фʤ�ޤ���

����ǧ�������ѥ�᡼��������ɤ����Ҥ��̤�Ǥ���

PQsetdbLogin

�����˥ǡ����١��������Фؤ���³��������ޤ���

PGconn *PQsetdbLogin(const char *pghost,
                     const char *pgport,
                     const char *pgoptions,
                     const char *pgtty,
                     const char *dbName,
                     const char *login,
                     const char *pwd);

����ϥѥ�᡼��������ꤷ��PQconnectdb�����ȤǤ��� ����Ǥ��ʤ��ѥ�᡼������˸����ͤˤʤ����������Ʊ��ε�ǽ������ޤ��� ���ꤷ���ѥ�᡼�����Ф���NULL�⤷���϶�ʸ����Ȥ���ȡ�����ϥǥե���Ȥ���Ѥ��뤳�Ȥˤʤ�ޤ���

dbName���=���椬�ޤޤ���硢PQconnectdb���Ϥ��줿���Ȥޤä���Ʊ��������conninfoʸ����Ȥ��ư����ޤ��� ���θ�Ĥ�Υѥ�᡼������Τ褦��Ŭ�Ѥ���ޤ���

PQsetdb

�����˥ǡ����١��������Фؤ���³��������ޤ���

PGconn *PQsetdb(char *pghost,
                char *pgport,
                char *pgoptions,
                char *pgtty,
                char *dbName);

����ϡ�login��pwd��NULL�ݥ��󥿤����ꤹ��PQsetdbLogin��ƤӽФ��ޥ����Ǥ��� ���˸Ť��ץ������ؤθ����ߴ����Τ�����󶡤���Ƥ��ޤ���

PQconnectStartParams
PQconnectStart
PQconnectPoll

�֥��å����ʤ���ˡ�ǡ��ǡ����١��������Фؤ���³��������ޤ���

PGconn *PQconnectStartParams(const char **keywords, const char **values, int expand_dbname);

PGconn *PQconnectStart(const char *conninfo);

PostgresPollingStatusType PQconnectPoll(PGconn *conn);

�����3�Ĥδؿ�����Ѥ��ơ���⡼��I/O�μ¹Ի��˥��ץꥱ������󥹥�åɤμ¹Ԥ��֥��å�����ʤ��褦�ˡ��ǡ����١��������Фؤ���³��������ޤ��� ���μ�ˡ�������ϡ�I/O �ν�λ�Ԥ���PQconnectdbParams�ޤ���PQconnectdb�����ǤϤʤ������ץꥱ�������ץ������Υᥤ��롼�פǤǤ��뤳�Ȥˤ���ޤ��� ����ˤ�äơ����ץꥱ��������¾�ν������¹Ԥ��Ƥ��ν�����������뤳�Ȥ��Ǥ��ޤ���

PQconnectStartParams�Ǥϡ����PQconnectdbParams�����������褦�ˡ��ǡ����١�����³��keywords�����values���󤫤�������졢expand_dbname�ˤ�ä����椵�줿�ѥ�᡼������Ѥ��Ƴ�Ω���ޤ���

PQconnectStart�Ǥϡ����PQconnectdb�����������褦�ˡ�conninfoʸ���󤫤�������줿�ѥ�᡼������Ѥ��ƥǡ����١�����³���Ω���ޤ���

PQconnectStartParams��PQconnectStart��PQconnectPoll�Τɤ����ʲ������¤�Ŭ�礹����֥��å����ޤ���

  • hostaddr��host�ѥ�᡼���ϡ��ۥ���̾�����IP���ɥ쥹������ۥ���̾�εհ�����������ʤ��褦��Ŭ�ڤ˻��Ѥ���ʤ���Ф����ޤ��� �����Υѥ�᡼���ˤĤ��Ƥξܺ٤ϡ����Ҥ�PQconnectdbParams����򻲾Ȥ��Ƥ���������

  • PQtrace��ƤӽФ����ϡ��ȥ졼���˻��Ѥ��륹�ȥ꡼�४�֥������Ȥ��֥��å�����ʤ����Ȥ��ݾڤ���Ƥ��ʤ��ƤϤʤ�ޤ���

  • �ץ�����޼��Ȥ�����˼����褦�ˡ�PQconnectPoll��ƤӽФ����˥����åȤ�Ŭ�ڤʾ��֤ˤ��뤳�Ȥ��ݾڤ��ʤ��ƤϤ����ޤ���

���ա�PQconnectStartParams�λ��Ѥϸ�Ҥ�PQconnectStart��������Ƥ��ޤ���

��֥��å���³�׵��Ϥ��ˤϤޤ���conn=PQconnectStart("connection_info_string")��ƤӽФ��ޤ��� conn��NULL�ξ�硢libpq��������PGconn��¤�Τ������Ƥ��ʤ��ä����Ȥ�ɽ���ޤ��� �����Ǥʤ����ϡ�Ŭ�ڤ�PGconn�ؤΥݥ��󥿤��֤���ޤ� �ʤ��������ǡ����١�������������³����Ƥ��뤳�Ȥ�ɽ���Ƥ���櫓�ǤϤ���ޤ���ˡ� PQconnectStart�����ͤ��֤äƤ����ʳ��ǡ�status=PQstatus(conn)��ƤӽФ��ޤ��� �⤷��status��CONNECTION_BAD�����������ˤϡ�PQconnectStart�����Ԥ��Ƥ��ޤ���

PQconnectStart�����������顢������³�������󥹤�ʤ�뤿��ˡ�libpq��ݡ���󥰤��ޤ��� �ǡ����١�����³���ظ�ˤ��륽���åȤε��һҤ���Ф��ˤϡ�PQsocket(conn)����Ѥ��ޤ��� �ʲ��η����֤��Ǥ��� ľ����PQconnectPoll(conn)��PGRES_POLLING_READING�ξ�硢�����åȤ��ɤ߹��߽����������ޤ��Ե����ޤ��� ��select()��poll()�ʤɤΥ����ƥ�ؿ��Ǽ�����ޤ����� �����ơ�����PQconnectPoll(conn)��ƤӽФ��ޤ��� ȿ�Ф�ľ����PQconnectPoll(conn)��PGRES_POLLING_WRITING�ξ�硢�����åȤν񤭹��߽����������ޤ��Ե��������θ塢PQconnectPoll(conn)����ٸƤӽФ��ޤ��� �ޤ�PQconnectPoll��ƤӽФ��Ƥ��ʤ���硢�ĤޤꡢPQconnectStart�θƤӽФ�ľ��Ǥϡ�ľ����PGRES_POLLING_WRITING�Ǥ��ä�����Ʊ�ͤν�����Ԥʤ��ޤ��� ���η����֤���PQconnectPoll(conn)������³��³���μ��Ԥ򼨤�PGRES_POLLING_FAILED���⤷���ϡ���³��Ω�������������Ȥ򼨤�PGRES_POLLING_OK���֤��ޤǷ�³���ޤ���

��³���Ƥ���֤ϡ����ĤǤ�PQstatus��ƤӽФ����Ȥǡ���³�ξ��֤򸡺����뤳�Ȥ��Ǥ��ޤ��� ���δؿ���CONNECTION_BAD���֤���硢��³��³���ϼ��Ԥ��Ƥ��ꡢCONNECTION_OK���֤���硢��³����Ω���Ƥ��ޤ��� ��ҤΤ褦�ˡ����Τ�����ξ��֤⡢PQconnectPoll������ͤ���Ʊ�ͤ˸��ФǤ��ޤ��� ����ʳ��ξ��֤ϡ���Ʊ������³��³���δ֡ʤΤߤˡ˸���뤳�Ȥ�����ޤ��� �����ϡ���³�ץ���������θ��ߤ��ʳ��򼨤���ΤǤ��ꡢ�㤨�Х桼���ؤΥե����ɥХå����󶡤��뤳�Ȥ˻��ѤǤ��ޤ��� �ʲ��ξ��֤�����ޤ���

CONNECTION_STARTED

��³�γ�Ω�Ԥ����֤Ǥ���

CONNECTION_MADE

��³��OK�Ǥ��������Ԥ����֤Ǥ���

CONNECTION_AWAITING_RESPONSE

�����Ф���α����Ԥ����֤Ǥ���

CONNECTION_AUTH_OK

ǧ�ںѤߤǤ����Хå�����ɤε�ư�Ԥ����֤Ǥ���

CONNECTION_SSL_STARTUP

SSL�Ź沽��Ĵ����֤Ǥ���

CONNECTION_SETENV

�Ķ����󶡤���ѥ�᡼�������Ĵ����֤Ǥ���

����������ϡʸߴ������ݤĤ���ˤʤ��ʤ뤳�ȤϤ���ޤ��󤬡����ץꥱ�������ϡ�����餬����ν�ǽи������ꡢ�ܽ�˽񤤤Ƥ����ͤΤɤ줫��ɬ�����ơ������ͤ���������Ȥ������Ȥ�褷�����Ƥˤ��ƤϤ����ޤ��� ���ץꥱ�������ϡ��ʲ��˼����褦�ˤ���٤��Ǥ���

switch(PQstatus(conn))
{
    case CONNECTION_STARTED:
        feedback = "Connecting...";
        break;

    case CONNECTION_MADE:
        feedback = "Connected to server...";
        break;
.
.
.
    default:
        feedback = "Connecting...";
}

PQconnectPoll����Ѥ����硢connect_timeout��³�ѥ�᡼����̵�뤵��ޤ��� �в���֤�Ĺ�᤮�뤫�ɤ�����Ƚ��ϥ��ץꥱ����������Ǥ�ǹԤʤ��ޤ��� ����ʤ��ȡ�PQconnectStart�θ��PQconnectPoll�η����֤���PQconnectdb��Ʊ���ˤʤ�ޤ���

PQconnectStart����NULL�ݥ��󥿤��֤�����硢������λ����ݤˤϡ���¤�Τ��Ϣ�������֥��å���������뤿��ˡ�PQfinish��ƤӽФ��ʤ��ƤϤʤ�ʤ����Ȥ����դ��Ƥ��������� ���ν����ϡ���³��Ԥ����Ԥ������䤽�λ�Ԥ����Ǥ�����ˤ⡢ɬ���¹Ԥ���ʤ���Ф����ޤ���

PQconndefaults

�ǥե���Ȥ���³���ץ������֤��ޤ���

PQconninfoOption *PQconndefaults(void);

typedef struct
{
    char   *keyword;   /* ���Υ��ץ����Υ������ */
    char   *envvar;    /* ���ؤȤʤ�Ķ��ѿ���̾�� */
    char   *compiled;  /* ���ؤȤʤ륳��ѥ�������Ȥ߹��ޤ줿�ǥե������ */
    char   *val;       /* ���ץ����θ����͡��⤷���ϡ�NULL */
    char   *label;     /* ��³������������������ե�����ɤΥ�٥� */
    char   *dispchar;  /* ��³������������������ե�����ɤ�ɤΤ褦��ɽ�����뤫�λؼ�
                          ��:
                          ""        ���Ϥ��줿�ͤ򤽤Τޤ�ɽ��
                          "*"       �ͤ򱣤��ѥ���ɥե��������
                          "D"       �ǥХå����ץ���󡣥ǥե���ȤDz���ɽ�����ޤ��� */
    int     dispsize;  /* �����������ѤΥե�����ɤ��礭��(ʸ����ñ��) */
} PQconninfoOption;

��³���ץ�����������֤��ޤ��� ����ϡ����Ѳ�ǽ��PQconnectdb�ѥ��ץ��������Ƥ䡢���λ����ǤΥǥե�����ͤ���ꤹ�뤿��˻��Ѥ��뤳�Ȥ��Ǥ��ޤ��� ����ͤϡ�PQconninfoOption��¤�Τ�����ؤΥݥ��󥿤ǡ�keyword�ݥ��󥿤�NULL�Ȥʤ���ܤ�����������ˤ��ޤ��� ���꤬���ݤǤ��ʤ��ä����ˤ�NULL�ݥ��󥿤��֤��ޤ��� ���ߤΥǥե������(val �ե�����ɡˤϡ��Ķ��ѿ���¾�Υ���ƥ����Ȥ˰�¸���ޤ��� �ƤӽФ�¦�Ǥϡ���³���ץ����ξ���ϡ��ɤ߹������ѤȤ��Ƽ�갷��ʤ���Ф����ޤ���

���ץ�������������������ϡ�PQconninfoFree����Ѥ��Ʋ������ޤ��� ���ν����򤷤ʤ��ȡ�PQconndefaults���ƤӽФ���뤿�Ӥ˾������ĥ���꡼����ȯ�����ޤ���

PQconninfoParse

�󶡤��줿��³ʸ���󤫤鹽ʸ���Ϥ��줿��³���ץ������֤��ޤ���

PQconninfoOption *PQconninfoParse(const char *conninfo, char **errmsg);

��³ʸ����ι�ʸ���Ϥ�Ԥ�������Ȥ��Ʒ�̥��ץ������֤������ޤ�����³ʸ��������꤬���ä�����NULL���֤��ޤ��� ������󶡤��줿��³ʸ��������PQconnectdb���ץ�������ꤹ��Τ˻��Ѥ��뤳�Ȥ��Ǥ��ޤ��� ����ͤ�PQconninfoOption��¤�Τ������ؤ������������NULLkeyword�ݥ��󥿤��ͭ���Ƥ�����ܤǽ��뤷�ޤ���

ʸ�����������Ū�˻��ꤵ�줿���ץ����Τ߷�����������ͽ������Ĥ��Ȥ����դ��Ƥ��������� �����ʤ�ǥե���Ȥ���������ޤ���

errmsg����NULL�Ǥ���С������������*errmsg��NULL�����ꤵ�졢�����Ǥʤ���С��������������malloc���줿���顼ʸ����ˤʤ�ޤ��� ��NULL���֤��줿�Ȥ��Ǥ��äƤ�*errmsg��NULL�����ꤵ��뤳�Ȥ⤢�����ޤ��� ����ϥ�����­���֤��̣���ޤ�����

���ץ�����������������塢�����PQconninfoFree���Ϥ��Ʋ������Ƥ��������� ���줬�Ԥ��ʤ���硢PQconninfoParse�ؤΤ��줾��θƤӽФ����Ф��ƥ��꡼�꡼����������ޤ��� ȿ�Фˡ����顼�������ꡢ������errmsg����NULL�Ǥ���С�PQfreemem����Ѥ��ƥ��顼ʸ�����ɬ���������Ƥ���������

PQfinish

�����ФȤ���³���Ĥ����ޤ��� �ޤ���PGconn���֥������Ȥ���������������ޤ���

void PQfinish(PGconn *conn);

���Ȥ������Фؤ���³��Ԥ����Ԥ��Ƥ��PQstatus��Ĵ�٤ޤ��ˡ����ץꥱ��������PQfinish��ƤӽФ�PGconn���֥������Ȥ����������������٤��Ǥ��� ������PQfinish��ƤӽФ����顢�⤦PGconn�ؤΥݥ��󥿤�ȤäƤϤ����ޤ���

PQreset

�����Фؤ��̿������ͥ��ꥻ�åȤ��ޤ���

void PQreset(PGconn *conn);

���δؿ��ϥ����Фؤ���³���Ĥ����������Ѥ����ѥ�᡼�������ƻ��Ѥ��ơ�Ʊ��Υ����Фؿ�������³���Ω���ޤ��� ����ϡ���������³������줿���Υ��顼�ν�������Ω�ĤǤ��礦��

PQresetStart
PQresetPoll

��֥��å��������ǡ������Фؤ���³�����ͥ��ꥻ�åȤ��ޤ���

int PQresetStart(PGconn *conn);

PostgresPollingStatusType PQresetPoll(PGconn *conn);

�����δؿ��ϥ����Фؤ���³���Ĥ������줫����١��������Ѥ����ѥ�᡼�������ƻ��Ѥ��ơ�Ʊ�������Фȿ�������³���Ω���褦�Ȥ��ޤ��� �����Ϻ�������³������줿���Υ��顼��������Ω�ĤǤ��礦�� PQreset�����ҡˤȤΰ㤤�ϡ�����2�Ĥδؿ�����֥��å�������ư��뤳�ȤǤ��� �ޤ��������δؿ���PQconnectStartParams��PQconnectStart�����PQconnectPoll��Ʊ�����¤�����ޤ���

��³�ꥻ�åȤ�Ϥ��ˤϡ�PQresetStart��ƤӽФ��ޤ��� ���δؿ����������֤���硢�ꥻ�åȤ˼��Ԥ��Ƥ��ޤ��� ����ͤ�1�ʤ�С�PQconnectPoll��Ȥä���³���Ω�������Ȥޤä���Ʊ���ˡ�PQresetPoll����Ѥ��ƥꥻ�åȤΥݡ���󥰤�Ԥ��ޤ���