Loading sql/ha_ndbcluster.cc +23 −5 Original line number Diff line number Diff line Loading @@ -47,6 +47,8 @@ static const char *ha_ndb_ext=".ndb"; #define NDB_HIDDEN_PRIMARY_KEY_LENGTH 8 #define NDB_FAILED_AUTO_INCREMENT ~(Uint64)0 #define NDB_AUTO_INCREMENT_RETRIES 10 #define ERR_PRINT(err) \ DBUG_PRINT("error", ("%d message: %s", err.code, err.message)) Loading Loading @@ -1838,7 +1840,15 @@ int ha_ndbcluster::write_row(byte *record) { // Table has hidden primary key Ndb *ndb= get_ndb(); Uint64 auto_value= ndb->getAutoIncrementValue((const NDBTAB *) m_table); Uint64 auto_value= NDB_FAILED_AUTO_INCREMENT; uint retries= NDB_AUTO_INCREMENT_RETRIES; do { auto_value= ndb->getAutoIncrementValue((const NDBTAB *) m_table); } while (auto_value == NDB_FAILED_AUTO_INCREMENT && --retries && ndb->getNdbError().status == NdbError::TemporaryError); if (auto_value == NDB_FAILED_AUTO_INCREMENT) ERR_RETURN(ndb->getNdbError()); if (set_hidden_key(op, table->fields, (const byte*)&auto_value)) ERR_RETURN(op->getNdbError()); } Loading Loading @@ -3971,10 +3981,18 @@ longlong ha_ndbcluster::get_auto_increment() : (m_rows_to_insert > m_autoincrement_prefetch) ? m_rows_to_insert : m_autoincrement_prefetch; Uint64 auto_value= Uint64 auto_value= NDB_FAILED_AUTO_INCREMENT; uint retries= NDB_AUTO_INCREMENT_RETRIES; do { auto_value= (m_skip_auto_increment) ? ndb->readAutoIncrementValue((const NDBTAB *) m_table) : ndb->getAutoIncrementValue((const NDBTAB *) m_table, cache_size); } while (auto_value == NDB_FAILED_AUTO_INCREMENT && --retries && ndb->getNdbError().status == NdbError::TemporaryError); if (auto_value == NDB_FAILED_AUTO_INCREMENT) ERR_RETURN(ndb->getNdbError()); DBUG_RETURN((longlong)auto_value); } Loading sql/handler.cc +14 −0 Original line number Diff line number Diff line Loading @@ -145,6 +145,20 @@ const char *ha_get_storage_engine(enum db_type db_type) return "none"; } my_bool ha_storage_engine_is_enabled(enum db_type database_type) { show_table_type_st *types; for (types= sys_table_types; types->type; types++) { if ((database_type == types->db_type) && (*types->value == SHOW_OPTION_YES)) return TRUE; } return FALSE; } /* Use other database handler if databasehandler is not incompiled */ enum db_type ha_checktype(enum db_type database_type) Loading sql/handler.h +1 −0 Original line number Diff line number Diff line Loading @@ -542,6 +542,7 @@ int ha_init(void); int ha_panic(enum ha_panic_function flag); void ha_close_connection(THD* thd); enum db_type ha_checktype(enum db_type database_type); my_bool ha_storage_engine_is_enabled(enum db_type database_type); int ha_create_table(const char *name, HA_CREATE_INFO *create_info, bool update_create_info); int ha_create_table_from_engine(THD* thd, const char *db, const char *name, Loading sql/mysqld.cc +13 −0 Original line number Diff line number Diff line Loading @@ -1165,6 +1165,7 @@ static struct passwd *check_user(const char *user) err: sql_print_error("Fatal error: Can't change to run as user '%s' ; Please check that the user exists!\n",user); unireg_abort(1); #endif return NULL; } Loading Loading @@ -6435,6 +6436,18 @@ static void get_options(int argc,char **argv) sql_print_warning("this binary does not contain BDB storage engine"); #endif /* Check that the default storage engine is actually available. */ if (!ha_storage_engine_is_enabled((enum db_type) global_system_variables.table_type)) { sql_print_error("Default storage engine (%s) is not available", ha_get_storage_engine((enum db_type) global_system_variables.table_type)); exit(1); } if (argc > 0) { fprintf(stderr, "%s: Too many arguments (first extra is '%s').\nUse --help to get a list of available options\n", my_progname, *argv); Loading support-files/mysql.server.sh +8 −2 Original line number Diff line number Diff line Loading @@ -61,8 +61,14 @@ lsb_functions="/lib/lsb/init-functions" if test -f $lsb_functions ; then source $lsb_functions else alias log_success_msg="echo \ SUCCESS! " alias log_failure_msg="echo \ ERROR! " log_success_msg() { echo " SUCCESS! $@" } log_failure_msg() { echo " ERROR! $@" } fi PATH=/sbin:/usr/sbin:/bin:/usr/bin:$basedir/bin Loading Loading
sql/ha_ndbcluster.cc +23 −5 Original line number Diff line number Diff line Loading @@ -47,6 +47,8 @@ static const char *ha_ndb_ext=".ndb"; #define NDB_HIDDEN_PRIMARY_KEY_LENGTH 8 #define NDB_FAILED_AUTO_INCREMENT ~(Uint64)0 #define NDB_AUTO_INCREMENT_RETRIES 10 #define ERR_PRINT(err) \ DBUG_PRINT("error", ("%d message: %s", err.code, err.message)) Loading Loading @@ -1838,7 +1840,15 @@ int ha_ndbcluster::write_row(byte *record) { // Table has hidden primary key Ndb *ndb= get_ndb(); Uint64 auto_value= ndb->getAutoIncrementValue((const NDBTAB *) m_table); Uint64 auto_value= NDB_FAILED_AUTO_INCREMENT; uint retries= NDB_AUTO_INCREMENT_RETRIES; do { auto_value= ndb->getAutoIncrementValue((const NDBTAB *) m_table); } while (auto_value == NDB_FAILED_AUTO_INCREMENT && --retries && ndb->getNdbError().status == NdbError::TemporaryError); if (auto_value == NDB_FAILED_AUTO_INCREMENT) ERR_RETURN(ndb->getNdbError()); if (set_hidden_key(op, table->fields, (const byte*)&auto_value)) ERR_RETURN(op->getNdbError()); } Loading Loading @@ -3971,10 +3981,18 @@ longlong ha_ndbcluster::get_auto_increment() : (m_rows_to_insert > m_autoincrement_prefetch) ? m_rows_to_insert : m_autoincrement_prefetch; Uint64 auto_value= Uint64 auto_value= NDB_FAILED_AUTO_INCREMENT; uint retries= NDB_AUTO_INCREMENT_RETRIES; do { auto_value= (m_skip_auto_increment) ? ndb->readAutoIncrementValue((const NDBTAB *) m_table) : ndb->getAutoIncrementValue((const NDBTAB *) m_table, cache_size); } while (auto_value == NDB_FAILED_AUTO_INCREMENT && --retries && ndb->getNdbError().status == NdbError::TemporaryError); if (auto_value == NDB_FAILED_AUTO_INCREMENT) ERR_RETURN(ndb->getNdbError()); DBUG_RETURN((longlong)auto_value); } Loading
sql/handler.cc +14 −0 Original line number Diff line number Diff line Loading @@ -145,6 +145,20 @@ const char *ha_get_storage_engine(enum db_type db_type) return "none"; } my_bool ha_storage_engine_is_enabled(enum db_type database_type) { show_table_type_st *types; for (types= sys_table_types; types->type; types++) { if ((database_type == types->db_type) && (*types->value == SHOW_OPTION_YES)) return TRUE; } return FALSE; } /* Use other database handler if databasehandler is not incompiled */ enum db_type ha_checktype(enum db_type database_type) Loading
sql/handler.h +1 −0 Original line number Diff line number Diff line Loading @@ -542,6 +542,7 @@ int ha_init(void); int ha_panic(enum ha_panic_function flag); void ha_close_connection(THD* thd); enum db_type ha_checktype(enum db_type database_type); my_bool ha_storage_engine_is_enabled(enum db_type database_type); int ha_create_table(const char *name, HA_CREATE_INFO *create_info, bool update_create_info); int ha_create_table_from_engine(THD* thd, const char *db, const char *name, Loading
sql/mysqld.cc +13 −0 Original line number Diff line number Diff line Loading @@ -1165,6 +1165,7 @@ static struct passwd *check_user(const char *user) err: sql_print_error("Fatal error: Can't change to run as user '%s' ; Please check that the user exists!\n",user); unireg_abort(1); #endif return NULL; } Loading Loading @@ -6435,6 +6436,18 @@ static void get_options(int argc,char **argv) sql_print_warning("this binary does not contain BDB storage engine"); #endif /* Check that the default storage engine is actually available. */ if (!ha_storage_engine_is_enabled((enum db_type) global_system_variables.table_type)) { sql_print_error("Default storage engine (%s) is not available", ha_get_storage_engine((enum db_type) global_system_variables.table_type)); exit(1); } if (argc > 0) { fprintf(stderr, "%s: Too many arguments (first extra is '%s').\nUse --help to get a list of available options\n", my_progname, *argv); Loading
support-files/mysql.server.sh +8 −2 Original line number Diff line number Diff line Loading @@ -61,8 +61,14 @@ lsb_functions="/lib/lsb/init-functions" if test -f $lsb_functions ; then source $lsb_functions else alias log_success_msg="echo \ SUCCESS! " alias log_failure_msg="echo \ ERROR! " log_success_msg() { echo " SUCCESS! $@" } log_failure_msg() { echo " ERROR! $@" } fi PATH=/sbin:/usr/sbin:/bin:/usr/bin:$basedir/bin Loading