On 23-05-2012 09:45, Michal Kubecek wrote:
> On Wed, May 23, 2012 at 11:49:00AM +0400, Alex Peshkoff wrote:
>>  On 05/23/12 11:34, Michal Kubecek wrote:
>>> Empty second argument means setting the value (in case of LC_ALL, all
>>> values) according to environment variable(s). setlocale(LC_ALL, "")
>>> is the most common way to initialize locale in an application using
>>> locale functions and it is recommended in setlocale(3) manual page.
>>
>> Nice.
>> I suppose in this case we should accept this patch.
> 
> Thank you. Committed to HEAD and B2_5_Release.
> 

This patch broke isql. See attached TCS results.

Current ($LANG) locale must not be set. ISQL should use the minimal (C)
locale.

If you do set it, then even output sent to files (-o or stdout
redirection) do not transliterates correct.

This is not right approach. It must not interfere with ISQL at all.


Adriano
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database

CONSTANT          S_ROWID C_ENUS                    C_850_25                  
================= ======= ========================= ========================= 
set names is ISO:       1 p�ch�                     p�ch�                     
set names is ISO:       2 �lborg                    �lborg                    
set names is ISO:       3 c�sium                    c�sium                    
set names is ISO:       4 Aalborg                   Aalborg                   
set names is ISO:       5 a�eul                     a�eul                     
set names is ISO:       6 caennais                  caennais                  
set names is ISO:       7 vice versa                vice versa                


CONSTANT          S_ROWID C_UNICODE_25              
================= ======= ========================= 
set names is ISO:       1 p�ch�                     
set names is ISO:       2 <null>                    
set names is ISO:       3 <null>                    
set names is ISO:       4 <null>                    
set names is ISO:       5 <null>                    
set names is ISO:       6 <null>                    
set names is ISO:       7 <null>                    


CONSTANT          S_ROWID C_437_25                  
================= ======= ========================= 
Statement failed, SQLSTATE = 22018
arithmetic exception, numeric overflow, or string truncation
-Cannot transliterate character between character sets
After line 4 in file giso.sql
Use CONNECT or CREATE DATABASE to specify a database

CONSTANT          S_ROWID C_ENUS                    C_437_25                  
================= ======= ========================= ========================= 
set names is 437:       1 p�ch�                     p�ch�                     
set names is 437:       2 �lborg                    �lborg                    
set names is 437:       3 c�sium                    c�sium                    
set names is 437:       4 Aalborg                   Aalborg                   
set names is 437:       5 a�eul                     a�eul                     
set names is 437:       6 caennais                  caennais                  
set names is 437:       7 vice versa                vice versa                


CONSTANT          S_ROWID C_UNICODE_25              
================= ======= ========================= 
set names is 437:       1 p�ch�                     
set names is 437:       2 <null>                    
set names is 437:       3 <null>                    
set names is 437:       4 <null>                    
set names is 437:       5 <null>                    
set names is 437:       6 <null>                    
set names is 437:       7 <null>                    

Use CONNECT or CREATE DATABASE to specify a database

CONSTANT             S_ROWID C_ENUS                    C_850_25                 
 
==================== ======= ========================= 
========================= 
set names is dos850:       1 p�ch�                     p�ch�                    
 
set names is dos850:       2 �lborg                    �lborg                   
 
set names is dos850:       3 c�sium                    c�sium                   
 
set names is dos850:       4 Aalborg                   Aalborg                  
 
set names is dos850:       5 a�eul                     a�eul                    
 
set names is dos850:       6 caennais                  caennais                 
 
set names is dos850:       7 vice versa                vice versa               
 

Use CONNECT or CREATE DATABASE to specify a database

