Re: [pgadmin-hackers] [pgAdmin4][Patch]: Fix RM1790 - [Web] Supportsetting a field's value to "null"

Поиск
Список
Период
Сортировка
От Dave Page
Тема Re: [pgadmin-hackers] [pgAdmin4][Patch]: Fix RM1790 - [Web] Supportsetting a field's value to "null"
Дата
Msg-id CA+OCxoz6uA-uEAfYpqJZNjx9SXmKaTpA3+KbfzEdSg+7WZVAJA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [pgadmin-hackers] [pgAdmin4][Patch]: Fix RM1790 - [Web] Supportsetting a field's value to "null"  (Surinder Kumar <surinder.kumar@enterprisedb.com>)
Список pgadmin-hackers
Thanks - patch applied!

On Sat, Feb 4, 2017 at 8:58 PM, Surinder Kumar
<surinder.kumar@enterprisedb.com> wrote:
> Hi Dave,
>
> I have overriden the checkbox editor to add 'indeterminate' state of
> checkbox other than checked and unchecked which gives the user capability to
> set [null] value
> for boolean types.
>
> Please find updated patch and review.
>
> On Sat, Feb 4, 2017 at 6:47 PM, Dave Page <dpage@pgadmin.org> wrote:
>>
>> BTW, this may help: https://css-tricks.com/indeterminate-checkboxes/
>
> That's actually the solution. It works.
> Thanks.
>>
>>
>>
>> On Sat, Feb 4, 2017 at 1:15 PM, Dave Page <dpage@pgadmin.org> wrote:
>> > Hi,
>> >
>> > This seems to work nicely now for text and int fields etc. but you
>> > haven't handled booleans. They should have a 3 state checkbox in edit
>> > mode (checked == true, clear == false, blurred == null (see pgAdmin
>> > 3).
>> >
>> > I've committed the patch, but can you please get me an additional one
>> > for boolean support for Monday morning my time please?
>
> Thanks.
>>
>> >
>> > Thanks!
>> >
>> > On Sat, Feb 4, 2017 at 5:34 AM, Surinder Kumar
>> > <surinder.kumar@enterprisedb.com> wrote:
>> >> Hi Dave,
>> >>
>> >> Please find updated patch and review.
>> >>
>> >> On Fri, Feb 3, 2017 at 2:43 PM, Dave Page <dpage@pgadmin.org> wrote:
>> >>>
>> >>> On Fri, Feb 3, 2017 at 7:28 AM, Surinder Kumar
>> >>> <surinder.kumar@enterprisedb.com> wrote:
>> >>> > Hi Dave,
>> >>> >
>> >>> > On Mon, Jan 30, 2017 at 6:18 PM, Dave Page <dpage@pgadmin.org>
>> >>> > wrote:
>> >>> >>
>> >>> >> On Fri, Jan 27, 2017 at 10:32 AM, Surinder Kumar
>> >>> >> <surinder.kumar@enterprisedb.com> wrote:
>> >>> >> > Hi Dave,
>> >>> >> >
>> >>> >> > Please find updated patch.
>> >>> >> >
>> >>> >> > On Mon, Jan 16, 2017 at 10:01 PM, Dave Page <dpage@pgadmin.org>
>> >>> >> > wrote:
>> >>> >> >>
>> >>> >> >> Hi
>> >>> >> >>
>> >>> >> >> On Fri, Jan 13, 2017 at 9:24 AM, Surinder Kumar
>> >>> >> >> <surinder.kumar@enterprisedb.com> wrote:
>> >>> >> >> > Hi
>> >>> >> >> >
>> >>> >> >> > Please find attached patch and review.
>> >>> >> >> >
>> >>> >> >> > On Sun, Jan 8, 2017 at 3:27 PM, Dave Page <dpage@pgadmin.org>
>> >>> >> >> > wrote:
>> >>> >> >> >>
>> >>> >> >> >> Hi
>> >>> >> >> >>
>> >>> >> >> >> On Friday, December 23, 2016, Surinder Kumar
>> >>> >> >> >> <surinder.kumar@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?
>> >>>
>> >>> Why would you save the value provided? The point is to escape the
>> >>> quotes with the slashes - i.e. to store the literal string '' (two
>> >>> single quotes), the user enters \'\' (because entering just two single
>> >>> quotes is how we enter an empty string).
>> >>
>> >> Implemented accordingly. I have tested all cases you provided and they
>> >> are
>> >> working.
>> >> If there is still anything not working. Please let me know. I will fix.
>> >>>
>> >>>
>> >>> I'm not sure why this is so hard - the original request was to make it
>> >>> work like pgAdmin III. That's well defined and documented behaviour -
>> >>> I even copied/pasted the description from the docs on this thread.
>> >>>
>> >>> >>
>> >>> >> 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
>> >>> >
>> >>> >
>> >>>
>> >>>
>> >>>
>> >>> --
>> >>> Dave Page
>> >>> Blog: http://pgsnake.blogspot.com
>> >>> Twitter: @pgsnake
>> >>>
>> >>> EnterpriseDB UK: http://www.enterprisedb.com
>> >>> The Enterprise PostgreSQL Company
>> >>
>> >>
>> >
>> >
>> >
>> > --
>> > Dave Page
>> > Blog: http://pgsnake.blogspot.com
>> > Twitter: @pgsnake
>> >
>> > EnterpriseDB UK: http://www.enterprisedb.com
>> > The Enterprise PostgreSQL Company
>>
>>
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>
>



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


В списке pgadmin-hackers по дате отправления:

Предыдущее
От: Dave Page
Дата:
Сообщение: [pgadmin-hackers] pgAdmin 4 commit: Handle NULL booleans in the data editor. Fixes #1790
Следующее
От: Murtuza Zabuawala
Дата:
Сообщение: [pgadmin-hackers] [pgAdmin4][PATCH] To fix graphical explain for Insert/Update/Delete quries