Skip to Content.
Sympa Menu

freetds - Re: [freetds] FW: dblib patch

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "Thompson, Bill D (London)" <bill_d_thompson AT ml.com>
  • To: "FreeTDS Development Group" <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] FW: dblib patch
  • Date: Fri, 1 Jul 2005 15:58:05 +0100

Hey James,

> We distinguish, don't we, between char and
> varchar? char columns shouldn't be trimmed. At least, Microsoft's
bcp
> doesn't trim them.

I don't think we do :

/* trim trailing blanks from character data */
if (desttype == SYBCHAR || desttype == SYBVARCHAR) {
bcpcol->bcp_column_data->datalen = rtrim( ....
}

But the server will put them back in of course, CHAR being fixed length

I think when originally written, we did do it just for varchar - this
from 0.62

if (desttype == SYBVARCHAR) {
bcpcol->data_size = _bcp_rtrim_varchar((char *) bcpcol->data,
converted_data_size);


You changed this behaviour in version 1.95....


Bill

-----Original Message-----
From: freetds-bounces AT lists.ibiblio.org
[mailto:freetds-bounces AT lists.ibiblio.org] On Behalf Of Lowden, James K
Sent: 01 July 2005 15:39
To: TDS Development Group
Subject: [freetds] FW: dblib patch


> From: ZIGLIO, Frediano, VF-IT
> Sent: Friday, July 01, 2005 10:09 AM
>
> static int rtrim(char *istr, int ilen) {
> char *t; int olen = ilen;
>
> for (t = istr + (ilen - 1); *t == ' '; t--) {
> *t = '\0'; olen--;
> } return olen;
> }
>
> this contain a buffer underflow...
>
> Perhaps it would better to rewrite like
>
> static int rtrim(char *istr, int ilen) {
> char *t;
>
> for (t = istr + ilen; --t > istr && *t == ' '; ) {
> *t = '\0'; --ilen;
> } return ilen;
> }
>
> (it solve also '' problem)

I like this better:

static int
rtrim(char *str, int len)
{
char *t;

for (t = str + --len; t > str && *t == ' '; t--) {
*t = '\0';
}
return t - str;
}

Thanks for the patch Bill. We distinguish, don't we, between char and
varchar? char columns shouldn't be trimmed. At least, Microsoft's bcp
doesn't trim them.

--jkl




-----------------------------------------
The information contained in this transmission may contain privileged
and
confidential information and is intended only for the use of the
person(s) named
above. If you are not the intended recipient, or an employee or agent
responsible
for delivering this message to the intended recipient, any review,
dissemination,
distribution or duplication of this communication is strictly
prohibited. If you are
not the intended recipient, please contact the sender immediately by
reply e-mail
and destroy all copies of the original message. Please note that we do
not accept
account orders and/or instructions by e-mail, and therefore will not be
responsible
for carrying out such orders and/or instructions. If you, as the
intended recipient
of this message, the purpose of which is to inform and update our
clients, prospects
and consultants of developments relating to our services and products,
would not
like to receive further e-mail correspondence from the sender, please
"reply" to the
sender indicating your wishes. In the U.S.: 1345 Avenue of the
Americas, New York,
NY 10105.
_______________________________________________
FreeTDS mailing list
FreeTDS AT lists.ibiblio.org
http://lists.ibiblio.org/mailman/listinfo/freetds
--------------------------------------------------------

If you are not an intended recipient of this e-mail, please notify the
sender, delete it and do not read, act upon, print, disclose, copy, retain or
redistribute it. Click here for important additional terms relating to this
e-mail. http://www.ml.com/email_terms/
--------------------------------------------------------




Archive powered by MHonArc 2.6.24.

Top of Page