MCPcopy Create free account
hub / github.com/MariaDB/server / open_table_error

Function open_table_error

sql/table.cc:4985–5039  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4983/* error message when opening a form file */
4984
4985void open_table_error(TABLE_SHARE *share, enum open_frm_error error,
4986 int db_errno)
4987{
4988 char buff[FN_REFLEN];
4989 const myf errortype= ME_ERROR_LOG; // Write fatals error to log
4990 DBUG_ENTER("open_table_error");
4991 DBUG_PRINT("info", ("error: %d db_errno: %d", error, db_errno));
4992
4993 switch (error) {
4994 case OPEN_FRM_OPEN_ERROR:
4995 /*
4996 Test if file didn't exists. We have to also test for EINVAL as this
4997 may happen on windows when opening a file with a not legal file name
4998 */
4999 if (db_errno == ENOENT || db_errno == EINVAL)
5000 my_error(ER_NO_SUCH_TABLE, MYF(0), share->db.str, share->table_name.str);
5001 else
5002 {
5003 strxmov(buff, share->normalized_path.str, reg_ext, NullS);
5004 my_error((db_errno == EMFILE) ? ER_CANT_OPEN_FILE : ER_FILE_NOT_FOUND,
5005 errortype, buff, db_errno);
5006 }
5007 break;
5008 case OPEN_FRM_OK:
5009 DBUG_ASSERT(0); // open_table_error() is never called for this one
5010 break;
5011 case OPEN_FRM_ERROR_ALREADY_ISSUED:
5012 break;
5013 case OPEN_FRM_NOT_A_VIEW:
5014 my_error(ER_WRONG_OBJECT, MYF(0), share->db.str,
5015 share->table_name.str, "VIEW");
5016 break;
5017 case OPEN_FRM_NOT_A_TABLE:
5018 my_error(ER_WRONG_OBJECT, MYF(0), share->db.str,
5019 share->table_name.str, "TABLE");
5020 break;
5021 case OPEN_FRM_DISCOVER:
5022 DBUG_ASSERT(0); // open_table_error() is never called for this one
5023 break;
5024 case OPEN_FRM_CORRUPTED:
5025 strxmov(buff, share->normalized_path.str, reg_ext, NullS);
5026 my_error(ER_NOT_FORM_FILE, errortype, buff);
5027 break;
5028 case OPEN_FRM_READ_ERROR:
5029 strxmov(buff, share->normalized_path.str, reg_ext, NullS);
5030 my_error(ER_ERROR_ON_READ, errortype, buff, db_errno);
5031 break;
5032 case OPEN_FRM_NEEDS_REBUILD:
5033 strxnmov(buff, sizeof(buff)-1,
5034 share->db.str, ".", share->table_name.str, NullS);
5035 my_error(ER_TABLE_NEEDS_REBUILD, errortype, buff);
5036 break;
5037 }
5038 DBUG_VOID_RETURN;
5039} /* open_table_error */
5040
5041
5042 /*

Callers 7

tdc_acquire_shareFunction · 0.85
ha_discover_tableFunction · 0.85
open_table_defFunction · 0.85
parse_vcol_defsFunction · 0.85
open_table_from_shareFunction · 0.85
openMethod · 0.85

Calls 3

my_errorFunction · 0.85
strxmovFunction · 0.85
strxnmovFunction · 0.85

Tested by

no test coverage detected