Commit graph

35 commits

Author SHA1 Message Date
marko
8b63796596 branches/5.1: Port r6134 from branches/zip:
------------------------------------------------------------------------
  r6134 | marko | 2009-11-04 07:57:29 +0000 (Wed, 04 Nov 2009) | 5 lines

  branches/zip: innobase_convert_identifier(): Convert table names with
  explain_filename() to address Bug #32430: 'show innodb status'
  causes errors Invalid (old?) table or database name in logs.

  rb://134 approved by Sunny Bains
  ------------------------------------------------------------------------

innobase_print_identifier(): Replace with innobase_convert_name().

innobase_convert_identifier(): New function, called by innobase_convert_name().
2009-11-04 10:28:10 +00:00
vasil
ef5a2777ee branches/5.1:
Fix Bug#36819 ut_usectime does not handle errors from gettimeofday

by retrying gettimeofday() several times if it fails in ut_usectime().
If it fails on all calls then return error to the caller to be handled
at higher level.

Update the variable innodb_row_lock_time_max in SHOW STATUS output only
if ut_usectime() was successful.
2008-05-27 07:40:07 +00:00
marko
f025ce2cb9 ut_print_buf(): Add a Valgrind check that the buffer is wholly defined. 2007-10-03 07:36:33 +00:00
vasil
24a3afc084 snprintf() should always return non-negative result. According to
Microsoft documentation about _vscprintf():

  If format is a null pointer, the invalid parameter handler is invoked,
  as described in Parameter Validation. If execution is allowed to
  continue, the functions return -1 and set errno to EINVAL.

The UNIX variant of snprintf() segfaults if format is a NULL pointer
(similar to strlen(NULL) for example), so it is better to conform to
this behavior and crash our custom Windows version instead of
returning -1. Noone would expect -1 to be returned from snprintf().

Cosmetic: Add a space after typecast.

Approved by:	Marko
2007-09-21 13:35:00 +00:00
vasil
0044736fa3 Revert r1850 as MySQL did not approve the addition.
log for r1850:

Implement this feature request:
http://bugs.mysql.com/30706

* Add a function that returns the number of microseconds since
  epoch - ut_time_us().

* Add (innodb|innobase|srv)_replication_delay MySQL config parameter.

* Add UT_WAIT_FOR() macro that waits for a specified condition to occur
  until a timeout elapses.

* Using all of the above, handle the replication thread specially in
  srv_conc_enter_innodb().
2007-09-20 14:37:03 +00:00
vasil
2ca1d286ce Add ut_snprintf() function. On Windows this needs to be implemented
using auxiliary functions because there is no snprintf-variant on
Windows that behaves exactly as specified in the standard:

