Em 15/10/08, Leandro DUTRA<[EMAIL PROTECTED]> escreveu: > 2008/10/15 Osvaldo Kussama <[EMAIL PROTECTED]>: > >> Verifique que o PostgreSQL considera a ordem de criação do tipo: >> >> bdteste=# SELECT pe.enumlabel AS pais FROM pg_type pt JOIN pg_enum pe >> ON pt.oid = pe.enumtypid WHERE pt.typname = 'paises'; >> pais >> ------ >> BR >> PT >> FR >> US >> JP >> (5 registros) >> >> Se no lugar do enum tivessemos criado uma tabela auxiliar, com uma >> chave estrangeira, o resultado seria diferente. > > Faltou o 'ORDER BY pe.enumlabel'... esse comportamento sem o ORDER BY > não é garantido, e poderia mudar sem aviso. > > Na verdade, desconfio que aí é função mais dos OIDs. >
Não é uma questão de ORDER BY e sim da ordem com que os elementos aparecem na lista de criação do tipo. Como coloquei 'PT' antes de 'FR' ele é considerado menor: bdteste=# SELECT 'PT' > 'FR'; -- comparação de strings ?column? ---------- t (1 registro) bdteste=# SELECT 'PT'::paises > 'FR'::paises; -- comparação do tipo enum ?column? ---------- f (1 registro) É só um detalhe para prestarmos atenção e não sermos pegos de surpresa. Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
