Thread: unable to understand query result

unable to understand query result

From
Stefan Froehlich
Date:
I have a database returing these result sets for two almost
identical queries:

#v+
$ select id, pid, length(pid), md5(pid) from product where pid  like '8000000';
 id   | pid     | length |               md5
------+---------+--------+----------------------------------
 3594 | 8000000 |      7 | 60b5792913f4acbccf45c281fa9e3c9f
(1 row)

$ select id, pid, length(pid), md5(pid) from product where pid  like '%8000000';
 id   | pid     | length |               md5
------+---------+--------+----------------------------------
 3594 | 8000000 |      7 | 60b5792913f4acbccf45c281fa9e3c9f
  722 | 8000000 |      7 | 60b5792913f4acbccf45c281fa9e3c9f
(2 rows)
#v-


There should be only one product with this id (no unique key,
because this is not a general constraint but just the current
situation), but there are two. Looking for it with query 1 I got
only one result, suspecting leading or trailing blanks I found the
other one using the wildcard.

But: What is wrong here? There must be some difference between the
two product ids, but with the same md5-hash there seems to be none.

This is by far too trivial to be a postgresql-bug, but what exactly
am I missing here?

Bye,
Stefan



Re: unable to understand query result

From
Peter Eisentraut
Date:
On 06.07.22 11:31, Stefan Froehlich wrote:
> I have a database returing these result sets for two almost
> identical queries:
> 
> #v+
> $ select id, pid, length(pid), md5(pid) from product where pid  like '8000000';
>   id   | pid     | length |               md5
> ------+---------+--------+----------------------------------
>   3594 | 8000000 |      7 | 60b5792913f4acbccf45c281fa9e3c9f
> (1 row)
> 
> $ select id, pid, length(pid), md5(pid) from product where pid  like '%8000000';
>   id   | pid     | length |               md5
> ------+---------+--------+----------------------------------
>   3594 | 8000000 |      7 | 60b5792913f4acbccf45c281fa9e3c9f
>    722 | 8000000 |      7 | 60b5792913f4acbccf45c281fa9e3c9f
> (2 rows)
> #v-

Check the EXPLAIN output for the two queries.  Maybe there is index 
corruption somewhere.



Re: unable to understand query result

From
Stefan Froehlich
Date:
On Wed, Jul 06, 2022 at 11:40:22AM +0200, Peter Eisentraut wrote:
> On 06.07.22 11:31, Stefan Froehlich wrote:
> >I have a database returing these result sets for two almost
> >identical queries:
> >
> >#v+
> >$ select id, pid, length(pid), md5(pid) from product where pid  like '8000000';
> >(1 row)
> >
> >$ select id, pid, length(pid), md5(pid) from product where pid  like '%8000000';
> >(2 rows)
> >#v-
 
> Check the EXPLAIN output for the two queries.  Maybe there is index
> corruption somewhere.

OMG. Thanks, this was the root of the problem. Never run into this
before so it did not come to my mind.

Bye,
Stefan