Commit da12c768 authored by unknown's avatar unknown

Give an error if you use a BLOB(X) where X > 255

Fixes for MIT pthreads


Docs/manual.texi:
  Update for MIT pthreads and sockets
configure.in:
  Fixed MIT pthreads to use sockets
myisam/mi_check.c:
  Portability fix
myisam/sort.c:
  Portability fix
sql/handler.h:
  Give an error if you use a BLOB(X) where X > 255
sql/mysqld.cc:
  Fixed MIT pthreads to use sockets
sql/sql_table.cc:
  Give an error if you use a BLOB(X) where X > 255
sql/table.cc:
  Fixed problem with BDB tables without keys
parent 94c93b9e
This diff is collapsed.
...@@ -1862,8 +1862,8 @@ AC_SUBST(server_scripts) ...@@ -1862,8 +1862,8 @@ AC_SUBST(server_scripts)
if test "$with_posix_threads" = "no" -o "$with_mit_threads" = "yes" if test "$with_posix_threads" = "no" -o "$with_mit_threads" = "yes"
then then
# MIT pthreads does not support connecting with unix sockets # MIT pthreads does now support connecting with unix sockets
AC_DEFINE(HAVE_THREADS_WITHOUT_SOCKETS) # AC_DEFINE(HAVE_THREADS_WITHOUT_SOCKETS)
fi fi
# Some usefull subst # Some usefull subst
......
...@@ -192,7 +192,7 @@ int chk_del(MI_CHECK *param, register MI_INFO *info, uint test_flag) ...@@ -192,7 +192,7 @@ int chk_del(MI_CHECK *param, register MI_INFO *info, uint test_flag)
} }
DBUG_RETURN(0); DBUG_RETURN(0);
wrong: wrong:
param->retry_without_quick=1; // Don't use quick repair param->retry_without_quick=1; /* Don't use quick repair */
if (test_flag & T_VERBOSE) puts(""); if (test_flag & T_VERBOSE) puts("");
mi_check_print_error(param,"record delete-link-chain corrupted"); mi_check_print_error(param,"record delete-link-chain corrupted");
DBUG_RETURN(1); DBUG_RETURN(1);
...@@ -292,7 +292,7 @@ int chk_size(MI_CHECK *param, register MI_INFO *info) ...@@ -292,7 +292,7 @@ int chk_size(MI_CHECK *param, register MI_INFO *info)
error=1; error=1;
mi_check_print_error(param,"Size of datafile is: %-8s Should be: %s", mi_check_print_error(param,"Size of datafile is: %-8s Should be: %s",
llstr(size,buff), llstr(skr,buff2)); llstr(size,buff), llstr(skr,buff2));
param->retry_without_quick=1; // Don't use quick repair param->retry_without_quick=1; /* Don't use quick repair */
} }
else else
{ {
......
...@@ -291,9 +291,9 @@ static int NEAR_F merge_many_buff(MI_SORT_PARAM *info, uint keys, ...@@ -291,9 +291,9 @@ static int NEAR_F merge_many_buff(MI_SORT_PARAM *info, uint keys,
temp=from_file; from_file=to_file; to_file=temp; temp=from_file; from_file=to_file; to_file=temp;
*maxbuffer= (int) (lastbuff-buffpek)-1; *maxbuffer= (int) (lastbuff-buffpek)-1;
} }
close_cached_file(to_file); // This holds old result close_cached_file(to_file); /* This holds old result */
if (to_file == t_file) if (to_file == t_file)
*t_file=t_file2; // Copy result file *t_file=t_file2; /* Copy result file */
DBUG_RETURN(*maxbuffer >= MERGEBUFF2); /* Return 1 if interrupted */ DBUG_RETURN(*maxbuffer >= MERGEBUFF2); /* Return 1 if interrupted */
} /* merge_many_buff */ } /* merge_many_buff */
......
...@@ -273,6 +273,7 @@ public: ...@@ -273,6 +273,7 @@ public:
virtual uint max_keys() const =0; virtual uint max_keys() const =0;
virtual uint max_key_parts() const =0; virtual uint max_key_parts() const =0;
virtual uint max_key_length()const =0; virtual uint max_key_length()const =0;
virtual uint max_key_part_length() { return 255; }
virtual uint min_record_length(uint options) const { return 1; } virtual uint min_record_length(uint options) const { return 1; }
virtual bool low_byte_first() const { return 1; } virtual bool low_byte_first() const { return 1; }
virtual bool is_crashed() const { return 0; } virtual bool is_crashed() const { return 0; }
......
...@@ -809,7 +809,7 @@ static void server_init(void) ...@@ -809,7 +809,7 @@ static void server_init(void)
} }
#endif #endif
#if defined(HAVE_SYS_UN_H) && !defined(HAVE_mit_thread) #if defined(HAVE_SYS_UN_H)
/* /*
** Create the UNIX socket ** Create the UNIX socket
*/ */
...@@ -2694,7 +2694,7 @@ The default values (after parsing the command line arguments) are:\n\n"); ...@@ -2694,7 +2694,7 @@ The default values (after parsing the command line arguments) are:\n\n");
if (opt_slow_logname) if (opt_slow_logname)
printf("update log: %s\n",opt_slow_logname); printf("update log: %s\n",opt_slow_logname);
printf("TCP port: %d\n",mysql_port); printf("TCP port: %d\n",mysql_port);
#if defined(HAVE_SYS_UN_H) && !defined(HAVE_mit_thread) #if defined(HAVE_SYS_UN_H)
printf("Unix socket: %s\n",mysql_unix_port); printf("Unix socket: %s\n",mysql_unix_port);
#endif #endif
if (my_disable_locking) if (my_disable_locking)
......
...@@ -416,7 +416,8 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name, ...@@ -416,7 +416,8 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name,
{ {
if (f_is_blob(sql_field->pack_flag)) if (f_is_blob(sql_field->pack_flag))
{ {
if ((length=column->length) > file->max_key_length()) if ((length=column->length) > file->max_key_length() ||
length > file->max_key_part_length())
{ {
my_error(ER_WRONG_SUB_KEY,MYF(0)); my_error(ER_WRONG_SUB_KEY,MYF(0));
DBUG_RETURN(-1); DBUG_RETURN(-1);
......
...@@ -491,6 +491,8 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, ...@@ -491,6 +491,8 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
else else
outparam->primary_key = MAX_KEY; // we do not have a primary key outparam->primary_key = MAX_KEY; // we do not have a primary key
} }
else
outparam->primary_key= MAX_KEY;
x_free((gptr) disk_buff); x_free((gptr) disk_buff);
disk_buff=0; disk_buff=0;
if (new_field_pack_flag <= 1) if (new_field_pack_flag <= 1)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment