federated: compilation errors and crash fixed. test still fails.

parent a8a5f359
...@@ -376,12 +376,12 @@ static byte* federated_get_key(FEDERATED_SHARE *share,uint *length, ...@@ -376,12 +376,12 @@ static byte* federated_get_key(FEDERATED_SHARE *share,uint *length,
parse_url() parse_url()
share pointer to FEDERATED share share pointer to FEDERATED share
table pointer to current TABLE class table pointer to current TABLE class
DESCRIPTION DESCRIPTION
populates the share with information about the connection populates the share with information about the connection
to the remote database that will serve as the data source. to the remote database that will serve as the data source.
This string must be specified (currently) in the "comment" field, This string must be specified (currently) in the "comment" field,
listed in the CREATE TABLE statement. listed in the CREATE TABLE statement.
This string MUST be in the format of any of these: This string MUST be in the format of any of these:
...@@ -401,10 +401,10 @@ static byte* federated_get_key(FEDERATED_SHARE *share,uint *length, ...@@ -401,10 +401,10 @@ static byte* federated_get_key(FEDERATED_SHARE *share,uint *length,
RETURN VALUE RETURN VALUE
0 success 0 success
-1 failure, wrong string format -1 failure, wrong string format
*/ */
int parse_url(FEDERATED_SHARE *share, TABLE *table, uint table_create_flag) static int parse_url(FEDERATED_SHARE *share, TABLE *table, uint table_create_flag)
{ {
DBUG_ENTER("ha_federated::parse_url"); DBUG_ENTER("ha_federated::parse_url");
...@@ -429,7 +429,7 @@ int parse_url(FEDERATED_SHARE *share, TABLE *table, uint table_create_flag) ...@@ -429,7 +429,7 @@ int parse_url(FEDERATED_SHARE *share, TABLE *table, uint table_create_flag)
} }
share->username+= 3; share->username+= 3;
if (share->hostname= strchr(share->username, '@')) if (share->hostname= strchr(share->username, '@'))
{ {
share->username[share->hostname - share->username]= '\0'; share->username[share->hostname - share->username]= '\0';
share->hostname++; share->hostname++;
...@@ -1522,7 +1522,7 @@ void ha_federated::position(const byte *record) ...@@ -1522,7 +1522,7 @@ void ha_federated::position(const byte *record)
{ {
DBUG_ENTER("ha_federated::position"); DBUG_ENTER("ha_federated::position");
//ha_store_ptr Add seek storage //ha_store_ptr Add seek storage
ha_store_ptr(ref, ref_length, current_position); *(MYSQL_ROW_OFFSET *)ref=current_position;
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
...@@ -1541,7 +1541,7 @@ int ha_federated::rnd_pos(byte * buf, byte *pos) ...@@ -1541,7 +1541,7 @@ int ha_federated::rnd_pos(byte * buf, byte *pos)
{ {
DBUG_ENTER("ha_federated::rnd_pos"); DBUG_ENTER("ha_federated::rnd_pos");
statistic_increment(table->in_use->status_var.ha_read_rnd_count,&LOCK_status); statistic_increment(table->in_use->status_var.ha_read_rnd_count,&LOCK_status);
current_position= ha_get_ptr(pos,ref_length); current_position= *(MYSQL_ROW_OFFSET *)pos;
result->current_row= 0; result->current_row= 0;
result->data_cursor= current_position; result->data_cursor= current_position;
DBUG_RETURN(rnd_next(buf)); DBUG_RETURN(rnd_next(buf));
...@@ -1706,10 +1706,10 @@ THR_LOCK_DATA **ha_federated::store_lock(THD *thd, ...@@ -1706,10 +1706,10 @@ THR_LOCK_DATA **ha_federated::store_lock(THD *thd,
int ha_federated::create(const char *name, TABLE *table_arg, int ha_federated::create(const char *name, TABLE *table_arg,
HA_CREATE_INFO *create_info) HA_CREATE_INFO *create_info)
{ {
DBUG_ENTER("ha_federated::create");
int retcode; int retcode;
FEDERATED_SHARE *tmp; FEDERATED_SHARE tmp;
retcode= parse_url(tmp, table_arg, 1); DBUG_ENTER("ha_federated::create");
retcode= parse_url(&tmp, table_arg, 1);
if (retcode < 0) if (retcode < 0)
{ {
DBUG_PRINT("ha_federated::create", DBUG_PRINT("ha_federated::create",
......
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