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
036656ef
Commit
036656ef
authored
Aug 20, 2004
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-4.1
into deer.(none):/home/hf/work/mysql-4.1.emb
parents
e63e52c7
85d5e461
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
47 additions
and
17 deletions
+47
-17
include/mysql.h
include/mysql.h
+1
-0
include/sql_common.h
include/sql_common.h
+0
-1
libmysql/libmysql.c
libmysql/libmysql.c
+2
-2
libmysqld/lib_sql.cc
libmysqld/lib_sql.cc
+34
-11
sql-common/client.c
sql-common/client.c
+4
-3
sql/mysqld.cc
sql/mysqld.cc
+2
-0
sql/set_var.cc
sql/set_var.cc
+2
-0
sql/sql_prepare.cc
sql/sql_prepare.cc
+2
-0
No files found.
include/mysql.h
View file @
036656ef
...
...
@@ -627,6 +627,7 @@ typedef struct st_mysql_methods
MYSQL_RES
*
(
*
use_result
)(
MYSQL
*
mysql
);
void
(
*
fetch_lengths
)(
unsigned
long
*
to
,
MYSQL_ROW
column
,
unsigned
int
field_count
);
void
(
*
flush_use_result
)(
MYSQL
*
mysql
);
#if !defined(MYSQL_SERVER) || defined(EMBEDDED_LIBRARY)
MYSQL_FIELD
*
(
*
list_fields
)(
MYSQL
*
mysql
);
my_bool
(
*
read_prepare_result
)(
MYSQL
*
mysql
,
MYSQL_STMT
*
stmt
);
...
...
include/sql_common.h
View file @
036656ef
...
...
@@ -25,7 +25,6 @@ extern "C" {
MYSQL_FIELD
*
unpack_fields
(
MYSQL_DATA
*
data
,
MEM_ROOT
*
alloc
,
uint
fields
,
my_bool
default_value
,
uint
server_capabilities
);
void
free_rows
(
MYSQL_DATA
*
cur
);
void
flush_use_result
(
MYSQL
*
mysql
);
my_bool
mysql_autenticate
(
MYSQL
*
mysql
,
const
char
*
passwd
);
void
free_old_query
(
MYSQL
*
mysql
);
void
end_server
(
MYSQL
*
mysql
);
...
...
libmysql/libmysql.c
View file @
036656ef
...
...
@@ -4392,7 +4392,7 @@ my_bool STDCALL mysql_stmt_free_result(MYSQL_STMT *stmt)
if
(
mysql
->
status
!=
MYSQL_STATUS_READY
)
{
/* There is a result set and it belongs to this statement */
flush_use_result
(
mysql
);
(
*
mysql
->
methods
->
flush_use_result
)
(
mysql
);
mysql
->
status
=
MYSQL_STATUS_READY
;
}
}
...
...
@@ -4442,7 +4442,7 @@ my_bool STDCALL mysql_stmt_close(MYSQL_STMT *stmt)
Flush result set of the connection. If it does not belong
to this statement, set a warning.
*/
flush_use_result
(
mysql
);
(
*
mysql
->
methods
->
flush_use_result
)
(
mysql
);
if
(
mysql
->
unbuffered_fetch_owner
)
*
mysql
->
unbuffered_fetch_owner
=
TRUE
;
mysql
->
status
=
MYSQL_STATUS_READY
;
...
...
libmysqld/lib_sql.cc
View file @
036656ef
...
...
@@ -84,6 +84,7 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command,
thd
->
clear_error
();
mysql
->
affected_rows
=
~
(
my_ulonglong
)
0
;
mysql
->
field_count
=
0
;
net
->
last_errno
=
0
;
thd
->
store_globals
();
// Fix if more than one connect
/*
...
...
@@ -107,17 +108,38 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command,
if
(
!
skip_check
)
result
=
thd
->
net
.
last_errno
?
-
1
:
0
;
embedded_get_error
(
mysql
);
/*
If mysql->field_count is set it means the parsing of the query was OK
and metadata was returned (see Protocol::send_fields).
In this case we postpone the error to be returned in mysql_stmt_store_result
(see emb_read_rows) to behave just as standalone server.
*/
if
(
!
mysql
->
field_count
)
embedded_get_error
(
mysql
);
mysql
->
server_status
=
thd
->
server_status
;
mysql
->
warning_count
=
((
THD
*
)
mysql
->
thd
)
->
total_warn_count
;
return
result
;
}
static
void
emb_flush_use_result
(
MYSQL
*
mysql
)
{
MYSQL_DATA
*
data
=
((
THD
*
)(
mysql
->
thd
))
->
data
;
if
(
data
)
{
free_rows
(
data
);
((
THD
*
)(
mysql
->
thd
))
->
data
=
NULL
;
}
}
static
MYSQL_DATA
*
emb_read_rows
(
MYSQL
*
mysql
,
MYSQL_FIELD
*
mysql_fields
__attribute__
((
unused
)),
unsigned
int
fields
__attribute__
((
unused
)))
{
MYSQL_DATA
*
result
=
((
THD
*
)
mysql
->
thd
)
->
data
;
embedded_get_error
(
mysql
);
if
(
mysql
->
net
.
last_errno
)
return
NULL
;
if
(
!
result
)
{
if
(
!
(
result
=
(
MYSQL_DATA
*
)
my_malloc
(
sizeof
(
MYSQL_DATA
),
...
...
@@ -227,6 +249,9 @@ int emb_read_binary_rows(MYSQL_STMT *stmt)
int
emb_unbuffered_fetch
(
MYSQL
*
mysql
,
char
**
row
)
{
MYSQL_DATA
*
data
=
((
THD
*
)
mysql
->
thd
)
->
data
;
embedded_get_error
(
mysql
);
if
(
mysql
->
net
.
last_errno
)
return
mysql
->
net
.
last_errno
;
if
(
!
data
||
!
data
->
data
)
{
*
row
=
NULL
;
...
...
@@ -293,6 +318,7 @@ MYSQL_METHODS embedded_methods=
emb_read_rows
,
emb_mysql_store_result
,
emb_fetch_lengths
,
emb_flush_use_result
,
emb_list_fields
,
emb_read_prepare_result
,
emb_stmt_execute
,
...
...
@@ -442,14 +468,6 @@ int init_embedded_server(int argc, char **argv, char **groups)
}
}
/*
Update mysqld variables from client variables if set
The client variables are set also by get_one_option() in mysqld.cc
*/
if
(
max_allowed_packet
)
global_system_variables
.
max_allowed_packet
=
max_allowed_packet
;
if
(
net_buffer_length
)
global_system_variables
.
net_buffer_length
=
net_buffer_length
;
return
0
;
}
...
...
@@ -478,18 +496,20 @@ void *create_embedded_thd(int client_flag, char *db)
if
(
thd
->
store_globals
())
{
fprintf
(
stderr
,
"store_globals failed.
\n
"
);
return
NULL
;
goto
err
;
}
thd
->
mysys_var
=
my_thread_var
;
thd
->
dbug_thread_id
=
my_thread_id
();
thd
->
thread_stack
=
(
char
*
)
&
thd
;
/* TODO - add init_connect command execution */
thd
->
proc_info
=
0
;
// Remove 'login'
thd
->
command
=
COM_SLEEP
;
thd
->
version
=
refresh_version
;
thd
->
set_time
();
init_sql_alloc
(
&
thd
->
mem_root
,
8192
,
8192
);
thd
->
init_for_queries
(
);
thd
->
client_capabilities
=
client_flag
;
thd
->
db
=
db
;
...
...
@@ -504,6 +524,9 @@ void *create_embedded_thd(int client_flag, char *db)
thread_count
++
;
return
thd
;
err:
delete
(
thd
);
return
NULL
;
}
#ifdef NO_EMBEDDED_ACCESS_CHECKS
...
...
sql-common/client.c
View file @
036656ef
...
...
@@ -723,7 +723,7 @@ void set_mysql_error(MYSQL *mysql, int errcode, const char *sqlstate)
Flush result set sent from server
*/
void
flush_use_result
(
MYSQL
*
mysql
)
static
void
cli_
flush_use_result
(
MYSQL
*
mysql
)
{
/* Clear the current execution status */
DBUG_PRINT
(
"warning"
,(
"Not all packets read, clearing them"
));
...
...
@@ -842,7 +842,7 @@ mysql_free_result(MYSQL_RES *result)
mysql
->
unbuffered_fetch_owner
=
0
;
if
(
mysql
->
status
==
MYSQL_STATUS_USE_RESULT
)
{
flush_use_result
(
mysql
);
(
*
mysql
->
methods
->
flush_use_result
)
(
mysql
);
mysql
->
status
=
MYSQL_STATUS_READY
;
}
}
...
...
@@ -1493,7 +1493,8 @@ static MYSQL_METHODS client_methods=
cli_advanced_command
,
cli_read_rows
,
cli_use_result
,
cli_fetch_lengths
cli_fetch_lengths
,
cli_flush_use_result
#ifndef MYSQL_SERVER
,
cli_list_fields
,
cli_read_prepare_result
,
...
...
sql/mysqld.cc
View file @
036656ef
...
...
@@ -5619,9 +5619,11 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
#ifdef EMBEDDED_LIBRARY
case
OPT_MAX_ALLOWED_PACKET
:
max_allowed_packet
=
atoi
(
argument
);
global_system_variables
.
max_allowed_packet
=
max_allowed_packet
;
break
;
case
OPT_NET_BUFFER_LENGTH
:
net_buffer_length
=
atoi
(
argument
);
global_system_variables
.
net_buffer_length
=
net_buffer_length
;
break
;
#endif
#include <sslopt-case.h>
...
...
sql/set_var.cc
View file @
036656ef
...
...
@@ -1138,8 +1138,10 @@ static int check_max_delayed_threads(THD *thd, set_var *var)
static
void
fix_max_connections
(
THD
*
thd
,
enum_var_type
type
)
{
#ifndef EMBEDDED_LIBRARY
resize_thr_alarm
(
max_connections
+
global_system_variables
.
max_insert_delayed_threads
+
10
);
#endif
}
...
...
sql/sql_prepare.cc
View file @
036656ef
...
...
@@ -696,6 +696,7 @@ static bool emb_insert_params(Prepared_statement *stmt, String *expanded_query)
else
{
uchar
*
buff
=
(
uchar
*
)
client_param
->
buffer
;
param
->
unsigned_flag
=
client_param
->
is_unsigned
;
param
->
set_param_func
(
param
,
&
buff
,
client_param
->
length
?
*
client_param
->
length
:
...
...
@@ -736,6 +737,7 @@ static bool emb_insert_params_withlog(Prepared_statement *stmt, String *query)
else
{
uchar
*
buff
=
(
uchar
*
)
client_param
->
buffer
;
param
->
unsigned_flag
=
client_param
->
is_unsigned
;
param
->
set_param_func
(
param
,
&
buff
,
client_param
->
length
?
*
client_param
->
length
:
...
...
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