* Always return the number of characters that would have been printed
  if the size were unlimited (not including the final `\0').
* Always '\0'-terminate the result
* Do not touch the buffer if size=0, only return the number of characters
  that would have been printed. Can be used to estimate the size needed
  and to allocate it dynamically.

See http://www.freebsd.org/cgi/query-pr.cgi?pr=87260 for the reason why
2 ap variables are used.

Approved by:	Heikki
2007-09-19 17:13:46 +00:00
vasil
83187d4e95 Implement this feature request:
http://bugs.mysql.com/30706

* Add a function that returns the number of microseconds since
  epoch - ut_time_us().

* Add (innodb|innobase|srv)_replication_delay MySQL config parameter.

* Add UT_WAIT_FOR() macro that waits for a specified condition to occur
  until a timeout elapses.

* Using all of the above, handle the replication thread specially in
  srv_conc_enter_innodb().

Approved by:	Heikki
2007-09-17 18:15:44 +00:00
marko
c0cadb322f ut_print_namel(): Do not assume that all '/' are separators between
database and table names.

Approved by Heikki.
2007-09-01 17:28:31 +00:00
marko
619e004c1f Move the prototype of innobase_print_identifier() from ut0ut.c to
ha_prototypes.h.  Enclose the definitions in ha_prototypes.h in
#ifndef UNIV_HOTBACKUP.
2007-08-31 06:39:46 +00:00
marko
3366420bd2 Port extra Valgrind instrumentation (UNIV_DEBUG_VALGRIND) from branches/zip. 2007-06-14 08:34:23 +00:00
marko
182a5271c0 Add #include <ctype.h>. Apparently, this header is no longer included by
the common headers.  This may be related to WL#2936
(pluggable storage engines).
2007-05-11 08:43:06 +00:00
marko
455e07b6a4 Make InnoDB pluggable. That is, merge the modifications from MySQL WL#2936
and adapt some things.

Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
<mysql/plugin.h>.  Until the function is declared there, you can
uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.

Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
storage/innobase/Makefile.am and storage/innobase/plug.in.

plug.in: Declare InnoDB as a dynamic plugin.

ha_innodb.h: Remove the declarations of many global variables.  The variables
are no longer directly referenced outside of storage/innobase.

trx_t: Add the field trx->duplicates.

trx_create(): Initialize the fields trx->active_trans and trx->duplicates.

innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
2007-05-10 11:31:36 +00:00
sunny
45ef99db9d Fix for Bug# 23666. On Windows ut_usectime returns secs
and usecs relative to the UNIX epoch (which is Jan, 1 1970).
2007-01-24 23:05:06 +00:00
marko
79b0e5d2dc Merge a change from MySQL AB:
ChangeSet@1.2372, 2006-12-31 02:29:11+01:00, kent@mysql.com +79 -0
  Many files:
    Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
    Adjusted year(s) in copyright header 
    Added GPL copyright text
2007-01-11 09:36:27 +00:00
marko
fd43c74b51 dict_print_info_on_foreign_key_in_create_format(): Use ut_print_name()
instead of passing the wrong length to ut_print_namel().  (Bug #23368)

ut_print_name(), ut_print_namel(): Document the special treatment of '/'.

ut_print_namel(): Replace strchr() with memchr(), as the string might
not be NUL-terminated.
2006-10-18 11:24:58 +00:00
marko
cb19ec225e Split lines before binary operators, not after them. 2006-08-29 08:27:56 +00:00
marko
bf2ed0613e Split lines before an opening parenthesis, not after one.
Replace some printf(...) in debug builds with fprintf(stderr, ...).
2006-08-29 07:33:51 +00:00
marko
e8435b3e45 Reindent the code base (except for ha_innodb.{cc,h} and generated parser
and lexer files).  From now on, the following Emacs cc-mode settings apply
when indenting C function bodies in InnoDB:

(setq c-basic-offset 8)
(setq c-label-minimum-indentation 0)
(add-to-list 'c-offsets-alist '(c . 0))
(add-to-list 'c-offsets-alist '(label . [0]))

The indentation rules for function declarations still have not been
formalized, and they must be formatted manually.

Try to limit all lines to at most 79 characters (assuming TAB stops every
8 characters) by splitting lines before opening parenthesis, or at
string constants.

Fix some grammar mistakes in diagnostic output:
 match to, match with -> match
 found from -> found in
 trying rename -> trying to rename

Fix an error in page_check_dir(): it said "supremum not pointed to"
when the infimum was not pointed to.

Enclose commented-out code snippets in #if 0 ... #endif instead of /* ... */.
Add (void*) casts to some %p parameters in fprintf() calls.  Try to
split lines before a binary operator, not after one.  (These three fixes
were not made everywhere.)
2006-08-28 17:42:45 +00:00
marko
2e10694fd1 Correct all URLs pointing to the MySQL manual. (Bug #21467) 2006-08-08 10:54:57 +00:00
marko
7acf3b8f5d After ut_print_timestamp(), always display " InnoDB:" (note two spaces). 2006-08-02 06:52:44 +00:00
osku
a0c5d2fdfa ut_dbg_assertion_failed(): Print space between timestamp and start of error
message.
2006-08-01 10:20:14 +00:00
marko
8481036b66 Document better the "bool table_id" flags introduced in r590. 2006-05-31 07:35:02 +00:00
marko
83edf1fce1 Adapt InnoDB to the new tablename to filename encoding in MySQL 5.1.
ut_print_name(), ut_print_namel(): Add parameter table_id for distinguishing
names of tables from other identifiers (names of indexes, columns and
constraints).

innobase_convert_from_table_id(), innobase_convert_from_id(),
innobase_convert_from_filename(), innobase_get_charset(): New functions.

dict_accept(), dict_scan_id(), dict_scan_col(), dict_scan_table_name(),
dict_skip_word(), dict_create_foreign_constraints_low():
Add parameter "cs", so that isspace() can be replaced with my_isspace(),
whose operation depends on the connection character set.

dict_scan_id(): Convert the identifier to UTF-8.

dict_str_starts_with_keyword(): New extern function, to replace dict_accept()
in row_search_for_mysql().

mysql_get_identifier_quote_char(): Replaced with innobase_print_identifier().

ha_innobase::create(): Remove the thd->convert_string() call.
Pass the statement to InnoDB in the connection character set
and let InnoDB convert the identifiers to UTF-8.
2006-05-24 10:27:17 +00:00
marko
06f7b09f89 Implement InnoDB assertions (ut_a and ut_error) with abort() when
the code is compiled with GCC 3 or later on other platforms than
Windows or Netware.  Also disable the variable ut_dbg_stop_threads
and the function ut_dbg_stop_thread() in this case, unless
UNIV_SYNC_DEBUG is defined.  This should allow the compiler to
generate more compact code for assertions.
2006-05-22 08:11:38 +00:00
osku
18131c474d Add ib_list_create_heap(). 2006-05-18 10:02:01 +00:00
osku
3762ef7d66 Add 'level' parameter to mutex_create(), remove mutex_set_level().
Rename SYNC_LEVEL_NONE to SYNC_LEVEL_VARYING, add comment clarifying what it
is used for.
2006-04-28 05:43:08 +00:00
osku
1b71285f05 Add a work queue implementation. 2006-04-26 12:14:50 +00:00
osku
3a1b90f1cc Add a normal linked-list implementation. 2006-04-26 11:58:07 +00:00
osku
c37316d9a8 Rename ib_vector typedef to ib_vector_t. 2006-04-06 10:02:44 +00:00
osku
1690e0deed Add ib_vector datatype. 2006-04-06 05:20:06 +00:00
osku
803356ed32 Port parts of r211 from branches/fts:
Add ut_strcount() and ut_strreplace().
2006-03-10 11:00:58 +00:00
osku
a7355764e9 Change ut_print_buf() and mem_analyze_corruption() to take a void*, not a
byte*. Remove redundant casts from callers.
2006-03-06 09:45:04 +00:00
osku
6be49d6766 Style cleanups: Convert spaces to tabs, remove trailing whitespace, other
misc cleanups.
2006-02-21 12:37:54 +00:00
osku
bbdb0f41b2 Fix all function declarations to have the correct number of '=' characters. 2006-02-20 12:12:22 +00:00
osku
c307820962 Import 5.0 code. 2005-10-27 07:29:40 +00:00