Thread: BUG #1860: Insert failed due to unique index
The following bug has been logged online: Bug reference: 1860 Logged by: Viswanath Ramineni Email address: v_ramineni@hotmail.com PostgreSQL version: 8.1 Beta Operating system: Windows 2000 Professional Description: Insert failed due to unique index Details: I have a table with a primary key on id (integer) column and a unique index on varchar(10) column. Insertion fails when the value of the unique column is substring of an existing value. For example, if I have a row with the unique column value 'TEST1', it will not allow me insert another row with 'TEST' as the value for this column.
Viswanath Ramineni wrote: > I have a table with a primary key on id (integer) column and a unique > index on varchar(10) column. Insertion fails when the value of the > unique column is substring of an existing value. For example, if I > have a row with the unique column value 'TEST1', it will not allow me > insert another row with 'TEST' as the value for this column. Please show the exact sequence of commands that leads to this situation. -- Peter Eisentraut http://developer.postgresql.org/~petere/
Peter Eisentraut <peter_e@gmx.net> writes: > Viswanath Ramineni wrote: >> I have a table with a primary key on id (integer) column and a unique >> index on varchar(10) column. Insertion fails when the value of the >> unique column is substring of an existing value. For example, if I >> have a row with the unique column value 'TEST1', it will not allow me >> insert another row with 'TEST' as the value for this column. > Please show the exact sequence of commands that leads to this situation. This is probably the bug that was introduced here: 2005-08-24 13:50 tgl * src/backend/utils/adt/: oracle_compat.c, varlena.c: Add small hack to support use of Unicode-based locales on WIN32. This is not adequately tested yet, but let's get it into beta1 so it can be tested. Magnus Hagander and Tom Lane. and fixed here: 2005-08-26 13:40 tgl * src/backend/utils/adt/varlena.c: The idea of using _strncoll() on Windows doesn't work. Revert to same code as we use on other platforms when encoding is not UTF8. Non-unicode comparison on Windows was pretty thoroughly broken during that interval :-( regards, tom lane