Dangers of mislabelled immutable functions

From: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
To: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Dangers of mislabelled immutable functions
Date: 2015-08-20 19:22:50
Message-ID: CAMkU=1wyJGj-PWg2Pt24hiGS0mXs601MX=QEjN8z=asvfwNS9Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I want to index the textual representations of a table's rows.

You can cast a row to text by using the name of the table where you would
usually use the name of a column, like "table_name::text". But this is not
immutable and so can't be used in an expression index.

I can easily make a pl/perl function which does the same thing as the text
cast, and label it as immutable and use it in an index. But are the
dangers of doing this?

I know that configuration changes to the date and time formats could change
the way that the data is shown in ways that would cause the rows inserted
under a different configuration to be missed. That doesn't bother me.

I know that if I drop a table column, the contents of the column will still
be in the index. That doesn't bother me either, as all the indexes I plan
to use are lossy and so will do a recheck anyway.

What other problems am I setting myself up for by doing this?

Cheers,

Jeff

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Aviel Buskila 2015-08-21 05:25:52 Re: repmgr won't update witness after failover
Previous Message Joseph Kregloh 2015-08-20 14:57:47 Re: hot backup with zfs ?