�����Х������⤫����������륨�顼���ٹ𡢥�����å������ϡ�ereport���⤷���Ϥ���˻����Ť�elog����Ѥ��ƺ������Ƥ��������� ���δؿ��λ��Ѥϡ������Ĥ�������ɬ�פʤۤ�ʣ���Ǥ���
���ƤΥ�å������ˤϡ������٥�٥�(DEBUG����PANIC�ޤǤ��ϰ�)�ȼ��å������ƥ����ȤȤ�����2�Ĥ�ɬ�����Ǥ�����ޤ��� ���ˡ���ά��ǽ�����Ǥ�����ޤ��� ������ǺǤ��ɤ����Ѥ����Τϡ�SQL���ͤ�SQLSTATE��§�˽������顼���̥����ɤǤ��� ereport���Ȥϥ�����ؿ��ǡ���ˡ���å�����������C��������������δؿ��ƤӽФ��Τ褦�˹Ԥʤ碌�롢��ʸ���ص���¸�ߤ��ޤ��� ereport��ľ�ܼ����դ�����ͣ��Υѥ����Ͽ����٥�٥�Ǥ��� ���å������ƥ����Ȥ�Ǥ�դξ�ά��ǽ�ʥ�å��������Ǥϡ�ereport�ƤӽФ����errmsg�ʤɤ�����ؿ���ƤӽФ����Ȥ���������ޤ���
ŵ��Ū��ereport�θƤӽФ��ϰʲ��Τ褦�ʤ�ΤǤ���
ereport(ERROR, (errcode(ERRCODE_DIVISION_BY_ZERO), errmsg("division by zero")));
����ϡ����顼�����٥�٥�ERROR(���̤Υ��顼)����ꤷ�ޤ��� errcode�ƤӽФ��ϡ�src/include/utils/errcodes.h��������줿�ޥ�������Ѥ���SQLSTATE���顼�����ɤ���ꤷ�ޤ��� errmsg�ƤӽФ��ϡ����å������ƥ����Ȥ����ޤ��� ����ؿ��ƤӽФ���Ϥ�;�פʳ�̷������դ��Ƥ��������� �����Ϥ��餤�餵�����ޤ�������ʸ��ɬ�פǤ���
�ʲ��ˤ��ʣ��������ޤ���
ereport(ERROR, (errcode(ERRCODE_AMBIGUOUS_FUNCTION), errmsg("function %s is not unique", func_signature_string(funcname, nargs, actual_arg_types)), errhint("Unable to choose a best candidate function. " "You may need to add explicit typecasts.")));
����ϡ��¹Ի����ͤ��å������ƥ�������������ि��������ѥ����ɤλ��Ѥ��ޤ��� �ޤ�����ά��ǽ��"�ҥ��"��å�����������Ƥ��ޤ���
ereport�ǻ��Ѳ�ǽ������롼�����ʲ��˼����ޤ���
errcode(sqlerrcode)�ϡ����ξ���Ѥ�SQLSTATE���顼���̥����ɤ���ꤷ�ޤ��� ���Υ롼���ƤӽФ���ʤ��ȡ����顼���̻ҤΥǥե���Ȥϡ����顼�����٥�٥뤬ERROR�ʾ�ξ��ˤ�ERRCODE_INTERNAL_ERROR�ˡ����顼�����٥�٥뤬WARNING�ξ��ˤ�ERRCODE_WARNING�ˡ�����ʤ����(NOTICE�ʲ�)ERRCODE_SUCCESSFUL_COMPLETION�ˤʤ�ޤ��� �����Υǥե���ȤϤ��Ф��������Ǥ�����errcode()�ƤӽФ����ά�������ˡ����Ŭ�ڤ��ɤ�����Ƥ���Ƥ���������
errmsg(const char *msg, ...)�ϡ��票�顼��å������ƥ����Ȥ���ꤷ���ޤ����¹Ի����ͤ����������뤳�Ȥ�Ǥ��ޤ��� �����ϡ�sprintf�ͼ��ν����ɤǻ��ꤵ��ޤ��� sprintf�Ǽ����դ�����ɸ��ν����ɤ˲ä���%m�����ɤ���Ѥ��ơ����ߤ�errno�����Ѥ�strerror���֤���륨�顼��å��������������뤳�Ȥ��Ǥ��ޤ��� [1] %m��errmsg�Υѥ����ꥹ������б�������ܤ�ɬ�פȤ��ޤ��� ��å�����ʸ����ϡ������ɤν�����Ԥʤ����ˡ��ϰ貽�Τ����gettext���̤뤳�Ȥ����դ��Ƥ���������
errmsg_internal(const char *msg, ...)�ϡ����Υ�å�����ʸ����ˤϹ�ݲ��ѥ�å��������ޤޤ�ʤ����������errmsg��Ʊ��Ǥ��� ����ϡ������餯������Ȥ�Ԥʤ����ͤ��ʤ�"ȯ���Ǥ��ʤ��ä�"����Ѥ˻��Ѥ��٤��Ǥ���
errdetail(const char *msg, ...)�ϡ���ά��ǽ��"�ܺ�"��å����������ޤ��� ����ϡ����å�������˵��Ҥ���ˤ���Ŭ�ڤȹͤ������ɲþ�������˻��Ѥ���ޤ��� ���Υ�å�����ʸ�����errmsg������Ʊ����ˡ�ǽ�������ޤ���
errhint(const char *msg, ...)�ϡ���ά��ǽ��"�ҥ��"��å����������ޤ��� ����ϡ����������ä��Τ��ˤĤ��Ƥλ��¤˴�Ť��ܺ٤Ȥ�ȿ�Фǡ�������褵������ˡ�˴ؤ�����������뤿��˻��Ѥ���ޤ��� ���Υ�å�����ʸ�����errmsg������Ʊ����ˡ�ǽ�������ޤ���
errcontext(const char *msg, ...)���̾�ereport��å����������Ȥ���ľ�ܸƤӽФ���ޤ��� ���顼��ȯ����������ƥ����ȡ��㤨��PL�ؿ��θ��߰��֡��ξ�������뤿���error_context_stack������Хå��ؿ���ǻ��Ѥ���ޤ��� ��å�����ʸ�����errmsg������Ʊ����ˡ�ǽ�������ޤ��� ¾������ؿ��Ȥϰۤʤꡢ1�Ĥ�ereport�ƤӽФ��Dz��٤�ƤӽФ����Ȥ��Ǥ��ޤ��� �������������ʸ������¤Ӥϡ����ԤǶ��ڤä�����Ϣ�뤵��ޤ���
errposition(int cursorpos)�ϡ��䤤��碌ʸ������ǥ��顼��ȯ���������֤�ƥ����Ȥǻ��ꤷ�ޤ��� ���ߡ��䤤��碌�����λ�����Ϥ���ӹ�ʸ�����ʳ��ǥ��顼�����Ф��줿���ˤΤ����Ω���ޤ���
errcode_for_file_access()�ϡ��ե����륢��������Ϣ�Υ����ƥॳ����Ǥμ����Ѥ�SQLSTATE���顼���̻Ҥ�Ŭ�ڤ����롢�����ʴؿ��Ǥ��� ��¸���줿errno����Ѥ��ơ��ɤΥ��顼�����ɤ��������뤫����ꤷ�ޤ��� �̾����ϼ票�顼��å������ƥ��������%m���Ȥ߹�碌�ƻ��Ѥ���ʤ���Фʤ�ޤ���
errcode_for_socket_access()�ϡ������åȴ�Ϣ�Υ����ƥॳ����Ǥμ����Ѥ�SQLSTATE���顼���̻Ҥ�Ŭ�ڤ����롢�����ʴؿ��Ǥ���
�ޤ����ˤ˻��Ѥ���Ƥ��롢�Ť��elog�ؿ�������ޤ��� �ʲ���elog�ƤӽФ��ϡ�
elog(level, "format string", ...);
�ʲ�������Ʊ���Ǥ���
ereport(level, (errmsg_internal("format string", ...)));
SQLSTATE���顼�����ɤ���˥ǥե���Ȥˤʤ뤳�ȡ���å�����ʸ������˹�ݲ���å����������ޤ�뤳�Ȥ��Ǥ��ʤ����Ȥ����դ��Ƥ��������� ���äơ�elog�ϡ��������顼�����٥�̾�ǥХå��ѥ����ˤΤߤ˻��Ѥ��٤��Ǥ��� ���̥桼�����оݤȤ���Ǥ�դΥ�å�������ereport����Ѥ��٤��Ǥ��� ����Ǥ�ʤ��������ƥ����"ȯ���Ǥ��ʤ��ä�"�������顼�θ�����elog���ޤ�¿�����Ѥ���Ƥ��ޤ��� ����ϡ���������ñ���ɽ���Υ�å�������Ŭ���Ƥ��ޤ���
��43.3�˿侩���륨�顼��å������κ����ˤĤ��Ƥ�������ޤ���
[1] | �Ĥޤꡢereport�ƤӽФ���ã�������ߤȤ����ͤǤ��� ������롼�������errno���ѹ����Ƥ���̤Ϥ���ޤ��� errmsg���strerror(errno)������Ū�˵��Ҥ����Ȥ��Ƥ����Τʤ�ΤˤϤʤ�ޤ��� ���äơ����Τ褦�ˤϤ��ʤ��Ǥ��������� |