CONSTANT             S_ROWID C_437_25                  
==================== ======= ========================= 
Statement failed, SQLSTATE = 22018
arithmetic exception, numeric overflow, or string truncation
-Cannot transliterate character between character sets
After line 2 in file g8502.sql
7,9 c 7,9
< set names is ISO:       1 péché                     péché                     
< set names is ISO:       2 Ålborg                    Ålborg                    
< set names is ISO:       3 cæsium                    cæsium                    
---------------------------------------------
> set names is ISO:       1   
> set names is ISO:       2   
> set names is ISO:       3   
++++++++++++++++++++++++++++++++++++++++++++++++++
11 c 11
< set names is ISO:       5 aïeul                     aïeul                     
---------------------------------------------
> set names is ISO:       5   
++++++++++++++++++++++++++++++++++++++++++++++++++
18 c 18
< set names is ISO:       1 péché                     
---------------------------------------------
> set names is ISO:       1  
++++++++++++++++++++++++++++++++++++++++++++++++++
37,39 c 37,39
< set names is 437:       1 p‚ch‚                     péché                     
< set names is 437:       2 lborg                    Ålborg                    
< set names is 437:       3 c‘sium                    cæsium                    
---------------------------------------------
> set names is 437:       1   
> set names is 437:       2   
> set names is 437:       3   
++++++++++++++++++++++++++++++++++++++++++++++++++
41 c 41
< set names is 437:       5 a‹eul                     aïeul                     
---------------------------------------------
> set names is 437:       5   
++++++++++++++++++++++++++++++++++++++++++++++++++
48 c 48
< set names is 437:       1 p‚ch‚                     
---------------------------------------------
> set names is 437:       1  
++++++++++++++++++++++++++++++++++++++++++++++++++
60,62 c 60,62
< set names is dos850:       1 p‚ch‚                     p‚ch‚                     
< set names is dos850:       2 lborg                    lborg                    
< set names is dos850:       3 c‘sium                    c‘sium                    
---------------------------------------------
> set names is dos850:       1   
> set names is dos850:       2   
> set names is dos850:       3   
++++++++++++++++++++++++++++++++++++++++++++++++++
64 c 64
< set names is dos850:       5 a‹eul                     a‹eul                     
---------------------------------------------
> set names is dos850:       5   
++++++++++++++++++++++++++++++++++++++++++++++++++
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database
Use CONNECT or CREATE DATABASE to specify a database

CONSTANT          S_ROWID C_ENUS                    C_850_25                  
================= ======= ========================= ========================= 
set names is ISO:       1   
set names is ISO:       2   
set names is ISO:       3   
set names is ISO:       4 Aalborg                   Aalborg                   
set names is ISO:       5   
set names is ISO:       6 caennais                  caennais                  
set names is ISO:       7 vice versa                vice versa                


CONSTANT          S_ROWID C_UNICODE_25              
================= ======= ========================= 
set names is ISO:       1  
set names is ISO:       2 <null>                    
set names is ISO:       3 <null>                    
set names is ISO:       4 <null>                    
set names is ISO:       5 <null>                    
set names is ISO:       6 <null>                    
set names is ISO:       7 <null>                    


CONSTANT          S_ROWID C_437_25                  
================= ======= ========================= 
Statement failed, SQLSTATE = 22018
arithmetic exception, numeric overflow, or string truncation
-Cannot transliterate character between character sets
After line 4 in file giso.sql
Use CONNECT or CREATE DATABASE to specify a database

CONSTANT          S_ROWID C_ENUS                    C_437_25                  
================= ======= ========================= ========================= 
set names is 437:       1   
set names is 437:       2   
set names is 437:       3   
set names is 437:       4 Aalborg                   Aalborg                   
set names is 437:       5   
set names is 437:       6 caennais                  caennais                  
set names is 437:       7 vice versa                vice versa                


CONSTANT          S_ROWID C_UNICODE_25              
================= ======= ========================= 
set names is 437:       1  
set names is 437:       2 <null>                    
set names is 437:       3 <null>                    
set names is 437:       4 <null>                    
set names is 437:       5 <null>                    
set names is 437:       6 <null>                    
set names is 437:       7 <null>                    

Use CONNECT or CREATE DATABASE to specify a database

CONSTANT             S_ROWID C_ENUS                    C_850_25                 
 
==================== ======= ========================= 
========================= 
set names is dos850:       1   
set names is dos850:       2   
set names is dos850:       3   
set names is dos850:       4 Aalborg                   Aalborg                  
 
set names is dos850:       5   
set names is dos850:       6 caennais                  caennais                 
 
set names is dos850:       7 vice versa                vice versa               
 

Use CONNECT or CREATE DATABASE to specify a database

CONSTANT             S_ROWID C_437_25                  
==================== ======= ========================= 
Statement failed, SQLSTATE = 22018
arithmetic exception, numeric overflow, or string truncation
-Cannot transliterate character between character sets
After line 2 in file g8502.sql
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to