¾�ΥС�������ʸ�� �� 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

39.3. �ǡ����١�����������

PL/Python����⥸�塼��ϼ�ưŪ��plpy�Ȥ���Python�⥸�塼��򥤥�ݡ��Ȥ��ޤ��� ���Υ⥸�塼��δؿ�������ϡ�plpy.foo�Τ褦�˺�������Python�����ɤ�����Ѥ��뤳�Ȥ��Ǥ��ޤ��� ����plpy�Ǥϡ�plpy.debug(msg)��plpy.log(msg)��plpy.info(msg)��plpy.notice(msg)��plpy.warning(msg)��plpy.error(msg)�������plpy.fatal(msg)�ؿ���������Ƥ��ޤ��� plpy.error�����plpy.fatal�ϡ��ºݤ�Python���㳰��ȯ�������ޤ��� ���줬��ª����ʤ���硢�ƤӽФ�����䤤��碌����������ꡢ���η�̡����ߤΥȥ�󥶥������⤷�������ȥ�󥶥�����󤬥��ܡ��Ȥ��ޤ��� raise plpy.ERROR("msg")�����raise plpy.FATAL("msg")�ϡ����줾��plpy.error�����plpy.fatal�θƤӽФ���Ʊ���Ǥ��� ¾�Υ�٥�ϡ��ۤʤ�����٤Υ�å�������������������Ǥ��� log_min_messages��client_min_messages�����ѿ��ϡ�����ν����٤Υ�å������򥯥饤����Ȥ���𤹤뤫�������ФΥ����˽񤭽Ф��������뤤�Ϥ���ξ���������椷�ޤ��� �ܺ٤���17���򻲾Ȥ��Ƥ���������

����ˡ�plpy�⥸�塼���execute�����prepare�Ȥ���2�Ĥδؿ����Ѱդ��Ƥ��ޤ��� plpy.execute���䤤��碌ʸ���󤪤�Ӿ�ά��ǽ�����°������դ��ƸƤӽФ��ȡ��䤤��碌���¹Ԥ��졢��̥��֥������ȤȤ����䤤��碌��̤��֤�ޤ��� ���η�̥��֥������Ȥϥꥹ�Ȥ⤷���ϼ��񥪥֥������Ȥ򥨥ߥ�졼�Ȥ��ޤ��� ��̥��֥������Ȥϡ����ֹ����̾�ˤ�äƥ����������뤳�Ȥ��Ǥ��ޤ��� ��̥��֥������Ȥˤϡ��䤤��碌��̤ιԿ����֤�nrows()��SPI_execute���֤��ͤ��֤�status�Ȥ����᥽�åɤ��ɲä���Ƥ��ޤ��� ��̥��֥������Ȥϡ��ѹ����뤳�Ȥ��Ǥ��ޤ���

�ʲ�����򼨤��ޤ���

rv = plpy.execute("SELECT * FROM my_table", 5)

����ϡ�my_table����5�ԤޤǤ��֤��ޤ��� my_table��my_column��¸�ߤ����硢������ˤϰʲ��Τ褦�˥��������Ǥ��ޤ���

foo = rv[i]["my_column"]

2���ܤδؿ�plpy.prepare�ϡ��䤤��碌�μ¹Էײ��������ޤ��� �䤤��碌��˥ѥ�᡼�����Ȥ������硢�䤤��碌ʸ���󤪤�Ӱ������Υꥹ�ȤȤȤ�˸ƤӽФ���ޤ��� �㤨�С��ʲ��Τ褦�ˤ��ޤ���

plan = plpy.prepare("SELECT last_name FROM my_users WHERE first_name = $1", [ "text" ])

text�ϡ�$1�Ȥ����Ϥ��ѿ��η��Ǥ��� ʸ����������塢�����¹Ԥ��뤿��˴ؿ�plpy.execute����Ѥ��ޤ���

rv = plpy.execute(plan, [ "name" ], 5)

3���ܤΰ��������°����Ǥ��ꡢ��ά��ǽ�Ǥ���

PL/Python�⥸�塼�����Ѥ��ƽ��������ײ�ϼ�ưŪ����¸����ޤ��� ���줬�����̣����Τ��ˤĤ��Ƥ�SPI��ʸ�����40���ˤ򻲾Ȥ��Ƥ��������� �����ʣ���ƤӽФ��ˤ����Ƹ���Ū�˻��Ѥ��뤿��ˤϡ���³Ū�ʳ�Ǽ�Ѽ���Ǥ���SD�ޤ���GD����39.1�򻲾ȡˤΤ����줫����Ѥ���ɬ�פ�����ޤ��� �㤨�С��ʲ��Τ褦�ˤ��ޤ���

CREATE FUNCTION usesavedplan() RETURNS trigger AS $$
    if SD.has_key("plan"):
        plan = SD["plan"]
    else:
        plan = plpy.prepare("SELECT 1")
        SD["plan"] = plan
    # rest of function
$$ LANGUAGE plpythonu;