summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorunknown <monty@donna.mysql.com>2000-09-12 03:02:33 +0300
committerunknown <monty@donna.mysql.com>2000-09-12 03:02:33 +0300
commitfe4cccd6a43496395ec52e9043cd4350e5eac69d (patch)
tree051686baf31e5363765879f2437ada3abea6b71b /include
parent1dc6a46936306fbccaf19275e6f9dc4acc1e48a1 (diff)
downloadmariadb-git-fe4cccd6a43496395ec52e9043cd4350e5eac69d.tar.gz
Update to new root alloc, OPTIMIZE TABLE and some other changes
Docs/manual.texi: Added chapter for binary log, updated the changelog, linux section, OPTIMIZE TABLE... client/mysqladmin.c: Fixed bug with pid-file handling. client/mysqldump.c: Version change configure.in: Version change include/Makefile.am: Fix for SCO to get sched.h removed. include/global.h: Increased MY_NFILE; Added thread_safe_increment include/my_sys.h: Better root_alloc include/mysql.h: Better root_alloc include/mysys_err.h: Fix for PREAD/PWRITE on windows libmysql/libmysql.c: Better root_alloc myisam/mi_locking.c: Fix for PREAD/PWRITE on windows myisam/mi_static.c: Fix for PREAD/PWRITE on windows mysys/default.c: Better root_alloc mysys/errors.c: Fix for PREAD/PWRITE on windows mysys/my_alloc.c: Better root_alloc mysys/my_create.c: Fix for PREAD/PWRITE on windows mysys/my_fopen.c: Fix for PREAD/PWRITE on windows mysys/my_open.c: Fix for PREAD/PWRITE on windows mysys/my_pread.c: Fix for PREAD/PWRITE on windows mysys/tree.c: Better root_alloc readline/bind.c: Removed compiler warning readline/isearch.c: Removed compiler warning scripts/safe_mysqld.sh: Allow use of MYSQL_UNIX_PORT and MYSQL_TCP_PORT sql-bench/crash-me.sh: Version change sql-bench/limits/mysql-3.23.cfg: Update to latest MySQL version sql/filesort.cc: Added more statistics sql/ha_berkeley.h: Fixed bug with ORDER BY sql/ha_myisam.cc: Added OPTIMIZE TABLE and cleaned up the repair code sql/ha_myisam.h: Added OPTIMIZE TABLE and cleaned up the repair code sql/handler.cc: Added OPTIMIZE TABLE and cleaned up the repair code sql/handler.h: Added OPTIMIZE TABLE and cleaned up the repair code sql/item_func.cc: Fixed comment sql/item_timefunc.cc: Fixed possible month bug sql/mini_client.cc: Use of new root_alloc sql/mysql_priv.h: Added OPTIMIZE TABLE and cleaned up the repair code sql/mysqld.cc: Added more statistics sql/opt_range.cc: Use of new root_alloc sql/slave.cc: Use of new root_alloc sql/sql_acl.cc: Use of new root_alloc sql/sql_class.cc: Use of new root_alloc sql/sql_parse.cc: Use of new root_alloc sql/sql_select.cc: Added more statistics sql/sql_table.cc: Added OPTIMIZE TABLE and cleaned up the repair code sql/sql_udf.cc: Use of new root_alloc sql/sql_yacc.yy: Fixed that OPTIMIZE TABLE can take many tables as arguments sql/table.cc: Use of new root_alloc sql/thr_malloc.cc: Use of new root_alloc support-files/mysql.server.sh: Removed usage of AWK
Diffstat (limited to 'include')
-rw-r--r--include/Makefile.am2
-rw-r--r--include/global.h9
-rw-r--r--include/my_sys.h16
-rw-r--r--include/mysql.h4
-rw-r--r--include/mysys_err.h1
5 files changed, 25 insertions, 7 deletions
diff --git a/include/Makefile.am b/include/Makefile.am
index 39940f1db12..3f6ed988fbb 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -35,7 +35,7 @@ noinst_HEADERS = global.h config-win.h \
SUPERCLEANFILES = mysql_version.h
# Some include files that may be moved and patched by configure
-DISTCLEANFILES = $(distdir)/sched.h
+DISTCLEANFILES = sched.h
all-local: my_config.h my_global.h
diff --git a/include/global.h b/include/global.h
index 57b4c07b045..0934f2931fd 100644
--- a/include/global.h
+++ b/include/global.h
@@ -383,7 +383,7 @@ typedef SOCKET_SIZE_TYPE size_socket;
#ifndef FN_LIBCHAR
#define FN_LIBCHAR '/'
#define FN_ROOTDIR "/"
-#define MY_NFILE 127 /* This is only used to save filenames */
+#define MY_NFILE 1024 /* This is only used to save filenames */
#endif
/* #define EXT_IN_LIBNAME */
@@ -855,5 +855,12 @@ typedef char bool; /* Ordinary boolean values 0 1 */
#endif
#endif
+#ifndef THREAD
+#define thread_safe_increment(V,L) (V)++
+#define thread_safe_add(V,C,L) (V)+=(C)
+#define thread_safe_sub(V,C,L) (V)-=(C)
+#define statistic_increment(V,L) (V)++
+#define statistic_add(V,C,L) (V)+=(C)
+#endif
#endif /* _global_h */
diff --git a/include/my_sys.h b/include/my_sys.h
index 01f42e9878d..e47d2837433 100644
--- a/include/my_sys.h
+++ b/include/my_sys.h
@@ -104,6 +104,9 @@ extern int NEAR my_errno; /* Last error in mysys */
#define MIN_COMPRESS_LENGTH 50 /* Don't compress small bl. */
#define KEYCACHE_BLOCK_SIZE 1024
+ /* root_alloc flags */
+#define MY_KEEP_PREALLOC 1
+
/* defines when allocating data */
#ifdef SAFEMALLOC
@@ -240,6 +243,9 @@ extern struct my_file_info
{
my_string name;
enum file_type type;
+#if defined(THREAD) && !defined(HAVE_PREAD)
+ pthread_mutex_t mutex;
+#endif
} my_file_info[MY_NFILE];
@@ -329,15 +335,17 @@ typedef struct st_changeable_var {
#define ST_USED_MEM_DEFINED
typedef struct st_used_mem { /* struct for once_alloc */
struct st_used_mem *next; /* Next block in use */
- unsigned int left; /* memory left in block */
- unsigned int size; /* size of block */
+ unsigned int left; /* memory left in block */
+ unsigned int size; /* Size of block */
} USED_MEM;
typedef struct st_mem_root {
USED_MEM *free;
USED_MEM *used;
+ USED_MEM *pre_alloc;
unsigned int min_malloc;
unsigned int block_size;
+
void (*error_handler)(void);
} MEM_ROOT;
#endif
@@ -532,9 +540,9 @@ extern void my_free_lock(byte *ptr,myf flags);
#define my_free_lock(A,B) my_free((A),(B))
#endif
#define alloc_root_inited(A) ((A)->min_malloc != 0)
-void init_alloc_root(MEM_ROOT *mem_root,uint block_size);
+void init_alloc_root(MEM_ROOT *mem_root, uint block_size, uint pre_alloc_size);
gptr alloc_root(MEM_ROOT *mem_root,unsigned int Size);
-void free_root(MEM_ROOT *root);
+void free_root(MEM_ROOT *root, myf MyFLAGS);
char *strdup_root(MEM_ROOT *root,const char *str);
char *memdup_root(MEM_ROOT *root,const char *str,uint len);
void load_defaults(const char *conf_file, const char **groups,
diff --git a/include/mysql.h b/include/mysql.h
index b738c8535fe..5c2646b592d 100644
--- a/include/mysql.h
+++ b/include/mysql.h
@@ -49,8 +49,10 @@ typedef struct st_used_mem { /* struct for once_alloc */
typedef struct st_mem_root {
USED_MEM *free;
USED_MEM *used;
+ USED_MEM *pre_alloc;
unsigned int min_malloc;
unsigned int block_size;
+
void (*error_handler)(void);
} MEM_ROOT;
#endif
@@ -74,7 +76,7 @@ extern char *mysql_unix_port;
#define IS_BLOB(n) ((n) & BLOB_FLAG)
#define IS_NUM(t) ((t) <= FIELD_TYPE_INT24 || (t) == FIELD_TYPE_YEAR)
#define IS_NUM_FIELD(f) ((f)->flags & NUM_FLAG)
-#define INTERNAL_NUM_FIELD(f) (((f)->type <= FIELD_TYPE_INT24 && (f)->type != FIELD_TYPE_TIMESTAMP || (f)->length == 14 || (f)->length == 8) || (f)->type == FIELD_TYPE_YEAR)
+#define INTERNAL_NUM_FIELD(f) (((f)->type <= FIELD_TYPE_INT24 && ((f)->type != FIELD_TYPE_TIMESTAMP || (f)->length == 14 || (f)->length == 8)) || (f)->type == FIELD_TYPE_YEAR)
typedef struct st_mysql_field {
char *name; /* Name of column */
diff --git a/include/mysys_err.h b/include/mysys_err.h
index 7f5c3e1908b..660bb60edee 100644
--- a/include/mysys_err.h
+++ b/include/mysys_err.h
@@ -50,6 +50,7 @@ extern const char * NEAR globerrs[]; /* my_error_messages is here */
#define EE_DISK_FULL 20
#define EE_CANT_MKDIR 21
#define EE_UNKNOWN_CHARSET 22
+#define EE_OUT_OF_FILERESOURCES 23
#ifdef __cplusplus
}