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?