There was no way to return an error from the client library
if no MYSQL connections was established.
So here i added variables to store that king of errors and
made functions like mysql_error(NULL) to return these.
Nothing was in the command-line dictionary, because of the wrong
order of instructions when populating it.
This is a smaller, less optimistic patch that both fixes a bug and
refreshes the list of keywords that the command-line library (e.g.,
readline) can use to expand typed commands. Now, read from the
command list /after/ we free the list, not before.
The best way is to read the keywords from the lexer code, but that
doesn't work everywhere yet. Grr.
running queries
Bug#33976: buffer overflow of variable time_buff in function com_go()
An internal buffer was too short. Overextending could smash the
stack on some architectures and cause SEGVs. This is not a problem
that could be exploited to run arbitrary code.
To fix, I expanded one buffer to cover all the size that could be
written to (we know the abolute max).
Default values of variables were not subject to upper/lower bounds
and step, while setting variables was. Bounds and step are also
applied to defaults now; defaults are corrected quietly, values
given by the user are corrected, and a correction-warning is thrown
as needed. Lastly, very large values could wrap around, starting
from 0 again. They are bounded at the maximum value for the
respective data-type now if no lower maximum is specified in the
variable's definition.
In several cases, an error when processing the query would cause mysql to
return to the top level without printing warnings. Fix is to always
print any available warnings before returning to the top level.
disables the option explicitely.
Changed the option location in code so that --help will show it in
lexical option order.
This is for bug #26215: mysql command line client should not strip
comments from SQL statements
command and reported to a client.
The fact that a timestamp field will be set to NO on UPDATE wasn't shown
by the SHOW COMMAND and reported to a client through connectors. This led to
problems in the ODBC connector and might lead to a user confusion.
A new filed flag called ON_UPDATE_NOW_FLAG is added.
Constructors of the Field_timestamp set it when a field should be set to NOW
on UPDATE.
The get_schema_column_record function now reports whether a timestamp field
will be set to NOW on UPDATE.
bug #26215: mysql command line client should not strip comments
from SQL statements
and
bug #11230: Keeping comments when storing stored procedures
With the introduction of multiline comments support in the command line
client (mysql) in MySQL 4.1, it became impossible to preserve
client-side comments within single SQL statements or stored routines.
This feature was useful for monitoring tools and maintenance.
The patch adds a new option to the command line client
('--enable-comments', '-c') which allows to preserve SQL comments and
send them to the server for single SQL statements, and to keep comments
in the code for stored procedures / functions / triggers.
The patch is a modification of the contributed patch from bug #11230
with the following changes:
- code style changes to conform to the coding guidelines
- changed is_prefix() to my_strnncoll() to detect the DELIMITER
command, since the first one is case-sensitive and not charset-aware
- renamed t/comments-51.* to t/mysql_comments.*
- removed tests for comments in triggers since 5.0 does not have SHOW
CREATE TRIGGER (those tests will be added back in 5.1).
The test cases are only for bug #11230. No automated test case for bug
#26215 is possible due to the test suite deficiencies (though the cases
from the bug report were tested manually).