mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge work:/my/mysql-4.0 into mashka.mysql.fi:/home/my/mysql-4.0
This commit is contained in:
@ -20,6 +20,9 @@
|
||||
#include "mysql_priv.h"
|
||||
#include <hash.h>
|
||||
#include <myisam.h>
|
||||
#ifdef HAVE_BERKELEY_DB
|
||||
#include <ha_berkeley.h>
|
||||
#endif
|
||||
#include <assert.h>
|
||||
|
||||
#ifdef __WIN__
|
||||
@ -258,10 +261,32 @@ static int sort_keys(KEY *a, KEY *b)
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Create a table.
|
||||
* If one creates a temporary table, this is automaticly opened
|
||||
****************************************************************************/
|
||||
/*
|
||||
Create a table
|
||||
|
||||
SYNOPSIS
|
||||
mysql_create_table()
|
||||
thd Thread object
|
||||
db Database
|
||||
table_name Table name
|
||||
create_info Create information (like MAX_ROWS)
|
||||
fields List of fields to create
|
||||
keys List of keys to create
|
||||
tmp_table Set to 1 if this is a temporary table
|
||||
no_log Don't log the query to binary log.
|
||||
|
||||
DESCRIPTION
|
||||
If one creates a temporary table, this is automaticly opened
|
||||
|
||||
no_log is needed for the case of CREATE ... SELECT,
|
||||
as the logging will be done later in sql_insert.cc
|
||||
select_field_count is also used for CREATE ... SELECT,
|
||||
and must be zero for standard create of table.
|
||||
|
||||
RETURN VALUES
|
||||
0 ok
|
||||
-1 error
|
||||
*/
|
||||
|
||||
int mysql_create_table(THD *thd,const char *db, const char *table_name,
|
||||
HA_CREATE_INFO *create_info,
|
||||
@ -1885,9 +1910,16 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
|
||||
#ifdef HAVE_BERKELEY_DB
|
||||
if (old_db_type == DB_TYPE_BERKELEY_DB)
|
||||
{
|
||||
extern bool berkeley_flush_logs(void);
|
||||
(void)berkeley_flush_logs();
|
||||
table=open_ltable(thd,table_list,TL_READ);
|
||||
(void) berkeley_flush_logs();
|
||||
/*
|
||||
For the alter table to be properly flushed to the logs, we
|
||||
have to open the new table. If not, we get a problem on server
|
||||
shutdown.
|
||||
*/
|
||||
if (!open_tables(thd, table_list)) // Should always succeed
|
||||
{
|
||||
close_thread_table(thd, &table_list->table);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
table_list->table=0; // For query cache
|
||||
|
Reference in New Issue
Block a user