Re: regcomp failed with error empty (sub)expression?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: mykarz(at)miyabara(dot)com
Cc: Pgsql-sql(at)postgresql(dot)org
Subject: Re: regcomp failed with error empty (sub)expression?
Date: 2000-12-22 06:06:27
Message-ID: 4054.977465187@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

"Michael Miyabara-McCaskey" <mykarz(at)miyabara(dot)com> writes:
> regcomp failed with error empty (sub)expression
> Anys thoughts as to what this means?

I'd say it means the regexp code doesn't like your pattern. For
example, I can trigger that with

regression=# select 'abc' ~ '|33';
ERROR: regcomp failed with error empty (sub)expression

'|33' is a bogus pattern because one side of the alternative
construct is empty. ('|' is the OR pattern operator.)

> The following SQL statement generated the error.

> INSERT INTO table3(table1.oid,table2.oid)
> SELECT table1.oid, table2.oid
> FROM table1, table2
> WHERE table1.field1 ~* table2.field1
> table1.field2 ~* table2.field2
> table1.field3 = table2.field3
> table1.field4 = table2.field4;

Not very helpful when we don't know what's in the table2.field1 and
table2.field2 columns.

> I'm basically trying to do a simply comparison between table1 and table2 to
> find duplicates, but the case differences are stopping me, and as the 7.0.3
> version of "upper()" has memory leaks, and the Plperl verion of uc() that I
> created takes A LONG time to run (I have a LOT of records)... here I am
> trying to match strings with CASE differences.

If you are just trying to match without regard to case, the thing to do
is something like "upper(col1) = upper(col2)". Using data as a regexp
or LIKE pattern is sheer folly, unless you are *certain* that it can
never contain pattern-operator characters.

regards, tom lane

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message George Moga 2000-12-22 08:02:36 Re: Invoice number
Previous Message Michael Miyabara-McCaskey 2000-12-22 05:37:46 regcomp failed with error empty (sub)expression?