ChangeSet
1.1814 04/04/18 16:26:20 mmat...@heater.thematthews.org +2 -0
Merge mmat...@bk-internal.mysql.com:/home/bk/mysql-4.1
into heater.thematthews.org:/usr/local/src/mysql/mysql-4.1
BitKeeper/etc/logging_ok
1.277 04/04/18 16:26:17 mmat...@heater.thematthews.org +1 -0
Logging to log...@openlogging.org accepted
sql/sql_string.cc
1.74 04/04/18 16:15:48 mmat...@heater.thematthews.org +0 -0
Auto merged
BitKeeper/etc/logging_ok
1.276 04/04/18 16:15:26 mmat...@heater.thematthews.org +0 -0
auto-union
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: mmatthew
# Host: heater.thematthews.org
# Root: /usr/local/src/mysql/mysql-4.1/RESYNC
--- 1.73/sql/sql_string.cc Tue Feb 10 19:29:54 2004
+++ 1.74/sql/sql_string.cc Sun Apr 18 16:15:48 2004
@@ -128,8 +128,8 @@
str_charset=cs;
if (decimals >= NOT_FIXED_DEC)
{
- sprintf(buff,"%.14g",num); // Enough for a DATETIME
- return copy(buff, (uint32) strlen(buff), &my_charset_latin1, cs);
+ uint32 len= my_sprintf(buff,(buff, "%.14g",num));// Enough for a DATETIME
+ return copy(buff, len, &my_charset_latin1, cs);
}
#ifdef HAVE_FCONVERT
int decpt,sign;
@@ -455,7 +455,7 @@
if (!arg_length) // Default argument
if (!(arg_length= (uint32) strlen(s)))
return FALSE;
- if (str_charset->mbmaxlen > 1)
+ if (cs != str_charset && str_charset->mbmaxlen > 1)
{
uint32 add_length=arg_length * str_charset->mbmaxlen;
if (realloc(str_length+ add_length))
@@ -673,9 +673,8 @@
return FALSE;
}
-void String::qs_append(const char *str)
+void String::qs_append(const char *str, uint32 len)
{
- int len = strlen(str);
memcpy(Ptr + str_length, str, len + 1);
str_length += len;
}
@@ -683,8 +682,7 @@
void String::qs_append(double d)
{
char *buff = Ptr + str_length;
- sprintf(buff,"%.14g", d);
- str_length += strlen(buff);
+ str_length+= my_sprintf(buff, (buff, "%.14g", d));
}
void String::qs_append(double *d)
@@ -694,18 +692,57 @@
qs_append(ld);
}
-void String::qs_append(const char &c)
+
+/*
+ Compare strings according to collation, without end space.
+
+ SYNOPSIS
+ sortcmp()
+ s First string
+ t Second string
+ cs Collation
+
+ NOTE:
+ Normally this is case sensitive comparison
+
+ RETURN
+ < 0 s < t
+ 0 s == t
+ > 0 s > t
+*/
+
+
+int sortcmp(const String *s,const String *t, CHARSET_INFO *cs)
{
- Ptr[str_length] = c;
- str_length += sizeof(c);
+ return cs->coll->strnncollsp(cs,
+ (unsigned char *) s->ptr(),s->length(),
+ (unsigned char *) t->ptr(),t->length());
}
-int sortcmp(const String *x,const String *y, CHARSET_INFO *cs)
+/*
+ Compare strings byte by byte. End spaces are also compared.
+
+ SYNOPSIS
+ stringcmp()
+ s First string
+ t Second string
+
+ NOTE:
+ Strings are compared as a stream of unsigned chars
+
+ RETURN
+ < 0 s < t
+ 0 s == t
+ > 0 s > t
+*/
+
+
+int stringcmp(const String *s,const String *t)
{
- return cs->coll->strnncollsp(cs,
- (unsigned char *) x->ptr(),x->length(),
- (unsigned char *) y->ptr(),y->length());
+ uint32 s_len=s->length(),t_len=t->length(),len=min(s_len,t_len);
+ int cmp= memcmp(s->ptr(), t->ptr(), len);
+ return (cmp) ? cmp : (int) (s_len - t_len);
}
@@ -759,10 +796,14 @@
const uchar *from_end= (const uchar*) from+from_length;
char *to_start= to;
uchar *to_end= (uchar*) to+to_length;
+ int (*mb_wc)(struct charset_info_st *, my_wc_t *, const uchar *,
+ const uchar *) = from_cs->cset->mb_wc;
+ int (*wc_mb)(struct charset_info_st *, my_wc_t, uchar *s, uchar *e)=
+ to_cs->cset->wc_mb;
while (1)
{
- if ((cnvres= from_cs->cset->mb_wc(from_cs, &wc, (uchar*) from,
+ if ((cnvres= (*mb_wc)(from_cs, &wc, (uchar*) from,
from_end)) > 0)
from+= cnvres;
else if (cnvres == MY_CS_ILSEQ)
@@ -774,7 +815,7 @@
break; // Impossible char.
outp:
- if ((cnvres= to_cs->cset->wc_mb(to_cs, wc, (uchar*) to, to_end)) > 0)
+ if ((cnvres= (*wc_mb)(to_cs, wc, (uchar*) to, to_end)) > 0)
to+= cnvres;
else if (cnvres == MY_CS_ILUNI && wc != '?')
{
@@ -787,10 +828,11 @@
return (uint32) (to - to_start);
}
+
void String::print(String *str)
{
char *st= (char*)Ptr, *end= st+str_length;
- for(; st < end; st++)
+ for (; st < end; st++)
{
uchar c= *st;
switch (c)
--- 1.275/BitKeeper/etc/logging_ok Tue Feb 10 19:29:40 2004
+++ 1.277/BitKeeper/etc/logging_ok Sun Apr 18 16:26:17 2004
@@ -2,6 +2,7 @@
Administrator@co3064164-a.
Admini...@co3064164-a.rochd1.qld.optushome.com.au
Administrator@fred.
+Greg@greg-laptop.
Mig...@light.local
Sin...@sinisa.nasamreza.org
W...@sergbook.mysql.com
@@ -10,6 +11,7 @@
ahl...@co3064164-a.rochd1.qld.optusnet.com.au
akis...@work.mysql.com
ant...@ltantony.rdg.cyberkinetica.homeunix.net
+ar...@bitbike.com
ar...@co3064164-a.bitbike.com
ar...@fred.bitbike.com
ar...@george.bitbike.com
@@ -22,9 +24,12 @@
be...@sanja.is.com.ua
b...@admin.bk
b...@mysql.r18.ru
+br...@brian-akers-computer.local
car...@tsort.bitbybit.dk
dav...@isil.mysql.com
+dl...@brandersnatch.localdomain
dle...@build.mysql.com
+dl...@jabberwock.localdomain
dle...@mysql.com
ger...@ou800.zenez.com
gluh@gluh.(none)
@@ -35,6 +40,7 @@
gw...@build.mysql.com
gw...@work.mysql.com
harr...@mysql.com
+ha...@corona.lordblink.com
hei...@donna.mysql.fi
hei...@hundin.mysql.fi
heikki@rescue.
@@ -46,6 +52,8 @@
hf@genie.(none)
ig...@hundin.mysql.fi
ig...@rurik.mysql.com
+in...@mysql.com
+ja...@a80-186-24-72.elisa-laajakaista.fi
ja...@dsl-jkl1657.dial.inet.fi
ja...@dsl-kpogw4gb5.dial.inet.fi
jani@hynda.(none)
@@ -56,8 +64,10 @@
ja...@ua126d19.elisa.omakaista.fi
ja...@ua141d10.elisa.omakaista.fi
ja...@ua167d18.elisa.omakaista.fi
+ja...@ua72d24.elisa.omakaista.fi
jc...@abel.spaceapes.com
jc...@main.burghcom.com
+jc...@mugatu.jcole.us
jc...@mugatu.spaceapes.com
jc...@sarvik.tfr.cafe.ee
jc...@tetra.spaceapes.com
@@ -67,6 +77,8 @@
kos...@oak.local
le...@kallisto.mysql.com
le...@mysql.com
+magnus@neptunus.(none)
+ma...@hundin.mysql.fi
miguel@hegel.(none)
mig...@hegel.br
mig...@hegel.local
@@ -74,6 +86,7 @@
mig...@light.local
mig...@sartre.local
mmatthew@bob-thebuilder.(none)
+mmat...@heater.thematthews.org
mmatthew@markslaptop.
mo...@bitch.mysql.fi
monty@butch.
@@ -93,6 +106,7 @@
mwa...@cash.mwagner.org
mwa...@evoq.mwagner.org
mwa...@work.mysql.com
+my...@mysql.com
mysql@home.(none)
mysq...@build.mysql2.com
ni...@mysql.com
@@ -118,8 +132,10 @@
salle@banica.(none)
salle@geopard.(none)
sa...@geopard.online.bg
+sa...@vafla.home
sa...@vafla.online.bg
sa...@mysql.sashanet.com
+se...@build.mysql.com
se...@build.mysql2.com
se...@serg.mylan
se...@serg.mysql.com
@@ -137,10 +153,12 @@
t...@white.box
t...@work.mysql.com
t...@basil-firewall.home.com
+tomas@mc05.(none)
to...@hundin.mysql.fi
to...@volk.internalnet
to...@x153.internalnet
to...@x3.internalnet
+ulli@morbus.(none)
ve...@hundin.mysql.fi
ve...@myvenu.com
ve...@work.mysql.com
--
MySQL Internals Mailing List
For list archives: http://lists.mysql.com/internals
To unsubscribe: http://lists.mysql.com/internals?unsub=mysql-i...@freebsd.csie.nctu.edu.tw