PostgreSQL 12.4
Just create partitioned table for PostgreSQL logs
CREATE TABLE pglog.pglog (
log_time timestamp(3) with time zone,
user_name text,
database_name text,
process_id integer,
connection_from text,
session_id text,
session_line_num bigint,
command_tag text,
session_start_time timestamp with time zone,
virtual_transaction_id text,
transaction_id bigint,
error_severity text,
sql_state_code text,
message text,
detail text,
hint text,
internal_query text,
internal_query_pos integer,
context text,
query text,
query_pos integer,
location text,
application_name text
) PARTITION BY LIST (date_part('isodow', log_time));
ERROR: functions in partition key expression must be marked IMMUTABLE
But, date_part is immutable
Schema | pg_catalog
Name | date_part
Result data type | double precision
Argument data types | text, time with time zone
Type | func
Volatility | immutable
Parallel | safe
Owner | postgres
Security | invoker
Access privileges |
Language | internal
Source code | timetz_part
Description | extract field from time with time zone
What is wrong here?