[freetds] Testing charset

ZIGLIO Frediano Frediano.Ziglio at vodafoneomnitel.it
Fri May 9 05:58:29 EDT 2003


> > 
> > Fully agree. However current implementation never use
> > TDSLOGININFO->client_charset. There are two method to build
> > TDSCONNECTINFO:
> > 1:
> > a- allocate connect
> > b- fill values (sometime reading freetds.conf with its 
> client charset)
> > c- call tds_fix_connect
> > (used in odbc, do not involve TDSLOGININFO so no problem)
> > 2:
> > a- allocate connect (we pass locale to overwrite server 
> > charset, and we
> > initialize client_charset)
> > b- get values from freetds.conf
> > c- replacing with TDSLOGININFO info
> > d- call tds_fix_connect
> > 
> > However 2c found always a value (or from default or from 
> freetds.conf)
> > so it never replace it!!!
> 
> Ugh.  The mere existence of a function called "tds_fix_connect" is
> symptomatic of a problem, if you ask me.  Every time I look at this, I
> think: We need to separate reading freetds.conf from connecting to the
> server.  Before we start connecting to the server, we should 
> *know* the
> options we're going to use.  All the juggling of default, 
> environment, and
> freetds.conf should be done in advance.  
> 
> > Perhaps we should initialize TDSCONNECTINFO->client_charset 
> > to empty and
> > set it to default on tds_fix_connect ?? This should fix the 
> problem...
> 
> Eventually, as you know, I'd like to replace our config-file 
> parser with my
> nvp library.  In the meantime, you probably have the best 
> knowledge of how
> to fix the "2c" problem.  
> 

Mmm.... your comment say

	/* don't overwrite freetds.conf client charset with one derived from the environment. */

However login information came from code, not from environment, so I think it's better to handle this field like others (if a program want to everride configuration it just can). Perhaps what's wrong is setting charset in our tests...

tds_fix_connect currently override connect information with information from environment. This is needed by odbc cause ODBC must separate TDSCONNECTINFO allocation, reading of configuration (sometime unused) and environment settings...

freddy77



More information about the FreeTDS mailing list