[firebase-br] Bug do Firebird 2.1 RC 2
Edgard no IBest
econeto em ibest.com.br
Sex Abr 11 01:05:06 -03 2008
Tenho um banco em produção, onde documentei praticamente todos os
metadados (domains, tables, views, sp, etc), inclusive as descrições de
todos os fields, etc...
Uso no ambiente de produção a versão 1.0.3 sem problemas. E instalei na
minha estação do windows Xp a versão 2.1 RC 1 e agora a RC 2.
Como IDE uso o IBExpert full.
Constatei o seguinte problema:
Quando eu comparava o banco do meu ambiente (XP com FB 2.1 RC 1 ou 2)
com um banco no ambiente linux FB 2.03, o IBExpert sempre indicava que
as descrições dos domains não estavam iguais e sugeria que eu fizesse a
atualização com a descrição indicada. No entanto estas descrições,
mostravam todos os acentos errados, apenas nas descrições dos domains.
Eu estranhava pois eu não havia mudado aqueles dominios, muito menos as
descrições.
Eu abria normalmente o banco da versão do FB 1.0.3 na minha maquina que
está rodando o server 2.1 RC.
Então fiz o seguinte:
Fiz um backup (transportable) do servidor linux FB 2.0.3 e restaurei no
meu ambiente (Win XP com FB 2.1 RC 1 ou 2) sem apresentar nenhum erro.
O entanto, quando eu tento abrir o BD no IBExpert ele acusa um erro:
"Cannot transliterate character between character sets". E pára de
carregar os dados na árvore.
Você pode está achando que o problema é do IBExpert, mas eu posso
mostrar que não é.
Segue os fatos:
- Algumas descrições que tem caracteres acentuados estão errados;
- Não detetei nenhum problema ao usar o banco nas minhas aplicações;
- executei a query abaixo, no IBEXPERT e o erro se repetiu
select RDB$FIELD_NAME, RDB$DESCRIPTION from RDB$FIELDS
order by RDB$FIELD_NAME
- através de linha de comando isql executei esta mesma query e os
acentos estavam todos trocados, mas não deu erro.
- executei a query abaixo (sem recuperar a descrição), no IBEXPERT e o
erro NÃO se repetiu
select rdb$field_name from rdb$fields where rdb$description is not null
- Desinstalei o firebird 2.1 RC2 e instalei a versão 2.0.4 RC1,
restaurei o banco e o erro não ocorreu, tudo funcionou normalmente,
inclusive no IBExpert, rodei essas queries sem problemas.
- Notei que que a ODS do 2.1 é 11.1 e a do 2.0.4 é 11.0, portanto
diferentes.
- Acho que foi quando foi implementado a funcionalidade de domain em
storage procedure, pois esta parece ser a grande mudança que houve entre
as versões
Agradeço antecipadamente.
Edgard Oliveira
Mais detalhes sobre a lista de discussão lista