PostgreSQL: longest_text 聚合函数
时间:2009-11-12 来源:hellwolf
PostgreSQL支持自建 aggregate function,以下例子创建了一个称为 longest_text的聚合函数,该函数可应用于各种类型数据。
以下代码比较了 max 和 longest_text 的输出:
简单分析:
# longer_text 是一个应用于两个 anyelement 函数
# longest_text 通过将 longer_text 用于每个元素: SFUNC 意思是 state transition function 第一个参数为前状态,第二个参数为当前元素,起始状态默认为 NULL。 STYPE 是最终返回元素类型。
详细参考:
http://www.postgresql.org/docs/8.4/static/sql-createfunction.html
http://www.postgresql.org/docs/8.4/static/sql-createaggregate.html
CREATE OR REPLACE FUNCTION longer_text(anyelement, anyelement) |
以下代码比较了 max 和 longest_text 的输出:
SELECT max(proname), longest_text(proname) from pg_proc |
简单分析:
# longer_text 是一个应用于两个 anyelement 函数
# longest_text 通过将 longer_text 用于每个元素: SFUNC 意思是 state transition function 第一个参数为前状态,第二个参数为当前元素,起始状态默认为 NULL。 STYPE 是最终返回元素类型。
详细参考:
http://www.postgresql.org/docs/8.4/static/sql-createfunction.html
http://www.postgresql.org/docs/8.4/static/sql-createaggregate.html
相关阅读 更多 +