ALTER AGGREGATE
ALTER AGGREGATE â измениÑÑ Ð¾Ð¿Ñеделение агÑегаÑной ÑÑнкÑии
СинÑакÑиÑ
ALTER AGGREGATEимÑ(ÑигнаÑÑÑа_агÑ_ÑÑнкÑии) RENAME TOновое_имÑALTER AGGREGATEимÑ(ÑигнаÑÑÑа_агÑ_ÑÑнкÑии) OWNER TO {новÑй_владелеÑ| CURRENT_USER | SESSION_USER } ALTER AGGREGATEимÑ(ÑигнаÑÑÑа_агÑ_ÑÑнкÑии) SET SCHEMAноваÑ_ÑÑ ÐµÐ¼Ð°ÐдеÑÑÑигнаÑÑÑа_агÑ_ÑÑнкÑии: * | [Ñежим_аÑгÑменÑа] [имÑ_аÑгÑменÑа]Ñип_аÑгÑменÑа[ , ... ] | [ [Ñежим_аÑгÑменÑа] [имÑ_аÑгÑменÑа]Ñип_аÑгÑменÑа[ , ... ] ] ORDER BY [Ñежим_аÑгÑменÑа] [имÑ_аÑгÑменÑа]Ñип_аÑгÑменÑа[ , ... ]
ÐпиÑание
ALTER AGGREGATE изменÑÐµÑ Ð¾Ð¿Ñеделение агÑегаÑной ÑÑнкÑии.
ÐÑполниÑÑ ALTER AGGREGATE Ð¼Ð¾Ð¶ÐµÑ ÑолÑко Ð²Ð»Ð°Ð´ÐµÐ»ÐµÑ ÑооÑвеÑÑÑвÑÑÑей агÑегаÑной ÑÑнкÑии. ЧÑÐ¾Ð±Ñ ÑмениÑÑ ÑÑ
ÐµÐ¼Ñ Ð°Ð³ÑегаÑной ÑÑнкÑии, необÑ
одимо Ñакже имеÑÑ Ð¿Ñаво CREATE в новой ÑÑ
еме. ЧÑÐ¾Ð±Ñ ÑмениÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑа, ÑÑебÑеÑÑÑ Ñакже бÑÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвеннÑм или опоÑÑедованнÑм Ñленом новой Ñоли, а ÑÑа ÑÐ¾Ð»Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° имеÑÑ Ð¿Ñаво CREATE в ÑÑ
еме агÑегаÑной ÑÑнкÑии. (С Ñакими огÑаниÑениÑми пÑи Ñмене владелÑÑа не пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð½Ð¸Ñего Ñакого, ÑÑо нелÑÐ·Ñ Ð±Ñло Ð±Ñ ÑделаÑÑ, Ð¸Ð¼ÐµÑ Ð¿Ñаво ÑдалиÑÑ Ð¸ Ð²Ð½Ð¾Ð²Ñ ÑоздаÑÑ Ð°Ð³ÑегаÑнÑÑ ÑÑнкÑиÑ. Ðднако ÑÑпеÑполÑзоваÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ ÑмениÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑа агÑегаÑной ÑÑнкÑии в лÑбом ÑлÑÑае.)
ÐаÑамеÑÑÑ
имÑÐÐ¼Ñ ÑÑÑеÑÑвÑÑÑей агÑегаÑной ÑÑнкÑии (возможно, дополненное ÑÑ ÐµÐ¼Ð¾Ð¹).
Ñежим_аÑгÑменÑаРежим аÑгÑменÑа:
INилиVARIADIC. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾Ð´ÑазÑмеваеÑÑÑIN.имÑ_аÑгÑменÑаÐÐ¼Ñ Ð°ÑгÑменÑа. ÐамеÑÑÑе, ÑÑо на Ñамом деле
ALTER AGGREGATEне обÑаÑÐ°ÐµÑ Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ðµ на имена аÑгÑменÑов, Ñак как Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð·Ð½Ð°Ñной иденÑиÑикаÑии агÑегаÑной ÑÑнкÑии доÑÑаÑоÑно ÑолÑко Ñипов аÑгÑменÑов.Ñип_аÑгÑменÑаТип Ð²Ñ Ð¾Ð´Ð½ÑÑ Ð´Ð°Ð½Ð½ÑÑ , Ñ ÐºÐ¾ÑоÑÑми ÑабоÑÐ°ÐµÑ Ð°Ð³ÑегаÑÐ½Ð°Ñ ÑÑнкÑиÑ. ЧÑÐ¾Ð±Ñ ÑоÑлаÑÑÑÑ Ð½Ð° агÑегаÑнÑÑ ÑÑнкÑÐ¸Ñ Ð±ÐµÐ· аÑгÑменÑов, ÑкажиÑе вмеÑÑо ÑпиÑка аÑгÑменÑов
*, а ÑÑÐ¾Ð±Ñ ÑоÑлаÑÑÑÑ Ð½Ð° ÑоÑÑиÑÑÑÑÑÑ Ð°Ð³ÑегаÑнÑÑ ÑÑнкÑиÑ, добавÑÑеORDER BYÐ¼ÐµÐ¶Ð´Ñ ÑказаниÑми непоÑÑедÑÑвеннÑÑ Ð¸ агÑегиÑÑемÑÑ Ð°ÑгÑменÑов.новое_имÑÐовое Ð¸Ð¼Ñ Ð°Ð³ÑегаÑной ÑÑнкÑии.
новÑй_владелеÑÐовÑй Ð²Ð»Ð°Ð´ÐµÐ»ÐµÑ Ð°Ð³ÑегаÑной ÑÑнкÑии.
новаÑ_ÑÑ ÐµÐ¼Ð°ÐÐ¾Ð²Ð°Ñ ÑÑ ÐµÐ¼Ð° агÑегаÑной ÑÑнкÑии.
ÐÑимеÑаниÑ
ÐÑли Ð²Ñ Ñ
оÑиÑе ÑоÑлаÑÑÑÑ Ð½Ð° ÑоÑÑиÑÑÑÑÑÑ Ð°Ð³ÑегаÑнÑÑ ÑÑнкÑиÑ, ÑекомендÑеÑÑÑ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ ORDER BY Ð¼ÐµÐ¶Ð´Ñ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвеннÑми и агÑегиÑÑемÑми аÑгÑменÑами Ñак же, как и в CREATE AGGREGATE. Ðднако команда ÑÑабоÑÐ°ÐµÑ Ð¸ без ORDER BY, еÑли непоÑÑедÑÑвеннÑе и агÑегиÑÑÑÑие аÑгÑменÑÑ Ð¿ÐµÑеÑиÑÐ»ÐµÐ½Ñ Ð¿Ð¾Ð´ÑÑд в одном ÑпиÑке. Ð Ñакой ÑокÑаÑÑнной ÑоÑме, еÑли и в ÑпиÑке непоÑÑедÑÑвеннÑÑ
, и в ÑпиÑке агÑегиÑÑÑÑиÑ
аÑгÑменÑов ÑодеÑжиÑÑÑ VARIADIC "any", доÑÑаÑоÑно напиÑаÑÑ VARIADIC "any" ÑолÑко один Ñаз.
ÐÑимеÑÑ
ÐеÑеименование агÑегаÑной ÑÑнкÑии myavg Ð´Ð»Ñ Ñипа integer в my_average:
ALTER AGGREGATE myavg(integer) RENAME TO my_average;
Смена владелÑÑа агÑегаÑной ÑÑнкÑии myavg Ð´Ð»Ñ Ñипа integer на joe:
ALTER AGGREGATE myavg(integer) OWNER TO joe;
ÐеÑемеÑение ÑоÑÑиÑÑÑÑей агÑегаÑной ÑÑнкÑии mypercentile Ñ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвеннÑм аÑгÑменÑом Ñипа float8 и агÑегиÑÑемÑм аÑгÑменÑом Ñипа integer в ÑÑ
ÐµÐ¼Ñ myschema:
ALTER AGGREGATE mypercentile(float8 ORDER BY integer) SET SCHEMA myschema;
ÐÑо Ñоже бÑÐ´ÐµÑ ÑабоÑаÑÑ:
ALTER AGGREGATE mypercentile(float8, integer) SET SCHEMA myschema;
СовмеÑÑимоÑÑÑ
ÐпеÑаÑÐ¾Ñ ALTER AGGREGATE оÑÑÑÑÑÑвÑÐµÑ Ð² ÑÑандаÑÑе SQL.