diff options
author | unknown <monty@mashka.mysql.fi> | 2003-01-29 18:56:59 +0200 |
---|---|---|
committer | unknown <monty@mashka.mysql.fi> | 2003-01-29 18:56:59 +0200 |
commit | 3a180c331aa30b393d8cbeff51793ed61592bd75 (patch) | |
tree | 769dd59b8858a0f27fcf8dd9fc6b179e668bbe28 /sql | |
parent | cec5bc1de7aa1107ec988601de6a3990c6397446 (diff) | |
parent | bdfa549779d1871ee6b0934d67e782c2f8cf86d7 (diff) | |
download | mariadb-git-3a180c331aa30b393d8cbeff51793ed61592bd75.tar.gz |
Merge work:/home/bk/mysql into mashka.mysql.fi:/home/my/mysql-3.23
Diffstat (limited to 'sql')
-rw-r--r-- | sql/mysql_priv.h | 2 | ||||
-rw-r--r-- | sql/mysqld.cc | 2 | ||||
-rw-r--r-- | sql/sql_db.cc | 2 | ||||
-rw-r--r-- | sql/sql_parse.cc | 25 | ||||
-rw-r--r-- | sql/sql_show.cc | 2 | ||||
-rw-r--r-- | sql/table.cc | 24 |
6 files changed, 35 insertions, 22 deletions
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h index a5c2c3909d3..49f1713bbc9 100644 --- a/sql/mysql_priv.h +++ b/sql/mysql_priv.h @@ -654,7 +654,7 @@ int create_frm(char *name,uint reclength,uchar *fileinfo, HA_CREATE_INFO *create_info, uint keys); void update_create_info_from_table(HA_CREATE_INFO *info, TABLE *form); int rename_file_ext(const char * from,const char * to,const char * ext); -bool check_db_name(const char *db); +bool check_db_name(char *db); bool check_column_name(const char *name); bool check_table_name(const char *name, uint length); char *get_field(MEM_ROOT *mem,TABLE *table,uint fieldnr); diff --git a/sql/mysqld.cc b/sql/mysqld.cc index acbc09c0f68..c188a015ef3 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -2031,7 +2031,7 @@ The server will not act as a slave."); init_master_info(&glob_mi); } - printf(ER(ER_READY),my_progname,server_version,""); + printf(ER(ER_READY),my_progname,server_version, mysql_unix_port, mysql_port); fflush(stdout); #ifdef __NT__ diff --git a/sql/sql_db.cc b/sql/sql_db.cc index 1ba02bb416c..60eeb3777c4 100644 --- a/sql/sql_db.cc +++ b/sql/sql_db.cc @@ -337,8 +337,6 @@ bool mysql_change_db(THD *thd,const char *name) x_free(dbname); DBUG_RETURN(1); } - if (lower_case_table_names) - casedn_str(dbname); DBUG_PRINT("general",("Use database: %s", dbname)); if (test_all_bits(thd->master_access,DB_ACLS)) db_access=DB_ACLS; diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index d11548a62e2..8daba09174e 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -674,16 +674,19 @@ int mysql_table_dump(THD* thd, char* db, char* tbl_name, int fd) table_list->real_name = table_list->alias = tbl_name; table_list->lock_type = TL_READ_NO_INSERT; table_list->next = 0; - remove_escape(table_list->real_name); - - if (!(table=open_ltable(thd, table_list, TL_READ_NO_INSERT))) - DBUG_RETURN(1); if (!db || check_db_name(db)) { net_printf(&thd->net,ER_WRONG_DB_NAME, db ? db : "NULL"); goto err; } + if (lower_case_table_names) + casedn_str(tbl_name); + remove_escape(tbl_name); + + if (!(table=open_ltable(thd, table_list, TL_READ_NO_INSERT))) + DBUG_RETURN(1); + if (check_access(thd, SELECT_ACL, db, &table_list->grant.privilege)) goto err; if (grant_option && check_grant(thd, SELECT_ACL, table_list)) @@ -859,6 +862,8 @@ bool do_command(THD *thd) table_list.alias= table_list.real_name= thd->strdup(packet+1); thd->query=fields=thd->strdup(strend(packet+1)+1); mysql_log.write(thd,command,"%s %s",table_list.real_name,fields); + if (lower_case_table_names) + casedn_str(table_list.real_name); remove_escape(table_list.real_name); // This can't have wildcards if (check_access(thd,SELECT_ACL,table_list.db,&thd->col_access)) @@ -888,8 +893,6 @@ bool do_command(THD *thd) net_printf(&thd->net,ER_WRONG_DB_NAME, db ? db : "NULL"); break; } - if (lower_case_table_names) - casedn_str(db); if (check_access(thd,CREATE_ACL,db,0,1)) break; mysql_log.write(thd,command,packet+1); @@ -906,8 +909,6 @@ bool do_command(THD *thd) net_printf(&thd->net,ER_WRONG_DB_NAME, db ? db : "NULL"); break; } - if (lower_case_table_names) - casedn_str(db); if (check_access(thd,DROP_ACL,db,0,1) || end_active_trans(thd)) break; mysql_log.write(thd,command,db); @@ -1944,8 +1945,6 @@ mysql_execute_command(void) net_printf(&thd->net,ER_WRONG_DB_NAME, lex->name); break; } - if (lower_case_table_names) - casedn_str(lex->name); if (check_access(thd,CREATE_ACL,lex->name,0,1)) break; mysql_create_db(thd,lex->name,lex->create_info.options); @@ -1958,8 +1957,6 @@ mysql_execute_command(void) net_printf(&thd->net,ER_WRONG_DB_NAME, lex->name); break; } - if (lower_case_table_names) - casedn_str(lex->name); if (check_access(thd,DROP_ACL,lex->name,0,1) || end_active_trans(thd)) break; @@ -2773,11 +2770,7 @@ TABLE_LIST *add_table_to_list(Table_ident *table, LEX_STRING *alias, if (!(alias_str=sql_strmake(alias_str,table->table.length))) DBUG_RETURN(0); if (lower_case_table_names) - { casedn_str(table->table.str); - if (table->db.str) - casedn_str(table->db.str); - } if (!(ptr = (TABLE_LIST *) thd->calloc(sizeof(TABLE_LIST)))) DBUG_RETURN(0); /* purecov: inspected */ ptr->db= table->db.str; diff --git a/sql/sql_show.cc b/sql/sql_show.cc index a6285cfacd0..729e1557cdc 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -307,6 +307,8 @@ int mysqld_extend_show_tables(THD *thd,const char *db,const char *wild) net_store_data(packet,file_name); table_list.db=(char*) db; table_list.real_name= table_list.alias= file_name; + if (lower_case_table_names) + casedn_str(file_name); if (!(table = open_ltable(thd, &table_list, TL_READ))) { for (uint i=0 ; i < field_list.elements ; i++) diff --git a/sql/table.cc b/sql/table.cc index e0f5edbf262..3afadec3801 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -1045,9 +1045,29 @@ char *get_field(MEM_ROOT *mem, TABLE *table, uint fieldnr) return to; } -bool check_db_name(const char *name) + +/* + Check if database name is valid + + SYNPOSIS + check_db_name() + name Name of database + + NOTES + If lower_case_table_names is set then database is converted to lower case + + RETURN + 0 ok + 1 error +*/ + +bool check_db_name(char *name) { - const char *start=name; + char *start=name; + + if (lower_case_table_names) + casedn_str(name); + while (*name) { #if defined(USE_MB) && defined(USE_MB_IDENT) |