Commit graph

59 commits

Author SHA1 Message Date
antony@pcg5ppc.xiphis.org
3b95727600 Merge anubis.xiphis.org:/usr/home/antony/work/mysql-5.1-engines
into  anubis.xiphis.org:/usr/home/antony/work/mysql-5.1-engines.merge
2007-10-19 13:06:37 -07:00
antony@pcg5ppc.xiphis.org
f4a153c3c4 Bug#31473
"CSV does not work with NULL value in datetime fields"
  Attempting to insert a row with a NULL value for a DATETIME field
  results in a CSV file which the storage engine cannot read.
  Don't blindly assume that "0" is acceptable for all field types,
  Since CSV does not support NULL, we find out from the field the
  default non-null value.
  Do not permit the creation of a table with a nullable columns.
2007-10-18 14:48:04 -07:00
anozdrin/alik@station.
f0d70d1184 Fix result files (BUG#24923). 2007-10-17 15:44:22 +04:00
anozdrin/alik@ibm.
9fae9ef66f Patch for the following bugs:
- BUG#11986: Stored routines and triggers can fail if the code
    has a non-ascii symbol
  - BUG#16291: mysqldump corrupts string-constants with non-ascii-chars
  - BUG#19443: INFORMATION_SCHEMA does not support charsets properly
  - BUG#21249: Character set of SP-var can be ignored
  - BUG#25212: Character set of string constant is ignored (stored routines)
  - BUG#25221: Character set of string constant is ignored (triggers)

There were a few general problems that caused these bugs:
1. Character set information of the original (definition) query for views,
   triggers, stored routines and events was lost.
2. mysqldump output query in client character set, which can be
   inappropriate to encode definition-query.
3. INFORMATION_SCHEMA used strings with mixed encodings to display object
   definition;

1. No query-definition-character set.

In order to compile query into execution code, some extra data (such as
environment variables or the database character set) is used. The problem
here was that this context was not preserved. So, on the next load it can
differ from the original one, thus the result will be different.

The context contains the following data:
  - client character set;
  - connection collation (character set and collation);
  - collation of the owner database;

The fix is to store this context and use it each time we parse (compile)
and execute the object (stored routine, trigger, ...).

2. Wrong mysqldump-output.

The original query can contain several encodings (by means of character set
introducers). The problem here was that we tried to convert original query
to the mysqldump-client character set.

Moreover, we stored queries in different character sets for different
objects (views, for one, used UTF8, triggers used original character set).

The solution is
  - to store definition queries in the original character set;
  - to change SHOW CREATE statement to output definition query in the
    binary character set (i.e. without any conversion);
  - introduce SHOW CREATE TRIGGER statement;
  - to dump special statements to switch the context to the original one
    before dumping and restore it afterwards.

Note, in order to preserve the database collation at the creation time,
additional ALTER DATABASE might be used (to temporary switch the database
collation back to the original value). In this case, ALTER DATABASE
privilege will be required. This is a backward-incompatible change.

3. INFORMATION_SCHEMA showed non-UTF8 strings

The fix is to generate UTF8-query during the parsing, store it in the object
and show it in the INFORMATION_SCHEMA.

Basically, the idea is to create a copy of the original query convert it to
UTF8. Character set introducers are removed and all text literals are
converted to UTF8.

This UTF8 query is intended to provide user-readable output. It must not be
used to recreate the object.  Specialized SHOW CREATE statements should be
used for this.

The reason for this limitation is the following: the original query can
contain symbols from several character sets (by means of character set
introducers).

Example:

  - original query:
    CREATE VIEW v1 AS SELECT _cp1251 'Hello' AS c1;

  - UTF8 query (for INFORMATION_SCHEMA):
    CREATE VIEW v1 AS SELECT 'Hello' AS c1;
2007-06-28 21:34:54 +04:00
cbell/Chuck@mysql_cab_desk.
a591514a67 Merge cbell@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl
into  mysql_cab_desk.:C:/source/c++/mysql-5.1-new-rpl
2007-03-29 09:54:59 -04:00
kroki/tomash@moonlight.home
6d8f6b5bfd BUG#16420: Events: timestamps become UTC
BUG#26429: SHOW CREATE EVENT is incorrect for an event that
           STARTS NOW()
BUG#26431: Impossible to re-create an event from backup if its
           STARTS clause is in the past
WL#3698: Events: execution in local time zone

The problem was that local times specified by the user in AT, STARTS
and ENDS of CREATE EVENT/ALTER EVENT statement were converted to UTC,
and the original time zone was forgotten.  This way, event scheduler
couldn't honor Daylight Saving Time shifts, and times shown to the
user were also in UTC.  Additionally, CREATE EVENT didn't allow times
in the past, thus preventing straightforward event restoration from
old backups.

This patch reworks event scheduler time computations, performing them
in the time zone associated with the event.  Also it allows times to
be in the past.

The patch adds time_zone column to mysql.event table.

NOTE: The patch is almost final, but the bug#9953 should be pushed
first.
2007-03-16 17:31:07 +03:00
cbell/Chuck@mysql_cab_desk.
3e44599c11 WL#3629 - Replication of Invocation and Invoked Features
This changeset adds replication of events and user-defined functions. 
There are several bug reports involved in this change:

BUG#16421, BUG#17857, BUG#20384:
This patch modifies the mysql.events table to permit the addition of
another enum value for the status column. The column now has values
of ('DISABLED','SLAVESIDE_DISABLED','ENABLED'). A status of
SLAVESIDE_DISABLED is set on the slave during replication of events.
This enables users to determine which events werereplicated from the 
master and to later enable them if they promote the slave to a master.
The CREATE, ALTER, and DROP statements are binlogged.
A new test was added for replication of events (rpl_events).

BUG#17671:
This patch modifies the code to permit logging of user-defined functions.
Note: this is the CREATE FUNCTION ... SONAME variety. A more friendly error 
message to be displayed should a replicated user-defined function not be
found in the loadable library or if the library is missing from the
slave.The CREATE andDROP statements are binlogged. A new test was added 
for replication of user-defined functions (rpl_udf). 

The patch also adds a new column to the mysql.event table named
'originator' that is used to store the server_id of the server that
the event originated on. This enables users to promote a slave to a 
master and later return the promoted slave to a slave and disable the
replicated events.
2007-03-16 09:56:57 -04:00
patg@radha.myhome.westell.com
b892f9adf8 WL #3031
* New result files due to new error message/error numbers
* Fixed system_mysql_db tests to work with servers table
* Added UTF8 charset to table defs
2006-12-11 11:44:03 -05:00
patg@govinda.patg.net
f9097b86af Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-5.1-arch
into  govinda.patg.net:/home/patg/mysql-build/mysql-5.1-arch-wl3031-merge
2006-12-08 22:30:18 -05:00
patg@govinda.patg.net
98062f567d WL# 3031
Post-commit issues fixed
* Test results for other tests fixed due to added error #s
* Memory allocation/free issues found with running with valgrind
* Fix to mysql-test-run shell script to run federated_server test (installs
mysql.servers table properly)
2006-12-08 22:19:51 -05:00
mskold/marty@mysql.com/linux.site
cde79e4f79 Changed mysql.apply_status, mysql.binlog_index, and mysql.schema to mysql.ndb_apply_status, mysql.ndb_binlog_index, and mysql.ndb_schema 2006-12-01 15:49:07 +01:00
monty@mysql.com/nosik.monty.fi
f6682e2743 Added --debug-info to most clients to detect memory leaks in mysql-test-run
Moved .progress files into the log directory
Moved 'cluster' database tables into the MySQL database, to not have 'cluster' beeing a reserved database name
Fixed bug where mysqld got a core dump when trying to use a table created by MySQL 3.23
Fixed some compiler warnings
Fixed small memory leak in libmysql
Note that this doesn't changeset doesn't include the new mysqldump.c code required to run some tests. This will be added when I merge 5.0 to 5.1
2006-11-21 22:32:58 +02:00
andrey@lmy004.
b4752351f2 Fix for bug #17394 - Events namespace is wrong 2006-05-29 10:39:45 +02:00
andrey@lmy004.
d770c77504 update 2006-03-25 13:14:52 +01:00
msvensson@neptunus.(none)
c4b1fb68b4 Bug#10460 SHOW CREATE TABLE uses inconsistent upper/lower case 2006-02-22 10:09:59 +01:00
jimw@mysql.com
95f1b04929 Remove extra space in SHOW CREATE TABLE output. (Bug #13883) 2006-02-02 11:39:28 -08:00
andrey@lmy004.
2a60c11fef partial fix for bug#16407 (sql_mode not regarded)
add sql_mode to mysql.event
WL#1034 (Internal CRON)
2006-01-31 16:01:27 +01:00
andrey@lmy004.
08892be32d post-merge fixes of fix for bug#16642 (No I_S.EVENTS table)
WL#1034 (Internal CRON)
2006-01-30 17:12:30 +01:00
andrey@lmy004.
204c566678 post-push fix of fix for bug #16401 (field should be char not varchar)
WL#1034 (Internal CRON)
2006-01-26 23:03:46 +01:00
cps@outpost.site
ce2eb6d8cb WL1019: complete patch. Reapplied patch to the clean
tree to get rid of multiple typos in CS comments and
unify the patch.
2006-01-19 05:56:06 +03:00
andrey@lmy004.
71eb7d7ec9 WL #1034 (Internal CRON) pre-push updates
- various fixes of test cases
(hopefully the last pre-push update before the push)
2006-01-11 18:09:05 +01:00
andrey@lmy004.
d2f0002e77 WL #1034 (Internal CRON) pre-push updates
- fixed test results
- fixed bug caught by information_schema.test . Bison temporal
  variables are very nice but extremely error-prone (Count one more
  time just to be sure).
2006-01-10 19:16:58 +01:00
svoj@poseidon.ndb.mysql.com
3791197f0d WL#2575 - Fulltext: Parser plugin for FTS
WL#2763 - MySQL plugin interface: step 1
Manual merge from CNET tree.
2005-11-06 13:13:06 +01:00
bar@mysql.com
39b0712cf7 type_binary.result, type_binary.test:
new file
mysql_fix_privilege_tables.sql, mysql_create_system_tables.sh:
  Adding true BINARY/VARBINARY: fixing "password" type, not to be 0x00-padding.
Many files:
  Adding true BINARY/VARBINARY: fixing tests not to output 0x00 bytes.
  Adding true BINARY/VARBINARY: new pad_char structure member.
ctype-bin.c:
  Adding true BINARY/VARBINARY: new pad_char structure member.
  New strnxfrm, with two trailing length bytes.
field.cc:
  Adding true BINARY/VARBINARY.
2005-10-13 19:16:19 +05:00
serg@serg.mylan
6716d16bc7 CHECKSUM TABLE now allows concurrent inserts 2005-09-27 20:11:09 +02:00
jimw@mysql.com
0536bd6679 Increase allowed size of stored procedure bodies to 4GB, and
produce a sensible error when that limit is exceeded. (Bug #11602)
2005-07-26 18:08:49 -07:00
pem@mysql.com
65fa6604f0 Updated system_mysql_db.result after mysql.proc definition changes. 2005-07-11 15:57:46 +02:00
bell@sanja.is.com.ua
bfbd0e241b added processing of view grants to table grants (BUG#9795) 2005-07-05 13:36:36 +03:00
ramil@ram-book.(none)
6737c2f67c test result change: now "enum... not null" doesn't print default value. 2005-05-18 14:02:03 +05:00
ramil@mysql.com
86538b338b Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/ram/work/5.0.b6267
2005-05-18 12:41:36 +05:00
acurtis@xiphis.org
8df5887ad5 Bug#10246 - Parser: bad syntax for GRANT EXECUTE
Rename some functions
  more fine-grained sp privileges
  make grant/revoke sp grammar less ambigious
2005-05-17 19:54:20 +01:00
ramil@ram-book.(none)
d85e052d71 a fix (bug #6267: ENUM ... NOT NULL w/o default treated differently than other data types).
the behavior of enum changed to be consistent.
2005-05-13 16:44:14 +05:00
jimw@mysql.com
36869043ec Resolve merge of fix for #8166. 2005-05-02 10:25:47 -07:00
mysqldev@mysql.com
ad26a667e6 sql_acl.cc, sql_acl.h, sql_parse.cc
New privilege CREATE USER (CREATE_USER_ACL, Create_user_priv) added
grant2.test:
  new tests (mostly backported from jani's patch)
system_mysql_db.result, sp.result, grant2.result, grant.result:
  results updated
2005-03-22 15:54:18 +01:00
jimw@mysql.com
2b2efa4208 Add all SQL_MODE settings to proc table. (Bug #8902) 2005-03-08 17:40:43 -08:00
jimw@mysql.com
e9a5b7d500 Clean up merge from 4.1, including making several enum fields
in the grant tables case-insensitive and updating test results.
2005-02-17 18:07:14 -08:00
jimw@mysql.com
7eb8c130f7 Merge 2005-02-17 16:16:58 -08:00
jimw@mysql.com
c4187750ff Fix all of the enum and set columns in privilege tables to be
case-insensitive. (Bug #7989)
2005-02-10 20:25:14 -08:00
jimw@mysql.com
21caf15bca Add Create_routine_priv, Alter_routine_priv, and Execute_priv privileges
to the 'host' privilege table. (Bug #8166)
2005-02-07 18:40:14 -08:00
monty@mysql.com
2299e1eca4 Better handling of ensuring that setup_tables() are not called twice
This fixed a bug in prepared statements when used with outher joins
Fixed a bug in SUM(DISTINCT) when used with prepared statements.
Some safety fixes in test scripts to ensure that previous test failures shouldn't affect other tests
2005-01-03 21:04:33 +02:00
dlenev@mysql.com
a8deefa3dd Manual merge of patch implementing WL#1339 with main tree. 2004-12-29 22:35:16 +03:00
dlenev@brandersnatch.localdomain
ffa7393330 WL#1339 "Add per account max_user_connections limit (maximum number
of concurrent connections for the same account)"

Added support of account specific max_user_connections limit. Made all
user limits to be counted per account instead of the old behavior,
which was per user/host accounting. Added option which enables the old
behavior. Added testing of these to the test suite.

(After review version).
2004-12-29 20:30:37 +03:00
acurtis@pcgem.rdg.cyberkinetica.com
b1e30904d5 WL#925 - Privileges for stored routines
Implement fine-grained control over access to stored procedures
  Privileges are cached (same way as existing table/column privs)
2004-12-23 10:46:24 +00:00
monty@mysql.com
67ce247965 Add support for up to VARCHAR (size up to 65535)
Renamed HA_VAR_LENGTH to HA_VAR_LENGTH_PART
Renamed in all files FIELD_TYPE_STRING and FIELD_TYPE_VAR_STRING to MYSQL_TYPE_STRING and MYSQL_TYPE_VAR_STRING to make it easy to catch all possible errors
Added support for VARCHAR KEYS to heap
Removed support for ISAM
Now only long VARCHAR columns are changed to TEXT on demand (not CHAR)
Internal temporary files can now use fixed length tables if the used VARCHAR columns are short
2004-12-06 02:00:37 +02:00
bell@sanja.is.com.ua
29593da2f6 showing table type now is controled by new parameter 'FULL' of SHOW TABLES command (SHOW FULL TABLES) (as it was decided on last dev conf) 2004-10-10 13:15:14 +03:00
monty@mysql.com
31122efde7 Merge with 4.1
(Includes merge of arena code in 4.1 and 5.0)
2004-09-06 15:14:10 +03:00
bar@mysql.com
f37df2fdcc Bug#4338 mysql-test-run fails if compiled with non-latin1 character set 2004-09-02 12:34:27 +05:00
serg@serg.mylan
a3c4a6d04b results updated 2004-07-20 16:51:30 +02:00
serg@serg.mylan
8d080cbcfa manual merge 2004-07-20 15:34:57 +02:00
bell@sanja.is.com.ua
c5a84657a8 standard values for table type in SHOW TABLES (BUG#4603) 2004-07-19 12:07:33 +03:00