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
91457448
Commit
91457448
authored
Dec 15, 2004
by
konstantin@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
A fix of return value of mysql_stmt_bind_result() and cleanup.
parent
a2a3d82e
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
18 additions
and
15 deletions
+18
-15
include/errmsg.h
include/errmsg.h
+1
-0
libmysql/errmsg.c
libmysql/errmsg.c
+9
-3
libmysql/libmysql.c
libmysql/libmysql.c
+7
-8
tests/client_test.c
tests/client_test.c
+1
-4
No files found.
include/errmsg.h
View file @
91457448
...
@@ -90,3 +90,4 @@ extern const char *client_errors[]; /* Error messages */
...
@@ -90,3 +90,4 @@ extern const char *client_errors[]; /* Error messages */
#define CR_SECURE_AUTH 2049
#define CR_SECURE_AUTH 2049
#define CR_FETCH_CANCELED 2050
#define CR_FETCH_CANCELED 2050
#define CR_NO_DATA 2051
#define CR_NO_DATA 2051
#define CR_NO_STMT_METADATA 2052
libmysql/errmsg.c
View file @
91457448
...
@@ -78,7 +78,9 @@ const char *client_errors[]=
...
@@ -78,7 +78,9 @@ const char *client_errors[]=
"Invalid connection handle"
,
"Invalid connection handle"
,
"Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)"
,
"Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)"
,
"Row retrieval was canceled by mysql_stmt_close() call"
,
"Row retrieval was canceled by mysql_stmt_close() call"
,
"Attempt to read column without prior row fetch"
"Attempt to read column without prior row fetch"
,
"Prepared statement contains no metadata"
,
""
};
};
/* Start of code added by Roberto M. Serqueira - martinsc@uol.com.br - 05.24.2001 */
/* Start of code added by Roberto M. Serqueira - martinsc@uol.com.br - 05.24.2001 */
...
@@ -137,7 +139,9 @@ const char *client_errors[]=
...
@@ -137,7 +139,9 @@ const char *client_errors[]=
"Invalid connection handle"
,
"Invalid connection handle"
,
"Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)"
,
"Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)"
,
"Row retrieval was canceled by mysql_stmt_close() call"
,
"Row retrieval was canceled by mysql_stmt_close() call"
,
"Attempt to read column without prior row fetch"
"Attempt to read column without prior row fetch"
,
"Prepared statement contains no metadata"
,
""
};
};
#else
/* ENGLISH */
#else
/* ENGLISH */
...
@@ -194,7 +198,9 @@ const char *client_errors[]=
...
@@ -194,7 +198,9 @@ const char *client_errors[]=
"Invalid connection handle"
,
"Invalid connection handle"
,
"Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)"
,
"Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)"
,
"Row retrieval was canceled by mysql_stmt_close() call"
,
"Row retrieval was canceled by mysql_stmt_close() call"
,
"Attempt to read column without prior row fetch"
"Attempt to read column without prior row fetch"
,
"Prepared statement contains no metadata"
,
""
};
};
#endif
#endif
...
...
libmysql/libmysql.c
View file @
91457448
...
@@ -2139,12 +2139,12 @@ static void update_stmt_fields(MYSQL_STMT *stmt)
...
@@ -2139,12 +2139,12 @@ static void update_stmt_fields(MYSQL_STMT *stmt)
DESCRIPTION
DESCRIPTION
This function should be used after mysql_stmt_execute().
This function should be used after mysql_stmt_execute().
You can safely check that prepared statement has a result set by calling
You can safely check that prepared statement has a result set by calling
mysql_stmt_
num_fields
(): if number of fields is not zero, you can call
mysql_stmt_
field_count
(): if number of fields is not zero, you can call
this function to get fields metadata.
this function to get fields metadata.
Next steps you may want to make:
Next steps you may want to make:
- find out number of columns in result set by calling
- find out number of columns in result set by calling
mysql_num_fields(res) (the same value is returned by
mysql_num_fields(res) (the same value is returned by
mysql_stmt_
num_fields
)
mysql_stmt_
field_count()
)
- fetch metadata for any column with mysql_fetch_field,
- fetch metadata for any column with mysql_fetch_field,
mysql_fetch_field_direct, mysql_fetch_fields, mysql_field_seek.
mysql_fetch_field_direct, mysql_fetch_fields, mysql_field_seek.
- free returned MYSQL_RES structure with mysql_free_result.
- free returned MYSQL_RES structure with mysql_free_result.
...
@@ -3882,11 +3882,10 @@ my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT *stmt, MYSQL_BIND *bind)
...
@@ -3882,11 +3882,10 @@ my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT *stmt, MYSQL_BIND *bind)
if
(
!
bind_count
)
if
(
!
bind_count
)
{
{
if
((
int
)
stmt
->
state
<
(
int
)
MYSQL_STMT_PREPARE_DONE
)
int
errorcode
=
(
int
)
stmt
->
state
<
(
int
)
MYSQL_STMT_PREPARE_DONE
?
{
CR_NO_PREPARE_STMT
:
CR_NO_STMT_METADATA
;
set_stmt_error
(
stmt
,
CR_NO_PREPARE_STMT
,
unknown_sqlstate
);
set_stmt_error
(
stmt
,
errorcode
,
unknown_sqlstate
);
}
DBUG_RETURN
(
1
);
DBUG_RETURN
(
0
);
}
}
/*
/*
...
@@ -4278,7 +4277,7 @@ static void stmt_update_metadata(MYSQL_STMT *stmt, MYSQL_ROWS *data)
...
@@ -4278,7 +4277,7 @@ static void stmt_update_metadata(MYSQL_STMT *stmt, MYSQL_ROWS *data)
row
+=
(
stmt
->
field_count
+
9
)
/
8
;
/* skip null bits */
row
+=
(
stmt
->
field_count
+
9
)
/
8
;
/* skip null bits */
bit
=
4
;
/* first 2 bits are reserved */
bit
=
4
;
/* first 2 bits are reserved */
/* Go thro
w
all fields and calculate metadata */
/* Go thro
ugh
all fields and calculate metadata */
for
(
bind
=
stmt
->
bind
,
end
=
bind
+
stmt
->
field_count
,
field
=
stmt
->
fields
;
for
(
bind
=
stmt
->
bind
,
end
=
bind
+
stmt
->
field_count
,
field
=
stmt
->
fields
;
bind
<
end
;
bind
<
end
;
bind
++
,
field
++
)
bind
++
,
field
++
)
...
...
tests/client_test.c
View file @
91457448
...
@@ -5636,9 +5636,6 @@ static void test_subselect()
...
@@ -5636,9 +5636,6 @@ static void test_subselect()
rc
=
mysql_stmt_bind_param
(
stmt
,
bind
);
rc
=
mysql_stmt_bind_param
(
stmt
,
bind
);
check_execute
(
stmt
,
rc
);
check_execute
(
stmt
,
rc
);
rc
=
mysql_stmt_bind_result
(
stmt
,
bind
);
check_execute
(
stmt
,
rc
);
id
=
2
;
id
=
2
;
rc
=
mysql_stmt_execute
(
stmt
);
rc
=
mysql_stmt_execute
(
stmt
);
check_execute
(
stmt
,
rc
);
check_execute
(
stmt
,
rc
);
...
@@ -5982,7 +5979,7 @@ static void test_pure_coverage()
...
@@ -5982,7 +5979,7 @@ static void test_pure_coverage()
check_execute
(
stmt
,
rc
);
check_execute
(
stmt
,
rc
);
rc
=
mysql_stmt_bind_result
(
stmt
,
(
MYSQL_BIND
*
)
0
);
rc
=
mysql_stmt_bind_result
(
stmt
,
(
MYSQL_BIND
*
)
0
);
check_execute
(
stmt
,
rc
);
DIE_UNLESS
(
rc
==
1
);
mysql_stmt_close
(
stmt
);
mysql_stmt_close
(
stmt
);
...
...
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