Re: proposal: function parse_ident - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: proposal: function parse_ident
Date
Msg-id CAFj8pRBB3N2HxkV13ZoeTCkejZWv5SUT5zigvM8zCaOfca8fEw@mail.gmail.com
Whole thread Raw
In response to Re: proposal: function parse_ident  (Teodor Sigaev <teodor@sigaev.ru>)
Responses Re: proposal: function parse_ident
List pgsql-hackers
Hi

2016-03-14 17:39 GMT+01:00 Teodor Sigaev <teodor@sigaev.ru>:
I afraid so I cannot to fix this inconsistency (if this is inconsistency - the
binary values are same) - the parameter of function is raw string with processed
escape codes, and I have not any information about original escape sequences.
When you enter octet value, and I show it as hex value, then there should be
difference. Buy I have not information about your input (octet or hex). I have
the original string of SQL identifier inside parser, executor, but I have not
original string of function parameter inside function (not without pretty
complex and long code).
Ok, agree


I am trying describe it in doc (I am sorry for my less level English) in new
patch. Fixed duplicated oid too.
Edited a bit + fix some typos and remove unneeded headers, patch attached

Sorry, I can't find all corner-cases at once, but:
SELECT parse_ident(E'"c".X XXXXXXXXXX');
ERROR:  identifier contains disallowed characters: "\"c"

Error message wrongly points to the reason of error.


I forgot my original plan - show full original string. Now, complete original parameter is used as part of message everywhere. It is more consistent.

I cannot to reuse escape_json - it escape double quotes, and then the paremeter in message looks strange.

I hope so the messages are ok now. Few more regress tests added.

Thank you for your patience.

Regards

Pavel

 




--
Teodor Sigaev                                   E-mail: teodor@sigaev.ru
                                                   WWW: http://www.sigaev.ru/

Attachment

pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Performance degradation in commit ac1d794
Next
From: Pavel Stehule
Date:
Subject: Re: plpgsql - DECLARE - cannot to use %TYPE or %ROWTYPE for composite types