mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge with 4.0
BitKeeper/etc/ignore: auto-union BitKeeper/etc/logging_ok: auto-union BitKeeper/deleted/.del-compile-netware-standard: Delete: netware/BUILD/compile-netware-standard BitKeeper/deleted/.del-mwenv: Delete: netware/BUILD/mwenv BitKeeper/deleted/.del-nwbootstrap: Delete: netware/BUILD/nwbootstrap BitKeeper/deleted/.del-compile-AUTOTOOLS: Delete: netware/BUILD/compile-AUTOTOOLS BitKeeper/deleted/.del-compile-linux-tools: Delete: netware/BUILD/compile-linux-tools BitKeeper/deleted/.del-compile-netware-END: Delete: netware/BUILD/compile-netware-END BitKeeper/deleted/.del-compile-netware-START: Delete: netware/BUILD/compile-netware-START BitKeeper/deleted/.del-compile-netware-all: Delete: netware/BUILD/compile-netware-all BitKeeper/deleted/.del-compile-netware-debug: Delete: netware/BUILD/compile-netware-debug BitKeeper/deleted/.del-mwasmnlm~bc5746809d67feb5: Auto merged BitKeeper/deleted/.del-mwenv~35c8b56062f4b6aa: Auto merged BitKeeper/deleted/.del-mwccnlm~be63afd25a14c3f: Auto merged BitKeeper/deleted/.del-mwldnlm~efb26c57cba3c980: Auto merged BitKeeper/deleted/.del-netware.patch~f70a3a965f54d9ee: Auto merged Docs/internals.texi: Auto merged VC++Files/bdb/bdb.dsp: Auto merged VC++Files/bdb/build_win32/Berkeley_DB.dsw: Auto merged VC++Files/bdb/build_win32/db_archive.dsp: Auto merged VC++Files/bdb/build_win32/db_buildall.dsp: Auto merged VC++Files/bdb/build_win32/db_checkpoint.dsp: Auto merged VC++Files/bdb/build_win32/db_deadlock.dsp: Auto merged VC++Files/bdb/build_win32/db_dll.dsp: Auto merged VC++Files/bdb/build_win32/db_dump.dsp: Auto merged VC++Files/bdb/build_win32/db_java.dsp: Auto merged VC++Files/bdb/build_win32/db_load.dsp: Auto merged VC++Files/bdb/build_win32/db_printlog.dsp: Auto merged VC++Files/bdb/build_win32/db_recover.dsp: Auto merged VC++Files/bdb/build_win32/db_stat.dsp: Auto merged VC++Files/bdb/build_win32/db_static.dsp: Auto merged VC++Files/bdb/build_win32/db_static1.dsp: Auto merged VC++Files/bdb/build_win32/db_tcl.dsp: Auto merged VC++Files/bdb/build_win32/db_test.dsp: Auto merged VC++Files/bdb/build_win32/db_upgrade.dsp: Auto merged VC++Files/bdb/build_win32/db_verify.dsp: Auto merged VC++Files/bdb/build_win32/ex_access.dsp: Auto merged VC++Files/bdb/build_win32/ex_btrec.dsp: Auto merged VC++Files/bdb/build_win32/ex_env.dsp: Auto merged VC++Files/bdb/build_win32/ex_lock.dsp: Auto merged VC++Files/bdb/build_win32/ex_mpool.dsp: Auto merged VC++Files/bdb/build_win32/ex_tpcb.dsp: Auto merged VC++Files/bdb/build_win32/excxx_access.dsp: Auto merged VC++Files/bdb/build_win32/excxx_btrec.dsp: Auto merged VC++Files/bdb/build_win32/excxx_env.dsp: Auto merged VC++Files/bdb/build_win32/excxx_lock.dsp: Auto merged VC++Files/bdb/build_win32/excxx_mpool.dsp: Auto merged VC++Files/bdb/build_win32/excxx_tpcb.dsp: Auto merged VC++Files/client/mysql.dsp: Auto merged VC++Files/client/mysqladmin.dsp: Auto merged VC++Files/client/mysqlcheck.dsp: Auto merged VC++Files/client/mysqlclient.dsp: Auto merged VC++Files/client/mysqlclient.dsw: Auto merged VC++Files/client/mysqldump.dsp: Auto merged VC++Files/client/mysqlimport.dsp: Auto merged VC++Files/client/mysqlshow.dsp: Auto merged VC++Files/comp_err/comp_err.dsp: Auto merged VC++Files/contrib/asm386/zlibvc.dsp: Auto merged VC++Files/contrib/asm386/zlibvc.dsw: Auto merged VC++Files/contrib/minizip/zlibvc.dsp: Auto merged VC++Files/contrib/minizip/zlibvc.dsw: Auto merged VC++Files/dbug/dbug.dsp: Auto merged VC++Files/dbug/dbug.dsw: Auto merged VC++Files/heap/heap.dsp: Auto merged VC++Files/innobase/innobase.dsp: Auto merged VC++Files/isam/isam.dsp: Auto merged VC++Files/isam/isam.dsw: Auto merged VC++Files/isamchk/isamchk.dsp: Auto merged VC++Files/libmysql/libmysql.dsp: Auto merged VC++Files/libmysql/libmysql.dsw: Auto merged VC++Files/libmysqld/examples/test_libmysqld.dsp: Auto merged VC++Files/libmysqld/libmysqld.dsp: Auto merged VC++Files/libmysqltest/myTest.dsp: Auto merged VC++Files/libmysqltest/mytest.dsw: Auto merged VC++Files/merge/merge.dsp: Auto merged VC++Files/merge/merge.dsw: Auto merged VC++Files/my_print_defaults/my_print_defaults.dsp: Auto merged VC++Files/myisam/myisam.dsp: Auto merged VC++Files/myisamchk/myisamchk.dsp: Auto merged VC++Files/myisamlog/myisamlog.dsp: Auto merged VC++Files/myisammrg/myisammrg.dsp: Auto merged VC++Files/mysql.dsp: Auto merged VC++Files/mysql.dsw: Auto merged VC++Files/myisampack/myisampack.dsp: Auto merged VC++Files/mysqlbinlog/mysqlbinlog.dsp: Auto merged VC++Files/mysqlcheck/mysqlcheck.dsp: Auto merged VC++Files/mysqldemb/mysqldemb.dsp: Auto merged VC++Files/mysqlmanager/MySqlManager.dsp: Auto merged VC++Files/mysqlmanager/mysqlmanager.dsw: Auto merged VC++Files/mysqlserver/mysqlserver.dsp: Auto merged VC++Files/mysqlshutdown/myshutdown.dsp: Auto merged VC++Files/mysqlshutdown/mysqlshutdown.dsp: Auto merged VC++Files/mysqlwatch/mysqlwatch.dsp: Auto merged VC++Files/mysys/mysys.dsp: Auto merged VC++Files/mysys/mysys.dsw: Auto merged VC++Files/pack_isam/pack_isam.dsp: Auto merged VC++Files/perror/perror.dsp: Auto merged VC++Files/regex/regex.dsp: Auto merged VC++Files/regex/regex.dsw: Auto merged VC++Files/replace/replace.dsp: Auto merged VC++Files/sql/mysqld.dsw: Auto merged VC++Files/sql/mysqldmax.dsp: Auto merged VC++Files/sql/old/mysqld.dsw: Auto merged VC++Files/strings/MASM6x/strings.dsp: Auto merged VC++Files/strings/MASM6x/strings.dsw: Auto merged VC++Files/strings/backup/strings.dsp: Auto merged VC++Files/strings/backup/strings.dsw: Auto merged VC++Files/strings/noMASM/strings.dsp: Auto merged VC++Files/strings/noMASM/strings.dsw: Auto merged VC++Files/strings/strings.dsw: Auto merged VC++Files/test1/test1.dsp: Auto merged VC++Files/thr_insert_test/thr_insert_test.dsp: Auto merged VC++Files/thr_test/thr_test.dsp: Auto merged VC++Files/vio/vio.dsp: Auto merged VC++Files/zlib/zlib.dsp: Auto merged client/mysqlbinlog.cc: Auto merged client/mysqlshow.c: Auto merged include/my_global.h: Auto merged include/my_sys.h: Auto merged include/myisam.h: Auto merged include/thr_lock.h: Auto merged include/violite.h: Auto merged innobase/buf/buf0buf.c: Auto merged innobase/os/os0file.c: Auto merged innobase/row/row0sel.c: Auto merged innobase/srv/srv0start.c: Auto merged innobase/trx/trx0sys.c: Auto merged libmysqld/lib_vio.c: Auto merged myisam/mi_create.c: Auto merged mysql-test/Makefile.am: Auto merged mysql-test/r/create.result: Auto merged mysql-test/r/group_by.result: Auto merged mysql-test/r/innodb.result: Auto merged mysql-test/r/join.result: Auto merged mysql-test/r/rpl000001.result: Auto merged mysql-test/r/select.result: Auto merged mysql-test/t/auto_increment.test: Auto merged mysql-test/t/create.test: Auto merged mysql-test/t/func_like.test: Auto merged mysql-test/t/group_by.test: Auto merged mysql-test/t/innodb.test: Auto merged mysql-test/t/join.test: Auto merged mysql-test/t/type_datetime.test: Auto merged mysql-test/t/type_timestamp.test: Auto merged mysys/default.c: Auto merged mysys/thr_lock.c: Auto merged scripts/make_binary_distribution.sh: Auto merged scripts/mysqld_safe.sh: Auto merged sql/filesort.cc: Auto merged sql/ha_innodb.h: Auto merged sql/ha_myisam.cc: Auto merged sql/handler.cc: Auto merged sql/handler.h: Auto merged sql/item.cc: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_func.cc: Auto merged sql/lock.cc: Auto merged sql/log.cc: Auto merged sql/log_event.h: Auto merged sql/mf_iocache.cc: Auto merged sql/mysql_priv.h: Auto merged sql/net_serv.cc: Auto merged sql/opt_range.cc: Auto merged sql/repl_failsafe.cc: Auto merged sql/repl_failsafe.h: Auto merged sql/slave.cc: Auto merged sql/slave.h: Auto merged sql/sql_analyse.cc: Auto merged sql/sql_base.cc: Auto merged sql-bench/crash-me.sh: Auto merged sql/share/polish/errmsg.txt: Auto merged sql/sql_class.h: Auto merged sql/sql_rename.cc: Auto merged sql/sql_repl.cc: Auto merged sql/sql_repl.h: Auto merged sql/sql_update.cc: Auto merged sql/stacktrace.c: Auto merged sql/table.cc: Auto merged sql/unireg.h: Auto merged strings/ctype-tis620.c: Auto merged strings/t_ctype.h: Auto merged support-files/mysql.spec.sh: Auto merged tests/grant.res: Auto merged vio/viosocket.c: Auto merged
This commit is contained in:
@ -240,14 +240,16 @@ bool test_if_number(NUM_INFO *info, const char *str, uint str_len)
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
} //test_if_number
|
||||
}
|
||||
|
||||
|
||||
// Stores the biggest and the smallest value from current 'info'
|
||||
// to ev_num_info
|
||||
// If info contains an ulonglong number, which is bigger than
|
||||
// biggest positive number able to be stored in a longlong variable
|
||||
// and is marked as negative, function will return 0, else 1.
|
||||
/*
|
||||
Stores the biggest and the smallest value from current 'info'
|
||||
to ev_num_info
|
||||
If info contains an ulonglong number, which is bigger than
|
||||
biggest positive number able to be stored in a longlong variable
|
||||
and is marked as negative, function will return 0, else 1.
|
||||
*/
|
||||
|
||||
bool get_ev_num_info(EV_NUM_INFO *ev_info, NUM_INFO *info, const char *num)
|
||||
{
|
||||
@ -275,11 +277,13 @@ void free_string(String *s)
|
||||
s->free();
|
||||
}
|
||||
|
||||
|
||||
void field_str::add()
|
||||
{
|
||||
char buff[MAX_FIELD_WIDTH], *ptr;
|
||||
String s(buff, sizeof(buff),&my_charset_bin), *res;
|
||||
ulong length;
|
||||
TREE_ELEMENT *element;
|
||||
|
||||
if (!(res = item->val_str(&s)))
|
||||
{
|
||||
@ -414,9 +418,11 @@ void field_real::add()
|
||||
room_in_tree = 0; // Remove tree, out of RAM ?
|
||||
delete_tree(&tree);
|
||||
}
|
||||
// if element->count == 1, this element can be found only once from tree
|
||||
// if element->count == 2, or more, this element is already in tree
|
||||
else if (element->count == 1 && (tree_elements++) > pc->max_tree_elements)
|
||||
/*
|
||||
if element->count == 1, this element can be found only once from tree
|
||||
if element->count == 2, or more, this element is already in tree
|
||||
*/
|
||||
else if (element->count == 1 && (tree_elements++) >= pc->max_tree_elements)
|
||||
{
|
||||
room_in_tree = 0; // Remove tree, too many elements
|
||||
delete_tree(&tree);
|
||||
@ -445,6 +451,7 @@ void field_real::add()
|
||||
}
|
||||
} // field_real::add
|
||||
|
||||
|
||||
void field_longlong::add()
|
||||
{
|
||||
char buff[MAX_FIELD_WIDTH];
|
||||
@ -467,9 +474,11 @@ void field_longlong::add()
|
||||
room_in_tree = 0; // Remove tree, out of RAM ?
|
||||
delete_tree(&tree);
|
||||
}
|
||||
// if element->count == 1, this element can be found only once from tree
|
||||
// if element->count == 2, or more, this element is already in tree
|
||||
else if (element->count == 1 && (tree_elements++) > pc->max_tree_elements)
|
||||
/*
|
||||
if element->count == 1, this element can be found only once from tree
|
||||
if element->count == 2, or more, this element is already in tree
|
||||
*/
|
||||
else if (element->count == 1 && (tree_elements++) >= pc->max_tree_elements)
|
||||
{
|
||||
room_in_tree = 0; // Remove tree, too many elements
|
||||
delete_tree(&tree);
|
||||
@ -521,9 +530,11 @@ void field_ulonglong::add()
|
||||
room_in_tree = 0; // Remove tree, out of RAM ?
|
||||
delete_tree(&tree);
|
||||
}
|
||||
// if element->count == 1, this element can be found only once from tree
|
||||
// if element->count == 2, or more, this element is already in tree
|
||||
else if (element->count == 1 && (tree_elements++) > pc->max_tree_elements)
|
||||
/*
|
||||
if element->count == 1, this element can be found only once from tree
|
||||
if element->count == 2, or more, this element is already in tree
|
||||
*/
|
||||
else if (element->count == 1 && (tree_elements++) >= pc->max_tree_elements)
|
||||
{
|
||||
room_in_tree = 0; // Remove tree, too many elements
|
||||
delete_tree(&tree);
|
||||
@ -604,14 +615,16 @@ bool analyse::end_of_records()
|
||||
func_items[8]->null_value = 1;
|
||||
else
|
||||
func_items[8]->set(res->ptr(), res->length(), res->charset());
|
||||
// count the dots, quotas, etc. in (ENUM("a","b","c"...))
|
||||
// if tree has been removed, don't suggest ENUM.
|
||||
// treemem is used to measure the size of tree for strings,
|
||||
// tree_elements is used to count the elements in tree in case of numbers.
|
||||
// max_treemem tells how long the string starting from ENUM("... and
|
||||
// ending to ..") shall at maximum be. If case is about numbers,
|
||||
// max_tree_elements will tell the length of the above, now
|
||||
// every number is considered as length 1
|
||||
/*
|
||||
count the dots, quotas, etc. in (ENUM("a","b","c"...))
|
||||
If tree has been removed, don't suggest ENUM.
|
||||
treemem is used to measure the size of tree for strings,
|
||||
tree_elements is used to count the elements
|
||||
max_treemem tells how long the string starting from ENUM("... and
|
||||
ending to ..") shall at maximum be. If case is about numbers,
|
||||
max_tree_elements will tell the length of the above, now
|
||||
every number is considered as length 1
|
||||
*/
|
||||
if (((*f)->treemem || (*f)->tree_elements) &&
|
||||
(*f)->tree.elements_in_tree &&
|
||||
(((*f)->treemem ? max_treemem : max_tree_elements) >
|
||||
@ -654,6 +667,7 @@ bool analyse::end_of_records()
|
||||
ans.append("DATETIME", 8);
|
||||
break;
|
||||
case FIELD_TYPE_DATE:
|
||||
case FIELD_TYPE_NEWDATE:
|
||||
ans.append("DATE", 4);
|
||||
break;
|
||||
case FIELD_TYPE_SET:
|
||||
@ -665,9 +679,6 @@ bool analyse::end_of_records()
|
||||
case FIELD_TYPE_TIME:
|
||||
ans.append("TIME", 4);
|
||||
break;
|
||||
case FIELD_TYPE_NEWDATE:
|
||||
ans.append("NEWDATE", 7);
|
||||
break;
|
||||
case FIELD_TYPE_DECIMAL:
|
||||
ans.append("DECIMAL", 7);
|
||||
// if item is FIELD_ITEM, it _must_be_ Field_num in this case
|
||||
|
Reference in New Issue
Block a user