Hi Dave,

On Mon, Jan 30, 2017 at 6:18 PM, Dave Page <dp...@pgadmin.org> wrote:

> On Fri, Jan 27, 2017 at 10:32 AM, Surinder Kumar
> <surinder.ku...@enterprisedb.com> wrote:
> > Hi Dave,
> >
> > Please find updated patch.
> >
> > On Mon, Jan 16, 2017 at 10:01 PM, Dave Page <dp...@pgadmin.org> wrote:
> >>
> >> Hi
> >>
> >> On Fri, Jan 13, 2017 at 9:24 AM, Surinder Kumar
> >> <surinder.ku...@enterprisedb.com> wrote:
> >> > Hi
> >> >
> >> > Please find attached patch and review.
> >> >
> >> > On Sun, Jan 8, 2017 at 3:27 PM, Dave Page <dp...@pgadmin.org> wrote:
> >> >>
> >> >> Hi
> >> >>
> >> >> On Friday, December 23, 2016, Surinder Kumar
> >> >> <surinder.ku...@enterprisedb.com> wrote:
> >> >>>
> >> >>> Forgot to attach patch in last thread. please find patch.
> >> >>
> >> >>
> >> >> It looks good for the most part, except:
> >> >>
> >> >> 1) You missed the part we discussed about being able to set a value
> to
> >> >> ''
> >> >> (the literal string containing two single quotes) by entering \'\'
> (and
> >> >> of
> >> >> course, the follow-on cases to allow setting a value to \'\' by
> >> >> entering
> >> >> \\'\\' etc).
> >> >
> >> > Fixed.
> >>
> >> That doesn't seem right to me - the code you've written looks like
> >> it'll try to escape anything for use in a string literal, not just
> >> '\'\ or \\'\\' etc.
> >
> > Now the implementation is that It will find and unescape the string
> literals
> > like '\'\ or \\'\\' etc.
>
> I ran some tests:
>
> - Setting a field to '' resulted in the following SQL:
>
> UPDATE public.emp SET
> job = '''''' WHERE
> empno = 7369;
>
> - Setting a field to \"\" resulted in the following SQL:
>
> UPDATE public.emp SET
> job = '""' WHERE
> empno = 7499;
>
> - Setting a field to \'\' displayed \'\' in the grid until refreshed
> when the value vanished. The SQL it ran was:
>
​In current behaviour, we are saving the value provided by user and we are
not refreshing the grid with new values.
​Should we do refresh along with save?

>
> UPDATE public.emp SET
> job = '''''' WHERE
> empno = 7499;
>
> To be clear, here's what I'm expecting:
>
> Input: <empty>
> Display: [null]
> SQL: UPDATE t SET c = NULL WHERE k  = <val>
>
> Input: ''
> Display:
> SQL: UPDATE t SET c = '' WHERE k  = <val>
>
> Input: \'\'
> Display: ''
> SQL: UPDATE t SET c = '''''' WHERE k  = <val>
>
> Input: \\'\\'
> Display: \'\'
> SQL: UPDATE t SET c = '\''\''' WHERE k  = <val>
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>

Reply via email to