OSDN Git Service

Add mention of functional indexes for case-insensitive comparisons.
authorBruce Momjian <bruce@momjian.us>
Mon, 7 May 2001 19:58:31 +0000 (19:58 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 7 May 2001 19:58:31 +0000 (19:58 +0000)
doc/src/FAQ/FAQ.html

index 3e4a0d9..8904661 100644 (file)
      <A href="#4.11">4.11</A>) What is an R-tree index?<BR>
      <A href="#4.12">4.12</A>) What is the Genetic Query Optimizer?<BR>
      <A href="#4.13">4.13</A>) How do I perform regular expression
-    searches and case-insensitive regular expression searches?<BR>
+    searches and case-insensitive regular expression searches? How do I
+    use an index for case-insensitive searches?<BR>
      <A href="#4.14">4.14</A>) In a query, how do I detect if a field
     is <SMALL>NULL</SMALL>?<BR>
      <A href="#4.15">4.15</A>) What is the difference between the
@@ -957,13 +958,29 @@ Maximum number of indexes on a table?    unlimited
     search.</P>
 
     <H4><A name="4.13">4.13</A>) How do I perform regular expression
-    searches and case-insensitive regular expression searches?</H4>
+    searches and case-insensitive regular expression searches?  How do I
+    use an index for case-insensitive searches?</H4>
 
     <P>The <I>~</I> operator does regular expression matching, and
     <I>~*</I> does case-insensitive regular expression matching. The
     case-insensitive variant of <SMALL>LIKE</SMALL> is called
     <SMALL>ILIKE</SMALL> in PostgreSQL 7.1 and later.</P>
 
+    <P>Case-insensitive equality comparisons are normally expressed as:
+    
+    <PRE>
+    SELECT *
+    FROM tab
+    WHERE lower(col) = 'abc'
+    </PRE>
+
+    This will not use an standard index. However, if you create a
+    functional index, it will be used:
+
+    <PRE>
+    CREATE INDEX tabindex on tab (lower(col));
+    </PRE>
+
     <H4><A name="4.14">4.14</A>) In a query, how do I detect if a field
     is <SMALL>NULL</SMALL>?</H4>