Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/mysql_src/mysql-4.1-clean
This commit is contained in:
commit
09f36a69b9
@ -264,7 +264,8 @@ if ($opt_stage <= 1)
|
|||||||
$opt_config_options.= " --with-berkeley-db" if ($opt_bdb);
|
$opt_config_options.= " --with-berkeley-db" if ($opt_bdb);
|
||||||
$opt_config_options.= " --with-zlib-dir=bundled" if ($opt_bundled_zlib);
|
$opt_config_options.= " --with-zlib-dir=bundled" if ($opt_bundled_zlib);
|
||||||
$opt_config_options.= " --with-client-ldflags=-all-static" if ($opt_static_client);
|
$opt_config_options.= " --with-client-ldflags=-all-static" if ($opt_static_client);
|
||||||
$opt_config_options.= " --with-debug" if ($opt_with_debug);
|
$opt_config_options.= " --with-debug" if ($opt_with_debug);
|
||||||
|
$opt_config_options.= " --without-ndb-debug" if ($opt_with_debug && $opt_with_cluster);
|
||||||
$opt_config_options.= " --with-libwrap" if ($opt_libwrap);
|
$opt_config_options.= " --with-libwrap" if ($opt_libwrap);
|
||||||
$opt_config_options.= " --with-low-memory" if ($opt_with_low_memory);
|
$opt_config_options.= " --with-low-memory" if ($opt_with_low_memory);
|
||||||
$opt_config_options.= " --with-mysqld-ldflags=-all-static" if ($opt_static_server);
|
$opt_config_options.= " --with-mysqld-ldflags=-all-static" if ($opt_static_server);
|
||||||
|
@ -16,7 +16,7 @@ SHARED_LIB_VERSION=14:0:0
|
|||||||
# ndb version
|
# ndb version
|
||||||
NDB_VERSION_MAJOR=4
|
NDB_VERSION_MAJOR=4
|
||||||
NDB_VERSION_MINOR=1
|
NDB_VERSION_MINOR=1
|
||||||
NDB_VERSION_BUILD=9
|
NDB_VERSION_BUILD=10
|
||||||
NDB_VERSION_STATUS=""
|
NDB_VERSION_STATUS=""
|
||||||
|
|
||||||
# Set all version vars based on $VERSION. How do we do this more elegant ?
|
# Set all version vars based on $VERSION. How do we do this more elegant ?
|
||||||
|
@ -140,6 +140,7 @@ int heap_create(const char *name, uint keys, HP_KEYDEF *keydef,
|
|||||||
}
|
}
|
||||||
share->min_records= min_records;
|
share->min_records= min_records;
|
||||||
share->max_records= max_records;
|
share->max_records= max_records;
|
||||||
|
share->max_table_size= create_info->max_table_size;
|
||||||
share->data_length= share->index_length= 0;
|
share->data_length= share->index_length= 0;
|
||||||
share->reclength= reclength;
|
share->reclength= reclength;
|
||||||
share->blength= 1;
|
share->blength= 1;
|
||||||
|
@ -143,7 +143,8 @@ static byte *next_free_record_pos(HP_SHARE *info)
|
|||||||
}
|
}
|
||||||
if (!(block_pos=(info->records % info->block.records_in_block)))
|
if (!(block_pos=(info->records % info->block.records_in_block)))
|
||||||
{
|
{
|
||||||
if (info->records > info->max_records && info->max_records)
|
if ((info->records > info->max_records && info->max_records) ||
|
||||||
|
(info->data_length + info->index_length >= info->max_table_size))
|
||||||
{
|
{
|
||||||
my_errno=HA_ERR_RECORD_FILE_FULL;
|
my_errno=HA_ERR_RECORD_FILE_FULL;
|
||||||
DBUG_RETURN(NULL);
|
DBUG_RETURN(NULL);
|
||||||
|
@ -126,7 +126,7 @@ typedef struct st_hp_keydef /* Key definition with open */
|
|||||||
int (*write_key)(struct st_heap_info *info, struct st_hp_keydef *keyinfo,
|
int (*write_key)(struct st_heap_info *info, struct st_hp_keydef *keyinfo,
|
||||||
const byte *record, byte *recpos);
|
const byte *record, byte *recpos);
|
||||||
int (*delete_key)(struct st_heap_info *info, struct st_hp_keydef *keyinfo,
|
int (*delete_key)(struct st_heap_info *info, struct st_hp_keydef *keyinfo,
|
||||||
const byte *record, byte *recpos, int flag);
|
const byte *record, byte *recpos, int flag);
|
||||||
uint (*get_key_length)(struct st_hp_keydef *keydef, const byte *key);
|
uint (*get_key_length)(struct st_hp_keydef *keydef, const byte *key);
|
||||||
} HP_KEYDEF;
|
} HP_KEYDEF;
|
||||||
|
|
||||||
@ -135,7 +135,7 @@ typedef struct st_heap_share
|
|||||||
HP_BLOCK block;
|
HP_BLOCK block;
|
||||||
HP_KEYDEF *keydef;
|
HP_KEYDEF *keydef;
|
||||||
ulong min_records,max_records; /* Params to open */
|
ulong min_records,max_records; /* Params to open */
|
||||||
ulong data_length,index_length;
|
ulong data_length,index_length,max_table_size;
|
||||||
uint records; /* records */
|
uint records; /* records */
|
||||||
uint blength; /* records rounded up to 2^n */
|
uint blength; /* records rounded up to 2^n */
|
||||||
uint deleted; /* Deleted records in database */
|
uint deleted; /* Deleted records in database */
|
||||||
@ -185,6 +185,7 @@ typedef struct st_heap_create_info
|
|||||||
{
|
{
|
||||||
uint auto_key;
|
uint auto_key;
|
||||||
uint auto_key_type;
|
uint auto_key_type;
|
||||||
|
ulong max_table_size;
|
||||||
ulonglong auto_increment;
|
ulonglong auto_increment;
|
||||||
} HP_CREATE_INFO;
|
} HP_CREATE_INFO;
|
||||||
|
|
||||||
|
@ -457,3 +457,8 @@ group_concat(distinct b order by b)
|
|||||||
Warnings:
|
Warnings:
|
||||||
Warning 1260 2 line(s) were cut by GROUP_CONCAT()
|
Warning 1260 2 line(s) were cut by GROUP_CONCAT()
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
CREATE TABLE t1 (id int);
|
||||||
|
SELECT GROUP_CONCAT(id) AS gc FROM t1 HAVING gc IS NULL;
|
||||||
|
gc
|
||||||
|
NULL
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -277,3 +277,10 @@ select group_concat(b order by b) from t1 group by a;
|
|||||||
select group_concat(distinct b order by b) from t1 group by a;
|
select group_concat(distinct b order by b) from t1 group by a;
|
||||||
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# bug #7769: group_concat returning null is checked in having
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (id int);
|
||||||
|
SELECT GROUP_CONCAT(id) AS gc FROM t1 HAVING gc IS NULL;
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -90,6 +90,7 @@ void ndbSetOwnVersion() {}
|
|||||||
|
|
||||||
#ifndef TEST_VERSION
|
#ifndef TEST_VERSION
|
||||||
struct NdbUpGradeCompatible ndbCompatibleTable_full[] = {
|
struct NdbUpGradeCompatible ndbCompatibleTable_full[] = {
|
||||||
|
{ MAKE_VERSION(4,1,10), MAKE_VERSION(4,1,9), UG_Exact },
|
||||||
{ MAKE_VERSION(4,1,9), MAKE_VERSION(4,1,8), UG_Exact },
|
{ MAKE_VERSION(4,1,9), MAKE_VERSION(4,1,8), UG_Exact },
|
||||||
{ MAKE_VERSION(3,5,2), MAKE_VERSION(3,5,1), UG_Exact },
|
{ MAKE_VERSION(3,5,2), MAKE_VERSION(3,5,1), UG_Exact },
|
||||||
{ 0, 0, UG_Null }
|
{ 0, 0, UG_Null }
|
||||||
|
@ -98,9 +98,9 @@ else
|
|||||||
if test -x "$basedir/libexec/mysqld"
|
if test -x "$basedir/libexec/mysqld"
|
||||||
then
|
then
|
||||||
execdir="$basedir/libexec"
|
execdir="$basedir/libexec"
|
||||||
elif test -x "@libexecdir@/mysqld"
|
elif test -x "$basedir/sbin/mysqld"
|
||||||
then
|
then
|
||||||
execdir="@libexecdir@"
|
execdir="$basedir/sbin"
|
||||||
else
|
else
|
||||||
execdir="$basedir/bin"
|
execdir="$basedir/bin"
|
||||||
fi
|
fi
|
||||||
|
@ -460,11 +460,23 @@ int ha_heap::create(const char *name, TABLE *table_arg,
|
|||||||
KEY_PART_INFO *key_part= pos->key_part;
|
KEY_PART_INFO *key_part= pos->key_part;
|
||||||
KEY_PART_INFO *key_part_end= key_part + pos->key_parts;
|
KEY_PART_INFO *key_part_end= key_part + pos->key_parts;
|
||||||
|
|
||||||
mem_per_row+= (pos->key_length + (sizeof(char*) * 2));
|
|
||||||
|
|
||||||
keydef[key].keysegs= (uint) pos->key_parts;
|
keydef[key].keysegs= (uint) pos->key_parts;
|
||||||
keydef[key].flag= (pos->flags & (HA_NOSAME | HA_NULL_ARE_EQUAL));
|
keydef[key].flag= (pos->flags & (HA_NOSAME | HA_NULL_ARE_EQUAL));
|
||||||
keydef[key].seg= seg;
|
keydef[key].seg= seg;
|
||||||
|
|
||||||
|
switch (pos->algorithm) {
|
||||||
|
case HA_KEY_ALG_UNDEF:
|
||||||
|
case HA_KEY_ALG_HASH:
|
||||||
|
keydef[key].algorithm= HA_KEY_ALG_HASH;
|
||||||
|
mem_per_row+= sizeof(char*) * 2; // = sizeof(HASH_INFO)
|
||||||
|
break;
|
||||||
|
case HA_KEY_ALG_BTREE:
|
||||||
|
keydef[key].algorithm= HA_KEY_ALG_BTREE;
|
||||||
|
mem_per_row+=sizeof(TREE_ELEMENT)+pos->key_length+sizeof(char*);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
DBUG_ASSERT(0); // cannot happen
|
||||||
|
}
|
||||||
keydef[key].algorithm= ((pos->algorithm == HA_KEY_ALG_UNDEF) ?
|
keydef[key].algorithm= ((pos->algorithm == HA_KEY_ALG_UNDEF) ?
|
||||||
HA_KEY_ALG_HASH : pos->algorithm);
|
HA_KEY_ALG_HASH : pos->algorithm);
|
||||||
|
|
||||||
@ -501,13 +513,13 @@ int ha_heap::create(const char *name, TABLE *table_arg,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
mem_per_row+= MY_ALIGN(table_arg->reclength + 1, sizeof(char*));
|
mem_per_row+= MY_ALIGN(table_arg->reclength + 1, sizeof(char*));
|
||||||
max_rows = (ha_rows) (current_thd->variables.max_heap_table_size /
|
|
||||||
mem_per_row);
|
|
||||||
HP_CREATE_INFO hp_create_info;
|
HP_CREATE_INFO hp_create_info;
|
||||||
hp_create_info.auto_key= auto_key;
|
hp_create_info.auto_key= auto_key;
|
||||||
hp_create_info.auto_key_type= auto_key_type;
|
hp_create_info.auto_key_type= auto_key_type;
|
||||||
hp_create_info.auto_increment= (create_info->auto_increment_value ?
|
hp_create_info.auto_increment= (create_info->auto_increment_value ?
|
||||||
create_info->auto_increment_value - 1 : 0);
|
create_info->auto_increment_value - 1 : 0);
|
||||||
|
hp_create_info.max_table_size=current_thd->variables.max_heap_table_size;
|
||||||
|
max_rows = (ha_rows) (hp_create_info.max_table_size / mem_per_row);
|
||||||
error= heap_create(fn_format(buff,name,"","",4+2),
|
error= heap_create(fn_format(buff,name,"","",4+2),
|
||||||
table_arg->keys,keydef, table_arg->reclength,
|
table_arg->keys,keydef, table_arg->reclength,
|
||||||
(ulong) ((table_arg->max_rows < max_rows &&
|
(ulong) ((table_arg->max_rows < max_rows &&
|
||||||
|
@ -739,9 +739,10 @@ class Item_func_group_concat : public Item_sum
|
|||||||
String *res;
|
String *res;
|
||||||
char *end_ptr;
|
char *end_ptr;
|
||||||
int error;
|
int error;
|
||||||
res= val_str(&str_value);
|
if (!(res= val_str(&str_value)))
|
||||||
|
return (longlong) 0;
|
||||||
end_ptr= (char*) res->ptr()+ res->length();
|
end_ptr= (char*) res->ptr()+ res->length();
|
||||||
return res ? my_strtoll10(res->ptr(), &end_ptr, &error) : (longlong) 0;
|
return my_strtoll10(res->ptr(), &end_ptr, &error);
|
||||||
}
|
}
|
||||||
String* val_str(String* str);
|
String* val_str(String* str);
|
||||||
Item *copy_or_same(THD* thd);
|
Item *copy_or_same(THD* thd);
|
||||||
|
@ -27,7 +27,7 @@ Packager: Lenz Grimmer <build@mysql.com>
|
|||||||
Vendor: MySQL AB
|
Vendor: MySQL AB
|
||||||
Requires: fileutils sh-utils
|
Requires: fileutils sh-utils
|
||||||
Provides: msqlormysql MySQL-server mysql
|
Provides: msqlormysql MySQL-server mysql
|
||||||
BuildPrereq: ncurses-devel
|
BuildRequires: ncurses-devel
|
||||||
Obsoletes: mysql
|
Obsoletes: mysql
|
||||||
|
|
||||||
# Think about what you use here since the first step is to
|
# Think about what you use here since the first step is to
|
||||||
@ -607,6 +607,10 @@ fi
|
|||||||
# itself - note that they must be ordered by date (important when
|
# itself - note that they must be ordered by date (important when
|
||||||
# merging BK trees)
|
# merging BK trees)
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jan 14 2005 Lenz Grimmer <lenz@mysql.com>
|
||||||
|
|
||||||
|
- replaced obsoleted "BuildPrereq" with "BuildRequires" instead
|
||||||
|
|
||||||
* Thu Dec 31 2004 Lenz Grimmer <lenz@mysql.com>
|
* Thu Dec 31 2004 Lenz Grimmer <lenz@mysql.com>
|
||||||
|
|
||||||
- enabled the "Archive" storage engine for the max binary
|
- enabled the "Archive" storage engine for the max binary
|
||||||
|
Loading…
x
Reference in New Issue
Block a user