[Qgis-user] QGis 1.7.4 possible bug with PostgreSQL/Postgis manual integer primary key?

Lee Hachadoorian Lee.Hachadoorian+L at gmail.com
Wed May 16 10:39:05 PDT 2012



On 05/16/2012 02:41 AM, Bernhard Ströbl wrote:
> I agree, so if the user enters a value it should be passed to the 
> database and not discarded. If it violates any database rules 
> postgresql complains anyways. So this could be a bug then.
>>
>> BTW, I found I could *edit* the primary key field of a table with a
>> key field typed as serial, but when I tried to add a new feature, any
>> value entered manually generated a primary key violation. The column
>> value in QGIS defaulted to nextval('sequence_name'::regclass),
>> matching the column default in the table definition, but also
>> generated a primary key violation. When I cleared the field
>> completely, the row was added with the next available value from the
>> sequence.
>
> not confirmed here (PostgreSQL 8.4, QGIS 1.7.4)
> primary key is integer with a nextval('sequence') default
> adding features the key field defaults to nextval('sequence')
> case 1) no change => nextval applied
> case 2) change value => nextval applied (no error, though)
>
> expected behaviour for case 2) would be to not apply the default
> shall we file a ticket for this?
>
> Bernhard
OK, I have added a ticket for this behavior. Note that my previous 
complaint--any supplied value generates a primary key violation--was 
tested on Windows. Testing just now on Ubuntu, I observe same behavior 
as you and OP. I have filed the ticket accordingly. I want to retest on 
Windows, and then will amend ticket or file new bug report.

>>>>
>>>> I found a workaround : if I change the field type of the key from
>>>> integer to bigint then everything works as attended...
>>>> QGis doesnt tries anymore to give a value when we don't need it.
>>>> But this is not very logical isn't it?
>>>>
>>>> Fabrice
Fabrice, it seems that QGIS does allow you to edit an existing feature, 
so another workaround would be to add feature, save changes allowing 
Postgres to assign default value from sequence, then edit to change to 
the desired value.

--Lee

-- 
Lee Hachadoorian
PhD, Earth&  Environmental Sciences (Geography)
Research Associate, CUNY Center for Urban Research
http://freecity.commons.gc.cuny.edu




More information about the Qgis-user mailing list