-- TimescaleDB helpers without the timescaledb extension (regular suite): -- pg_nanotime does not depend on TimescaleDB; the helpers raise a clear error. SET client_min_messages = warning; CREATE EXTENSION IF NOT EXISTS pg_nanotime; RESET client_min_messages; SELECT count(*) AS timescaledb_installed FROM pg_extension WHERE extname = 'timescaledb'; timescaledb_installed ----------------------- 0 (1 row) CREATE TABLE tsm(t nanotimestamptz NOT NULL, v int); \set VERBOSITY default SELECT nanotime_timescale_setup('tsm', 't', '1 day'); ERROR: TimescaleDB is not installed in this database HINT: pg_nanotime works without TimescaleDB; to use this helper, add timescaledb to shared_preload_libraries and run CREATE EXTENSION timescaledb. CONTEXT: PL/pgSQL function nanotime_timescale_setup(regclass,name,nanointerval,boolean) line 15 at RAISE SELECT * FROM nanotime_drop_chunks('tsm', older_than => '2024-01-01 00:00:00+00'); ERROR: TimescaleDB is not installed in this database HINT: pg_nanotime works without TimescaleDB; to use this helper, add timescaledb to shared_preload_libraries and run CREATE EXTENSION timescaledb. CONTEXT: PL/pgSQL function nanotime_drop_chunks(regclass,nanotimestamptz,nanotimestamptz) line 13 at RAISE \set VERBOSITY terse -- plain PL/pgSQL functions (VOLATILE, SECURITY INVOKER) with no dependency on another extension SELECT p.proname, pg_get_function_identity_arguments(p.oid) AS args, p.provolatile, p.prosecdef FROM pg_proc p WHERE p.proname IN ('nanotime_timescale_setup', 'nanotime_drop_chunks') ORDER BY 1; proname | args | provolatile | prosecdef --------------------------+----------------------------------------------------------------------+-------------+----------- nanotime_drop_chunks | tbl regclass, older_than nanotimestamptz, newer_than nanotimestamptz | v | f nanotime_timescale_setup | tbl regclass, col name, chunk nanointerval, migrate_data boolean | v | f (2 rows) SELECT count(*) AS deps_on_other_extensions FROM pg_depend d JOIN pg_extension e ON d.refclassid = 'pg_extension'::regclass AND d.refobjid = e.oid WHERE e.extname <> 'pg_nanotime' AND d.objid IN (SELECT oid FROM pg_proc WHERE proname LIKE 'nanotime_%'); deps_on_other_extensions -------------------------- 0 (1 row) DROP TABLE tsm;