Text comparison suddenly can't find collation?

Started by Johann 'Myrkraverk' Oskarssonalmost 14 years ago2 messages
#1Johann 'Myrkraverk' Oskarsson
johann@2ndquadrant.com

Hi all,

Why would a string comparison work in one case and not another? In
the following example, it works to compare a and b, but not a and d.

This is in a C module which calls

DirectFunctionCall2( text_le, d1, d2 );

DEBUG: Comparing a == b
DEBUG: Comparing a == d
ERROR: could not determine which collation to use for string
comparison

I'll try and see if I can come up with a minimal example in a bit.

--
Johann Oskarsson http://www.2ndquadrant.com/ |[]
PostgreSQL Development, 24x7 Support, Training and Services --+--
|
Blog: http://my.opera.com/myrkraverk/blog/

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Johann 'Myrkraverk' Oskarsson (#1)
Re: Text comparison suddenly can't find collation?

"Johann 'Myrkraverk' Oskarsson" <johann@2ndquadrant.com> writes:

Why would a string comparison work in one case and not another? In
the following example, it works to compare a and b, but not a and d.

This is in a C module which calls
DirectFunctionCall2( text_le, d1, d2 );

As of 9.1, I'd expect that coding to fail every time. text_le needs to
be passed a collation, and you aren't doing so. You need to be using
DirectFunctionCall2Coll.

Where to get the collation from might be an interesting question too,
but without more context it's hard to guess what will be appropriate for
you.

regards, tom lane