From: | Oswaldo Hernández <listas(at)soft-com(dot)es> |
---|---|
To: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
Cc: | Paolo Lopez <murphyperu(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Problema Order By en PosgreSQL 8.1 |
Date: | 2006-04-08 11:10:18 |
Message-ID: | 44379A1A.4000505@soft-com.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs pgsql-es-ayuda |
Alvaro Herrera escribió:
>
> Me gustaria saber si alguien mas puede reproducir este problema en
> Windows.
Windows XP SP1
postgres=# select version();
version
------------------------------------------------------------------------------------------
PostgreSQL 8.1.1 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC) 3.4.2 (mingw-special)
(1 fila)
Hasta esta expresion el ordenamiento lo hace mal en mi sistema:
CREATE TABLE tablita (
d int4 ,
e int4 ,
f int4 ,
dia int4 ,
primary key (d, e, f, dia)
);
INSERT INTO tablita (d, e, f, dia) VALUES (1, 1, 1, 1);
INSERT INTO tablita (d, e, f, dia) VALUES (1, 1, 1, 3);
INSERT INTO tablita (d, e, f, dia) VALUES (1, 1, 1, 5);
INSERT INTO tablita (d, e, f, dia) VALUES (1, 1, 2, 2);
INSERT INTO tablita (d, e, f, dia) VALUES (1, 1, 2, 4);
INSERT INTO tablita (d, e, f, dia) VALUES (1, 1, 2, 5);
select dia from tablita where d = 1 and e = 1 order by dia;
El resultado tanto en pgadmin como en la consola es:
dia
-----
1
3
5
2
4
5
(6 filas)
* Creo que he encontrado algo:
1.
Cambio los valores del campo 'e'
INSERT INTO tablita (d, e, f, dia) VALUES (1, 2, 1, 1);
INSERT INTO tablita (d, e, f, dia) VALUES (1, 2, 1, 3);
INSERT INTO tablita (d, e, f, dia) VALUES (1, 2, 1, 5);
INSERT INTO tablita (d, e, f, dia) VALUES (1, 2, 2, 2);
INSERT INTO tablita (d, e, f, dia) VALUES (1, 2, 2, 4);
INSERT INTO tablita (d, e, f, dia) VALUES (1, 2, 2, 5);
select dia from tablita where d = 1 and e = 2 order by dia;
El resultado es correcto:
dia
-----
1
2
3
4
5
5
(6 filas)
2.
Cambio los valores de los campos 'd' y 'e' y les vuelvo a poner un valor igual pero disntinto a '1':
INSERT INTO tablita (d, e, f, dia) VALUES (21512, 21512, 1, 1);
INSERT INTO tablita (d, e, f, dia) VALUES (21512, 21512, 1, 3);
INSERT INTO tablita (d, e, f, dia) VALUES (21512, 21512, 1, 5);
INSERT INTO tablita (d, e, f, dia) VALUES (21512, 21512, 2, 2);
INSERT INTO tablita (d, e, f, dia) VALUES (21512, 21512, 2, 4);
INSERT INTO tablita (d, e, f, dia) VALUES (21512, 21512, 2, 5);
select dia from tablita where d = 21512 and e = 21512 order by dia;
El resultado vuelve a ser incorrecto:
dia
-----
1
3
5
2
4
5
(6 filas)
3.
Pongo a 'd' y 'e' el mismo valor pero cambio la condicion where:
INSERT INTO tablita (d, e, f, dia) VALUES (1, 1, 1, 1);
INSERT INTO tablita (d, e, f, dia) VALUES (1, 1, 1, 3);
INSERT INTO tablita (d, e, f, dia) VALUES (1, 1, 1, 5);
INSERT INTO tablita (d, e, f, dia) VALUES (1, 1, 2, 2);
INSERT INTO tablita (d, e, f, dia) VALUES (1, 1, 2, 4);
INSERT INTO tablita (d, e, f, dia) VALUES (1, 1, 2, 5);
postgres=# select dia from tablita where d > 0 and e > 0 order by dia;
dia
-----
1
2
3
4
5
5
(6 filas)
El resultaso SI es correcto
4.
Mas pruebas cambiando el where:
postgres=# select dia from tablita where e = d and e = 1 order by dia;
dia
-----
1
3
5
2
4
5
(6 filas)
Incorrecto
postgres=# select dia from tablita where d between 1 and 1 and e between 1 and 1 order by dia;
dia
-----
1
2
3
4
5
5
(6 filas)
Correcto
postgres=# select dia from tablita where e = d and e > 0 order by dia;
dia
-----
1
2
3
4
5
5
(6 filas)
Correcto
Resumen:
Da la impresion que el fallo lo da unicamente cuando:
en el where estan las dos condiciones,
'd' y 'e' tienen el mismo valor
la clausula where utiliza el operador '=' para ambas condiciones
Saludos,
--
*****************************************
Oswaldo Hernández
oswaldo(at)soft-com(dot)es
*****************************************
From | Date | Subject | |
---|---|---|---|
Next Message | Martijn van Oosterhout | 2006-04-08 13:14:49 | Re: bug in windows xp |
Previous Message | Magnus Hagander | 2006-04-08 10:40:35 | Re: Bug in window xp |
From | Date | Subject | |
---|---|---|---|
Next Message | Milhenny Jordán | 2006-04-08 12:28:40 | Re: AYUDA CON ODBC DE POSTGRESQL PARA VISUAL BASIC 6.0 |
Previous Message | Paolo Lopez | 2006-04-08 05:42:39 | Re: Problema Order By en PosgreSQL 8.1 |