From d12e5bb79bb535c2df13b76cd7d01f0bb8dc8e4d Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 28 Mar 2016 01:00:30 -0400 Subject: Code and docs review for commit 3187d6de0e5a9e805b27c48437897e8c39071d45. Fix up check for high-bit-set characters, which provoked "comparison is always true due to limited range of data type" warnings on some compilers, and was unlike the way we do it elsewhere anyway. Fix omission of "$" from the set of valid identifier continuation characters. Get rid of sanitize_text(), which was utterly inconsistent with any other error report anywhere in the system, and wasn't even well designed on its own terms (double-quoting the result string without escaping contained double quotes doesn't seem very well thought out). Fix up error messages, which didn't follow the message style guidelines very well, and were overly specific in situations where the actual mistake might not be what they said. Improve documentation. (I started out just intending to fix the compiler warning, but the more I looked at the patch the less I liked it.) --- doc/src/sgml/func.sgml | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) (limited to 'doc/src') diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index ae93e69f0d2..e6c4ee52ee1 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -1823,25 +1823,22 @@ parse_ident - parse_ident(str text, - [ strictmode boolean DEFAULT true ] ) + parse_ident(qualified_identifier text + [, strictmode boolean DEFAULT true ] ) text[] - Split qualified identifier into array - parts. When strictmode is - false, extra characters after the identifier are ignored. This is useful - for parsing identifiers for objects like functions and arrays that may - have trailing characters. By default, extra characters after the last - identifier are considered an error, but if the second parameter is false, - then the characters after the last identifier are ignored. Note that this - function does not truncate quoted identifiers. If you care about that - you should cast the result of this function to name[]. Non-printable - characters (like 0 to 31) are always displayed as hexadecimal codes, - which can be different from PostgreSQL internal SQL identifiers - processing, when the original escaped value is displayed. + + Split qualified_identifier into an array of + identifiers, removing any quoting of individual identifiers. By + default, extra characters after the last identifier are considered an + error; but if the second parameter is false, then such + extra characters are ignored. (This behavior is useful for parsing + names for objects like functions.) Note that this function does not + truncate over-length identifiers. If you want truncation you can cast + the result to name[]. parse_ident('"SomeSchema".someTable') - "SomeSchema,sometable" + {SomeSchema,sometable} -- cgit v1.2.3