aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2012-02-29 12:11:10 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2012-02-29 12:11:23 -0500
commitaf1967239a90a5860e2158ebe814a7bcd42e6c6b (patch)
treeab6266dfd98444c61805856a182290e10e32c150
parent86073a2b7acc58fce8701a9207a46adb41fbd8cc (diff)
downloadpostgresql-af1967239a90a5860e2158ebe814a7bcd42e6c6b.tar.gz
postgresql-af1967239a90a5860e2158ebe814a7bcd42e6c6b.zip
Simplify references to backslash-doubling in func.sgml.
Several places were still written as though standard_conforming_strings didn't exist, much less be the default. Now that it is on by default, we can simplify the text and just insert occasional notes suggesting that you might have to think harder if it's turned off. Per discussion of a suggestion from Hannes Frederic Sowa. Back-patch to 9.1 where standard_conforming_strings was made the default.
-rw-r--r--doc/src/sgml/func.sgml41
1 files changed, 16 insertions, 25 deletions
diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index c843be78488..e330909cb19 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -3368,8 +3368,8 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation>
<para>
<function>LIKE</function> pattern matching always covers the entire
- string. Therefore, to match a sequence anywhere within a string, the
- pattern must start and end with a percent sign.
+ string. Therefore, if it's desired to match a sequence anywhere within
+ a string, the pattern must start and end with a percent sign.
</para>
<para>
@@ -3382,17 +3382,13 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation>
character itself, write two escape characters.
</para>
- <para>
- Note that the backslash already has a special meaning in string literals,
- so to write a pattern constant that contains a backslash you must write two
- backslashes in an SQL statement (assuming escape string syntax is used, see
- <xref linkend="sql-syntax-strings">). Thus, writing a pattern that
- actually matches a literal backslash means writing four backslashes in the
- statement. You can avoid this by selecting a different escape character
- with <literal>ESCAPE</literal>; then a backslash is not special to
- <function>LIKE</function> anymore. (But backslash is still special to the
- string literal parser, so you still need two of them to match a backslash.)
- </para>
+ <note>
+ <para>
+ If you have <xref linkend="guc-standard-conforming-strings"> turned off,
+ any backslashes you write in literal string constants will need to be
+ doubled. See <xref linkend="sql-syntax-strings"> for more information.
+ </para>
+ </note>
<para>
It's also possible to select no escape character by writing
@@ -3720,8 +3716,7 @@ substring('foobar' from 'o(.)b') <lineannotation>o</lineannotation>
inserted, and it can contain <literal>\&amp;</> to indicate that the
substring matching the entire pattern should be inserted. Write
<literal>\\</> if you need to put a literal backslash in the replacement
- text. (As always, remember to double backslashes written in literal
- constant strings, assuming escape string syntax is used.)
+ text.
The <replaceable>flags</> parameter is an optional text
string containing zero or more single-letter flags that change the
function's behavior. Flag <literal>i</> specifies case-insensitive
@@ -4031,16 +4026,14 @@ SELECT foo FROM regexp_split_to_table('the quick brown fox', E'\\s*') AS foo;
</table>
<para>
- An RE cannot end with <literal>\</>.
+ An RE cannot end with a backslash (<literal>\</>).
</para>
<note>
<para>
- Remember that the backslash (<literal>\</literal>) already has a special
- meaning in <productname>PostgreSQL</> string literals.
- To write a pattern constant that contains a backslash,
- you must write two backslashes in the statement, assuming escape
- string syntax is used (see <xref linkend="sql-syntax-strings">).
+ If you have <xref linkend="guc-standard-conforming-strings"> turned off,
+ any backslashes you write in literal string constants will need to be
+ doubled. See <xref linkend="sql-syntax-strings"> for more information.
</para>
</note>
@@ -5541,10 +5534,8 @@ SELECT SUBSTRING('XY1234Z', 'Y*?([0-9]{1,3})');
<listitem>
<para>
If you want to have a double quote in the output you must
- precede it with a backslash, for example <literal>E'\\"YYYY
- Month\\"'</literal>. <!-- "" font-lock sanity :-) -->
- (Two backslashes are necessary because the backslash
- has special meaning when using the escape string syntax.)
+ precede it with a backslash, for example <literal>'\"YYYY
+ Month\"'</literal>. <!-- "" font-lock sanity :-) -->
</para>
</listitem>