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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
e3a3d00c
Commit
e3a3d00c
authored
Aug 21, 2003
by
serg@serg.mylan
Browse files
Options
Browse Files
Download
Plain Diff
merged
parents
aee17912
7f1ffcc4
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
43 additions
and
37 deletions
+43
-37
extra/resolveip.c
extra/resolveip.c
+1
-1
sql/item.cc
sql/item.cc
+5
-0
sql/item.h
sql/item.h
+1
-0
sql/sql_show.cc
sql/sql_show.cc
+36
-36
No files found.
extra/resolveip.c
View file @
e3a3d00c
...
...
@@ -109,7 +109,7 @@ static int get_options(int *argc,char ***argv)
int
main
(
int
argc
,
char
**
argv
)
{
struct
hostent
*
hpaddr
;
u_long
taddr
;
in_addr_t
taddr
;
char
*
ip
,
**
q
;
int
error
=
0
;
...
...
sql/item.cc
View file @
e3a3d00c
...
...
@@ -389,6 +389,11 @@ void Item_string::make_field(Send_field *tmp_field)
init_make_field
(
tmp_field
,
FIELD_TYPE_STRING
);
}
void
Item_empty_string
::
make_field
(
Send_field
*
tmp_field
)
{
init_make_field
(
tmp_field
,
FIELD_TYPE_VAR_STRING
);
}
void
Item_datetime
::
make_field
(
Send_field
*
tmp_field
)
{
init_make_field
(
tmp_field
,
FIELD_TYPE_DATETIME
);
...
...
sql/item.h
View file @
e3a3d00c
...
...
@@ -356,6 +356,7 @@ class Item_empty_string :public Item_string
public:
Item_empty_string
(
const
char
*
header
,
uint
length
)
:
Item_string
(
""
,
0
)
{
name
=
(
char
*
)
header
;
max_length
=
length
;}
void
make_field
(
Send_field
*
field
);
unsigned
int
size_of
()
{
return
sizeof
(
*
this
);}
};
...
...
sql/sql_show.cc
View file @
e3a3d00c
...
...
@@ -566,49 +566,49 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list)
DBUG_RETURN
(
1
);
}
char
buff
[
1024
];
String
packet
(
buff
,
sizeof
(
buff
));
packet
.
length
(
0
);
net_store_data
(
&
packet
,
convert
,
table
->
table_name
);
/*
A hack - we need to reserve some space for the length before
we know what it is - let's assume that the length of create table
statement will fit into 3 bytes ( 16 MB max :-) )
*/
ulong
store_len_offset
=
packet
.
length
();
packet
.
length
(
store_len_offset
+
4
);
if
(
store_create_info
(
thd
,
table
,
&
packet
))
DBUG_RETURN
(
-
1
);
ulong
create_len
=
packet
.
length
()
-
store_len_offset
-
4
;
if
(
create_len
>
0x00ffffff
)
// better readable in HEX ...
{
/*
Just in case somebody manages to create a table
with *that* much stuff in the definition
*/
DBUG_RETURN
(
1
);
}
/*
Now we have to store the length in three bytes, even if it would fit
into fewer bytes, so we cannot use net_store_data() anymore,
and do it ourselves
*/
char
*
p
=
(
char
*
)
packet
.
ptr
()
+
store_len_offset
;
*
p
++
=
(
char
)
253
;
// The client the length is stored using 3-bytes
int3store
(
p
,
create_len
);
List
<
Item
>
field_list
;
field_list
.
push_back
(
new
Item_empty_string
(
"Table"
,
NAME_LEN
));
field_list
.
push_back
(
new
Item_empty_string
(
"Create Table"
,
1024
));
field_list
.
push_back
(
new
Item_empty_string
(
"Create Table"
,
max
(
packet
.
length
(),
1024
)));
// 1024 is for not to confuse old clients
if
(
send_fields
(
thd
,
field_list
,
1
))
DBUG_RETURN
(
1
);
String
*
packet
=
&
thd
->
packet
;
{
packet
->
length
(
0
);
net_store_data
(
packet
,
convert
,
table
->
table_name
);
/*
A hack - we need to reserve some space for the length before
we know what it is - let's assume that the length of create table
statement will fit into 3 bytes ( 16 MB max :-) )
*/
ulong
store_len_offset
=
packet
->
length
();
packet
->
length
(
store_len_offset
+
4
);
if
(
store_create_info
(
thd
,
table
,
packet
))
DBUG_RETURN
(
-
1
);
ulong
create_len
=
packet
->
length
()
-
store_len_offset
-
4
;
if
(
create_len
>
0x00ffffff
)
// better readable in HEX ...
{
/*
Just in case somebody manages to create a table
with *that* much stuff in the definition
*/
DBUG_RETURN
(
1
);
}
/*
Now we have to store the length in three bytes, even if it would fit
into fewer bytes, so we cannot use net_store_data() anymore,
and do it ourselves
*/
char
*
p
=
(
char
*
)
packet
->
ptr
()
+
store_len_offset
;
*
p
++
=
(
char
)
253
;
// The client the length is stored using 3-bytes
int3store
(
p
,
create_len
);
if
(
my_net_write
(
&
thd
->
net
,
(
char
*
)
packet
.
ptr
(),
packet
.
length
()))
DBUG_RETURN
(
1
);
// now we are in business :-)
if
(
my_net_write
(
&
thd
->
net
,
(
char
*
)
packet
->
ptr
(),
packet
->
length
()))
DBUG_RETURN
(
1
);
}
send_eof
(
&
thd
->
net
);
DBUG_RETURN
(
0
);
}
...
...
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