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