summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <patg@radha.patg.net>2006-12-21 22:38:54 -0500
committerunknown <patg@radha.patg.net>2006-12-21 22:38:54 -0500
commit8f3e39bd4985cd6cde244c6a2eb27950ade33585 (patch)
treebd5232aefa6e8bcc963b48390635fbfb9dc441cf
parent4a08b64f56c55a6a2f371f20011b2297bf2f0b25 (diff)
downloadmariadb-git-8f3e39bd4985cd6cde244c6a2eb27950ade33585.tar.gz
WL #3031
* Various windows errors fixed * Increased max key length for federated include/my_time.h: WL #3031 Windows compile errors for some platforms. JBalint helped find this fix. sql/log_event.cc: WL #3031 Windows compile errors on some platforms. explicite casting. sql/sql_servers.cc: WL #3031 Add rwlock init to sql_servers to fix hang on windows. storage/federated/ha_federated.h: WL #3031 Increase max key length to innodb's max (Cisco fix)
-rw-r--r--include/my_time.h3
-rw-r--r--sql/log_event.cc12
-rw-r--r--sql/sql_servers.cc3
-rw-r--r--storage/federated/ha_federated.h3
4 files changed, 13 insertions, 8 deletions
diff --git a/include/my_time.h b/include/my_time.h
index 356595cae2c..c680c92ce46 100644
--- a/include/my_time.h
+++ b/include/my_time.h
@@ -37,7 +37,8 @@ extern uchar days_in_month[];
/* on Win64 long is still 4 bytes (not 8!) */
typedef LONG64 my_time_t;
#else
-typedef long my_time_t;
+typedef time_t my_time_t;
+
#endif
#define MY_TIME_T_MAX LONG_MAX
diff --git a/sql/log_event.cc b/sql/log_event.cc
index 4bdaadd3371..d4e9b3d9db2 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -5558,8 +5558,8 @@ unpack_row(RELAY_LOG_INFO *rli,
if (bitmap_is_set(cols, field_ptr - begin_ptr))
{
- DBUG_ASSERT(table->record[0] <= f->ptr);
- DBUG_ASSERT(f->ptr < (table->record[0] + table->s->reclength +
+ DBUG_ASSERT((const char *)table->record[0] <= f->ptr);
+ DBUG_ASSERT(f->ptr < ((const char *)table->record[0] + table->s->reclength +
(f->pack_length_in_rec() == 0)));
DBUG_PRINT("info", ("unpacking column '%s' to 0x%lx", f->field_name,
@@ -6843,8 +6843,8 @@ static int find_and_fetch_row(TABLE *table, byte *key)
trigger false warnings.
*/
#ifndef HAVE_purify
- DBUG_DUMP("table->record[0]", table->record[0], table->s->reclength);
- DBUG_DUMP("table->record[1]", table->record[1], table->s->reclength);
+ DBUG_DUMP("table->record[0]", (const char *)table->record[0], table->s->reclength);
+ DBUG_DUMP("table->record[1]", (const char *)table->record[1], table->s->reclength);
#endif
/*
@@ -6870,8 +6870,8 @@ static int find_and_fetch_row(TABLE *table, byte *key)
trigger false warnings.
*/
#ifndef HAVE_purify
- DBUG_DUMP("table->record[0]", table->record[0], table->s->reclength);
- DBUG_DUMP("table->record[1]", table->record[1], table->s->reclength);
+ DBUG_DUMP("table->record[0]", (const char *)table->record[0], table->s->reclength);
+ DBUG_DUMP("table->record[1]", (const char *)table->record[1], table->s->reclength);
#endif
/*
Below is a minor "optimization". If the key (i.e., key number
diff --git a/sql/sql_servers.cc b/sql/sql_servers.cc
index 397ea88b033..384135c069b 100644
--- a/sql/sql_servers.cc
+++ b/sql/sql_servers.cc
@@ -76,6 +76,9 @@ my_bool servers_init(bool dont_read_servers_table)
if (pthread_mutex_init(&servers_cache_mutex, MY_MUTEX_INIT_FAST))
DBUG_RETURN(1);
+ if (my_rwlock_init(&THR_LOCK_servers, NULL))
+ DBUG_RETURN(1);
+
/* initialise our servers cache */
if (hash_init(&servers_cache, system_charset_info, 32, 0, 0,
(hash_get_key) servers_cache_get_key, 0, 0))
diff --git a/storage/federated/ha_federated.h b/storage/federated/ha_federated.h
index 63399e71bcd..b4882c9f9fb 100644
--- a/storage/federated/ha_federated.h
+++ b/storage/federated/ha_federated.h
@@ -37,6 +37,7 @@
#define FEDERATED_QUERY_BUFFER_SIZE STRING_BUFFER_USUAL_SIZE * 5
#define FEDERATED_RECORDS_IN_RANGE 2
+#define FEDERATED_MAX_KEY_LENGTH 3500 // Same as innodb
/*
FEDERATED_SHARE is a structure that will be shared amoung all open handlers
@@ -146,7 +147,7 @@ public:
uint max_supported_record_length() const { return HA_MAX_REC_LENGTH; }
uint max_supported_keys() const { return MAX_KEY; }
uint max_supported_key_parts() const { return MAX_REF_PARTS; }
- uint max_supported_key_length() const { return MAX_KEY_LENGTH; }
+ uint max_supported_key_length() const { return FEDERATED_MAX_KEY_LENGTH; }
/*
Called in test_quick_select to determine if indexes should be used.
Normally, we need to know number of blocks . For federated we need to