Re: Nondeterministic collations vs. text_pattern_ops

Peter Eisentraut <peter.eisentraut@2ndquadrant.com>

From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2019-09-18T12:31:39Z
Lists: pgsql-hackers

Attachments

On 2019-09-17 17:17, Tom Lane wrote:
> My recommendation is to get rid of the run-time checks and instead
> put a hack like this into DefineIndex or some minion thereof:
> 
> 	if ((opclass == TEXT_PATTERN_BTREE_CLASS_OID ||
> 	     opclass == VARCHAR_PATTERN_BTREE_CLASS_OID ||
> 	     opclass == BPCHAR_PATTERN_BTREE_CLASS_OID) &&
> 	    !get_collation_isdeterministic(collid))
> 	   ereport(ERROR, ...);

Here is a draft patch.

It will require a catversion change because those operator classes don't
have assigned OIDs so far.

The comment block I just moved over for the time being.  It should
probably be rephrased a bit.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Commits

  1. Fix up handling of nondeterministic collations with pattern_ops opclasses.