Обсуждение: BUG #3493: Cannot find data with = operator
The following bug has been logged online:
Bug reference: 3493
Logged by: Michal Niklas
Email address: mn@heuthes.pl
PostgreSQL version: 8.1.9
Operating system: Linux, x86-64, debian
Description: Cannot find data with = operator
Details:
I cannot find just inserted data with = operator.
It can be found if I use LIKE.
My SQL looks like:
begin;
select version();
insert into customers (name) values ('KIOSK ');
select id,name from customers where name='KIOSK ';
select id,name from customers where name like 'KIOSK ';
rollback;
Result on my psql console:
isof_customer=# select version();
version
----------------------------------------------------------------------------
-------------------------------------
PostgreSQL 8.1.9 on x86_64-pc-linux-gnu, compiled by GCC cc (GCC) 4.1.2
20061115 (prerelease) (Debian 4.1.1-21)
(1 row)
isof_customer=# insert into customers (name) values ('KIOSK ');
INSERT 437819002 1
isof_customer=# select id,name from customers where name='KIOSK ';
id | name
---------------+------------------
(0 rows)
isof_customer=# select id,name from customers where name like 'KIOSK ';
id | name
---------------+------------------
218856 | KIOSK
(1 row)
This is problem in just one table in one database. It works as expected on
just created tmp table and on other customers databases. It works if I
change 'KIOSK ' to other text. I tried 'vacuum analyze' on this table but
it didn't help.
Regards,
Michal Niklas
HEUTHES
Poland
Michal Niklas wrote:
> isof_customer=# insert into customers (name) values ('KIOSK ');
> INSERT 437819002 1
> isof_customer=# select id,name from customers where name='KIOSK ';
> id | name
> ---------------+------------------
> (0 rows)
>
> isof_customer=# select id,name from customers where name like 'KIOSK ';
> id | name
> ---------------+------------------
> 218856 | KIOSK
> (1 row)
What's the type of the name column? Please be specific.
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
Alvaro Herrera wrote:
> Michal Niklas wrote:
>
>
>> isof_customer=# insert into customers (name) values ('KIOSK ');
>> INSERT 437819002 1
>> isof_customer=# select id,name from customers where name='KIOSK ';
>> id | name
>> ---------------+------------------
>> (0 rows)
>>
>> isof_customer=# select id,name from customers where name like 'KIOSK ';
>> id | name
>> ---------------+------------------
>> 218856 | KIOSK
>> (1 row)
>>
>
> What's the type of the name column? Please be specific.
>
It is varchar.
I'm sorry I didn't reported data structure. This table has many columns
and indexes,
and there is fragment of sql to create this table:
create table "customers" ( "id" serial, "customer" varchar(254) default '', -- other columns Constraint
"customers_pkey"Primary Key ("id")
);
create index customer_idx on customers (customer);
-- other indexes
--
Regards,
Michal Niklas
Poland
"Michal Niklas" <mn@heuthes.pl> writes:
> This is problem in just one table in one database. It works as expected on
> just created tmp table and on other customers databases. It works if I
> change 'KIOSK ' to other text. I tried 'vacuum analyze' on this table but
> it didn't help.
REINDEX maybe?
regards, tom lane
The schema specification you provided doesn't even include the column=20=20
"name", which you are selecting in your original message. What is=20=20
the field type of "name" ?
On Jul 27, 2007, at 6:55 AM, Micha=C5=82 Niklas wrote:
> Alvaro Herrera wrote:
>> Michal Niklas wrote:
>>
>>
>>> isof_customer=3D# insert into customers (name) values ('KIOSK ');
>>> INSERT 437819002 1
>>> isof_customer=3D# select id,name from customers where name=3D'KIOSK ';
>>> id | name
>>> ---------------+------------------
>>> (0 rows)
>>>
>>> isof_customer=3D# select id,name from customers where name like=20=20
>>> 'KIOSK ';
>>> id | name
>>> ---------------+------------------
>>> 218856 | KIOSK
>>> (1 row)
>>>
>>
>> What's the type of the name column? Please be specific.
>>
>
>
> It is varchar.
>
> I'm sorry I didn't reported data structure. This table has many=20=20
> columns and indexes,
> and there is fragment of sql to create this table:
>
> create table "customers" (
> "id" serial,
> "customer" varchar(254) default '',
> -- other columns
> Constraint "customers_pkey" Primary Key ("id")
> );
>
> create index customer_idx on customers (customer);
> -- other indexes
>
> --=20
> Regards,
> Michal Niklas
> Poland
>
>
> ---------------------------(end of=20=20
> broadcast)---------------------------
> TIP 1: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that=20=20
> your
> message can get through to the mailing list cleanly
Douglas Toltzman
doug@oakstreetsoftware.com
(910) 526-5938
Tom Lane wrote: > "Michal Niklas" <mn@heuthes.pl> writes: > >> This is problem in just one table in one database. It works as expected on >> just created tmp table and on other customers databases. It works if I >> change 'KIOSK ' to other text. I tried 'vacuum analyze' on this table but >> it didn't help. >> > > REINDEX maybe? > > Yes, REINDEX helped. Thanks, Michal Niklas