summaryrefslogtreecommitdiff
path: root/sql/sql_parse.cc
diff options
context:
space:
mode:
authorunknown <monty@hundin.mysql.fi>2001-09-02 19:58:08 +0300
committerunknown <monty@hundin.mysql.fi>2001-09-02 19:58:08 +0300
commit3719b87396063fadf9a88a6acc6584f1321a7d6a (patch)
treec1066773b871f44ebb365c32dab0432f7da6da94 /sql/sql_parse.cc
parentfa7b17e904a73da0e938eac8e8d1503838d78202 (diff)
parentddee00a6edc735b3bbef42b7d0d662091debd560 (diff)
downloadmariadb-git-3719b87396063fadf9a88a6acc6584f1321a7d6a.tar.gz
merge
configure.in: Auto merged sql/ha_innobase.cc: Auto merged sql/ha_myisam.cc: Auto merged sql/handler.cc: Auto merged sql/handler.h: Auto merged sql/lock.cc: Auto merged sql/mysql_priv.h: Auto merged sql/sql_db.cc: Auto merged sql/sql_delete.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_load.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_yacc.yy: Auto merged
Diffstat (limited to 'sql/sql_parse.cc')
-rw-r--r--sql/sql_parse.cc31
1 files changed, 21 insertions, 10 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index dac9af6d9fb..687d325a95a 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -67,9 +67,13 @@ extern struct st_VioSSLAcceptorFd * ssl_acceptor_fd;
#ifdef __WIN__
static void test_signal(int sig_ptr)
{
-#ifndef DBUG_OFF
+#if !defined( DBUG_OFF)
MessageBox(NULL,"Test signal","DBUG",MB_OK);
#endif
+#if defined(OS2)
+ fprintf( stderr, "Test signal %d\n", sig_ptr);
+ fflush( stderr);
+#endif
}
static void init_signals(void)
{
@@ -175,7 +179,6 @@ static bool check_user(THD *thd,enum_server_command command, const char *user,
*/
static HASH hash_user_connections;
-static DYNAMIC_ARRAY user_conn_array;
extern pthread_mutex_t LOCK_user_conn;
struct user_conn {
@@ -482,7 +485,7 @@ pthread_handler_decl(handle_one_connection,arg)
pthread_detach_this_thread();
-#ifndef __WIN__ /* Win32 calls this in pthread_create */
+#if !defined( __WIN__) && !defined(OS2) /* Win32 calls this in pthread_create */
if (my_thread_init()) // needed to be called first before we call
// DBUG_ macros
{
@@ -504,9 +507,9 @@ pthread_handler_decl(handle_one_connection,arg)
thd->thread_id));
// now that we've called my_thread_init(), it is safe to call DBUG_*
-#ifdef __WIN__
+#if defined(__WIN__)
init_signals(); // IRENA; testing ?
-#else
+#elif !defined(OS2)
sigset_t set;
VOID(sigemptyset(&set)); // Get mask in use
VOID(pthread_sigmask(SIG_UNBLOCK,&set,&thd->block_signals));
@@ -607,7 +610,7 @@ pthread_handler_decl(handle_bootstrap,arg)
thd->thread_stack= (char*) &thd;
thd->mysys_var=my_thread_var;
thd->dbug_thread_id=my_thread_id();
-#ifndef __WIN__
+#if !defined(__WIN__) && !defined(OS2)
sigset_t set;
VOID(sigemptyset(&set)); // Get mask in use
VOID(pthread_sigmask(SIG_UNBLOCK,&set,&thd->block_signals));
@@ -960,7 +963,9 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
#ifdef __WIN__
sleep(1); // must wait after eof()
#endif
+#ifndef OS2
send_eof(net); // This is for 'quit request'
+#endif
close_connection(net);
close_thread_tables(thd); // Free before kill
free_root(&thd->mem_root,MYF(0));
@@ -2294,10 +2299,18 @@ static bool check_merge_table_access(THD *thd, char *db,
int error=0;
if (table_list)
{
- /* Force all tables to use the current database */
+ /* Check that all tables use the current database */
TABLE_LIST *tmp;
for (tmp=table_list; tmp ; tmp=tmp->next)
- tmp->db=db;
+ {
+ if (!tmp->db || !tmp->db[0])
+ tmp->db=db;
+ else if (!strcmp(tmp->db,db))
+ {
+ send_error(&thd->net,ER_UNION_TABLES_IN_DIFFERENT_DIR);
+ return 1;
+ }
+ }
error=check_table_access(thd, SELECT_ACL | UPDATE_ACL | DELETE_ACL,
table_list);
}
@@ -2804,13 +2817,11 @@ TABLE_LIST *add_table_to_list(Table_ident *table, LEX_STRING *alias,
DBUG_RETURN(0);
}
-#ifdef FN_LOWER_CASE
if (!alias) /* Alias is case sensitive */
if (!(alias_str=thd->memdup(alias_str,table->table.length+1)))
DBUG_RETURN(0);
if (lower_case_table_names)
casedn_str(table->table.str);
-#endif
if (!(ptr = (TABLE_LIST *) thd->calloc(sizeof(TABLE_LIST))))
DBUG_RETURN(0); /* purecov: inspected */
ptr->db= table->db.str ? table->db.str : (thd->db ? thd->db : (char*) "");