PostgreSQL | ||
---|---|---|
Prev | Chapter 32. ��ĥ SQL���� | Next |
�桼��������Ǥϡ�������ϴؿ��Ƚ��ϴؿ���ɬ�פǤ��������� �ؿ��ϡ�����(�桼���ˤ�����Ϥȥ桼���ؤν��ϤΤ����)ʸ������ �ˤɤ���äƸ���뤫���ޤ����η���������Ǥɤ���������뤫�� ���ꤷ�ޤ������ϴؿ��Ϥ������ϤȤ��� NULL ��üʸ������ꡢ ���η���(�������)����ɽ�����֤��ޤ������ϴؿ��Ϥ��η������� ɽ�����ꡢNULL ��üʸ������֤��ޤ��� �����ǻ䤿���ϡ�ʣ�ǿ���ɽ������ʣ�ǿ���������������Ȥ��ޤ��� �䤿���Ϥ��������ˡ�
typedef struct Complex { double x; double y; } Complex;�Ȥ��� C ��¤�ΤΤ褦�ʥ������ʣ�ǿ�ɽ�� �ȡ�����ʸ����ɽ���Ȥ��� form(x,y) ��ʸ��������Ӥޤ���͡� �����δؿ��ϡ��̾�ä˽��ϴؿ��Ȥ��Ƥϵ��Ҥ���Τ�����Ǥ��� �������ʤ��顢�����Ĥ�˺��ƤϤʤ�ʤ���������ޤ���
remember that you must eventually write a complete and robust parser for that representation as your input function! ����(ʸ����)ɽ�������������ˤϡ������η�̤Ȥ��ơ�����ɽ���� ����δ����Ƿ�ϴ�ʥѡ��������ϴؿ��Ȥ��ƽʤ���Фʤ�ʤ� ���Ȥ�˺��ʤ��Ǥ���������
Complex * complex_in(char *str) { double x, y; Complex *result; if (sscanf(str, " ( %lf , %lf )", &x, &y) != 2) { elog(WARN, "complex_in: error in parsing"); return NULL; } result = (Complex *)palloc(sizeof(Complex)); result->x = x; result->y = y; return (result); }���ϴؿ���ñ�˰ʲ��Τ褦�ˤʤ�Ǥ��礦��
char * complex_out(Complex *complex) { char *result; if (complex == NULL) return(NULL); result = (char *) palloc(60); sprintf(result, "(%g,%g)", complex->x, complex->y); return(result); }
�����ϴؿ��ϡ��ơ��εմؿ��ˤʤ�褦�ˤ���٤��Ǥ��� �������ʤ��ȡ��ǡ�����ե�����(���䡢���Ȥ���¾�Υ���ԥ塼���� �ˤ����̤�ï���Υǡ����١����Ǥ⤤���Ǥ�)�˥���פ��Ƥޤ������ ����Ȥ�����ˡ���������꤬ȯ������Ǥ��礦������ϡ� ��ư�����������ޤޤ��ݤ���ͭ�ʡ�����Ū������Ǥ���
ʣ�ǿ�(complex)�����������ˤ����ꡢ���η� �������������� 2 �ĤΥ桼������ؿ� complex_in �� complex_out ����������ɬ�פ�����ޤ���
CREATE FUNCTION complex_in(opaque) RETURNS complex AS 'PGROOT/tutorial/obj/complex.so' LANGUAGE 'c'; CREATE FUNCTION complex_out(opaque) RETURNS opaque AS 'PGROOT/tutorial/obj/complex.so' LANGUAGE 'c'; CREATE TYPE complex ( internallength = 16, input = complex_in, output = complex_out );
���˽Ҥ٤��褦�ˡ�Postgres �ϥ١��� ���Ȥ��Ƥ���������˥��ݡ��Ȥ��Ƥ��ޤ�������˲ä��ơ� Postgres �Ǥϥ桼�������������� ���ݡ��Ȥ��ޤ�����������������Postgres �ϼ�ưŪ�ˤ��η�������Υ��ݡ��Ȥ����ޤ��� ���Ū����ͳ�ˤ�ꡢ���ϥ桼������̾�������˥������������ ʸ�� _ ���դ���̾���ˤʤ�ޤ���ʣ�緿�ξ��ϡ����Ǥ˥����ƥ� �Ϥ���餬����Ū�ˤɤ������뤫�����Ƥ���Τǡ��������Ф��� �ؿ����������ɬ�פϤ���ޤ���
�����ޤǤ��������Ƥ����Τϡ����٤� "������" ���֥������Ȥ˴ؤ��� �����Ǥ����������ȸ����Τϡ��������� 8KB �ʲ��Τ�Τ��ޤ���
�⤷���ʤ�����ʸ�������ƥ��ӥåȥޥå׳�Ǽ�Τ褦���礭�� ����ɬ�פȤ���ΤǤ���С�Postgres �ε��祪�֥������ȡ������ե�������Ȥ�ɬ�פ�����ޤ���NOTE: 1024 ����ɤ� 8192 �Х��ȤǤ������¡����� 8192 �Х��Ȥ�� �������ʤ���Фʤ�ޤ�����ϡ�Postgres �Υ��ץ�ȥڡ����������С��إåɤ����� 8KB �Ȥ��� ���¤˹礦�褦��Ĵ������Ƥ��뤫��Ǥ���Ŭ�礹��ºݤ��ͤ� �ޥ���Υ������ƥ�����˰�¸���ޤ���
Prev | Home | Next |
��ĥ SQL���� | Up | ��ĥ SQL���黻�� |