Commit graph

17612 commits

Author SHA1 Message Date
Alexey Botchkov
d5f4fcb6c8 merging 2008-11-18 13:52:03 +04:00
V Narayanan
af2e74f8cb Bug#39616: Missing quotes from .CSV crashes server
When a CSV file contained comma separated elements 
that were not enclosed in quotes, it was causing the
mysql server to crash.
      
The old algorithm that parsed the content of a row in
mysql 5.0 was assuming that the values of the fields
in a .CSV file will be enclosed in quotes and will be
separated by commas.

This was causing the old algorithm to fail when the 
content of the file resembled the following
3,"sans quotes"
The CSV engine that is part of mysql 5.0 was expecting
the above to be
"3","sans quotes"
      
The above is just one example of where the engine was
failing for what would be recognized as a valid .CSV 
file content otherwise.
      
The proposed fix changes the old algorithm being used
to parse rows from the .CSV file to handle two separate
cases

1) When the current field of the row is enclosed in quotes
2) When the current field of the row is not enclosed in 
   quotes
2008-11-18 11:31:03 +05:30
Patrick Crews
b98e2e865e Bug#33970 Test main.csv_alter_table disabled.
Re-enabling this test in 5.1 tree since the bug that caused disabling
(Bug#33696 CSV storage engine allows nullable colums via ALTER TABLE statements)
doesn't appear in 5.1 (6.0 only)

Recorded .result file and removed test from the main.disabled.def file.
2008-11-17 15:25:27 -05:00
Alexey Botchkov
58701cae11 Bug#34517 SHOW GLOBAL STATUS does not work properly in embedded server.
GLOBAL STATUS is calculated by studying the list of threads. In the
        embedded server threads were not linked to the internal list, so the
        calculation always returns 0. Fixed by 'linking' the embedded-server
        threads to the same list

per-file comments:
  libmysqld/lib_sql.cc
Bug#34517 SHOW GLOBAL STATUS does not work properly in embedded server.
    Add newly created 'threads' to the internal thread list.
    Remove them from the list as they're freed.

  mysql-test/r/information_schema.result
Bug#34517 SHOW GLOBAL STATUS does not work properly in embedded server.
    test result

  mysql-test/t/information_schema.test
Bug#34517 SHOW GLOBAL STATUS does not work properly in embedded server.
    test case added
2008-11-17 20:06:03 +04:00
Alexey Botchkov
ef3600b80b merging 2008-11-17 19:43:10 +04:00
Alexey Botchkov
56dc6b2ecd Bug#31616 div_precision_increment description looks wrong
Item_func_div didn't calculate the precision of the result properly.
  The result of 5/0.0001 is 5000 so we have to add decimals of the divisor
  to the planned precision.

per-file comments:
  mysql-test/r/type_newdecimal.result
Bug#31616 div_precision_increment description looks wrong
    test result fixed

  mysql-test/t/type_newdecimal.test
Bug#31616 div_precision_increment description looks wrong
    test case

  sql/item_func.cc
Bug#31616 div_precision_increment description looks wrong
    precision must be increased with args[1]->decimals parameter
2008-11-17 19:41:09 +04:00
Mattias Jonsson
c0240bca20 Bug#40595: Non-matching rows not released with READ-COMMITTED on tables
with partitions

Pre push fix, optimized replace_regex, to cut 2 seconds
from test time.
2008-11-14 23:51:17 +01:00
Matthias Leich
3da7ffe6ac Fix for Bug#40644 main.group_concat_max_len_func random failures
+ minor improvements
2008-11-14 19:20:16 +01:00
Matthias Leich
15d03999d8 Fix for Bug#39979 main.events_time_zone does not clean up
+ minor improvements.
2008-11-14 17:18:20 +01:00
Ramil Kalimullin
de1fe9054f Auto-merge 2008-11-14 13:48:01 +04:00
Ramil Kalimullin
ee3594b2d7 Test case for bug #34774: key prefix on text field in federated
tables can cause server to crash!

The bug will be fixed by patch for #34779: "crash in checksum table
on federated tables with blobs containing nulls"

Only a test case commited.
2008-11-14 11:42:29 +04:00
Ramil Kalimullin
e0d5a6c15f Fix for bug#37527: mysqlcheck fails to report entire database
when InnoDB frm file corruption

Problem: mysqlcheck runs 'SHOW FULL TABLE' queries to get table lists.
The query may fail for some reasons (e.g. null .frm file) then
mysqlcheck doesn't process the database tables.

Fix: try to run 'SHOW TABLES' if 'SHOW FULL TABLES' failed.
2008-11-14 11:40:46 +04:00
Sergey Glukhov
2e4f86af69 5.0-bugteam->5.1-bugteam automerge(bug#39541) 2008-11-13 17:09:22 +04:00
Sergey Glukhov
90548bc697 Bug#39541 CHECK TABLE on information_schema myisam tables produces error
issue 'The storage engine for the table doesn't support check' note for I_S tables
2008-11-13 17:06:48 +04:00
Sergey Glukhov
6c0b87f55e Bug#38909 CREATE_OPTIONS in information_schema produces wrong results
table->partition_info is unitialized when we open frm file only.
The fix is check share->partition_info_len which is set on
frm opening stage.
2008-11-13 16:11:51 +04:00
Sergey Glukhov
3fa2673f19 Bug#39955 SELECT on INFORMATION_SCHEMA.GLOBAL_VARIABLES takes too long
VARIABLE_VALUE field is decreased to 1024 symbols.
(affected I_S tables: GLOBAL_VARIABLES, SESSION_VARIABLES,
 GLOBAL_STATUS, SESSION_STATUS).
The only variable which can be longer than 1024 is
init_connect. The variable will be truncated with warning.
Additional fix:
Added where condition filter which speed up queries which
have where condition with expressions which use VARIABLE_NAME
field.
2008-11-13 16:09:11 +04:00
Sergey Glukhov
45deeca2dd Bug#35789 wrong datatypes for collation and charset columns in EVENTS, ROUTINES, TRIGGERS
changed 'charset', 'collation' field length from 64 to MY_CS_NAME_SIZE(32)
in tables:
SCHEMATA, TABLES, COLUMNS, CHARACTER_SETS,
COLLATIONS, COLLATION_CHARACTER_SET_APPLICABILITY
2008-11-13 13:50:20 +04:00
Sergey Vojtovich
83f96dcf47 BUG#38842 - Fix for 25951 seems incorrect
With fix for bug 25951 index hints are ignored for fulltext
searches, as handling of fulltext indexes is different from
handling regular indexes. Meaning it is not possible to
implement true index hints support for fulltext indexes within
the scope of current fulltext architecture.

The problem is that prior to fix for bug 25951, some useful
index hints still could be given for boolean mode searches.

This patch implements special index hints support for fulltext
indexes with the following characteristics:
- all index hints are still ignored for NLQ mode searches -
  it cannot work without an index;
- for 5.1 and up index hints FOR ORDER BY and FOR GROUP BY are
  still ignored for fulltext indexes;
- boolean mode searches honor USE/FORCE/IGNORE INDEX hints;
- as opposed to index hints for regular indexes, index hints
  for fulltext BOOLEAN mode searches affect the usage of the
  index for the whole query.
2008-11-11 13:10:51 +04:00
Mattias Jonsson
a891c0e8f4 Bug#40595: Non-matching rows not released with READ-COMMITTED
on tables with partitions

Problem was that the handler function try_semi_consistent_read
was not propagated to the innodb handler.

Solution was to implement that function in the partitioning
handler.
2008-11-10 21:13:24 +01:00
Georgi Kodinov
90bc97a583 merged 5.1 main -> 5.1-bugteam 2008-11-06 16:18:25 +02:00
Mattias Jonsson
534a421b7f merge 2008-11-06 07:29:07 +01:00
Evgeny Potemkin
009d5097c9 Merged fix for the bug#37870. 2008-11-05 23:46:24 +03:00
Mattias Jonsson
f2f556cfc7 merge 2008-11-05 20:44:19 +01:00
Evgeny Potemkin
d0c490e5e8 Bug#37870: Usage of uninitialized value caused failed assertion.
The convert_constant_item function converts a constant to integer using
field for condition like 'field = a_constant'. In some cases the
convert_constant_item is called for a subquery when outer select is already
being executed, so convert_constant_item saves field's value to prevent its
corruption. For EXPLAIN and at the prepare phase field's value isn't
initialized yet, thus when convert_constant_item tries to restore saved
value it fails assertion.

Now the convert_constant_item doesn't save/restore field's value if it's
haven't been read yet. Outer constant values are always saved.
2008-11-05 18:40:23 +03:00
Mattias Jonsson
b1cf4dcd3c Bug#40494: MYSQL server crashes on range access with partitioning and
order by

Problem was that the first index read was unordered,
and the next was ordered, resulting in use of
uninitialized data.

Solution was to use the correct variable to see if
the 'next' call should be ordered or not.
2008-11-05 15:53:28 +01:00
Matthias Leich
458e8f7567 Merge of bug fix into actual tree 2008-11-04 19:02:56 +01:00
Matthias Leich
b86e9931d5 - Fix for Bug #39848, #39863, #39978, #39569
Bug#39848 events_bugs fails sporadically on pushbuild
            (missing rows in table event_log)
     Details: Reimplement the subtest for BUG 28924
              - check if the number of rows within the table
                event_log changes but don't print rows
                because the number varies depending on
                load on testing box
              - shift DROP USER befor DROP EVENT
                = Subtest fits again to old bug
              - remove no more needed comments + variables
  Bug#39863 events_bugs fails sporadically on pushbuild 
            (extra processes in I_S.PROCESSLIST)
     Details: Abort with appropriate message to the protocol if
              release_lock() does not has the intended effect.
              This cannot prevent problems caused by the probably
              buggy release_lock() but it reveals if we had a
              problem in this area.
  Bug#39978 main.events_bugs does not clean up
     Detail: Restore global.event_scheduler = ON at end of test
  Bug#39569 events_bugs fails sporadically on pushbuild
            (should have failed with errno 1539)
     Detail: Set $wait_timeout to 4 instead of 2
- Fix two instabilities (result sets pulled from processlist in
  subtest for bug 16407) which were found during tests with high
  parallel I/O load
- Minor improvements of formatting
  Details:
  - Add comments
  - Remove tabs and trailing blanks
  - Add line breaks for better readability
2008-11-04 12:27:21 +01:00
Mattias Jonsson
e87883a0e7 merge 2008-11-04 09:47:01 +01:00
Mattias Jonsson
01a61865a6 merge 2008-11-04 09:36:56 +01:00
Mattias Jonsson
2c7d4e80a2 merge 2008-11-04 08:55:43 +01:00
Mattias Jonsson
abd09620db Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output
The partitioning clause is only a very long single line, which is very
hard to interpret for a human. This patch breaks the partitioning
syntax into one line for the partitioning type, and one line per
partition/subpartition.
2008-11-04 08:43:21 +01:00
Mats Kindahl
5a897c8b4e Merging with 5.1-5.1.29-rc 2008-11-03 18:50:49 +01:00
Mats Kindahl
32c9fe6bf5 Bug #40360: Binlog related errors with binlog off
Adding missing drop of created table and tidying display.
2008-11-03 18:46:47 +01:00
Mats Kindahl
005e7fc3ba Bug #40360: Binlog related errors with binlog off
When statement-based replication is used, and the
transaction isolation level is READ-COMMITTED or stricter,
InnoDB will print an error because statement-based
replication might lead to inconsistency between master
and slave databases. However, when the binary log is not
engaged, this is not an issue and an error should
not be printed.

This patch makes thd_binlog_format() return BINLOG_FORMAT_
UNSPEC when the binary log is not engaged for the given
thread.
2008-11-03 12:14:48 +01:00
Georgi Kodinov
34d993ac49 merged 5.0 bug 33811 -> 5.1 bug 33811 working tree 2008-11-03 12:40:58 +02:00
Georgi Kodinov
ccef156af4 merged 5.0-bugteam -> bug 33811-5.0-bugteam working tree 2008-11-03 11:50:32 +02:00
Kristofer Pettersson
5ef41db4a3 Fixed race condition in test case status2. A 'disconnect' issues an
implicit command which isn't completed immediately.
2008-10-31 10:25:03 +01:00
Mattias Jonsson
aebc974df9 merge 2008-10-29 23:01:41 +01:00
Mattias Jonsson
cb6cb742f3 Bug#39084: Getting intermittent errors with statement-based binary logging
Problem was that partitioning cached the table flags.
These flags could change due to TRANSACTION LEVEL changes.
Solution was to remove the cache and always return the table flags
from the first partition (if the handler was initialized).
2008-10-29 21:20:04 +01:00
Sergey Glukhov
918b26b26a automerge 2008-10-27 17:11:44 +04:00
Evgeny Potemkin
314048bd7d Merged fix for the bug#37870. 2008-10-27 15:04:51 +03:00
Sergey Glukhov
156823c849 5.0-bugteam->5.1-bugteam merge(bug#39040) 2008-10-27 15:58:51 +04:00
Sergey Glukhov
f3a4a18640 Bug#39040 valgrind errors/crash when creating views with binlog logging enabled
A string buffers which were included in the 'view' data structure
were allocated on the stack, causing an invalid pointer when used
after the function returned.
The fix: use copy of values for view->md5 & view->queries
2008-10-27 14:22:38 +04:00
Evgeny Potemkin
170215e696 Bug#37870: Usage of uninitialized value caused failed assertion.
The convert_constant_item function converts a constant to integer using
field for condition like 'field = a_constant'. When the convert_constant_item
is called for a subquery the outer select is already being executed, so
convert_constant_item saves field's value to prevent its corruption.
For EXPLAIN field's value isn't initialized thus when convert_constant_item
tries to restore saved value it fails assertion.
      
Now the convert_constant_item doesn't save/restore field's value
for EXPLAIN.
2008-10-27 12:26:32 +03:00
Serge Kozlov
c0db5ae4ea Bug#22442, removed number of port 2008-10-26 22:34:24 +03:00
Serge Kozlov
9740e4b571 Bug#22442.
1. Replace --sleep by wait_* primitive
2. Vertical output for SHOW SLAVE STATUS
3. Updated result file
2008-10-26 21:53:21 +03:00
Davi Arnaut
b94e41a1a2 Post-merge fix: Update warning number due to repositioning in the error list. 2008-10-26 15:05:24 -02:00
Davi Arnaut
be7629e370 Merge from mysql-5.1-5.1.29-rc into mysql-5.1-bugteam 2008-10-24 11:58:48 -02:00
Davi Arnaut
1585368047 Merge from mysql-5.0-bugteam into mysql-5.1-bugteam 2008-10-24 10:50:59 -02:00
Ramil Kalimullin
adf630dcee Fix for bug#23113: Different behavior on altering ENUM fields between 5.0 and 5.1
Problem: mysqld doesn't detect that enum data must be reinserted performing
'ALTER TABLE' in some cases.

Fix: reinsert data altering an enum field if enum values are changed.
2008-10-24 13:00:03 +05:00