An error occurred fetching the project authors.
  1. 18 Oct, 2007 1 commit
    • unknown's avatar
      Bug#31473 · 57600b02
      unknown authored
        "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.
      
      
      mysql-test/r/csv.result:
        test for bug 31473
      mysql-test/r/log_tables.result:
        change in results due to bugfix 31473
      mysql-test/r/system_mysql_db.result:
        change in results due to bugfix 31473
      mysql-test/t/csv.test:
        test for bug 31473
      mysql-test/t/log_tables.test:
        due to bug31473, all columns in CSV tables must be declared as NOT NULL
      scripts/mysql_system_tables.sql:
        due to bug31473, all columns in CSV tables must be declared as NOT NULL
      storage/csv/ha_tina.cc:
        bug31473
          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;
      57600b02
  2. 17 Oct, 2007 1 commit
    • unknown's avatar
      Fix for BUG#24923: Functions with ENUM issues. · 9e1604a4
      unknown authored
      The problem was that the RETURNS column in the mysql.proc was of
      CHAR(64). That was not enough for storing long-named datatypes.
      
      The fix is to change CHAR(64) to LONGBLOB, and to throw warnings
      at the time a stored routine is created if some data is truncated
      during writing into mysql.proc.
      
      
      mysql-test/r/sp.result:
        Update test result.
      mysql-test/t/sp.test:
        Add a test case for BUG#24923.
      scripts/mysql_system_tables.sql:
        Change the data type of column 'returns' from char(64) to longblob.
      scripts/mysql_system_tables_fix.sql:
        Change the data type of column 'returns' from char(64) to longblob.
      sql/sp.cc:
        Produce warnings if any data was truncated during writing
        into mysql.proc.
      sql/sp.h:
        Add new error code.
      sql/share/errmsg.txt:
        Add new error message.
      sql/sql_parse.cc:
        Hande
      9e1604a4
  3. 27 Aug, 2007 3 commits
  4. 26 Jul, 2007 1 commit
    • unknown's avatar
      Fix for BUG#30029: mysql_upgrade fails for 5.0 -> 5.1.21, · 1336b0eb
      unknown authored
      5.1.20 -> 5.1.21 upgrades.
      
      We generate mysql_fix_privilege.sql file, which contains SQL
      statements required to upgrade the system database. This script
      is generated by concatenation of mysql_system_tables.sql and
      mysql_system_tables_fix.sql.
      
      The problem was that
        - in order to create general_log and slow_log tables we use
          stored programs in mysql_system_tables.sql;
        - we upgrade mysql.proc table in mysql_system_tables_fix.sql;
      
      So, if mysql.proc table needs to be upgraded, stored procedures
      can not be used in mysql_system_tables.sql.
      
      In other words, in mysql_system_tables.sql stored programs must
      not be used because they may be unavailable at this point.
      
      The fix is to use dynamic SQL instead of stored programs.
      
      There is no test case for this bug because our test suite
      is not suitable for such test cases. system_mysql_db_fix* test
      cases play with the database "test". Here we need to modify
      the system database and we can not do that in the test suite.
      
      
      scripts/mysql_system_tables.sql:
        Use dynamic SQL instead of stored programs.
      1336b0eb
  5. 28 Jun, 2007 1 commit
    • unknown's avatar
      Patch for the following bugs: · 405f82d3
      unknown authored
        - 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;
      
      
      client/mysqldump.c:
        Set original character set and collation before dumping definition query.
      include/my_sys.h:
        Move out-parameter to the end of list.
      mysql-test/lib/mtr_report.pl:
        Ignore server-warnings during the test case.
      mysql-test/r/create.result:
        Update result file.
      mysql-test/r/ctype_cp932_binlog_stm.result:
        Update result file.
      mysql-test/r/events.result:
        Update result file.
      mysql-test/r/events_bugs.result:
        Update result file.
      mysql-test/r/events_grant.result:
        Update result file.
      mysql-test/r/func_in.result:
        Update result file.
      mysql-test/r/gis.result:
        Update result file.
      mysql-test/r/grant.result:
        Update result file.
      mysql-test/r/information_schema.result:
        Update result file.
      mysql-test/r/information_schema_db.result:
        Update result file.
      mysql-test/r/lowercase_view.result:
        Update result file.
      mysql-test/r/mysqldump.result:
        Update result file.
      mysql-test/r/ndb_sp.result:
        Update result file.
      mysql-test/r/ps.result:
        Update result file.
      mysql-test/r/rpl_replicate_do.result:
        Update result file.
      mysql-test/r/rpl_sp.result:
        Update result file.
      mysql-test/r/rpl_trigger.result:
        Update result file.
      mysql-test/r/rpl_view.result:
        Update result file.
      mysql-test/r/show_check.result:
        Update result file.
      mysql-test/r/skip_grants.result:
        Update result file.
      mysql-test/r/sp-destruct.result:
        Update result file.
      mysql-test/r/sp-error.result:
        Update result file.
      mysql-test/r/sp-security.result:
        Update result file.
      mysql-test/r/sp.result:
        Update result file.
      mysql-test/r/sql_mode.result:
        Update result file.
      mysql-test/r/system_mysql_db.result:
        Update result file.
      mysql-test/r/temp_table.result:
        Update result file.
      mysql-test/r/trigger-compat.result:
        Update result file.
      mysql-test/r/trigger-grant.result:
        Update result file.
      mysql-test/r/trigger.result:
        Update result file.
      mysql-test/r/view.result:
        Update result file.
      mysql-test/r/view_grant.result:
        Update result file.
      mysql-test/t/events.test:
        Update test case (new columns added).
      mysql-test/t/information_schema.test:
        Update test case (new columns added).
      mysql-test/t/show_check.test:
        Test case for SHOW CREATE TRIGGER in prepared statements and
        stored routines.
      mysql-test/t/sp-destruct.test:
        Update test case (new columns added).
      mysql-test/t/sp.test:
        Update test case (new columns added).
      mysql-test/t/view.test:
        Update test.
      mysys/charset.c:
        Move out-parameter to the end of list.
      scripts/mysql_system_tables.sql:
        Add new columns to mysql.proc and mysql.event.
      scripts/mysql_system_tables_fix.sql:
        Add new columns to mysql.proc and mysql.event.
      sql/event_data_objects.cc:
        Support new attributes for events.
      sql/event_data_objects.h:
        Support new attributes for events.
      sql/event_db_repository.cc:
        Support new attributes for events.
      sql/event_db_repository.h:
        Support new attributes for events.
      sql/events.cc:
        Add new columns to SHOW CREATE event resultset.
      sql/mysql_priv.h:
        1. Introduce Object_creation_ctx;
        2. Introduce SHOW CREATE TRIGGER;
        3. Introduce auxilary functions.
      sql/sp.cc:
        Add support for new store routines attributes.
      sql/sp_head.cc:
        Add support for new store routines attributes.
      sql/sp_head.h:
        Add support for new store routines attributes.
      sql/sql_lex.cc:
        Generate UTF8-body on parsing/lexing.
      sql/sql_lex.h:
        1. Generate UTF8-body on parsing/lexing.
        2. Introduce SHOW CREATE TRIGGER.
      sql/sql_parse.cc:
        Introduce SHOW CREATE TRIGGER.
      sql/sql_partition.cc:
        Update parse_sql().
      sql/sql_prepare.cc:
        Update parse_sql().
      sql/sql_show.cc:
        Support new attributes for views
      sql/sql_trigger.cc:
        Support new attributes for views
      sql/sql_trigger.h:
        Support new attributes for views
      sql/sql_view.cc:
        Support new attributes for views
      sql/sql_yacc.yy:
        1. Add SHOW CREATE TRIGGER statement.
        2. Generate UTF8-body for views, stored routines, triggers and events.
      sql/table.cc:
        Introduce Object_creation_ctx.
      sql/table.h:
        Introduce Object_creation_ctx.
      sql/share/errmsg.txt:
        Add new errors.
      mysql-test/include/ddl_i18n.check_events.inc:
        Aux file for test suite.
      mysql-test/include/ddl_i18n.check_sp.inc:
        Aux file for test suite.
      mysql-test/include/ddl_i18n.check_triggers.inc:
        Aux file for test suite.
      mysql-test/include/ddl_i18n.check_views.inc:
        Aux file for test suite.
      mysql-test/include/have_cp1251.inc:
        Aux file for test suite.
      mysql-test/include/have_cp866.inc:
        Aux file for test suite.
      mysql-test/include/have_koi8r.inc:
        Aux file for test suite.
      mysql-test/include/have_utf8.inc:
        Aux file for test suite.
      mysql-test/r/ddl_i18n_koi8r.result:
        Result file.
      mysql-test/r/ddl_i18n_utf8.result:
        Result file.
      mysql-test/r/have_cp1251.require:
        Aux file for test suite.
      mysql-test/r/have_cp866.require:
        Aux file for test suite.
      mysql-test/r/have_koi8r.require:
        Aux file for test suite.
      mysql-test/r/have_utf8.require:
        Aux file for test suite.
      mysql-test/t/ddl_i18n_koi8r.test:
        Complete koi8r test case for the CS patch.
      mysql-test/t/ddl_i18n_utf8.test:
        Complete utf8 test case for the CS patch.
      405f82d3
  6. 18 Apr, 2007 1 commit
    • unknown's avatar
      Update mysql_upgrade tests for 5.1 · 07ec45cc
      unknown authored
      Add "two liner" to mysqld --bootstrap that allows
      wo write scripts that can be run both by mysql and mysqld --bootstrap
      Remove duplicate create of MySQL system tables 
      
      
      mysql-test/r/mysql_upgrade.result:
        Update mysql_upgrade.result for new tables in 5.1
      scripts/mysql_system_tables.sql:
        Use "delimiter ;;" to make it possible to run the script
        both with "mysql" and "mysqld --bootstrap"
      scripts/mysql_system_tables_fix.sql:
        Remove duplicate stored procedure for creating slow_log
        and general_log.
        Remove duplicate CREATE of ndb_binlog_index.
        Those are already defined in mysql_system_tables.sql
      sql/sql_parse.cc:
        Make "mysqld --bootstrap skip lines startig with "delimiter"
        thus making it possible to write sql scripts containing
        stored procedures that can be executed both  with "mysql" and
        "mysqld --bootstrap"
      07ec45cc
  7. 17 Apr, 2007 1 commit
    • unknown's avatar
      Bug#27783 mysql_install_db should be able to install again, preserving existing files. · e83e62ca
      unknown authored
       - Allow mysql_install_db to be run a second time in the same
         datadir to create and fill any missing system tables
      
      
      scripts/mysql_install_db.sh:
        Remove check that dissallowed running mysql_install_db a second time
        in same directory
      scripts/mysql_system_tables.sql:
        Save information about if tables db and user already existed
      scripts/mysql_system_tables_data.sql:
        Fill tables db and user with initial data if tables
        didn't already exist.
      e83e62ca
  8. 12 Apr, 2007 1 commit
    • unknown's avatar
      Bug#27783 mysql_install_db should be able to install again, preserving existing files. · 87a99ed7
      unknown authored
       - Allow mysql_install_db to be run a second time in the same
         datadir to create and fill any missing system tables
      
      
      scripts/mysql_install_db.sh:
        Remove check that dissallowed running mysql_install_db a second time
        in same directory
      scripts/mysql_system_tables.sql:
        Save information about if tables db and user already existed
      scripts/mysql_system_tables_data.sql:
        Fill tables db and user with initial data if tables
        didn't already exist.
      87a99ed7
  9. 29 Mar, 2007 1 commit
    • unknown's avatar
      WL#3629 - Replication of Invocation and Invoked Features · 75686dc7
      unknown authored
      This patch corrects errors that occurred in a local manual merge as a result
      of updating the local repository and includes changes necessary to correct 
      problems found during the recalculation of next execution of events in RBR.
      
      
      mysql-test/include/rpl_events.inc:
        WL#3629 - Replication of Invocation and Invoked Features
        
        This patch changes the rpl_events test to be more comprehensive in catching
        errors as a result of RBR. Changes include clarification of SELECTs with
        WHERE clauses and synchronization with master and slave.
      mysql-test/r/rpl_events.result:
        WL#3629 - Replication of Invocation and Invoked Features
        
        This patch changes the results for the rpl_events test to accomodate the changes
        in the test.
      scripts/mysql_system_tables.sql:
        WL#3629 - Replication of Invocation and Invoked Features
        
        This patch adds the originator column and a new enum value to the mysql.event table.
        This change was necessary to accomodate changes as a result of other patches.
      sql/event_data_objects.cc:
        WL#3629 - Replication of Invocation and Invoked Features
        
        This patch corrects an error in merging that occurred during manual merge.
        The status check was changed to include either ENABLED or DISABLED in the
        gate to change the status to SLAVESIDE_DISABLED for events replicated to 
        the slave.
        
        This patch also includes an update to correct a problem encountered during
        testing after the local merge. The update_timing_fields method is replicating
        the timing changes in RBR to the slave thereby over writing the change to the
        status column in the process. This code includes a check to turn off the next
        binlog event if in RBR.
      sql/event_queue.cc:
        WL#3629 - Replication of Invocation and Invoked Features
        
        This patch corrects an error in merging that occurred during manual merge.
        The code was corrected to include both types of disabled status enums
        (DISABLED, SLAVESIDE_DISABLED) in the create_event and update_event methods.
      sql/sql_show.cc:
        WL#3629 - Replication of Invocation and Invoked Features
        
        This patch corrects an error in merging that occurred during manual merge.
        It corrects the order in which the originator column appears in the show
        structures. The error caused incorrect output on SHOW EVENTS commands.
      75686dc7
  10. 21 Mar, 2007 1 commit
    • unknown's avatar
      Fix a broken merge. · 33a51fd8
      unknown authored
      scripts/mysql_system_tables.sql:
        Add time_zone to the list of mysql.event columns.
      scripts/mysql_system_tables_fix.sql:
        Update after a bad merge: now mysql_system_tables_fix contains
        only alter definitions, no CREATE definitions (single definition
        source approach that was implemented by Magnus).
      33a51fd8
  11. 28 Feb, 2007 1 commit
    • unknown's avatar
      Bug#20166 mysql-test-run.pl does not test system privilege tables creation · 838e89de
      unknown authored
       - Split out initial data in mysql_system_tables.sql to  it's own file
       - Use file from mysql_install_db and mysql-test-run
      
      
      scripts/mysql_system_tables_fix.sql:
        Rename: scripts/mysql_fix_privilege_tables.sql.in -> scripts/mysql_system_tables_fix.sql
      mysql-test/mysql-test-run.pl:
        - Add mysql_system_tables_data.sql as part of the bootstrap
        - Remove the addition of pid to end of bootstrap.sql, now
          to file used for bootstrap will be $opt_vardir/tmp/bootstrap.sql
        - Improve error message descibing how to find cause of a
          failed bootstrap
      scripts/Makefile.am:
        - Rename mysql_fix_privileg_tables.sql.in to mysql_system_tables_fix.sql
        - Build mysql_fix_privilege_tables from mysql_system_tables.sql and
          mysql_system_tables_fix.sql
        - Add mysql_system_tables_fix.sql to EXTRA_DIST
      scripts/mysql_install_db.sh:
        - Use mysql_system_tables_data.sql file when bootstrapping
          mysql, it will contain initial data for MysQL system tables
      scripts/mysql_system_tables.sql:
        Move initial data for system tables to it's own file
      scripts/mysql_system_tables_data.sql:
        Move initial data for system tables to it's own file
      838e89de
  12. 27 Feb, 2007 3 commits
  13. 26 Feb, 2007 1 commit
    • unknown's avatar
      Bug#20166 mysql-test-run.pl does not test system privilege tables creation · 5d4e0417
      unknown authored
       - Use mysql_system_tables.sql to create MySQL system tables in
         all places where we create them(mysql_install_db, mysql-test-run-pl
         and mysql_fix_privilege_tables.sql)
      
      
      BitKeeper/deleted/.del-init_db.sql:
        Rename: mysql-test/init_db.sql -> BitKeeper/deleted/.del-init_db.sql
      BitKeeper/deleted/.del-init_db.sql~a77d572c39d5a1f8:
        Rename: mysql-test/lib/init_db.sql -> BitKeeper/deleted/.del-init_db.sql~a77d572c39d5a1f8
      BitKeeper/deleted/.del-mysql_create_system_tables.sh:
        Rename: scripts/mysql_create_system_tables.sh -> BitKeeper/deleted/.del-mysql_create_system_tables.sh
      BitKeeper/etc/ignore:
        Added scripts/mysql_fix_privilege_tables.sql to the ignore list
      mysql-test/Makefile.am:
        lib/init_db.sql has been removed
      mysql-test/mysql-test-run.pl:
        - Build var/tmp/bootstrap.sql from mysql_system_tables.sql,
        mysql_test_data_timezone.sql and fill_help_tables.sql and use
        it when bootsraping the system tables to use during test.
      mysql-test/r/create.result:
        Update result file
      mysql-test/r/derived.result:
        Update result file
      mysql-test/r/join.result:
        Update result file
      mysql-test/r/mysql_upgrade.result:
        Update result file
      mysql-test/r/sp-security.result:
        Update result file
      mysql-test/t/create.test:
        Add user mysqltest_1 before trying to connect as that user - no
        anon users by default anymore
      mysql-test/t/derived.test:
        Add user mysqltest_1 before trying to connect as that user - no
        anon users by default anymore
      mysql-test/t/grant2.test:
        Add anonymous users for part of thes that need it.
      mysql-test/t/grant_cache.test:
        Add anonymous users for part of thes that need it.
      mysql-test/t/init_connect.test:
        Add anonymous users for part of thes that need it.
      mysql-test/t/lock_multi.test:
        Add anonymous users for part of thes that need it.
      mysql-test/t/ndb_basic.test:
        Connect as "root", blank user will take currently logged in
        username
      mysql-test/t/ndb_index_ordered.test:
        Connect as "root", blank user will take currently logged in
        username
      mysql-test/t/ndb_multi.test:
        Connect as "root", blank user will take currently logged in
        username
      mysql-test/t/overflow.test:
        Connect as root - no anonymous users by default anymore
      mysql-test/t/rpl_temporary.test:
        Add anonymous users for the test
      mysql-test/t/xa.test:
        Connect as "root", blank user wil pick currently logged in user
      scripts/Makefile.am:
        Remove mysql_create_system_tables.sh
        Add mysql_system_tables.sql and mysql_test_data_timezone.sql
        Build mysql_fix_privilege_tables.sql from mysql_system_tables.sql
        and mysql_fix_privilege_tables.sql.in
      scripts/mysql_fix_privilege_tables.sh:
        Update message describing what the script does
      scripts/mysql_fix_privilege_tables.sql.in:
        Remove the part that creates system tables as that will be added to
        mysql_fix_privileg_tables.sql from mysql_system_tables.sql
        Change all comments to use #
      scripts/mysql_install_db.sh:
        Use mysql_system_tables.sql to create the MySQL system tables
        Update comments and indentation
        Add more descriptive comments about --windows switch
        Reduce number of hardcoded names for the SQL files the script
        looks for
      mysql-test/include/add_anonymous_users.inc:
        New BitKeeper file ``mysql-test/include/add_anonymous_users.inc''
      mysql-test/include/delete_anonymous_users.inc:
        New BitKeeper file ``mysql-test/include/delete_anonymous_users.inc''
      scripts/mysql_system_tables.sql:
        New BitKeeper file ``scripts/mysql_system_tables.sql''
      scripts/mysql_test_data_timezone.sql:
        New BitKeeper file ``scripts/mysql_test_data_timezone.sql''
      5d4e0417