Amitabh Kant <amitabhkant@gmail.com> writes:
> I tried the following query :
> SELECT tstzmultirange(tstzrange('2022-11-25 00:00:00', '2022-11-30
> 00:00:00', '[]')) -
> range_agg(time_range) AS availability
> FROM test_time_range
> WHERE time_range && tstzrange('2022-11-25 00:00:00', '2022-11-30 00:00:00',
> '[]');
> but then I receive the following error. My guess is I need to cast the
> tstzrange output, but can't seem to find the correct cast.
> ERROR: function tstzmultirange(tstzrange) does not exist
> LINE 1: SELECT tstzmultirange(tstzrange('2022-11-25 00:00:00', '2022... ^
> HINT: No function matches the given name and argument types. You might need
> to add explicit type casts. SQL state: 42883 Character: 8
That function certainly should exist:
psql (14.6)
Type "help" for help.
postgres=# \df tstzmultirange
List of functions
Schema | Name | Result data type | Argument data types | Type
------------+----------------+------------------+----------------------+------
pg_catalog | tstzmultirange | tstzmultirange | | func
pg_catalog | tstzmultirange | tstzmultirange | VARIADIC tstzrange[] | func
pg_catalog | tstzmultirange | tstzmultirange | tstzrange | func
(3 rows)
My guess is that your server is not in fact PG14, but some
older version.
regards, tom lane