mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-17 02:53:51 +08:00
From PG12 on, CREATE OR REPLACE is supported for aggregates, therefore, since we have dropped support for PG11, we can avoid going through the rigamarole of having our aggregates in a separate file from the functions we define to support them. Nor do we need to handle aggregates separately from other functions as their creation is now idempotent.
26 lines
1.4 KiB
SQL
26 lines
1.4 KiB
SQL
-- This file and its contents are licensed under the Apache License 2.0.
|
|
-- Please see the included NOTICE for copyright information and
|
|
-- LICENSE-APACHE for a copy of the license.
|
|
|
|
CREATE OR REPLACE FUNCTION _timescaledb_internal.partialize_agg(arg ANYELEMENT)
|
|
RETURNS BYTEA AS '@MODULE_PATHNAME@', 'ts_partialize_agg' LANGUAGE C VOLATILE;
|
|
|
|
CREATE OR REPLACE FUNCTION _timescaledb_internal.finalize_agg_sfunc(
|
|
tstate internal, aggfn TEXT, inner_agg_collation_schema NAME, inner_agg_collation_name NAME, inner_agg_input_types NAME[][], inner_agg_serialized_state BYTEA, return_type_dummy_val ANYELEMENT)
|
|
RETURNS internal
|
|
AS '@MODULE_PATHNAME@', 'ts_finalize_agg_sfunc'
|
|
LANGUAGE C IMMUTABLE ;
|
|
|
|
CREATE OR REPLACE FUNCTION _timescaledb_internal.finalize_agg_ffunc(
|
|
tstate internal, aggfn TEXT, inner_agg_collation_schema NAME, inner_agg_collation_name NAME, inner_agg_input_types NAME[][], inner_agg_serialized_state BYTEA, return_type_dummy_val ANYELEMENT)
|
|
RETURNS anyelement
|
|
AS '@MODULE_PATHNAME@', 'ts_finalize_agg_ffunc'
|
|
LANGUAGE C IMMUTABLE ;
|
|
|
|
CREATE OR REPLACE AGGREGATE _timescaledb_internal.finalize_agg(agg_name TEXT, inner_agg_collation_schema NAME, inner_agg_collation_name NAME, inner_agg_input_types NAME[][], inner_agg_serialized_state BYTEA, return_type_dummy_val anyelement) (
|
|
SFUNC = _timescaledb_internal.finalize_agg_sfunc,
|
|
STYPE = internal,
|
|
FINALFUNC = _timescaledb_internal.finalize_agg_ffunc,
|
|
FINALFUNC_EXTRA
|
|
);
|