Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
e2d86440
Commit
e2d86440
authored
Jul 19, 2005
by
patg@radha.local
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Eric's implentation of OPTIMIZE TABLE and REPAIR TABLE,
as well as changes to the test.
parent
1394b439
Changes
4
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
129 additions
and
443 deletions
+129
-443
mysql-test/r/federated.result
mysql-test/r/federated.result
+15
-304
mysql-test/t/federated.test
mysql-test/t/federated.test
+7
-134
sql/ha_federated.cc
sql/ha_federated.cc
+57
-1
sql/ha_federated.h
sql/ha_federated.h
+50
-4
No files found.
mysql-test/r/federated.result
View file @
e2d86440
This diff is collapsed.
Click to expand it.
mysql-test/t/federated.test
View file @
e2d86440
This diff is collapsed.
Click to expand it.
sql/ha_federated.cc
View file @
e2d86440
...
@@ -495,7 +495,7 @@ static int check_foreign_data_source(
...
@@ -495,7 +495,7 @@ static int check_foreign_data_source(
query
.
append
(
escaped_table_name
);
query
.
append
(
escaped_table_name
);
query
.
append
(
FEDERATED_BTICK
);
query
.
append
(
FEDERATED_BTICK
);
query
.
append
(
FEDERATED_WHERE
);
query
.
append
(
FEDERATED_WHERE
);
query
.
append
(
FEDERATED_
1EQ0
);
query
.
append
(
FEDERATED_
FALSE
);
DBUG_PRINT
(
"info"
,
(
"check_foreign_data_source query %s"
,
query
.
c_ptr_quick
()));
DBUG_PRINT
(
"info"
,
(
"check_foreign_data_source query %s"
,
query
.
c_ptr_quick
()));
if
(
mysql_real_query
(
mysql
,
query
.
ptr
(),
query
.
length
()))
if
(
mysql_real_query
(
mysql
,
query
.
ptr
(),
query
.
length
()))
...
@@ -1661,6 +1661,62 @@ int ha_federated::write_row(byte *buf)
...
@@ -1661,6 +1661,62 @@ int ha_federated::write_row(byte *buf)
}
}
int
ha_federated
::
optimize
(
THD
*
thd
,
HA_CHECK_OPT
*
check_opt
)
{
char
query_buffer
[
STRING_BUFFER_USUAL_SIZE
];
String
query
(
query_buffer
,
sizeof
(
query_buffer
),
&
my_charset_bin
);
DBUG_ENTER
(
"ha_federated::optimize"
);
query
.
length
(
0
);
query
.
set_charset
(
system_charset_info
);
query
.
append
(
FEDERATED_OPTIMIZE
);
query
.
append
(
FEDERATED_BTICK
);
query
.
append
(
share
->
table_name
,
share
->
table_name_length
);
query
.
append
(
FEDERATED_BTICK
);
if
(
mysql_real_query
(
mysql
,
query
.
ptr
(),
query
.
length
()))
{
my_error
(
-
1
,
MYF
(
0
),
mysql_error
(
mysql
));
DBUG_RETURN
(
-
1
);
}
DBUG_RETURN
(
0
);
}
int
ha_federated
::
repair
(
THD
*
thd
,
HA_CHECK_OPT
*
check_opt
)
{
char
query_buffer
[
STRING_BUFFER_USUAL_SIZE
];
String
query
(
query_buffer
,
sizeof
(
query_buffer
),
&
my_charset_bin
);
DBUG_ENTER
(
"ha_federated::repair"
);
query
.
length
(
0
);
query
.
set_charset
(
system_charset_info
);
query
.
append
(
FEDERATED_REPAIR
);
query
.
append
(
FEDERATED_BTICK
);
query
.
append
(
share
->
table_name
,
share
->
table_name_length
);
query
.
append
(
FEDERATED_BTICK
);
if
(
check_opt
->
flags
&
T_QUICK
)
query
.
append
(
FEDERATED_QUICK
);
if
(
check_opt
->
flags
&
T_EXTEND
)
query
.
append
(
FEDERATED_EXTENDED
);
if
(
check_opt
->
sql_flags
&
TT_USEFRM
)
query
.
append
(
FEDERATED_USE_FRM
);
if
(
mysql_real_query
(
mysql
,
query
.
ptr
(),
query
.
length
()))
{
my_error
(
-
1
,
MYF
(
0
),
mysql_error
(
mysql
));
DBUG_RETURN
(
-
1
);
}
DBUG_RETURN
(
0
);
}
/*
/*
Yes, update_row() does what you expect, it updates a row. old_data will have
Yes, update_row() does what you expect, it updates a row. old_data will have
the previous row record in it, while new_data will have the newest data in
the previous row record in it, while new_data will have the newest data in
...
...
sql/ha_federated.h
View file @
e2d86440
...
@@ -31,40 +31,83 @@
...
@@ -31,40 +31,83 @@
#define FEDERATED_RECORDS_IN_RANGE 2
#define FEDERATED_RECORDS_IN_RANGE 2
#define FEDERATED_INFO " SHOW TABLE STATUS LIKE "
#define FEDERATED_INFO " SHOW TABLE STATUS LIKE "
#define FEDERATED_INFO_LEN sizeof(FEDERATED_INFO)
#define FEDERATED_SELECT "SELECT "
#define FEDERATED_SELECT "SELECT "
#define FEDERATED_SELECT_LEN sizeof(FEDERATED_SELECT)
#define FEDERATED_WHERE " WHERE "
#define FEDERATED_WHERE " WHERE "
#define FEDERATED_WHERE_LEN sizeof(FEDERATED_WHERE)
#define FEDERATED_FROM " FROM "
#define FEDERATED_FROM " FROM "
#define FEDERATED_FROM_LEN sizeof(FEDERATED_FROM)
#define FEDERATED_PERCENT "%"
#define FEDERATED_PERCENT "%"
#define FEDERATED_PERCENT_LEN sizeof(FEDERATED_PERCENT)
#define FEDERATED_IS " IS "
#define FEDERATED_IS " IS "
#define FEDERATED_IS_LEN sizeof(FEDERATED_IS)
#define FEDERATED_NULL " NULL "
#define FEDERATED_NULL " NULL "
#define FEDERATED_NULL_LEN sizeof(FEDERATED_NULL)
#define FEDERATED_ISNULL " IS NULL "
#define FEDERATED_ISNULL " IS NULL "
#define FEDERATED_ISNULL_LEN sizeof(FEDERATED_ISNULL)
#define FEDERATED_LIKE " LIKE "
#define FEDERATED_LIKE " LIKE "
#define FEDERATED_LIKE_LEN sizeof(FEDERATED_LIKE)
#define FEDERATED_TRUNCATE "TRUNCATE "
#define FEDERATED_TRUNCATE "TRUNCATE "
#define FEDERATED_TRUNCATE_LEN sizeof(FEDERATED_TRUNCATE)
#define FEDERATED_DELETE "DELETE "
#define FEDERATED_DELETE "DELETE "
#define FEDERATED_DELETE_LEN sizeof(FEDERATED_DELETE)
#define FEDERATED_INSERT "INSERT INTO "
#define FEDERATED_INSERT "INSERT INTO "
#define FEDERATED_INSERT_LEN sizeof(FEDERATED_INSERT)
#define FEDERATED_OPTIMIZE "OPTIMIZE TABLE "
#define FEDERATED_OPTIMIZE_LEN sizeof(FEDERATED_OPTIMIZE)
#define FEDERATED_REPAIR "REPAIR TABLE "
#define FEDERATED_REPAIR_LEN sizeof(FEDERATED_REPAIR)
#define FEDERATED_QUICK " QUICK"
#define FEDERATED_QUICK_LEN sizeof(FEDERATED_QUICK)
#define FEDERATED_EXTENDED " EXTENDED"
#define FEDERATED_EXTENDED_LEN sizeof(FEDERATED_EXTENDED)
#define FEDERATED_USE_FRM " USE_FRM"
#define FEDERATED_USE_FRM_LEN sizeof(FEDERATED_USE_FRM)
#define FEDERATED_LIMIT1 " LIMIT 1"
#define FEDERATED_LIMIT1 " LIMIT 1"
#define FEDERATED_LIMIT1_LEN sizeof(FEDERATED_LIMIT1)
#define FEDERATED_VALUES "VALUES "
#define FEDERATED_VALUES "VALUES "
#define FEDERATED_VALUES_LEN sizeof(FEDERATED_VALUES)
#define FEDERATED_UPDATE "UPDATE "
#define FEDERATED_UPDATE "UPDATE "
#define FEDERATED_UPDATE_LEN sizeof(FEDERATED_UPDATE)
#define FEDERATED_SET "SET "
#define FEDERATED_SET "SET "
#define FEDERATED_SET_LEN sizeof(FEDERATED_SET)
#define FEDERATED_AND " AND "
#define FEDERATED_AND " AND "
#define FEDERATED_AND_LEN sizeof(FEDERATED_AND)
#define FEDERATED_CONJUNCTION ") AND ("
#define FEDERATED_CONJUNCTION ") AND ("
#define FEDERATED_CONJUNCTION_LEN sizeof(FEDERATED_CONJUNCTION)
#define FEDERATED_OR " OR "
#define FEDERATED_OR " OR "
#define FEDERATED_OR_LEN sizeof(FEDERATED_OR)
#define FEDERATED_NOT " NOT "
#define FEDERATED_NOT " NOT "
#define FEDERATED_NOT_LEN sizeof(FEDERATED_NOT)
#define FEDERATED_STAR "* "
#define FEDERATED_STAR "* "
#define FEDERATED_STAR_LEN sizeof(FEDERATED_STAR)
#define FEDERATED_SPACE " "
#define FEDERATED_SPACE " "
#define FEDERATED_SPACE_LEN sizeof(FEDERATED_SPACE)
#define FEDERATED_SQUOTE "'"
#define FEDERATED_SQUOTE "'"
#define FEDERATED_SQUOTE_LEN sizeof(FEDERATED_SQUOTE)
#define FEDERATED_COMMA ", "
#define FEDERATED_COMMA ", "
#define FEDERATED_
DQOUTE '"'
#define FEDERATED_
COMMA_LEN sizeof(FEDERATED_COMMA)
#define FEDERATED_BTICK "`"
#define FEDERATED_BTICK "`"
#define FEDERATED_BTICK_LEN sizeof(FEDERATED_BTICK)
#define FEDERATED_OPENPAREN " ("
#define FEDERATED_OPENPAREN " ("
#define FEDERATED_OPENPAREN_LEN sizeof(FEDERATED_OPENPAREN)
#define FEDERATED_CLOSEPAREN ") "
#define FEDERATED_CLOSEPAREN ") "
#define FEDERATED_CLOSEPAREN_LEN sizeof(FEDERATED_CLOSEPAREN)
#define FEDERATED_NE " != "
#define FEDERATED_NE " != "
#define FEDERATED_NE_LEN sizeof(FEDERATED_NE)
#define FEDERATED_GT " > "
#define FEDERATED_GT " > "
#define FEDERATED_GT_LEN sizeof(FEDERATED_GT)
#define FEDERATED_LT " < "
#define FEDERATED_LT " < "
#define FEDERATED_LT_LEN sizeof(FEDERATED_LT)
#define FEDERATED_LE " <= "
#define FEDERATED_LE " <= "
#define FEDERATED_LE_LEN sizeof(FEDERATED_LE)
#define FEDERATED_GE " >= "
#define FEDERATED_GE " >= "
#define FEDERATED_GE_LEN sizeof(FEDERATED_GE)
#define FEDERATED_EQ " = "
#define FEDERATED_EQ " = "
#define FEDERATED_1EQ0 " 1=0"
#define FEDERATED_EQ_LEN sizeof(FEDERATED_EQ)
#define FEDERATED_FALSE " 1=0"
#define FEDERATED_FALSE_LEN sizeof(FEDERATED_FALSE)
/*
/*
FEDERATED_SHARE is a structure that will be shared amoung all open handlers
FEDERATED_SHARE is a structure that will be shared amoung all open handlers
...
@@ -88,7 +131,7 @@ typedef struct st_federated_share {
...
@@ -88,7 +131,7 @@ typedef struct st_federated_share {
char
*
socket
;
char
*
socket
;
char
*
sport
;
char
*
sport
;
ushort
port
;
ushort
port
;
uint
table_name_length
,
use_count
;
uint
table_name_length
,
use_count
;
pthread_mutex_t
mutex
;
pthread_mutex_t
mutex
;
THR_LOCK
lock
;
THR_LOCK
lock
;
}
FEDERATED_SHARE
;
}
FEDERATED_SHARE
;
...
@@ -235,6 +278,9 @@ public:
...
@@ -235,6 +278,9 @@ public:
void
position
(
const
byte
*
record
);
//required
void
position
(
const
byte
*
record
);
//required
void
info
(
uint
);
//required
void
info
(
uint
);
//required
int
repair
(
THD
*
thd
,
HA_CHECK_OPT
*
check_opt
);
int
optimize
(
THD
*
thd
,
HA_CHECK_OPT
*
check_opt
);
int
delete_all_rows
(
void
);
int
delete_all_rows
(
void
);
int
create
(
const
char
*
name
,
TABLE
*
form
,
int
create
(
const
char
*
name
,
TABLE
*
form
,
HA_CREATE_INFO
*
create_info
);
//required
HA_CREATE_INFO
*
create_info
);
//required
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment