date_trunc not immutable

From: Ravi Krishna <srkrishna(at)fastmail(dot)com>
To: "pgsql-general" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: date_trunc not immutable
Date: 2018-12-15 23:26:24
Message-ID: 1544916384.3079614.1610261080.7F8C1B97@webmail.messagingengine.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Version: PG 10.6 on AWS Linux.

I am trying to create an index on function date_trunc('month',timestamp)
PG is complaining that the function must be marked as IMMUTABLE. So I
assume that date_trunc is not marked as immutable.
Definition of immutable from PG documentation
====================================

All functions and operators used in an index definition must be
"immutable", that is, their results must depend only on their arguments
and never on any outside influence (such as the contents of another
table or the current time). This restriction ensures that the behavior
of the index is well-defined. To use a user-defined function in an index
expression or WHERE clause, remember to mark the function immutable when
you create it.===================================
What am I missing?  date_trunc will always return the same value for a
given value. Not sure how I can mark a PG function as immutable.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2018-12-15 23:51:45 Re: date_trunc not immutable
Previous Message Ron 2018-12-15 22:01:13 Re: simple query on why a merge join plan got selected