Commit graph

35426 commits

Author SHA1 Message Date
cmiller@zippy.cornsilk.net
93e804a616 Wrap code specific to the comunity-server in additional CPP #ifdef .
Add a new autoconf paremeter --{en,dis}able-community-features .  The
default is disable for enterprise servers.

Though this is a 5.0 tree, it is only to be merged into the 5.0-community
tree and the global 5.1 tree, never to the 5.0-enterprise tree.
2007-04-24 18:11:55 -04:00
cmiller@zippy.cornsilk.net
bbd8b850cd Bug#25347: mysqlcheck -A -r doesn't repair table marked as crashed
Additional changes to test:  "flush tables" so that Windows releases
the files.
2007-04-16 15:00:16 -04:00
cmiller@zippy.cornsilk.net
17a57e557c Use platform-independent mysqltest language. 2007-04-10 16:47:07 -04:00
cmiller@zippy.cornsilk.net
88455a047f Changing the state of whether we're recording profiling information
halfway through a query (as happens in "SET SESSION PROFILING = ...")
has a few side-effects, the worst of which is a memory leak for
prepared statements, which poke directly from the parser into the 
profiling code (we don't have the query text when we need it) and 
that overwrites a pointer to heap-allocated memory when the previous
statement turns on profiling.

Instead, now set a flag when we begin a new statement that tracks 
whether profiling is on _at the start_ of the query.  Use that to
track whether we gather info.

Additionally, use that AND use the state of the profiling variable
after the end of a query to know whether to store information about 
the query that just finished.
2007-04-06 09:15:18 -04:00
cmiller@zippy.cornsilk.net
6204ae25fc Backport:
B-g#27427: resolveip fails on hostnames with a leading digit

We need inet_aton for the extra/resolveip tool.  Some OSes put this
in nonstandard libraries.
2007-04-04 07:44:12 -04:00
cmiller@zippy.cornsilk.net
4078a7ccce Unreported minor bug: We start numbering query IDs at zero, which
is a special case in "SHOW PROFILE FOR QUERY n".  No one can get
the zero item (which is always the statement that turns on profiling),
because zero represents the final item, internally.

Now, order the queries starting at one.
2007-04-03 19:52:24 -04:00
cmiller@zippy.cornsilk.net
cd28612e4b Backport:
B-g#27501: 5.0 significantly more sys ("kernel") time than 4.1 \
      due to getrusage() calls

Even if profiling is turned off, the parser makes calls to reset 
the state at the beginning of each query.  That would eventually 
instantiate a PROFILE_ENTRY, which does indeed capture resource 
usage.

Instead, now check that profiling is active before progressing
far into the storage/expiration of old entries in the history.
This has the pleasant side-effect that queries to toggle profiling
are not recorded in the history.
2007-04-03 19:50:55 -04:00
cmiller@zippy.cornsilk.net
b7a27a6b96 Backport:
B-g#26600: table PROFILING in INFORMATION SCHEMA has wrong data type

B-g#27047[partial]: INFORMATION_SCHEMA table cannot have BIGINT \
      fields

No Information_schema table has ever needed floating-point data 
before.  Transforming all floating point to a string and back to a
number causes a real data problem on Windows, where the libc may 
pad the exponent with more leading zeroes than we expect and the
significant digits are truncated away.

This also makes interpreting an unimplemented type as a string into
a fatal error in debug builds.  Thus, we will catch problems when we
try to use those types in new I_S tables.
2007-04-03 19:47:19 -04:00
cmiller@zippy.cornsilk.net
ad181bb037 Backport:
B-g#27060: SQL Profile utility may not be reporting right duration \
      for each step

Whenever the profiler is reset at the beginning of a query, there's
a "hidden" profiling entry that represents that point in time.  It 
has no status description, as those are set by state changes and no
such point has yet been encountered.  That profiling entry is not
in the list of entries generated when we change states.

The profiling code had the problem that each step of printing 
profiling data subtracted the previous "step"'s data, but gave the
label to that data of the current step, which is wrong.  The label/
state refers to the period beginning with that profiling data, not
ending with it.

Now, give a label to the first profiling pseudo-entry, so that we 
have a name to assign to the period that ends with the first state 
change.  Now also use the state name of the previous step in showing 
the delta values that end with this step.
2007-04-03 19:45:28 -04:00
cmiller@zippy.cornsilk.net
2e698f8c4e Backport:
Patch contributed by Jocelyn Fournier.  CLA received 2007-02-27.
  
B-g#25347: mysqlcheck -A -r doesn't repair table marked as crashed
  
mysqlcheck tests nullness of the engine type to know whether the
"table" is a view or not.  That also falsely catches tables that 
are severly damaged.
  
Instead, use SHOW FULL TABLES to test whether a "table" is a view
or not.
  
(Don't add new function.  Instead, get original data a smarter way.)

Make it safe for use against databases before when views appeared.
2007-04-03 18:12:31 -04:00
cmiller@zippy.cornsilk.net
9816842b58 Backport:
B-g#24795: SHOW PROFILE implementation

Don't use memory roots to store profiling information, because
memory roots make freeing the data a no-op, and thus long-running
processes with profiling turned on the whole time could eventually 
use all available memory.

Instead, use regular heap allocation and deallocation calls to 
manage profiling data.  Replace the leaky List usage with a similar-
behaving structure named "Queue".
2007-04-03 17:59:52 -04:00
cmiller@zippy.cornsilk.net
0b3dfea79a Backport of Igor's patch for Bug#27362, March 22 2007.
Fixed bug #27362: crash at evaluation of IN predicate when one
of its argument happened to be a decimal expression returning
the NULL value.
The crash was due to the fact the function in_decimal::set did
not take into account that val_decimal() could return 0 if 
the decimal expression had been evaluated to NULL.
2007-04-03 14:08:09 -04:00
cmiller@zippy.cornsilk.net
9e71adc46f The test suite erroneously removes backslashes. 2007-04-03 14:05:00 -04:00
cmiller@zippy.cornsilk.net
27720d8b26 Listing all columns of a particular type tells us nothing at all.
The test fails, and it shouldn't.
2007-04-03 13:26:19 -04:00
cmiller@zippy.cornsilk.net
5f4dfdd5fe Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-community
2007-04-03 09:20:22 -04:00
joerg@trift2.
30d5fbe5b1 Merge trift2.:/MySQL/M50/test-help-5.0
into  trift2.:/MySQL/M50/clone-5.0
2007-03-20 19:57:22 +01:00
joerg@trift2.
602ed0a945 Merge trift2.:/MySQL/M41/test-help-4.1
into  trift2.:/MySQL/M50/test-help-5.0
2007-03-20 19:52:40 +01:00
joerg@trift2.
69a2dcda37 Test "help":
Shift the ID values up into a range where they will not collide with those
which we use for real data, when we fill the system tables.

Will be merged up to 5.0 where it is needed for 5.0.38.
2007-03-20 19:36:11 +01:00
joerg@trift2.
54dd7a5112 Merge trift2.:/MySQL/M41/test-help-4.1
into  trift2.:/MySQL/M50/test-help-5.0
2007-03-20 19:29:46 +01:00
joerg@trift2.
86483de2e5 Test "help":
Shift the ID values up into a range where they will not collide with those
which we use for real data, when we fill the system tables.

Will be merged up to 5.0 where it is needed for 5.0.38.
2007-03-20 19:19:17 +01:00
tsmith@quadxeon.mysql.com
76daceab7f Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/mar20/b27231/50
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/mar20/mysql-5.0-release
2007-03-20 19:11:23 +01:00
tsmith@quadxeon.mysql.com
cbb90f443a Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/mar20/b27231/41
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/mar20/b27231/50
2007-03-20 19:10:24 +01:00
tsmith@quadxeon.mysql.com
21ed11cda2 Bug #27231: Server crash when dumping into outfile with long FIELDS ENCLOSED BY option
- Problem: data separators were copied to a fixed-size buffer
  on the stack; memcpy was used, without bounds checking; a
  server crash could result if long FIELDS ENCLOSED BY, etc.,
  was given
- Fix: write the separators directly, instead of copying to
  a buffer first (in select_export::send_data())
2007-03-20 19:09:28 +01:00
kent@mysql.com/kent-amd64.(none)
cd1005ab04 vio.vcproj, mysqld.vcproj, mysys.vcproj, libmysqld.vcproj, mysqldemb.vcproj:
No need to set LICENSE or USE_SYMDIR from project files
make_win_bin_dist:
  Changed location of SQL initialization files to be "share/"
2007-03-20 15:12:50 +01:00
kent@mysql.com/kent-amd64.(none)
731c3e5b20 mysys.vcproj:
Removed accidently added my_winsem.c
make_win_bin_dist:
  Corrected test for relwithdebinfo target
mysql.sln:
  Specify that comp_err depends on zlib
2007-03-19 22:41:16 +01:00
kent@mysql.com/kent-amd64.(none)
e9d65ba363 make_win_bin_dist:
Restore accidently removed line
2007-03-19 16:45:37 +01:00
kent@mysql.com/kent-amd64.(none)
19a6a09126 Many files:
Major cleanup of old Visual Studio project files, aligning engines etc
2007-03-19 16:18:10 +01:00
joerg@trift2.
3b1d0c2a2a Merge mysqldev@production.mysql.com:my/mysql-5.0-release/
into  trift2.:/MySQL/M50/clone-5.0
2007-03-19 15:27:58 +01:00
joerg@trift2.
1e3cec5458 netware/Makefile.am : "libmysql.imp" must survive a "make clean" for the NetWare builds. 2007-03-19 15:24:07 +01:00
df@pippilotta.erinye.com
4f7677cd24 Merge dev:my/mysql-5.0-release
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-release
2007-03-19 11:30:30 +01:00
kent@mysql.com/kent-amd64.(none)
1c6fc80fdc make_win_bin_dist:
- Support both "release" and "relwithdebinfo" targets
  - Copy ".pdb" and ".pdb" files for the server and instance manager
  - Removed the examples directory, unsupported
  - Handle both old and new builds in the same script, "-debug" and "-nt"
    extensions, directory "data" and "share" in different location
2007-03-18 10:47:15 +01:00
joerg@trift2.
e54ed17b2c Fix a failure in test "func_in" on some 64-bit big-endian hosts in first 5.0.38 builds. 2007-03-17 19:45:01 +01:00
joerg@trift2.
66960bd1e7 Bug#20166 mysql-test-run.pl does not test system privilege tables creation
- Build sql files for netware from the mysql_system_tables*.sq files
 - Fix comments about mysql_create_system_tables.sh
 - Use mysql_install_db.sh to create system tables for mysql_test-run-shell
 - Fix mysql-test-run.pl to also look in share/mysql for the msyql_system*.sql files

Changeset coded today by Magnus Svensson, just the application to 5.0.38 is by Joerg Bruehe.
2007-03-16 20:56:16 +01:00
joerg@trift2.
3b4175fc2e Fix bug#27212, test case "loaddata": Take the file to read from the binary package. 2007-03-16 19:56:16 +01:00
svoj@mysql.com/april.(none)
8b325697dd Merge mysql.com:/home/svoj/devel/bk/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/bk/mysql-5.0-engines
2007-03-16 01:28:29 +04:00
dlenev@mockturtle.local
e25ea78fd4 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  mockturtle.local:/home/dlenev/src/mysql-4.1-merge
2007-03-15 14:31:34 +03:00
dlenev@mockturtle.local
4f46196db9 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mockturtle.local:/home/dlenev/src/mysql-5.0-merge
2007-03-15 14:00:50 +03:00
dlenev@mockturtle.local
e4f88d5215 Merge mockturtle.local:/home/dlenev/src/mysql-4.1-bg25966
into  mockturtle.local:/home/dlenev/src/mysql-5.0-bg25966-2
2007-03-15 11:53:04 +03:00
dlenev@mockturtle.local
01bd08b5d7 Fix for bug #25966 "2MB per second endless memory consumption after LOCK
TABLE ... WRITE".

Memory and CPU hogging occured when connection which had to wait for table
lock was serviced by thread which previously serviced connection that was
killed (note that connections can reuse threads if thread cache is enabled).
One possible scenario which exposed this problem was when thread which
provided binlog dump to replication slave was implicitly/automatically
killed when the same slave reconnected and started pulling data through
different thread/connection.
The problem also occured when one killed particular query in connection
(using KILL QUERY) and later this connection had to wait for some table
lock.

This problem was caused by the fact that thread-specific mysys_var::abort
variable, which indicates that waiting operations on mysys layer should
be aborted (this includes waiting for table locks), was set by kill
operation but was never reset back. So this value was "inherited" by the
following statements or even other connections (which reused the same
physical thread). Such discrepancy between this variable and THD::killed
flag broke logic on SQL-layer and caused CPU and memory hogging.

This patch tries to fix this problem by properly resetting this member.

There is no test-case associated with this patch since it is hard to test
for memory/CPU hogging conditions in our test-suite.
2007-03-15 11:51:35 +03:00
dlenev@mockturtle.local
f2cb664174 Fix for bug #25966 "2MB per second endless memory consumption after LOCK
TABLE ... WRITE".

CPU hogging occured when connection which had to wait for table lock was
serviced by thread which previously serviced connection that was killed
(note that connections can reuse threads if thread cache is enabled).
One possible scenario which exposed this problem was when thread which
provided binlog dump to replication slave was implicitly/automatically
killed when the same slave reconnected and started pulling data through
different thread/connection.
In 5.* versions memory hogging was added to CPU hogging. Moreover in
those versions the problem also occured when one killed particular query
in connection (using KILL QUERY) and later this connection had to wait for
some table lock.

This problem was caused by the fact that thread-specific mysys_var::abort
variable, which indicates that waiting operations on mysys layer should
be aborted (this includes waiting for table locks), was set by kill
operation but was never reset back. So this value was "inherited" by the
following statements or even other connections (which reused the same
physical thread). Such discrepancy between this variable and THD::killed
flag broke logic on SQL-layer and caused CPU and memory hogging.

This patch tries to fix this problem by properly resetting this member.

There is no test-case associated with this patch since it is hard to test
for memory/CPU hogging conditions in our test-suite.
2007-03-15 11:30:17 +03:00
kent@mysql.com/kent-amd64.(none)
eda2d801ef Merge mysql.com:/home/kent/bk/tmp/mysql-4.1-build
into  mysql.com:/home/kent/bk/tmp/mysql-5.0-build
2007-03-14 18:32:06 +01:00
kent@mysql.com/kent-amd64.(none)
760a73102f Merge mysql.com:/home/kent/bk/tmp/mysql-4.0
into  mysql.com:/home/kent/bk/tmp/mysql-4.1-build
2007-03-14 18:28:52 +01:00
kent@mysql.com/kent-amd64.(none)
7c4385c4ad EXCEPTIONS-CLIENT:
Updated to version 0.6 of the text
2007-03-14 18:28:16 +01:00
kent@mysql.com/kent-amd64.(none)
201e58d14e Merge mysql.com:/home/kent/bk/tmp/mysql-4.1-build
into  mysql.com:/home/kent/bk/tmp/mysql-5.0-build
2007-03-14 14:31:44 +01:00
kent@mysql.com/kent-amd64.(none)
aea42a5444 Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/kent/bk/tmp/mysql-5.0-build
2007-03-14 14:30:54 +01:00
kent@mysql.com/kent-amd64.(none)
e51c32f0b7 Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/kent/bk/tmp/mysql-4.1-build
2007-03-14 14:30:12 +01:00
kent@mysql.com/kent-amd64.(none)
6b72b54716 Merge mysql.com:/home/kent/bk/tmp/mysql-4.0
into  mysql.com:/home/kent/bk/tmp/mysql-4.1-build
2007-03-14 14:29:23 +01:00
kent@mysql.com/kent-amd64.(none)
be226152ab configure.in:
Added test for sched_yield() possibly in -lposix4 on Solaris
2007-03-14 14:27:46 +01:00
svoj@mysql.com/april.(none)
d7311aab77 Removed tabs. 2007-03-14 02:30:05 +04:00
svoj@mysql.com/april.(none)
de21b9b8ef Merge mysql.com:/home/svoj/devel/mysql/BUG26881/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG26881/mysql-5.0-engines
2007-03-13 18:11:47 +04:00