Commit fe604800 authored by Tom Lane's avatar Tom Lane

Doc: explain that LIKE et al can be used in ANY (sub-select) etc.

This wasn't stated anywhere, and it's perhaps not that obvious,
since we get questions about it from time to time.  Also undocumented
was that the parser actually translates these into operators.

Discussion: https://postgr.es/m/CAFj8pRBkvZ71BqGKZnBBG4=0cKG+s50Dy+DYmrizUKEpAtdc+w@mail.gmail.com
parent 980a70b9
...@@ -3565,7 +3565,23 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation> ...@@ -3565,7 +3565,23 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation>
<literal>!~~</literal> and <literal>!~~*</literal> operators that <literal>!~~</literal> and <literal>!~~*</literal> operators that
represent <function>NOT LIKE</function> and <function>NOT represent <function>NOT LIKE</function> and <function>NOT
ILIKE</function>, respectively. All of these operators are ILIKE</function>, respectively. All of these operators are
<productname>PostgreSQL</productname>-specific. <productname>PostgreSQL</productname>-specific. You may see these
operator names in <command>EXPLAIN</command> output and similar
places, since the parser actually translates <function>LIKE</function>
et al. to these operators.
</para>
<para>
The phrases <function>LIKE</function>, <function>ILIKE</function>,
<function>NOT LIKE</function>, and <function>NOT ILIKE</function> are
generally treated as operators
in <productname>PostgreSQL</productname> syntax; for example they can
be used in <replaceable>expression</replaceable>
<replaceable>operator</replaceable> ANY
(<replaceable>subquery</replaceable>) constructs, although
an <literal>ESCAPE</literal> clause cannot be included there. In some
obscure cases it may be necessary to use the underlying operator names
instead.
</para> </para>
<para> <para>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment