mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
Reviewing new pushed code
- CHAR() now returns binary string as default - CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR() - Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait() (Some old systems returns ETIME and it's safer to test for both values than to try to write a wrapper for each old system) - Fixed new introduced bug in NOT BETWEEN X and X - Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed - Use octet2hex() for all conversion of string to hex - Simplify and optimize code
This commit is contained in:
@@ -209,6 +209,8 @@ retest:
|
||||
|
||||
return DB_TYPE_UNKNOWN;
|
||||
}
|
||||
|
||||
|
||||
const char *ha_get_storage_engine(enum db_type db_type)
|
||||
{
|
||||
handlerton **types;
|
||||
@@ -217,25 +219,19 @@ const char *ha_get_storage_engine(enum db_type db_type)
|
||||
if (db_type == (*types)->db_type)
|
||||
return (*types)->name;
|
||||
}
|
||||
|
||||
return "none";
|
||||
return "*NONE*";
|
||||
}
|
||||
|
||||
|
||||
bool ha_check_storage_engine_flag(enum db_type db_type, uint32 flag)
|
||||
{
|
||||
handlerton **types;
|
||||
for (types= sys_table_types; *types; types++)
|
||||
{
|
||||
if (db_type == (*types)->db_type)
|
||||
{
|
||||
if ((*types)->flags & flag)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
return test((*types)->flags & flag);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return FALSE; // No matching engine
|
||||
}
|
||||
|
||||
|
||||
@@ -850,18 +846,25 @@ int ha_autocommit_or_rollback(THD *thd, int error)
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
||||
|
||||
int ha_commit_or_rollback_by_xid(XID *xid, bool commit)
|
||||
{
|
||||
handlerton **types;
|
||||
int res= 1;
|
||||
|
||||
for (types= sys_table_types; *types; types++)
|
||||
{
|
||||
if ((*types)->state == SHOW_OPTION_YES && (*types)->recover)
|
||||
res= res &&
|
||||
(*(commit ? (*types)->commit_by_xid : (*types)->rollback_by_xid))(xid);
|
||||
{
|
||||
if ((*(commit ? (*types)->commit_by_xid :
|
||||
(*types)->rollback_by_xid))(xid));
|
||||
res= 0;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
#ifndef DBUG_OFF
|
||||
/* this does not need to be multi-byte safe or anything */
|
||||
static char* xid_to_str(char *buf, XID *xid)
|
||||
|
||||
Reference in New Issue
Block a user