Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into narttu.mysql.fi:/my/mysql-4.0 myisam/mi_dynrec.c: Auto merged mysql-test/r/isam.result: Auto merged
This commit is contained in:
commit
2db7d27f0e
@ -491,15 +491,6 @@ void init_parser()
|
||||
memset(&var_reg,0, sizeof(var_reg));
|
||||
}
|
||||
|
||||
int hex_val(int c)
|
||||
{
|
||||
if (isdigit(c))
|
||||
return c - '0';
|
||||
else if ((c = tolower(c)) >= 'a' && c <= 'f')
|
||||
return c - 'a' + 10;
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
int dyn_string_cmp(DYNAMIC_STRING* ds, const char* fname)
|
||||
{
|
||||
@ -1550,56 +1541,6 @@ int do_while(struct st_query* q)
|
||||
}
|
||||
|
||||
|
||||
int safe_copy_unescape(char* dest, char* src, int size)
|
||||
{
|
||||
register char* p_dest = dest, *p_src = src;
|
||||
register int c, val;
|
||||
enum { ST_NORMAL, ST_ESCAPED, ST_HEX2} state = ST_NORMAL ;
|
||||
|
||||
size--; /* just to make life easier */
|
||||
|
||||
for (; p_dest - size < dest && p_src - size < src &&
|
||||
(c = *p_src) != '\n' && c; ++p_src)
|
||||
{
|
||||
switch(state) {
|
||||
case ST_NORMAL:
|
||||
if (c == '\\')
|
||||
state = ST_ESCAPED;
|
||||
else
|
||||
*p_dest++ = c;
|
||||
break;
|
||||
case ST_ESCAPED:
|
||||
if ((val = hex_val(c)) > 0)
|
||||
{
|
||||
*p_dest = val;
|
||||
state = ST_HEX2;
|
||||
}
|
||||
else
|
||||
{
|
||||
state = ST_NORMAL;
|
||||
*p_dest++ = c;
|
||||
}
|
||||
break;
|
||||
case ST_HEX2:
|
||||
if ((val = hex_val(c)) > 0)
|
||||
{
|
||||
*p_dest = (*p_dest << 4) + val;
|
||||
p_dest++;
|
||||
}
|
||||
else
|
||||
*p_dest++ = c;
|
||||
|
||||
state = ST_NORMAL;
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
*p_dest = 0;
|
||||
return (p_dest - dest);
|
||||
}
|
||||
|
||||
|
||||
int read_line(char* buf, int size)
|
||||
{
|
||||
int c;
|
||||
|
@ -2092,11 +2092,12 @@ int Start_log_event::exec_event(struct st_relay_log_info* rli)
|
||||
*/
|
||||
break;
|
||||
case BINLOG_FORMAT_323_GEQ_57 :
|
||||
/* Can distinguish, based on the value of 'created' */
|
||||
if (!created)
|
||||
break;
|
||||
/* otherwise this was generated at master startup*/
|
||||
close_temporary_tables(thd);
|
||||
/*
|
||||
Can distinguish, based on the value of 'created',
|
||||
which was generated at master startup.
|
||||
*/
|
||||
if (created)
|
||||
close_temporary_tables(thd);
|
||||
break;
|
||||
default :
|
||||
/* this case is impossible */
|
||||
|
@ -846,18 +846,22 @@ inline bool add_item_to_list(Item *item)
|
||||
{
|
||||
return current_lex->select->item_list.push_back(item);
|
||||
}
|
||||
|
||||
inline bool add_value_to_list(Item *value)
|
||||
{
|
||||
return current_lex->value_list.push_back(value);
|
||||
}
|
||||
|
||||
inline bool add_order_to_list(Item *item,bool asc)
|
||||
{
|
||||
return add_to_list(current_lex->select->order_list,item,asc);
|
||||
}
|
||||
|
||||
inline bool add_group_to_list(Item *item,bool asc)
|
||||
{
|
||||
return add_to_list(current_lex->select->group_list,item,asc);
|
||||
}
|
||||
|
||||
inline void mark_as_null_row(TABLE *table)
|
||||
{
|
||||
table->null_row=1;
|
||||
|
@ -430,6 +430,29 @@ void THD::close_active_vio()
|
||||
}
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
Table Ident
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
Table_ident::Table_ident(LEX_STRING db_arg,LEX_STRING table_arg,bool force)
|
||||
:table(table_arg)
|
||||
{
|
||||
if (!force && (current_thd->client_capabilities & CLIENT_NO_SCHEMA))
|
||||
db.str=0;
|
||||
else
|
||||
db= db_arg;
|
||||
if (db.str)
|
||||
table_case_convert(db.str,db.length);
|
||||
table_case_convert(table.str,table.length);
|
||||
}
|
||||
|
||||
Table_ident::Table_ident(LEX_STRING table_arg) :table(table_arg)
|
||||
{
|
||||
db.str=0;
|
||||
table_case_convert(table.str,table.length);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
** Functions to provide a interface to select results
|
||||
*****************************************************************************/
|
||||
|
@ -33,7 +33,7 @@ enum enum_duplicates { DUP_ERROR, DUP_REPLACE, DUP_IGNORE };
|
||||
enum enum_log_type { LOG_CLOSED, LOG_TO_BE_OPENED, LOG_NORMAL, LOG_NEW, LOG_BIN};
|
||||
enum enum_delay_key_write { DELAY_KEY_WRITE_NONE, DELAY_KEY_WRITE_ON,
|
||||
DELAY_KEY_WRITE_ALL };
|
||||
extern inline void table_case_convert(char * name, uint length);
|
||||
|
||||
/* log info errors */
|
||||
#define LOG_INFO_EOF -1
|
||||
#define LOG_INFO_IO -2
|
||||
@ -762,22 +762,8 @@ class Table_ident :public Sql_alloc {
|
||||
public:
|
||||
LEX_STRING db;
|
||||
LEX_STRING table;
|
||||
inline Table_ident(LEX_STRING db_arg,LEX_STRING table_arg,bool force)
|
||||
:table(table_arg)
|
||||
{
|
||||
if (!force && (current_thd->client_capabilities & CLIENT_NO_SCHEMA))
|
||||
db.str=0;
|
||||
else
|
||||
db= db_arg;
|
||||
if (db.str)
|
||||
table_case_convert(db.str,db.length);
|
||||
table_case_convert(table.str,table.length);
|
||||
}
|
||||
inline Table_ident(LEX_STRING table_arg) :table(table_arg)
|
||||
{
|
||||
db.str=0;
|
||||
table_case_convert(table.str,table.length);
|
||||
}
|
||||
Table_ident(LEX_STRING db_arg,LEX_STRING table_arg,bool force);
|
||||
Table_ident(LEX_STRING table_arg);
|
||||
inline void change_db(char *db_name)
|
||||
{ db.str= db_name; db.length=(uint) strlen(db_name); }
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user