another user.
When the DEFINER clause isn't specified in the ALTER statement then it's loaded
from the view definition. If the definer differs from the current user then
the error is thrown because only a super-user can set other users as a definers.
Now if the DEFINER clause is omitted in the ALTER VIEW statement then the
definer from the original view is used without check.
Docs/Books/
Docs/MySQL-logos/
Deleted files
Docs/Tutorial-MySQL-final.txt
Docs/bk.txt
Docs/Support/.cvsignore
Docs/Support/colspec-fix.pl
Docs/Support/docbook-fixup.pl
Docs/Support/docbook-prefix.pl
Docs/Support/docbook-split
Docs/Support/make-docbook
Docs/Support/make-makefile
Docs/Support/test-make-manual
Docs/Support/test-make-manual-de
Docs/Support/trivial-makeinfo-4.0c.patch
Docs/Support/xwf
Deleted file now in internals main text
Docs/my_sys.txt
Deleted file now in internals svn tree
Docs/net_doc.txt
Removed obsolete entries
Docs/.cvsignore
Added note that info is obsolete
Docs/linuxthreads.txt
in index search MySQL was not explicitly
suppressing warnings. And if the context
happens to enable warnings (e.g. INSERT ..
SELECT) the warnings resulting from converting
the data the key is compared to are
reported to the client.
Fixed by suppressing warnings when converting
the data to the same type as the key parts.
when it was printing a Query event, it produced invalid SQL (missing
the BINLOG keyword, so the SQL started with the base64 string, which
is incorrect).
Note: no testcase; I have a .test which shows that the bugfix works,
but it triggers BUG#26361 and so gives Valgrind warnings. I'm sending
this test to the fixer of BUG#26361 for her/him to push when she/he
fixes BUG#26361.
what it actually means (Monty approved the renaming)
- correcting description of transaction_alloc command-line options
(our manual is correct)
- fix for a failure of rpl_trigger.
Turns out they can be useful in working out what's going wrong.
Index: ndb-work/storage/ndb/test/src/NdbRestarter.cpp
===================================================================
for TransporterRegistry, keep connection to management server alive.
Index: ndb-work/storage/ndb/include/util/InputStream.hpp
===================================================================
Default timout of 30secs for ConfigRetriever
Default timout of 5sec for use by Transporter (ports etc).
And Ndb_cluster_connection::set_timeout() api for setting timeout from
NDBAPI applications. Should be called before connect. e.g.
c.set_timeout(4200);
c.connect();
Index: ndb-work/storage/ndb/include/mgmcommon/ConfigRetriever.hpp
===================================================================
as side effect - turbo accellerator patch for ndb_mgm - sholud make it quicker... so that 4mhz cpu will seem even faster.
Index: ndb-work/storage/ndb/src/mgmclient/CommandInterpreter.cpp
===================================================================
use portable method, getting milliseconds between calls - Linux would
let us do funky stuff by getting the timeout from select(2). Everywhere
else sucks and doesn't let us do that :(
Index: ndb-work/storage/ndb/include/util/InputStream.hpp
===================================================================
Only one timeout value is needed. Also saves 8bytes per NdbMgmHandle :)
Index: ndb-work/storage/ndb/include/mgmapi/mgmapi.h
===================================================================
Also add an ERROR_codes.txt file for mgmd
Index: ndb-work/storage/ndb/src/mgmsrv/ERROR_codes.txt
===================================================================
In ndb_mgm_call, add checks for expired timeout in (Input|Output)Stream.
In case of timeout, we set NdbMgmHandle->last_error and return NULL.
In api calls not using ndb_mgm_call (or using it in conjunction with
own IO), they'll need to check for timeouts manually. Macros are provided
to do this.
Add ndb_mgm_disconnect_quiet(h) to disconnect without checking errors
(so we don't clobber NdbMgmHandle->last_error). This helps us provide
the *consistent* semantic that on timeout we leave the NdbMgmHandle
*disconnected*. We check for this in testMgm.
Change CHECK_REPLY in mgmapi to also check for set error in handle->last_error
This will pick up the ETIMEDOUT errors and return them to client (through
returning correct failure code for API call and setting NdbMgmHandle error).
Applications written to MGMAPI before this patch will behave as before,
and even hopefully check get_last_error and report the error back to the
end user!
Adding the last CHECK_TIMEDOUT_RET and delete in ndb_mgm_call() we
slightly change behaviour of mgmapi. Previously, if disconnect
midway through a reply, where there were only optional parameters left,
we'd get a Properties object from ndb_mgm_call() containing NULLs for
the optional parameters, leading to interesting error messages. This
enables the returning of the *real* message and actually improves the API
without breaking compatibility.
ndb_mgm_start_signallog
ndb_mgm_stop_signallog
ndb_mgm_log_signals
ndb_mgm_set_trace
ndb_mgm_insert_error
ndb_mgm_set_int64_parameter [1]
ndb_mgm_set_string_parameter [1]
ndb_mgm_purge_stale_sessions [2]
- return error code on error during ndb_mgm_call
TODO:
ndb_mgm_report_event [2]
[1] marked for removal, unused.
[2] return codes incorrect in CHECK_HANDLE/CONNECTED. undocumented.
Server side:
in Services (per session) add macro for injecting timeout error
(just waiting 10 seconds before continuing... it does work!)
We inject these errors in a number of critical places - including
the tricky api functions that don't just use ndb_mgm_call but do
their own thing (get_config, get_status and friends)
ATRT:
Expand testMgm to add timout tests for API. Fully automated.
*THEORETICALLY* timing dependent - an ultra-slow network will
cause problems and "fake" failures... I welcome other solutions.
Tests aren't exhaustive, but cover the generics and the tricky bits.
Also test some calling semantics (incl disconnected on error).
It is encouraged to add *more* mgmapi tests, not less :)
InputStream:
Fix where timedout error is set
Index: ndb-work/storage/ndb/src/mgmapi/mgmapi.cpp
===================================================================