43.9. ÐÑпомогаÑелÑнÑе ÑÑнкÑии
ÐодÑÐ»Ñ plpy Ñакже пÑедоÑÑавлÑÐµÑ ÑÑнкÑии plpy.debug(, ÑообÑение)plpy.log(, ÑообÑение)plpy.info(, ÑообÑение)plpy.notice(, ÑообÑение)plpy.warning(, ÑообÑение)plpy.error( и ÑообÑение)plpy.fatal(. ФÑнкÑии ÑообÑение)plpy.error и plpy.fatal на Ñамом деле вÑдаÑÑ Ð¸ÑклÑÑение Python, коÑоÑое, еÑли его не пеÑеÑ
ваÑиÑÑ, ÑаÑпÑоÑÑÑанÑеÑÑÑ Ð² вÑзÑваÑÑий запÑоÑ, ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº пÑеÑÑÐ²Ð°Ð½Ð¸Ñ ÑекÑÑей ÑÑанзакÑии или подÑÑанзакÑии. ÐÐ¾Ð¼Ð°Ð½Ð´Ñ raise plpy.Error( и ÑообÑение)raise plpy.Fatal( ÑавнознаÑÐ½Ñ Ð²Ñзовам ÑообÑение)plpy.error и plpy.fatal, ÑооÑвеÑÑÑвенно. ÐÑÑалÑнÑе ÑÑнкÑии пÑоÑÑо вÑдаÑÑ ÑообÑÐµÐ½Ð¸Ñ ÑазнÑÑ
ÑÑовней важноÑÑи. ÐÑдÑÑ Ð»Ð¸ ÑообÑÐµÐ½Ð¸Ñ Ð¾Ð¿ÑеделÑнного ÑÑÐ¾Ð²Ð½Ñ Ð¿ÐµÑедаваÑÑÑÑ ÐºÐ»Ð¸ÐµÐ½Ñам и/или запиÑÑваÑÑÑÑ Ð² жÑÑнал, опÑеделÑеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑионнÑми паÑамеÑÑами log_min_messages и client_min_messages. Ðа дополниÑелÑнÑми ÑведениÑми обÑаÑиÑеÑÑ Ðº Ðлаве 18.
ÐÑÑ Ð¾Ð´Ð¸Ð½ Ð½Ð°Ð±Ð¾Ñ Ð²ÑпомогаÑелÑнÑÑ
ÑÑнкÑий обÑазÑÑÑ plpy.quote_literal(, ÑÑÑока)plpy.quote_nullable( и ÑÑÑока)plpy.quote_ident(. Ðни ÑавнознаÑÐ½Ñ Ð²ÑÑÑоеннÑм ÑÑнкÑиÑм заклÑÑÐµÐ½Ð¸Ñ Ð² кавÑÑки, опиÑаннÑм в Разделе 9.4. Ðни Ð¿Ð¾Ð»ÐµÐ·Ð½Ñ Ð¿Ñи конÑÑÑÑиÑовании Ñвободно ÑоÑÑавлÑемÑÑ
запÑоÑов. Ðа PL/Python динамиÑеÑкий SQL, показаннÑй в ÐÑимеÑе 40.1, ÑоÑмиÑÑеÑÑÑ Ñак: ÑÑÑока)
plpy.execute("UPDATE tbl SET %s = %s WHERE key = %s" % (
plpy.quote_ident(colname),
plpy.quote_nullable(newvalue),
plpy.quote_literal(keyvalue)))