Hi,
I'm trying to execute the equivalent to '~' with regexp from within C code. According to pg_operator this operator for type text corresponds to textregexeq:
DATA(insert OID = 641 ( "~" PGNSP PGUID b f f 25 25 16 0 642 textregexeq regexeqsel regexeqjoinsel ));
DESCR("matches regular _expression_, case-sensitive");
I've tried to execute it from the C code:
text * s = cstring_to_text("aa");
text * p = cstring_to_text("a");
return DatumGetBool(DirectFunctionCall2(textregexeq, PointerGetDatum(s), PointerGetDatum(p)));
But I'm getting an error with collate:
I'm trying to execute the equivalent to '~' with regexp from within C code. According to pg_operator this operator for type text corresponds to textregexeq:
DATA(insert OID = 641 ( "~" PGNSP PGUID b f f 25 25 16 0 642 textregexeq regexeqsel regexeqjoinsel ));
DESCR("matches regular _expression_, case-sensitive");
I've tried to execute it from the C code:
text * s = cstring_to_text("aa");
text * p = cstring_to_text("a");
return DatumGetBool(DirectFunctionCall2(textregexeq, PointerGetDatum(s), PointerGetDatum(p)));
But I'm getting an error with collate:
ERROR: could not determine which collation to use for regular _expression_Any hints on how to proceed? Of course if I do select 'aa'~'a'; from psql it works like a charm.
HINT: Use the COLLATE clause to set the collation explicitly.
Thanks in advance.