mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Automatic merge
This commit is contained in:
@@ -8,7 +8,7 @@ make -k maintainer-clean
|
||||
path=`dirname $0`
|
||||
. "$path/autorun.sh"
|
||||
|
||||
CC=ccc CFLAGS="-fast -O3 -fomit-frame-pointer" CXX=gcc CXXFLAGS="-O6 -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti -mcpu=ev6 -Wa,-mev6" CXXLDFLAGS='/usr/lib/compaq/libots-2.2.7/libots.so /usr/lib/compaq/cpml-5.0.0/libcpml_ev6.a' ./configure --prefix=/usr/local/mysql --disable-shared --with-extra-charsets=complex --enable-thread-safe-client
|
||||
CC=ccc CFLAGS="-fast -O3 -fomit-frame-pointer" CXX=g++ CXXFLAGS="-O6 -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti -mcpu=ev6 -Wa,-mev6" CXXLDFLAGS='/usr/lib/compaq/libots-2.2.7/libots.so /usr/lib/compaq/cpml-5.0.0/libcpml_ev6.a' ./configure --prefix=/usr/local/mysql --disable-shared --with-extra-charsets=complex --enable-thread-safe-client
|
||||
make
|
||||
rm */.deps/*
|
||||
make
|
||||
|
||||
@@ -8,5 +8,5 @@ make -k maintainer-clean
|
||||
path=`dirname $0`
|
||||
. "$path/autorun.sh"
|
||||
|
||||
CFLAGS=-O1 CC=gcc CXX=gcc CXXFLAGS="-O1 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-debug --with-extra-charsets=complex --without-extra-tools
|
||||
CFLAGS=-O1 CC=gcc CXX=g++ CXXFLAGS="-O1 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-debug --with-extra-charsets=complex --without-extra-tools
|
||||
make
|
||||
|
||||
@@ -8,7 +8,7 @@ path=`dirname $0`
|
||||
. "$path/autorun.sh"
|
||||
|
||||
export PATH=/usr/local/pgcc/bin:$PATH
|
||||
CFLAGS="-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -O6 -mpentiumpro -fomit-frame-pointer -mstack-align-double" CXX=gcc CXXFLAGS="-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wextern-inline -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -O6 -fomit-frame-pointer -mpentiumpro -mstack-align-double" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static
|
||||
CFLAGS="-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -O6 -mpentiumpro -fomit-frame-pointer -mstack-align-double" CXX=g++ CXXFLAGS="-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wextern-inline -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -O6 -fomit-frame-pointer -mpentiumpro -mstack-align-double" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static
|
||||
|
||||
gmake -j 4
|
||||
|
||||
|
||||
@@ -9,6 +9,6 @@ PATH=$PATH:/usr/ccs/bin:/usr/local/bin
|
||||
path=`dirname $0`
|
||||
. "$path/autorun.sh"
|
||||
|
||||
CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -O3 -fno-omit-frame-pointer -mcpu=v8 -Wa,-xarch=v8plusa $EXTRA_FLAGS $EXTRA_CFLAGS" CXX=gcc CXXFLAGS="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -O3 -fno-omit-frame-pointer -mcpu=v8 -Wa,-xarch=v8plusa -g $EXTRA_FLAGS $EXTRA_CXXFLAGS" LIBS="-lmtmalloc" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client
|
||||
CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -O3 -fno-omit-frame-pointer -mcpu=v8 -Wa,-xarch=v8plusa $EXTRA_FLAGS $EXTRA_CFLAGS" CXX=g++ CXXFLAGS="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -O3 -fno-omit-frame-pointer -mcpu=v8 -Wa,-xarch=v8plusa -g $EXTRA_FLAGS $EXTRA_CXXFLAGS" LIBS="-lmtmalloc" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client
|
||||
|
||||
make -j 4
|
||||
|
||||
@@ -6,6 +6,6 @@ make -k clean || true
|
||||
path=`dirname $0`
|
||||
. "$path/autorun.sh"
|
||||
|
||||
CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -O3 -fno-omit-frame-pointer" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-debug
|
||||
CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -O3 -fno-omit-frame-pointer" CXX=g++ CXXFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -O3 -fno-omit-frame-pointer" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-debug
|
||||
|
||||
make -j 4
|
||||
|
||||
@@ -37,7 +37,7 @@ make -k maintainer-clean || true
|
||||
path=`dirname $0`
|
||||
. "$path/autorun.sh"
|
||||
|
||||
CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -DHAVE_valgrind -DEXTRA_DEBUG -O2" CXX=gcc CXXLD=g++ CXXFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -DHAVE_valgrind -DEXTRA_DEBUG -O2" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-embedded-server --with-innodb $EXTRA_CONFIG_FLAGS
|
||||
CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -DHAVE_valgrind -DEXTRA_DEBUG -O2" CXX=g++ CXXLD=g++ CXXFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -DHAVE_valgrind -DEXTRA_DEBUG -O2" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-embedded-server --with-innodb $EXTRA_CONFIG_FLAGS
|
||||
|
||||
make -j 4
|
||||
|
||||
|
||||
@@ -4913,6 +4913,8 @@ sub mysqld_arguments ($$$) {
|
||||
}
|
||||
|
||||
mtr_add_arg($args, "%s--disable-sync-frm");
|
||||
# Retry bind as this may fail on busy server
|
||||
mtr_add_arg($args, "%s--port-open-timeout=10");
|
||||
|
||||
if (!using_extern() and $mysql_version_id >= 50106 && !$opt_user_args)
|
||||
{
|
||||
|
||||
25
sql/item.cc
25
sql/item.cc
@@ -471,6 +471,7 @@ void Item::print_item_w_name(String *str, enum_query_type query_type)
|
||||
void Item::cleanup()
|
||||
{
|
||||
DBUG_ENTER("Item::cleanup");
|
||||
DBUG_PRINT("enter", ("this: %p", this));
|
||||
fixed=0;
|
||||
marker= 0;
|
||||
if (orig_name)
|
||||
@@ -1494,6 +1495,11 @@ void Item::split_sum_func2(THD *thd, Item **ref_pointer_array,
|
||||
*/
|
||||
Item_aggregate_ref *item_ref;
|
||||
uint el= fields.elements;
|
||||
/*
|
||||
If this is an item_ref, get the original item
|
||||
This is a safety measure if this is called for things that is
|
||||
already a reference.
|
||||
*/
|
||||
Item *real_itm= real_item();
|
||||
|
||||
ref_pointer_array[el]= real_itm;
|
||||
@@ -5906,7 +5912,7 @@ Item_ref::Item_ref(Name_resolution_context *context_arg,
|
||||
const char *field_name_arg,
|
||||
bool alias_name_used_arg)
|
||||
:Item_ident(context_arg, NullS, table_name_arg, field_name_arg),
|
||||
result_field(0), ref(item)
|
||||
result_field(0), ref(item), reference_trough_name(0)
|
||||
{
|
||||
alias_name_used= alias_name_used_arg;
|
||||
/*
|
||||
@@ -5949,7 +5955,7 @@ public:
|
||||
Item_ref::Item_ref(TABLE_LIST *view_arg, Item **item,
|
||||
const char *field_name_arg, bool alias_name_used_arg)
|
||||
:Item_ident(view_arg, field_name_arg),
|
||||
result_field(NULL), ref(item)
|
||||
result_field(NULL), ref(item), reference_trough_name(0)
|
||||
{
|
||||
alias_name_used= alias_name_used_arg;
|
||||
/*
|
||||
@@ -6032,6 +6038,7 @@ bool Item_ref::fix_fields(THD *thd, Item **reference)
|
||||
|
||||
if (!ref || ref == not_found_item)
|
||||
{
|
||||
DBUG_ASSERT(reference_trough_name != 0);
|
||||
if (!(ref= resolve_ref_in_select_and_group(thd, this,
|
||||
context->select_lex)))
|
||||
goto error; /* Some error occurred (e.g. ambiguous names). */
|
||||
@@ -6307,6 +6314,11 @@ void Item_ref::cleanup()
|
||||
DBUG_ENTER("Item_ref::cleanup");
|
||||
Item_ident::cleanup();
|
||||
result_field= 0;
|
||||
if (reference_trough_name)
|
||||
{
|
||||
/* We have to reset the reference as it may been freed */
|
||||
ref= 0;
|
||||
}
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
@@ -6701,8 +6713,7 @@ bool Item_direct_ref::get_date(MYSQL_TIME *ltime,uint fuzzydate)
|
||||
|
||||
Item_cache_wrapper::~Item_cache_wrapper()
|
||||
{
|
||||
delete expr_cache;
|
||||
/* expr_value is Item so it will be destroyed from list of Items */
|
||||
DBUG_ASSERT(expr_cache == 0);
|
||||
}
|
||||
|
||||
|
||||
@@ -6761,10 +6772,13 @@ bool Item_cache_wrapper::fix_fields(THD *thd __attribute__((unused)),
|
||||
|
||||
void Item_cache_wrapper::cleanup()
|
||||
{
|
||||
DBUG_ENTER("Item_cache_wrapper::cleanup");
|
||||
Item_result_field::cleanup();
|
||||
delete expr_cache;
|
||||
expr_cache= 0;
|
||||
// expr_value is Item so it will be destroyed from list of Items
|
||||
/* expr_value is Item so it will be destroyed from list of Items */
|
||||
expr_value= 0;
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
@@ -6787,6 +6801,7 @@ void Item_cache_wrapper::cleanup()
|
||||
bool Item_cache_wrapper::set_cache(THD *thd, List<Item*> &depends_on)
|
||||
{
|
||||
DBUG_ENTER("Item_cache_wrapper::set_cache");
|
||||
DBUG_ASSERT(expr_cache == 0);
|
||||
expr_cache= new Expression_cache_tmptable(thd, depends_on, expr_value);
|
||||
DBUG_RETURN(expr_cache == NULL);
|
||||
}
|
||||
|
||||
@@ -2417,11 +2417,12 @@ public:
|
||||
enum Ref_Type { REF, DIRECT_REF, VIEW_REF, OUTER_REF, AGGREGATE_REF };
|
||||
Field *result_field; /* Save result here */
|
||||
Item **ref;
|
||||
bool reference_trough_name;
|
||||
Item_ref(Name_resolution_context *context_arg,
|
||||
const char *db_arg, const char *table_name_arg,
|
||||
const char *field_name_arg)
|
||||
:Item_ident(context_arg, db_arg, table_name_arg, field_name_arg),
|
||||
result_field(0), ref(0) {}
|
||||
result_field(0), ref(0), reference_trough_name(1) {}
|
||||
/*
|
||||
This constructor is used in two scenarios:
|
||||
A) *item = NULL
|
||||
|
||||
@@ -1842,8 +1842,10 @@ static my_socket activate_tcp_port(uint port)
|
||||
}
|
||||
if (ret < 0)
|
||||
{
|
||||
DBUG_PRINT("error",("Got error: %d from bind",socket_errno));
|
||||
sql_perror("Can't start server: Bind on TCP/IP port");
|
||||
char buff[100];
|
||||
sprintf(buff, "Can't start server: Bind on TCP/IP port. Got error: %d",
|
||||
(int) socket_errno);
|
||||
sql_perror(buff);
|
||||
sql_print_error("Do you already have another mysqld server running on "
|
||||
"port: %u ?", port);
|
||||
unireg_abort(1);
|
||||
|
||||
@@ -7513,13 +7513,11 @@ int setup_wild(THD *thd, TABLE_LIST *tables, List<Item> &fields,
|
||||
List<Item> *sum_func_list,
|
||||
uint wild_num)
|
||||
{
|
||||
if (!wild_num)
|
||||
return(0);
|
||||
|
||||
Item *item;
|
||||
List_iterator<Item> it(fields);
|
||||
Query_arena *arena, backup;
|
||||
DBUG_ENTER("setup_wild");
|
||||
DBUG_ASSERT(wild_num != 0);
|
||||
|
||||
/*
|
||||
Don't use arena if we are not in prepared statements or stored procedures
|
||||
@@ -7608,6 +7606,7 @@ bool setup_fields(THD *thd, Item **ref_pointer_array,
|
||||
List_iterator<Item> it(fields);
|
||||
bool save_is_item_list_lookup;
|
||||
DBUG_ENTER("setup_fields");
|
||||
DBUG_PRINT("enter", ("ref_pointer_array: %p", ref_pointer_array));
|
||||
|
||||
thd->mark_used_columns= mark_used_columns;
|
||||
DBUG_PRINT("info", ("thd->mark_used_columns: %d", thd->mark_used_columns));
|
||||
@@ -7842,10 +7841,11 @@ bool setup_tables_and_check_access(THD *thd,
|
||||
{
|
||||
TABLE_LIST *leaves_tmp= NULL;
|
||||
bool first_table= true;
|
||||
DBUG_ENTER("setup_tables_and_check_access");
|
||||
|
||||
if (setup_tables(thd, context, from_clause, tables,
|
||||
&leaves_tmp, select_insert))
|
||||
return TRUE;
|
||||
DBUG_RETURN(TRUE);
|
||||
|
||||
if (leaves)
|
||||
*leaves= leaves_tmp;
|
||||
@@ -7857,11 +7857,11 @@ bool setup_tables_and_check_access(THD *thd,
|
||||
want_access, leaves_tmp, FALSE))
|
||||
{
|
||||
tables->hide_view_error(thd);
|
||||
return TRUE;
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
first_table= 0;
|
||||
}
|
||||
return FALSE;
|
||||
DBUG_RETURN(FALSE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,17 @@
|
||||
/* Copyright (C) 2010-2011 Monty Program Ab & Oleksandr Byelkin
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
#include "mysql_priv.h"
|
||||
#include "sql_select.h"
|
||||
@@ -84,7 +98,6 @@ void Expression_cache_tmptable::init()
|
||||
cache_table_param.field_count= list->elements + 1;
|
||||
/* postpone table creation to index description */
|
||||
cache_table_param.skip_create_table= 1;
|
||||
cache_table= NULL;
|
||||
|
||||
items.push_front(val);
|
||||
|
||||
|
||||
@@ -2053,20 +2053,22 @@ ulong st_select_lex::get_table_join_options()
|
||||
|
||||
bool st_select_lex::setup_ref_array(THD *thd, uint order_group_num)
|
||||
{
|
||||
DBUG_ENTER("st_select_lex::setup_ref_array");
|
||||
|
||||
if (ref_pointer_array)
|
||||
return 0;
|
||||
DBUG_RETURN(0);
|
||||
|
||||
/*
|
||||
We have to create array in prepared statement memory if it is
|
||||
We have to create array in prepared statement memory if it is a
|
||||
prepared statement
|
||||
*/
|
||||
Query_arena *arena= thd->stmt_arena;
|
||||
return (ref_pointer_array=
|
||||
(Item **)arena->alloc(sizeof(Item*) * (n_child_sum_items +
|
||||
item_list.elements +
|
||||
select_n_having_items +
|
||||
select_n_where_fields +
|
||||
order_group_num)*5)) == 0;
|
||||
ref_pointer_array=
|
||||
(Item **)thd->stmt_arena->alloc(sizeof(Item*) * (n_child_sum_items +
|
||||
item_list.elements +
|
||||
select_n_having_items +
|
||||
select_n_where_fields +
|
||||
order_group_num)*5);
|
||||
DBUG_RETURN(ref_pointer_array == 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -561,7 +561,8 @@ JOIN::prepare(Item ***rref_pointer_array,
|
||||
table_ptr->table->maybe_null= 1;
|
||||
}
|
||||
|
||||
if (setup_wild(thd, tables_list, fields_list, &all_fields, wild_num) ||
|
||||
if ((wild_num && setup_wild(thd, tables_list, fields_list, &all_fields,
|
||||
wild_num)) ||
|
||||
select_lex->setup_ref_array(thd, og_num) ||
|
||||
setup_fields(thd, (*rref_pointer_array), fields_list, MARK_COLUMNS_READ,
|
||||
&all_fields, 1) ||
|
||||
@@ -2554,6 +2555,7 @@ JOIN::destroy()
|
||||
|
||||
void JOIN::cleanup_item_list(List<Item> &items) const
|
||||
{
|
||||
DBUG_ENTER("JOIN::cleanup_item_list");
|
||||
if (!items.is_empty())
|
||||
{
|
||||
List_iterator_fast<Item> it(items);
|
||||
@@ -2561,6 +2563,7 @@ void JOIN::cleanup_item_list(List<Item> &items) const
|
||||
while ((item= it++))
|
||||
item->cleanup();
|
||||
}
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
@@ -12651,7 +12654,6 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
|
||||
{
|
||||
if (open_tmp_table(table))
|
||||
goto err;
|
||||
table->db_stat= HA_OPEN_KEYFILE+HA_OPEN_RNDFILE;
|
||||
}
|
||||
|
||||
thd->mem_root= mem_root_save;
|
||||
@@ -12807,6 +12809,7 @@ bool open_tmp_table(TABLE *table)
|
||||
table->db_stat=0;
|
||||
return(1);
|
||||
}
|
||||
table->db_stat= HA_OPEN_KEYFILE+HA_OPEN_RNDFILE;
|
||||
(void) table->file->extra(HA_EXTRA_QUICK); /* Faster */
|
||||
return(0);
|
||||
}
|
||||
|
||||
@@ -39,6 +39,10 @@ int heap_create(const char *name, uint keys, HP_KEYDEF *keydef,
|
||||
share= 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DBUG_PRINT("info", ("Creating internal (no named) temporary table"));
|
||||
}
|
||||
|
||||
if (!share)
|
||||
{
|
||||
@@ -255,10 +259,15 @@ static void init_block(HP_BLOCK *block, uint reclength, ulong min_records,
|
||||
|
||||
static inline void heap_try_free(HP_SHARE *share)
|
||||
{
|
||||
DBUG_ENTER("heap_try_free");
|
||||
if (share->open_count == 0)
|
||||
hp_free(share);
|
||||
else
|
||||
{
|
||||
DBUG_PRINT("info", ("Table is still in use. Will be freed on close"));
|
||||
share->delete_on_close= 1;
|
||||
}
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
@@ -277,6 +286,7 @@ int heap_delete_table(const char *name)
|
||||
else
|
||||
{
|
||||
result= my_errno=ENOENT;
|
||||
DBUG_PRINT("error", ("Could not find table '%s'", name));
|
||||
}
|
||||
pthread_mutex_unlock(&THR_LOCK_heap);
|
||||
DBUG_RETURN(result);
|
||||
|
||||
Reference in New Issue
Block a user