From fb5717fd2239c5d238135f6ab12cff76b4e88593 Mon Sep 17 00:00:00 2001 From: Rob Kiefer Date: Wed, 20 Sep 2017 16:10:43 -0400 Subject: [PATCH] Remove explicit schema for time_bucket `public` schema may not exist or the user may be installing the extension to a different schema other than public, so like the rest of our public API functions it should be left implicit rather than assume `public`. --- sql/time_bucket.sql | 34 +++++++++++++--------------- sql/updates/pre-0.5.0--0.6.0-dev.sql | 12 ++++++++++ 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/sql/time_bucket.sql b/sql/time_bucket.sql index 2011a6f621b..e4bdf444b6c 100644 --- a/sql/time_bucket.sql +++ b/sql/time_bucket.sql @@ -1,70 +1,68 @@ --- time_bucket returns the left edge of the bucket where ts falls into. +-- time_bucket returns the left edge of the bucket where ts falls into. -- Buckets span an interval of time equal to the bucket_width and are aligned with the epoch. -CREATE OR REPLACE FUNCTION public.time_bucket(bucket_width INTERVAL, ts TIMESTAMP) RETURNS TIMESTAMP +CREATE OR REPLACE FUNCTION time_bucket(bucket_width INTERVAL, ts TIMESTAMP) RETURNS TIMESTAMP AS '$libdir/timescaledb', 'timestamp_bucket' LANGUAGE C IMMUTABLE PARALLEL SAFE; -- bucketing of timestamptz happens at UTC time -CREATE OR REPLACE FUNCTION public.time_bucket(bucket_width INTERVAL, ts TIMESTAMPTZ) RETURNS TIMESTAMPTZ +CREATE OR REPLACE FUNCTION time_bucket(bucket_width INTERVAL, ts TIMESTAMPTZ) RETURNS TIMESTAMPTZ AS '$libdir/timescaledb', 'timestamptz_bucket' LANGUAGE C IMMUTABLE PARALLEL SAFE; --bucketing on date should not do any timezone conversion -CREATE OR REPLACE FUNCTION public.time_bucket(bucket_width INTERVAL, ts DATE) RETURNS DATE +CREATE OR REPLACE FUNCTION time_bucket(bucket_width INTERVAL, ts DATE) RETURNS DATE AS '$libdir/timescaledb', 'date_bucket' LANGUAGE C IMMUTABLE PARALLEL SAFE; -- If an interval is given as the third argument, the bucket alignment is offset by the interval. -CREATE OR REPLACE FUNCTION public.time_bucket(bucket_width INTERVAL, ts TIMESTAMP, "offset" INTERVAL) +CREATE OR REPLACE FUNCTION time_bucket(bucket_width INTERVAL, ts TIMESTAMP, "offset" INTERVAL) RETURNS TIMESTAMP LANGUAGE SQL IMMUTABLE PARALLEL SAFE AS $BODY$ - SELECT public.time_bucket(bucket_width, ts-"offset")+"offset"; + SELECT time_bucket(bucket_width, ts-"offset")+"offset"; $BODY$; -CREATE OR REPLACE FUNCTION public.time_bucket(bucket_width INTERVAL, ts TIMESTAMPTZ, "offset" INTERVAL) +CREATE OR REPLACE FUNCTION time_bucket(bucket_width INTERVAL, ts TIMESTAMPTZ, "offset" INTERVAL) RETURNS TIMESTAMPTZ LANGUAGE SQL IMMUTABLE PARALLEL SAFE AS $BODY$ - SELECT public.time_bucket(bucket_width, ts-"offset")+"offset"; + SELECT time_bucket(bucket_width, ts-"offset")+"offset"; $BODY$; -CREATE OR REPLACE FUNCTION public.time_bucket(bucket_width INTERVAL, ts DATE, "offset" INTERVAL) +CREATE OR REPLACE FUNCTION time_bucket(bucket_width INTERVAL, ts DATE, "offset" INTERVAL) RETURNS DATE LANGUAGE SQL IMMUTABLE PARALLEL SAFE AS $BODY$ - SELECT (public.time_bucket(bucket_width, ts-"offset")+"offset")::date; + SELECT (time_bucket(bucket_width, ts-"offset")+"offset")::date; $BODY$; -CREATE OR REPLACE FUNCTION public.time_bucket(bucket_width BIGINT, ts BIGINT) +CREATE OR REPLACE FUNCTION time_bucket(bucket_width BIGINT, ts BIGINT) RETURNS BIGINT LANGUAGE SQL IMMUTABLE PARALLEL SAFE AS $BODY$ SELECT (ts / bucket_width)*bucket_width; $BODY$; -CREATE OR REPLACE FUNCTION public.time_bucket(bucket_width INT, ts INT) +CREATE OR REPLACE FUNCTION time_bucket(bucket_width INT, ts INT) RETURNS INT LANGUAGE SQL IMMUTABLE PARALLEL SAFE AS $BODY$ SELECT (ts / bucket_width)*bucket_width; $BODY$; -CREATE OR REPLACE FUNCTION public.time_bucket(bucket_width SMALLINT, ts SMALLINT) +CREATE OR REPLACE FUNCTION time_bucket(bucket_width SMALLINT, ts SMALLINT) RETURNS SMALLINT LANGUAGE SQL IMMUTABLE PARALLEL SAFE AS $BODY$ SELECT (ts / bucket_width)*bucket_width; $BODY$; -CREATE OR REPLACE FUNCTION public.time_bucket(bucket_width BIGINT, ts BIGINT, "offset" BIGINT) +CREATE OR REPLACE FUNCTION time_bucket(bucket_width BIGINT, ts BIGINT, "offset" BIGINT) RETURNS BIGINT LANGUAGE SQL IMMUTABLE PARALLEL SAFE AS $BODY$ SELECT (((ts-"offset") / bucket_width)*bucket_width)+"offset"; $BODY$; -CREATE OR REPLACE FUNCTION public.time_bucket(bucket_width INT, ts INT, "offset" INT) +CREATE OR REPLACE FUNCTION time_bucket(bucket_width INT, ts INT, "offset" INT) RETURNS INT LANGUAGE SQL IMMUTABLE PARALLEL SAFE AS $BODY$ SELECT (((ts-"offset") / bucket_width)*bucket_width)+"offset"; $BODY$; -CREATE OR REPLACE FUNCTION public.time_bucket(bucket_width SMALLINT, ts SMALLINT, "offset" SMALLINT) +CREATE OR REPLACE FUNCTION time_bucket(bucket_width SMALLINT, ts SMALLINT, "offset" SMALLINT) RETURNS SMALLINT LANGUAGE SQL IMMUTABLE PARALLEL SAFE AS $BODY$ SELECT (((ts-"offset") / bucket_width)*bucket_width)+"offset"; $BODY$; - - diff --git a/sql/updates/pre-0.5.0--0.6.0-dev.sql b/sql/updates/pre-0.5.0--0.6.0-dev.sql index e69de29bb2d..423cc1cd67e 100644 --- a/sql/updates/pre-0.5.0--0.6.0-dev.sql +++ b/sql/updates/pre-0.5.0--0.6.0-dev.sql @@ -0,0 +1,12 @@ +DROP FUNCTION public.time_bucket(INTERVAL, TIMESTAMP); +DROP FUNCTION public.time_bucket(INTERVAL, TIMESTAMPTZ); +DROP FUNCTION public.time_bucket(INTERVAL, DATE); +DROP FUNCTION public.time_bucket(INTERVAL, TIMESTAMP, INTERVAL); +DROP FUNCTION public.time_bucket(INTERVAL, TIMESTAMPTZ, INTERVAL); +DROP FUNCTION public.time_bucket(INTERVAL, DATE, INTERVAL); +DROP FUNCTION public.time_bucket(BIGINT, BIGINT); +DROP FUNCTION public.time_bucket(INT, INT); +DROP FUNCTION public.time_bucket(SMALLINT, SMALLINT); +DROP FUNCTION public.time_bucket(BIGINT, BIGINT, BIGINT); +DROP FUNCTION public.time_bucket(INT, INT, INT); +DROP FUNCTION public.time_bucket(SMALLINT, SMALLINT, SMALLINT);