Re: Re: [pgAdmin 4 - Bug #2274] Row DeletionAgainst Tables With PKs Not at Ordinal 0 Position Fail - Mailing list pgadmin-hackers

From Dave Page
Subject Re: Re: [pgAdmin 4 - Bug #2274] Row DeletionAgainst Tables With PKs Not at Ordinal 0 Position Fail
Date
Msg-id CA+OCxowXXOgiRjXDzhD5bMxWFkgKznXA2B-+RiKhisim57XSPQ@mail.gmail.com
Whole thread Raw
In response to [pgadmin-hackers] Re: [pgAdmin 4 - Bug #2274] Row Deletion Against Tables With PKs Notat Ordinal 0 Position Fail  (Harshal Dhumal <harshal.dhumal@enterprisedb.com>)
List pgadmin-hackers
Thanks, patch applied.

On Fri, Mar 24, 2017 at 7:51 AM, Harshal Dhumal
<harshal.dhumal@enterprisedb.com> wrote:
> Hi,
>
> Here is patch for RM2274 (patch credits to Wayne Winch Jr)
>
> I tested this patch with below scenarios and all are working fine:
>
> 1. Table with 2 columns with 2nd col as primary key.
> 2. Table with 3 columns with 3rd and 2nd cols as primary key.
> 3. Table with 4 columns with 3rd and 2nd and 4th cols as primary key.
> 4. Table with 4 columns with 2nd and 4th cols as primary key.
> 5. Table with 4 columns with 4th col as primary key.
> 6. Table with 4 columns with 1st col as primary key.
>
>
>
> --
> Harshal Dhumal
> Software Engineer
>
> EnterpriseDB India: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
> On Wed, Mar 22, 2017 at 3:27 PM, <redmine@postgresql.org> wrote:
>>
>> Issue #2274 has been updated by Dave Page.
>>
>> Priority changed from Normal to Urgent
>> Target version set to 1.4
>>
>> ________________________________
>>
>> Bug #2274: Row Deletion Against Tables With PKs Not at Ordinal 0 Position
>> Fail
>>
>> Author: Wayne Winch Jr
>> Status: New
>> Priority: Urgent
>> Assignee:
>> Category:
>> Target version: 1.4
>> Platform:
>> Area: User Interface
>>
>> If pgAdmin4 is used to delete one or more rows for tables having primary
>> keys that do not occupy the first column(s) of said table, the deletion will
>> fail with Python error --
>>
>> File
>> "/usr/lib/python3.5/site-packages/pgadmin4-web/pgadmin/tools/sqleditor/command.py",
>> line 499, in save
>> row[keys[int(k)]] = v
>> IndexError: list index out of range
>>
>> SIDE NOTE: A separate problem exists whereby pgAdmin4 does not adequately
>> indicate that an internal error (as listed above) has occurred as it merely
>> switches from the Data Output tab to the Messages tab whereby an old message
>> unrelated to the current or any exception is unhelpfully shown.
>>
>> The row deletion problem is caused by faulty logic within the command.py
>> file, TableCommand class, save() method in the 'deleted' operation branch
>> (Line 499) as indicated in the stack trace:
>>
>> row[keys[int(k)]] = v
>>
>> By changing this line to the following, the index mapping is performed
>> correctly (by bypassing keys list) for tables with non-ordinal, zero-based
>> PK column(s):
>>
>> row[changed_data['columns'][int(k)]['name']] = v
>>
>> This problem seems to have been introduced in pgAdmin4v1.3.
>>
>> ________________________________
>>
>> You have received this notification because you have either subscribed to
>> it, or are involved in it.
>> To change your notification preferences, please click here:
>> https://redmine.postgresql.org/my/account
>
>
>
>
> --
> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgadmin-hackers
>



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

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


pgadmin-hackers by date:

Previous
From: Dave Page
Date:
Subject: pgAdmin 4 commit: Fix deletion of rows where the primary key isn't ato
Next
From: Atira Odhner
Date:
Subject: Re: [patch] Raise InternalServerError whileretrieving table DDL