summaryrefslogtreecommitdiff
path: root/mysys
diff options
context:
space:
mode:
authorunknown <monty@donna.mysql.com>2001-01-08 00:04:30 +0200
committerunknown <monty@donna.mysql.com>2001-01-08 00:04:30 +0200
commitfc4a3ef7c11446ba1159e4873c3323d6fa2fcc60 (patch)
tree500feaf42e43ee02e3822a280b03319bcd8f3abe /mysys
parent92a3aedc05dd07e1d00986f237a2097af595e584 (diff)
downloadmariadb-git-fc4a3ef7c11446ba1159e4873c3323d6fa2fcc60.tar.gz
Fixed bug when having many binary log files
Fixed bug when deleting keys with possible NULL values many changes to mysqltest Docs/Makefile.am: Don't print warnings when making ..dvi Docs/manual.texi: Documented changes acinclude.m4: Fixed bug in detecting BDB version 3.2.3g client/mysqltest.c: Added TODO Cleanups Free all memory and close all files on exit configure.in: New release include/my_sys.h: Added new function needed for mysqltest.c myisam/mi_create.c: Cleanup myisam/mi_delete.c: Fixed bug when deleting keys with NULL myisam/mi_search.c: cleanup myisam/myisamchk.c: Added info about fulltext to -D mysql-test/mysql-test-run.sh: Use less memory for mysqld Don't remove timefile if only testing one test Send option --debug to mysqltest mysql-test/r/fulltext.result: New tests mysql-test/r/func_math.result: Make test portable mysql-test/t/fulltext.test: New tests mysql-test/t/func_math.test: Make test portable mysys/mf_iocache2.c: Fixed bug when reading over buffers mysys/string.c: Added new function needed for mysqltest.c mysys/typelib.c: cleanup scripts/make_binary_distribution.sh: Added option suffix Removed some warnings for missing files scripts/mysql_install_db.sh: Fixed type scripts/safe_mysqld.sh: Also read options from 'server' group sql-bench/Results/ATIS-mysql-Linux_2.2.13_SMP_alpha: New benchmark run sql-bench/Results/RUN-mysql-Linux_2.2.13_SMP_alpha: New benchmark run sql-bench/Results/alter-table-mysql-Linux_2.2.13_SMP_alpha: New benchmark run sql-bench/Results/big-tables-mysql-Linux_2.2.13_SMP_alpha: New benchmark run sql-bench/Results/connect-mysql-Linux_2.2.13_SMP_alpha: New benchmark run sql-bench/Results/create-mysql-Linux_2.2.13_SMP_alpha: New benchmark run sql-bench/Results/insert-mysql-Linux_2.2.13_SMP_alpha: New benchmark run sql-bench/Results/select-mysql-Linux_2.2.13_SMP_alpha: New benchmark run sql-bench/Results/wisconsin-mysql-Linux_2.2.13_SMP_alpha: New benchmark run sql-bench/bench-init.pl.sh: Added missing option '--silent' sql/mysqld.cc: Added warnings Print backtraces even if 'current_thd' is not active support-files/mysql.spec.sh: Removed duplicate entry
Diffstat (limited to 'mysys')
-rw-r--r--mysys/mf_iocache2.c6
-rw-r--r--mysys/string.c18
-rw-r--r--mysys/typelib.c2
3 files changed, 18 insertions, 8 deletions
diff --git a/mysys/mf_iocache2.c b/mysys/mf_iocache2.c
index 9880c1615bb..1397c14515b 100644
--- a/mysys/mf_iocache2.c
+++ b/mysys/mf_iocache2.c
@@ -100,6 +100,7 @@ uint my_b_fill(IO_CACHE *info)
uint my_b_gets(IO_CACHE *info, char *to, uint max_length)
{
+ char *start = to;
uint length;
max_length--; /* Save place for end \0 */
/* Calculate number of characters in buffer */
@@ -115,10 +116,9 @@ uint my_b_gets(IO_CACHE *info, char *to, uint max_length)
{
if ((*to++ = *pos++) == '\n')
{
- length= (uint) (pos-info->rc_pos);
info->rc_pos=pos;
*to='\0';
- return length;
+ return (uint) (to-start);
}
}
if (!(max_length-=length))
@@ -126,7 +126,7 @@ uint my_b_gets(IO_CACHE *info, char *to, uint max_length)
/* Found enough charcters; Return found string */
info->rc_pos=pos;
*to='\0';
- return length;
+ return (uint) (to-start);
}
if (!(length=my_b_fill(info)))
return 0;
diff --git a/mysys/string.c b/mysys/string.c
index 0696c72b922..96a503c1179 100644
--- a/mysys/string.c
+++ b/mysys/string.c
@@ -48,6 +48,7 @@ my_bool init_dynamic_string(DYNAMIC_STRING *str, const char *init_str,
DBUG_RETURN(FALSE);
}
+
my_bool dynstr_set(DYNAMIC_STRING *str, const char *init_str)
{
uint length;
@@ -72,6 +73,7 @@ my_bool dynstr_set(DYNAMIC_STRING *str, const char *init_str)
DBUG_RETURN(FALSE);
}
+
my_bool dynstr_realloc(DYNAMIC_STRING *str, ulong additional_size)
{
DBUG_ENTER("dynstr_realloc");
@@ -90,11 +92,17 @@ my_bool dynstr_realloc(DYNAMIC_STRING *str, ulong additional_size)
my_bool dynstr_append(DYNAMIC_STRING *str, const char *append)
{
+ return dynstr_append_mem(str,append,strlen(append));
+}
+
+
+my_bool dynstr_append_mem(DYNAMIC_STRING *str, const char *append,
+ uint length)
+{
char *new_ptr;
- uint length=(uint) strlen(append)+1;
- if (str->length+length > str->max_length)
+ if (str->length+length >= str->max_length)
{
- uint new_length=(str->length+length+str->alloc_increment-1)/
+ uint new_length=(str->length+length+str->alloc_increment)/
str->alloc_increment;
new_length*=str->alloc_increment;
if (!(new_ptr=(char*) my_realloc(str->str,new_length,MYF(MY_WME))))
@@ -103,10 +111,12 @@ my_bool dynstr_append(DYNAMIC_STRING *str, const char *append)
str->max_length=new_length;
}
memcpy(str->str + str->length,append,length);
- str->length+=length-1;
+ str->length+=length;
+ str->str[str->length]=0; /* Safety for C programs */
return FALSE;
}
+
void dynstr_free(DYNAMIC_STRING *str)
{
if (str->str)
diff --git a/mysys/typelib.c b/mysys/typelib.c
index 903a7304065..929278d1b8f 100644
--- a/mysys/typelib.c
+++ b/mysys/typelib.c
@@ -26,7 +26,7 @@
** If part, uniq field is found and full_name == 0 then x is expanded
** to full field.
** full_name has the following bit values:
-** If & 1 accept only hole names
+** If & 1 accept only whole names
** If & 2 don't expand if half field
** If & 4 allow #number# as type
****************************************************************************/