Fix to use Monty's changes in frm format
Enable latin1 by default
This commit is contained in:
parent
79fb335f32
commit
cf5e0d3394
@ -2086,6 +2086,9 @@ do
|
||||
esac
|
||||
done
|
||||
|
||||
dnl Always compile latin1
|
||||
AC_DEFINE(HAVE_CHARSET_latin1)
|
||||
|
||||
if test "$use_mb" = "yes"
|
||||
then
|
||||
AC_DEFINE(USE_MB)
|
||||
|
@ -124,8 +124,12 @@ const char **ha_myisam::bas_ext() const
|
||||
|
||||
const char *ha_myisam::index_type(uint key_number)
|
||||
{
|
||||
return ((table->key_info[key_number].flags & HA_FULLTEXT) ?
|
||||
return ((table->key_info[key_number].flags & HA_FULLTEXT) ?
|
||||
"FULLTEXT" :
|
||||
(table->key_info[key_number].flags & HA_SPATIAL) ?
|
||||
"SPATIAL" :
|
||||
(table->key_info[key_number].algorithm == HA_KEY_ALG_RTREE) ?
|
||||
"RTREE" :
|
||||
"BTREE");
|
||||
}
|
||||
|
||||
@ -1006,7 +1010,7 @@ int ha_myisam::create(const char *name, register TABLE *table,
|
||||
for (i=0; i < table->keys ; i++, pos++)
|
||||
{
|
||||
keydef[i].flag= (pos->flags & (HA_NOSAME | HA_FULLTEXT | HA_SPATIAL));
|
||||
keydef[i].key_alg=pos->key_alg; // +BAR
|
||||
keydef[i].key_alg=pos->algorithm;
|
||||
keydef[i].seg=keyseg;
|
||||
keydef[i].keysegs=pos->key_parts;
|
||||
for (j=0 ; j < pos->key_parts ; j++)
|
||||
|
@ -890,7 +890,7 @@ store_create_info(THD *thd, TABLE *table, String *packet)
|
||||
append_identifier(thd,packet,key_info->name);
|
||||
|
||||
// +BAR: send USING only in non-default case: non-spatial rtree
|
||||
if((key_info->key_alg == HA_KEY_ALG_RTREE) && !(key_info->flags & HA_SPATIAL))
|
||||
if((key_info->algorithm == HA_KEY_ALG_RTREE) && !(key_info->flags & HA_SPATIAL))
|
||||
packet->append(" USING RTREE",12);
|
||||
|
||||
packet->append(" (", 2);
|
||||
|
@ -454,7 +454,7 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name,
|
||||
key_info->flags = HA_NOSAME;
|
||||
}
|
||||
|
||||
key_info->key_alg = key->algorithm;
|
||||
key_info->algorithm = key->algorithm;
|
||||
key_info->key_parts=(uint8) key->columns.elements;
|
||||
key_info->key_part=key_part_info;
|
||||
key_info->usable_key_parts= key_number;
|
||||
@ -476,7 +476,10 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name,
|
||||
in near future when new frm file is ready
|
||||
checking for proper key parts number:
|
||||
*/
|
||||
|
||||
|
||||
printf("key_info->flags=%d key_info->algorithm=%d\n",
|
||||
key_info->flags,key_info->algorithm);
|
||||
|
||||
if(key_info->flags == HA_SPATIAL){
|
||||
if(key_info->key_parts!=1){
|
||||
my_printf_error(ER_WRONG_ARGUMENTS,
|
||||
@ -485,7 +488,7 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name,
|
||||
}
|
||||
}else
|
||||
{
|
||||
if(key_info->key_alg == HA_KEY_ALG_RTREE){
|
||||
if(key_info->algorithm == HA_KEY_ALG_RTREE){
|
||||
if((key_info->key_parts&1)==1){
|
||||
my_printf_error(ER_WRONG_ARGUMENTS,
|
||||
ER(ER_WRONG_ARGUMENTS),MYF(0),"RTREE INDEX");
|
||||
@ -1584,7 +1587,7 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
|
||||
Key::PRIMARY : Key::UNIQUE) :
|
||||
(key_info->flags & HA_FULLTEXT ?
|
||||
Key::FULLTEXT : Key::MULTIPLE)),
|
||||
key_info->key_alg,
|
||||
key_info->algorithm,
|
||||
key_name,key_parts));
|
||||
}
|
||||
key_it.rewind();
|
||||
|
@ -64,7 +64,6 @@ typedef struct st_key_part_info { /* Info about a key part */
|
||||
typedef struct st_key {
|
||||
uint key_length; /* Tot length of key */
|
||||
uint flags; /* dupp key and pack flags */
|
||||
enum ha_key_alg key_alg; /* +BAR Algorithm BTREE or RTREE */
|
||||
uint key_parts; /* How many key_parts */
|
||||
uint extra_length;
|
||||
uint usable_key_parts; /* Should normally be = key_parts */
|
||||
|
13
sql/table.cc
13
sql/table.cc
@ -201,6 +201,13 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
|
||||
for (i=0 ; i < keys ; i++, keyinfo++)
|
||||
keyinfo->algorithm= (enum ha_key_alg) *(strpos++);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Set key types to BTREE, BAR TODO: how to be with HASH/RBTREE? */
|
||||
keyinfo=outparam->key_info;
|
||||
for (i=0 ; i < keys ; i++, keyinfo++)
|
||||
keyinfo->algorithm= HA_KEY_ALG_BTREE;
|
||||
}
|
||||
outparam->reclength = uint2korr((head+16));
|
||||
if (*(head+26) == 1)
|
||||
outparam->system=1; /* one-record-database */
|
||||
@ -408,10 +415,12 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
|
||||
}
|
||||
}
|
||||
|
||||
if (keyinfo->name[0]=='S')
|
||||
keyinfo->flags |= HA_SPATIAL;
|
||||
|
||||
#ifdef BAR_DIRTY_HACK
|
||||
keyinfo->key_alg=HA_KEY_ALG_BTREE; // BAR : btree by default
|
||||
|
||||
#define BAR_DIRTY_HACK
|
||||
#ifdef BAR_DIRTY_HACK
|
||||
// BAR FIXME: Dirty hack while waiting for new .frm format
|
||||
switch(keyinfo->name[0]){
|
||||
case 'R':
|
||||
|
Loading…
x
Reference in New Issue
Block a user