An error occurred fetching the project authors.
  1. 11 Feb, 2012 1 commit
    • Vladislav Vaintroub's avatar
      A recent change in the server protocol code broke SSL connection for some client libraries. · 51b6c4e6
      Vladislav Vaintroub authored
      Protocol documentation (http://forge.mysql.com/wiki/MySQL_Internals_ClientServer_Protocol)
      says that initial packet sent by client if client wants SSL, consists of client capability flags only
      (4 bytes or 2 bytes edependent on protocol versionl). 
      Some clients happen to send more in the initial SSL packet (C client, Python connector), while others (Java, .NET) follow the docs and send only client capability flags.
      
      A change that broke Java client was a newly introduced check that frst client packet
      has 32 or more bytes. This is generally wrong, if client capability flags contains CLIENT_SSL.
      
      Also, fixed the code such that read max client packet size and charset in the first packet prior to SSL handshake.  With SSL, clients do not have to send this info, they can only send client flags.
      
      This is now fixed such that max packet size and charset are not read prior to SSL handshake, in case of SSL they are read from the "complete" client authentication packet after SSL initialization.
      51b6c4e6
  2. 02 Jan, 2012 1 commit
    • Tatjana Azundris Nuernberg's avatar
      BUG#11755281/47032: ERROR 2006 / ERROR 2013 INSTEAD OF PROPER ERROR MESSAGE · aae0f547
      Tatjana Azundris Nuernberg authored
      If init_command was incorrect, we couldn't let users execute
      queries, but we couldn't report the issue to the client either
      as it does not expect error messages before even sending a
      command. Thus, we simply disconnected them without throwing
      a clear error.
      
      We now go through the proper sequence once (without executing
      any user statements) so we can report back what the problem
      is. Only then do we disconnect the user.
      
      As always, root remains unaffected by this as init_command is
      (still) not executed for them.
      
      mysql-test/r/init_connect.result:
        We now report a proper error if init_command fails.
        Expect as much.
      mysql-test/t/init_connect.test:
        We now report a proper error if init_command fails.
        Expect as much.
      sql/sql_connect.cc:
        If init_command fails, throw an error explaining this to
        the user.
      aae0f547
  3. 08 Dec, 2011 1 commit
  4. 28 Nov, 2011 1 commit
  5. 22 Nov, 2011 1 commit
  6. 26 Sep, 2011 1 commit
    • Michael Widenius's avatar
      Allow one to block an account by using GRANT max_user_connections = -1 · 88b03b95
      Michael Widenius authored
      One can set @@global.max_user_connections to -1 to block anyone, except SUPER user, to login.
      If max_user_connection is 0, one can't change it without a restart (needed to get user connections counting to work correctly)
      
      
      mysql-test/r/system_mysql_db.result:
        Changed max_user_connections to handle negative numbers.
      mysql-test/r/user_limits-2.result:
        New test case that one can't change max_user_connection if it was 0
      mysql-test/r/user_limits.result:
        Fixed wrong error messages.
      mysql-test/r/variables.result:
        Store / restore max_user_connections (needed as there is now a --master.opt file that changes it)
      mysql-test/t/subselect_mat_cost-master.opt:
        Enable slow query log (as this test found some errors in slow query logging)
      mysql-test/t/user_limits-2.test:
        New test case that one can't change max_user_connection if it was 0
      mysql-test/t/user_limits-master.opt:
        Set max_user_connections (as one can't change it if it was 0)
      mysql-test/t/user_limits.test:
        Test max_user_connections -1
      mysql-test/t/variables-master.opt:
        Set max_user_connections (as one can't change it if it was 0)
      mysql-test/t/variables.test:
        Set/restore max_user_connections
      scripts/Makefile.am:
        Add a text message to mysql_fix_privilege_tables.sql that it's automaticly generated
      scripts/mysql_system_tables.sql:
        Change max_user_connections to signed
      scripts/mysql_system_tables_fix.sql:
        Change max_user_connections to signed
      sql/item_func.cc:
        Change SHOW_INT to be signed.
        (Needed for max_user_connections and it's probably a bug that it was not originally signed)
      sql/log.cc:
        Remove some code that was not needed (All these variables are reset at start of query)
      sql/mysql_priv.h:
        Made max_user_connections signed.
        Added max_user_connections_checking
      sql/mysqld.cc:
        Added max_user_connections_checking so that we know if max_user_connections was 0 at startup
        (Which means that we will not do connection counting for accounts that don't have user resource limits)
        Set thd->start_utime at same time as thr_create_utime. (Before start_utime could be < thr_create_utime which lead to wrong query counting)
      sql/set_var.cc:
        Don't allow one to change 'max_user_connections' if it was 0 at startup.
      sql/sql_acl.cc:
        Change user_connection counting to be negative.
      sql/sql_connect.cc:
        If max_user_connections is < 0 then only SUPER user can login.
        Fixed wrong variable names for error messages.
        Fixed wrong initial value for questions.
        Set thd->start_utime and thd->thr_create_utime at startup.  Needed to get time_out_user_resource_limits() to work.
      sql/sql_show.cc:
        SHOW_INT is now negative
      sql/sql_yacc.yy:
        Support negative values for MAX_USER_CONNECTIONS
      sql/structs.h:
        Make user connect counting work with signed numbers.
      88b03b95
  7. 22 Sep, 2011 1 commit
    • Michael Widenius's avatar
      Added new options to KILL. New syntax is KILL [HARD|SOFT] [CONNECTION|QUERY] [ID | USER user_name] · 8d0c4696
      Michael Widenius authored
      - If USER is given, all threads for that user is signaled
      - If SOFT is used then the KILL will not be sent to the handler. This can be used to not interrupt critical things in the handler like 'REPAIR'.
      
      Internally added more kill signals. This gives us more information of why a query/connection was killed.
      - KILL_SERVER is used when server is going down. In this case the users gets ER_SHUTDOWN as the reason connection was killed.
      - Changed signals to number in correct order, which makes it easier to test how the signal should affect the code.
      - New error message ER_CONNECTION_KILLED if connection was killed by 'KILL CONNECTION'. Before we got error ER_SHUTDOWN.
      
      Changed names of not used parameters KILL_QUERY & KILL_CONNCTION to mysql_kill() to not conflict with defines in the server
      
      
      include/mysql.h.pp:
        Updated file
      include/mysql_com.h:
        Changed names of not used parameters KILL_QUERY & KILL_CONNCTION to mysql_kill() to not conflict with defines in the server
      mysql-test/r/kill.result:
        Added test of KILL USER
      mysql-test/suite/rpl/r/rpl_stm_000001.result:
        Updated error code
      mysql-test/suite/rpl/t/rpl_stm_000001.test:
        Updated error codes
      mysql-test/t/flush_read_lock_kill.test:
        Updated error codes
      mysql-test/t/kill.test:
        Added test of KILL USER
      plugin/handler_socket/handlersocket/database.cpp:
        Removed THD:: from KILL
      sql/debug_sync.cc:
        Removed THD:: from KILL
      sql/event_scheduler.cc:
        Removed THD:: from KILL
      sql/filesort.cc:
        Removed THD:: from KILL
      sql/ha_ndbcluster_binlog.cc:
        Removed THD:: from KILL
      sql/handler.cc:
        Removed THD:: from KILL
        Simplify code.
      sql/lex.h:
        Added new keywords HARD | SOFT
      sql/log.cc:
        Removed THD:: from KILL
        Added testing of new error ER_CONNECTION_KILLED
      sql/log_event.cc:
        Removed THD:: from KILL
        Added testing of new error ER_CONNECTION_KILLED
      sql/mysql_priv.h:
        Added new prototypes
      sql/mysqld.cc:
        Removed THD:: from KILL
        Use KILL_SERVER_HARD signal on shutdown.
      sql/scheduler.cc:
        Removed THD:: from KILL
        Simplify test if connection should be killed
      sql/share/errmsg.txt:
        New error message ER_CONNECTION_KILLED
      sql/slave.cc:
        Removed THD:: from KILL
      sql/sp_head.cc:
        Removed THD:: from KILL
      sql/sql_base.cc:
        Removed THD:: from KILL
      sql/sql_cache.cc:
        Removed THD:: from KILL
      sql/sql_class.cc:
        Removed THD:: from KILL
        Added killed_errno()
        Only signal kill to storage engine if HARD bit is set.
      sql/sql_class.h:
        Move KILL options out from THD to make them easier to use in sql_yacc.yy
      sql/sql_connect.cc:
        Removed THD:: from KILL
      sql/sql_delete.cc:
        Removed THD:: from KILL
      sql/sql_error.cc:
        Removed THD:: from KILL
      sql/sql_insert.cc:
        Removed THD:: from KILL
        Simplifed testing if thread is killed.
      sql/sql_lex.h:
        Added kill options to st_lex
      sql/sql_load.cc:
        Removed THD:: from KILL
      sql/sql_parse.cc:
        Added kill options to st_lex
        Simplifed and optimzed testing of thd->killed at end of query
        Added support for KILL USER
        Extended sql_kill() to allow use of more kill signals.
      sql/sql_repl.cc:
        Removed THD:: from KILL
      sql/sql_show.cc:
        Removed THD:: from KILL
        Simplied testing if query/connection was killed
      sql/sql_table.cc:
        Removed THD:: from KILL
      sql/sql_update.cc:
        Removed THD:: from KILL
      sql/sql_yacc.yy:
        Added support for new KILL syntax: KILL [HARD|SOFT] [CONNECTION|QUERY] [ID | USER user_name]
      storage/archive/ha_archive.cc:
        Simplify compilation
      storage/maria/ha_maria.cc:
        Removed THD:: from KILL
      8d0c4696
  8. 09 Sep, 2011 1 commit
    • Michael Widenius's avatar
      Fixed that automatic killing of delayed insert thread (in flush, alter table... · b08627f9
      Michael Widenius authored
      Fixed that automatic killing of delayed insert thread (in flush, alter table etc) will not abort auto-repair of MyISAM table.
      Give more information when finding an error in a MyISAM table.
      When killing system thread, use KILL_SYSTEM_THREAD instead of KILL_CONNECTION to make it easier to ignore the signal in sensitive context (like auto-repair)
      Added new kill level: KILL_SERVER that will in the future to be used to signal killed by shutdown.
      Add more warnings about killed connections when warning level > 3
      
      include/myisamchk.h:
        Added counting of printed info/notes
      mysys/mf_iocache.c:
        Remove duplicate assignment
      sql/handler.cc:
        Added test of KILL_SERVER
      sql/log.cc:
        Ignore new 'kill' error ER_NEW_ABORTING_CONNECTION when requesting query error code.
      sql/mysqld.cc:
        Add more warnings for killed connections when warning level > 3
      sql/scheduler.cc:
        Added checks for new kill signals
      sql/slave.cc:
        Ignore new kill signal ER_NEW_ABORTING_CONNECTION
      sql/sp_head.cc:
        Fixed assignment to bool
        Added testing of new kill signals
      sql/sql_base.cc:
        Use KILL_SYSTEM_THREAD to auto-kill system threads
      sql/sql_class.cc:
        Add more warnings for killed connections when warning level > 3
        thd_killed() now ignores KILL_BAD_DATA and THD::KILL_SYSTEM_THREAD as these should not abort sensitive operations.
      sql/sql_class.h:
        Added KILL_SYSTEM_THREAD and KILL_SERVER
      sql/sql_connect.cc:
        Added handling of KILL_SERVER
      sql/sql_insert.cc:
        Use KILL_SYSTEM_THREAD to auto-kill system threads
        Added handling of KILL_SERVER
      sql/sql_parse.cc:
        Add more warnings for killed connections when warning level > 3
        Added checking that thd->abort_on_warning is reset at end of query.
      sql/sql_show.cc:
        Update condition for when a query is 'killed'
      storage/myisam/ha_myisam.cc:
        Added counting of info/notes printed
      storage/myisam/mi_check.c:
        Always print an an error if we find data errors when checking/repairing a MyISAM table.
        When a repair was killed, don't retry repair.
        Added assert if sort_get_next_record() returned an error without an error message.
        Removed nonsence check "if (sort_param->read_cache.error < 0)" in repair.
      storage/myisam/myisamchk.c:
        Added counting of notes printed
      storage/pbxt/src/thread_xt.cc:
        Better error message.
      b08627f9
  9. 16 Aug, 2011 1 commit
    • Michael Widenius's avatar
      Fixed bug that MAX_USER_CONNECTIONS was not working properly in all situations... · c463f30c
      Michael Widenius authored
      Fixed bug that MAX_USER_CONNECTIONS was not working properly in all situations (which could cause aborted connects)
      thd->user_connect is now handled in thd->clenup() which will ensure that it works in all context (including slaves).
      I added also some DBUG_ASSERT() to ensure that things are working correctly.
      
      
      sql/sql_acl.cc:
        Reset thd->user_connect on failed check_for_max_user_connections() to ensure we don't decrement value twice.
        Removed not needed call to decrease_user_connections() as thd->cleanup() will now do it.
      sql/sql_class.cc:
        Call decrease_user_connections() in thd->cleanup()
      sql/sql_connect.cc:
        Ensure we don't allocate thd->user_connect twice.
        Simplify check_for_max_user_connections().
      sql/sql_parse.cc:
        Ensure that thd->user_connect is handled properly in for 'change_user' command.
      c463f30c
  10. 07 Jul, 2011 1 commit
  11. 02 Jul, 2011 1 commit
  12. 01 Jul, 2011 2 commits
  13. 27 Jun, 2011 1 commit
    • Michael Widenius's avatar
      New status variables: Rows_tmp_read, Handler_tmp_update and Handler_tmp_write · fd2b7c32
      Michael Widenius authored
      Split status variable Rows_read to Rows_read and Rows_tmp_read so that one can see how much real data is read.
      Same was done with with Handler_update and Handler_write.
      Fixed bug in MEMORY tables where some variables was counted twice.
      Added new internal handler call 'ha_close()' to have one place to gather statistics.
      Fixed bug where thd->open_options was set to wrong value when doing admin_recreate_table()
      
      
      mysql-test/r/status.result:
        Updated test results and added new tests
      mysql-test/r/status_user.result:
        Udated test results
      mysql-test/t/status.test:
        Added new test for temporary table status variables
      sql/ha_partition.cc:
        Changed to call ha_close() instead of close()
      sql/handler.cc:
        Added internal_tmp_table variable for easy checking of temporary tables.
        Added new internal handler call 'ha_close()' to have one place to gather statistics.
        Gather statistics for internal temporary tables.
      sql/handler.h:
        Added handler variables internal_tmp_table, rows_tmp_read.
        Split function update_index_statistics() to two.
        Added ha_update_tmp_row() for faster tmp table handling with more statistics.
      sql/item_sum.cc:
        ha_write_row() -> ha_write_tmp_row()
      sql/multi_range_read.cc:
        close() -> ha_close()
      sql/mysqld.cc:
        New status variables: Rows_tmp_read, Handler_tmp_update and Handler_tmp_write
      sql/opt_range.cc:
        close() -> ha_close()
      sql/sql_base.cc:
        close() -> ha_close()
      sql/sql_class.cc:
        Added handling of rows_tmp_read
      sql/sql_class.h:
        Added new satistics variables.
        rows_read++  ->  update_rows_read() to be able to correctly count reads to internal temp tables.
        Added handler::ha_update_tmp_row()
      sql/sql_connect.cc:
        Added comment
      sql/sql_expression_cache.cc:
        ha_write_row() -> ha_write_tmp_row()
      sql/sql_select.cc:
        close() -> ha_close()
        ha_update_row() -> ha_update_tmp_row()
      sql/sql_show.cc:
        ha_write_row() -> ha_write_tmp_row()
      sql/sql_table.cc:
        Fixed bug where thd->open_options was set to wrong value when doing admin_recreate_table()
      sql/sql_union.cc:
        ha_write_row() -> ha_write_tmp_row()
      sql/sql_update.cc:
        ha_write_row() -> ha_write_tmp_row()
      sql/table.cc:
        close() -> ha_close()
      storage/heap/ha_heap.cc:
        Removed double counting of statistic variables.
        close -> ha_close() to get tmp table statistics.
      storage/maria/ha_maria.cc:
        close -> ha_close() to get tmp table statistics.
      fd2b7c32
  14. 30 May, 2011 1 commit
    • Davi Arnaut's avatar
      Bug#12563279: REGRESSION IN HANDLING PRE-4.1 AUTHENTICATION PACKET · d7a01713
      Davi Arnaut authored
      The problem is that clients implementing the 4.0 version of the
      protocol (that is, mysql-4.0) do not null terminate a string
      at the end of the authentication packet. These clients denote
      the end of the string with the end of the packet.
      
      Although this goes against the documented (see MySQL Internals
      ClientServer Protocol wiki) description of the protocol, these
      old clients still need to be supported.
      
      The solution is to support the documented and actual behavior
      of the clients. If a client is using the pre-4.1 version of
      the protocol, the end of a string in the authentication packet
      can either be denoted with a null character or by the end of
      the packet. This restores backwards compatibility with old
      clients implementing either the documented or actual behavior.
      
      sql/password.c:
        The scrambled message, as provided by the user, might not be
        properly null terminated. If this is the case, uninitialized
        memory past the end of the buffer could theoretically be
        accessed. To ensure that this is never the case, copy the
        scrambled message over to a null terminated auxiliar buffer.
      sql/sql_connect.cc:
        Use different execution paths to read strings depending on the
        protocol being used. If version 4.0 of the protocol is used,
        end of string can be denoted with a NUL character or by the
        end of the packet.
        
        If there are not enough bytes left after the current position
        of the buffer to satisfy the current string, the string is
        considered to be empty. This is required because old clients
        do not send the password string field if the password is empty.
      d7a01713
  15. 19 May, 2011 1 commit
    • Sergei Golubchik's avatar
      many changes to my_getsystime.c: · 90b1a385
      Sergei Golubchik authored
      * my_getsystime() is only an interval timer. Its value can beused for calculating
        time intervals.
      * renamed my_getsystime() to my_interval_timer(), to make the semantics
        clearer and let the compiler catch wrong usages of my_getsystime()
        (also future ones, that may come in merges).
      * increased its granularity from 100ns to 1ns, old value was for UUID,
        but as UUID can no longer use it directly there is no need to downgrade
        the OS provided value
      * fixed the UUID code to anchor the my_interval_timer() on the epoch, as
        required by the UUID standard. That is, this was only needed by UUID,
        and now I've moved it to UUID code from my_getsystime().
      * fixed other wrong usages of my_getsystime() - e.g. in calculating
        times for pthread_cond_timedwait. It was buggy and could've caused
        long waits if OS clock would be changed.
      90b1a385
  16. 16 May, 2011 1 commit
    • Guilhem Bichot's avatar
      Fix for BUG#11755168 '46895: test "outfile_loaddata" fails (reproducible)'. · 1d0d7818
      Guilhem Bichot authored
      In sql_class.cc, 'row_count', of type 'ha_rows', was used as last argument for
      ER_TRUNCATED_WRONG_VALUE_FOR_FIELD which is
      "Incorrect %-.32s value: '%-.128s' for column '%.192s' at row %ld".
      So 'ha_rows' was used as 'long'.
      On SPARC32 Solaris builds, 'long' is 4 bytes and 'ha_rows' is 'longlong' i.e. 8 bytes.
      So the printf-like code was reading only the first 4 bytes.
      Because the CPU is big-endian, 1LL is 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01
      so the first four bytes yield 0. So the warning message had "row 0" instead of
      "row 1" in test outfile_loaddata.test:
      -Warning	1366	Incorrect string value: '\xE1\xE2\xF7' for column 'b' at row 1
      +Warning	1366	Incorrect string value: '\xE1\xE2\xF7' for column 'b' at row 0
      
      All error-messaging functions which internally invoke some printf-life function
      are potential candidate for such mistakes.
      One apparently easy way to catch such mistakes is to use
      ATTRIBUTE_FORMAT (from my_attribute.h).
      But this works only when call site has both:
      a) the format as a string literal
      b) the types of arguments.
      So:
        func(ER(ER_BLAH), 10);
      will silently not be checked, because ER(ER_BLAH) is not known at
      compile time (it is known at run-time, and depends on the chosen
      language).
      And
        func("%s", a va_list argument);
      has the same problem, as the *real* type of arguments is not
      known at this site at compile time (it's known in some caller).
      Moreover,
        func(ER(ER_BLAH));
      though possibly correct (if ER(ER_BLAH) has no '%' markers), will not
      compile (gcc says "error: format not a string literal and no format
      arguments").
      
      Consequences:
      1) ATTRIBUTE_FORMAT is here added only to functions which in practice
      take "string literal" formats: "my_error_reporter" and "print_admin_msg".
      2) it cannot be added to the other functions: my_error(),
      push_warning_printf(), Table_check_intact::report_error(),
      general_log_print().
      
      To do a one-time check of functions listed in (2), the following
      "static code analysis" has been done:
      1) replace
        my_error(ER_xxx, arguments for substitution in format)
      with the equivalent
        my_printf_error(ER_xxx,ER(ER_xxx), arguments for substitution in
      format),
      so that we have ER(ER_xxx) and the arguments *in the same call site*
      2) add ATTRIBUTE_FORMAT to push_warning_printf(),
      Table_check_intact::report_error(), general_log_print()
      3) replace ER(xxx) with the hard-coded English text found in
      errmsg.txt (like: ER(ER_UNKNOWN_ERROR) is replaced with
      "Unknown error"), so that a call site has the format as string literal
      4) this way, ATTRIBUTE_FORMAT can effectively do its job
      5) compile, fix errors detected by ATTRIBUTE_FORMAT
      6) revert steps 1-2-3.
      The present patch has no compiler error when submitted again to the
      static code analysis above.
      It cannot catch all problems though: see Field::set_warning(), in
      which a call to push_warning_printf() has a variable error
      (thus, not replacable by a string literal); I checked set_warning() calls
      by hand though.
      
      See also WL 5883 for one proposal to avoid such bugs from appearing
      again in the future.
      
      The issues fixed in the patch are:
      a) mismatch in types (like 'int' passed to '%ld')
      b) more arguments passed than specified in the format.
      This patch resolves mismatches by changing the type/number of arguments,
      not by changing error messages of sql/share/errmsg.txt. The latter would be wrong,
      per the following old rule: errmsg.txt must be as stable as possible; no insertions
      or deletions of messages, no changes of type or number of printf-like format specifiers,
      are allowed, as long as the change impacts a message already released in a GA version.
      If this rule is not followed:
      - Connectors, which use error message numbers, will be confused (by insertions/deletions
      of messages)
      - using errmsg.sys of MySQL 5.1.n with mysqld of MySQL 5.1.(n+1)
      could produce wrong messages or crash; such usage can easily happen if
      installing 5.1.(n+1) while /etc/my.cnf still has --language=/path/to/5.1.n/xxx;
      or if copying mysqld from 5.1.(n+1) into a 5.1.n installation.
      When fixing b), I have verified that the superfluous arguments were not used in the format
      in the first 5.1 GA (5.1.30 'bteam@astra04-20081114162938-z8mctjp6st27uobm').
      Had they been used, then passing them today, even if the message doesn't use them
      anymore, would have been necessary, as explained above.
      
      include/my_getopt.h:
        this function pointer is used only with "string literal" formats, so we can add
        ATTRIBUTE_FORMAT.
      mysql-test/collections/default.experimental:
        test should pass now
      sql/derror.cc:
        by having a format as string literal, ATTRIBUTE_FORMAT check becomes effective.
      sql/events.cc:
        Change justified by the following excerpt from sql/share/errmsg.txt:
        ER_EVENT_SAME_NAME
                eng "Same old and new event name"
        ER_EVENT_SET_VAR_ERROR
                eng "Error during starting/stopping of the scheduler. Error code %u"
      sql/field.cc:
        ER_TOO_BIG_SCALE 42000 S1009
                eng "Too big scale %d specified for column '%-.192s'. Maximum is %lu."
        ER_TOO_BIG_PRECISION 42000 S1009
                eng "Too big precision %d specified for column '%-.192s'. Maximum is %lu."
        ER_TOO_BIG_DISPLAYWIDTH 42000 S1009
                eng "Display width out of range for column '%-.192s' (max = %lu)"
      sql/ha_ndbcluster.cc:
        ER_OUTOFMEMORY HY001 S1001
                eng "Out of memory; restart server and try again (needed %d bytes)"
        (sizeof() returns size_t)
      sql/ha_ndbcluster_binlog.cc:
        Too many arguments for:
        ER_GET_ERRMSG  
                eng "Got error %d '%-.100s' from %s"
        Patch by Jonas Oreland.
      sql/ha_partition.cc:
        print_admin_msg() is used only with a literal as format, so ATTRIBUTE_FORMAT
        works.
      sql/handler.cc:
        ER_OUTOFMEMORY HY001 S1001
                eng "Out of memory; restart server and try again (needed %d bytes)"
        (sizeof() returns size_t)
      sql/item_create.cc:
        ER_TOO_BIG_SCALE 42000 S1009
                eng "Too big scale %d specified for column '%-.192s'. Maximum is %lu."
        ER_TOO_BIG_PRECISION 42000 S1009
                eng "Too big precision %d specified for column '%-.192s'. Maximum is %lu."
        'c_len' and 'c_dec' are char*, passed as %d !! We don't know their value
        (as strtoul() failed), but they are likely big, so we use INT_MAX.
        'len' is ulong.
      sql/item_func.cc:
        ER_WARN_DATA_OUT_OF_RANGE 22003 
                eng "Out of range value for column '%s' at row %ld"
        ER_CANT_FIND_UDF  
                eng "Can't load function '%-.192s'"
      sql/item_strfunc.cc:
        ER_TOO_BIG_FOR_UNCOMPRESS  
                eng "Uncompressed data size too large; the maximum size is %d (probably, length of uncompressed data was corrupted)"
        max_allowed_packet is ulong.
      sql/mysql_priv.h:
        sql_print_message_func is a function _pointer_.
      sql/sp_head.cc:
        ER_SP_RECURSION_LIMIT
                eng "Recursive limit %d (as set by the max_sp_recursion_depth variable) was exceeded for routine %.192s"
        max_sp_recursion_depth is ulong
      sql/sql_acl.cc:
        ER_PASSWORD_NO_MATCH 42000 
                eng "Can't find any matching row in the user table"
        ER_CANT_CREATE_USER_WITH_GRANT 42000
                eng "You are not allowed to create a user with GRANT"
      sql/sql_base.cc:
        ER_NOT_KEYFILE  
                eng "Incorrect key file for table '%-.200s'; try to repair it"
        ER_TOO_MANY_TABLES  
                eng "Too many tables; MySQL can only use %d tables in a join"
        MAX_TABLES is size_t.
      sql/sql_binlog.cc:
        ER_UNKNOWN_ERROR  
                eng "Unknown error"
      sql/sql_class.cc:
        ER_TRUNCATED_WRONG_VALUE_FOR_FIELD  
                eng "Incorrect %-.32s value: '%-.128s' for column '%.192s' at row %ld"
        WARN_DATA_TRUNCATED 01000 
                eng "Data truncated for column '%s' at row %ld"
      sql/sql_connect.cc:
        ER_HANDSHAKE_ERROR 08S01 
                eng "Bad handshake"
        ER_BAD_HOST_ERROR 08S01 
                eng "Can't get hostname for your address"
      sql/sql_insert.cc:
        ER_WRONG_VALUE_COUNT_ON_ROW 21S01 
                eng "Column count doesn't match value count at row %ld"
      sql/sql_parse.cc:
        ER_WARN_HOSTNAME_WONT_WORK  
                eng "MySQL is started in --skip-name-resolve mode; you must restart it without this switch for this grant to work"
        ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT
        	eng "Too high level of nesting for select"
        ER_UNKNOWN_ERROR  
                eng "Unknown error"
      sql/sql_partition.cc:
        ER_OUTOFMEMORY HY001 S1001
                eng "Out of memory; restart server and try again (needed %d bytes)"
      sql/sql_plugin.cc:
        ER_OUTOFMEMORY HY001 S1001
                eng "Out of memory; restart server and try again (needed %d bytes)"
      sql/sql_prepare.cc:
        ER_OUTOFMEMORY HY001 S1001
                eng "Out of memory; restart server and try again (needed %d bytes)"
        ER_UNKNOWN_STMT_HANDLER  
                eng "Unknown prepared statement handler (%.*s) given to %s"
        length value (for '%.*s') must be 'int', per the doc of printf()
        and the code of my_vsnprintf().
      sql/sql_show.cc:
        ER_OUTOFMEMORY HY001 S1001
                eng "Out of memory; restart server and try again (needed %d bytes)"
      sql/sql_table.cc:
        ER_TOO_BIG_FIELDLENGTH 42000 S1009
                eng "Column length too big for column '%-.192s' (max = %lu); use BLOB or TEXT instead"
      sql/table.cc:
        ER_NOT_FORM_FILE  
                eng "Incorrect information in file: '%-.200s'"
        ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE
                eng "Column count of mysql.%s is wrong. Expected %d, found %d. Created with MySQL %d, now running %d. Please use mysql_upgrade to fix this error."
        table->s->mysql_version is ulong.
      sql/unireg.cc:
        ER_TOO_LONG_TABLE_COMMENT
          eng "Comment for table '%-.64s' is too long (max = %lu)"
        ER_TOO_LONG_FIELD_COMMENT
          eng "Comment for field '%-.64s' is too long (max = %lu)"
        ER_TOO_BIG_ROWSIZE 42000 
                eng "Row size too large. The maximum row size for the used table type, not counting BLOBs, is %ld. You have to change some columns to TEXT or BLOBs"
      1d0d7818
  17. 09 May, 2011 1 commit
    • Kristofer Pettersson's avatar
      bug#10064164 · dc83bfd4
      Kristofer Pettersson authored
      Certain fields in the protcol required a strict formatting. If
      off bound values were sent to the server this could under some
      circumstances lead to a crash on the Windows platform.
      dc83bfd4
  18. 25 Apr, 2011 1 commit
  19. 11 Mar, 2011 1 commit
  20. 18 Feb, 2011 2 commits
    • Alexander Barkov's avatar
      Bug#11765108 (Bug#58036) client utf32, utf16, ucs2 should be disallowed, they crash server · e4090f81
      Alexander Barkov authored
      A separate fix for 5.1 (as 5.1 and 5.5 have seriously
      differged in the related pieces of the code).
      A patch for 5.5 was approved earlier.
      
      Problem: ucs2 was correctly disallowed in "SET NAMES" only,
      while mysql_real_connect() and mysql_change_user() still allowed
      to use ucs2, which made server crash.
      
      Fix: disallow ucs2 in mysql_real_connect() and mysql_change_user().
      
        @ sql/sql_priv.h
          - changing return type for thd_init_client_charset() to bool,
            to return errors to the caller
      
        @ sql/sql_var.cc
          - using new function
      
        @ sql/sql_connect.cc
          - thd_client_charset_init:
            in case of unsupported client character set send error and return true;
            in case of success return false
          - check_connection:
            Return error if character set initialization failed
      
        @ sql/sql_parse.cc
          - check charset in the very beginnig of the CMD_CHANGE_USER handling code
      
        @ tests/mysql_client_test.c
          - adding tests
      e4090f81
    • Alexander Barkov's avatar
      Bug#11765108 (Bug#58036) client utf32, utf16, ucs2 should be disallowed, they crash server · 001b560c
      Alexander Barkov authored
      Problem: ucs2 was correctly disallowed in "SET NAMES" only,
      while mysql_real_connect() and mysql_change_user() still allowed
      to use ucs2, which made server crash.
      
      Fix: disallow ucs2 in mysql_real_connect() and mysql_change_user().
      
        @ sql/set_var.cc
          Using new function.
      
        @ sql/sql_acl.cc
          - Return error if character set initialization failed
          - Getting rid of pointer aliasing:
            Initialize user_name to NULL, to avoid double free().
      
        @ sql/sql_connect.cc
          - in case of unsupported client character set send error and return true
          - in case of success return false
      
        @ sql/sql_connect.h
          - changing return type for thd_init_client_charset() to bool,
            to return errors to the caller
      
        @ sql/sql_parse.h
          - introducing a new function, to reuse in all places where we need
          to check client character set.
      
        @ tests/mysql_client_test.c
          Adding test
      001b560c
  21. 10 Feb, 2011 1 commit
  22. 15 Dec, 2010 1 commit
    • Davi Arnaut's avatar
      Bug#58136: Crash in vio_close at concurrent disconnect and KILL · 70d652d0
      Davi Arnaut authored
      The problem is a race between a session closing its vio
      (i.e. after a COM_QUIT) at the same time it is being killed by
      another thread. This could trigger a assertion in vio_close()
      as the two threads could end up closing the same vio, at the
      same time. This could happen due to the implementation of
      SIGNAL_WITH_VIO_CLOSE, which closes the vio of the thread
      being killed.
      
      The solution is to serialize the close of the Vio under
      LOCK_thd_data, which protects THD data.
      
      No regression test is added as this is essentially a debug
      issue and the test case would be quite convoluted as we would
      need to synchronize a session that is being killed -- which
      is a bit difficult since debug sync points code does not
      synchronize killed sessions.
      
      sql/mysqld.cc:
        Drop lock parameter from close_connection, its not necessary
        any more. The newly introduced THD::disconnect method will take
        care of locking.
      sql/mysqld.h:
        Change prototype, add a default parameter for the error code.
      sql/sql_class.cc:
        In case SIGNAL_WITH_VIO_CLOSE is defined, the active vio is
        closed and cleared. Subsequent calls will only close the vio
        owned by the session.
      70d652d0
  23. 08 Dec, 2010 1 commit
  24. 14 Dec, 2010 1 commit
    • Sergey Vojtovich's avatar
      WL#5571 - Audit interface: MYSQL_AUDIT_GENERAL_STATUS event · da6a6abc
      Sergey Vojtovich authored
      include/mysql/plugin_audit.h:
        Connection auditing class.
      include/mysql/plugin_audit.h.pp:
        Connection auditing class.
      sql/mysqld.cc:
        Notify disconnect to auditing.
      sql/sql_audit.cc:
        Connection class event dispatcher.
      sql/sql_audit.h:
        mysql_audit_notify() is not available in embedded.
      sql/sql_connect.cc:
        Notify connect to auditing.
      sql/sql_parse.cc:
        Notify user change to auditing.
      da6a6abc
  25. 11 Nov, 2010 1 commit
    • Tatiana A. Nurnberg's avatar
      Bug #49752: 2469.126.2 unintentionally breaks authentication against · 8c170933
      Tatiana A. Nurnberg authored
                        MySQL 5.1 server
      
      Server used to clip overly long user-names. This was presumably lost
      when code was made UTF8-clean.
      
      Now we emulate the behaviour for backward compatibility, but UTF8-ly
      correct.
      
      
      mysql-test/r/connect.result:
        Show that user-names that are too long get clipped now.
      mysql-test/t/connect.test:
        Show that user-names that are too long get clipped now.
      sql/sql_connect.cc:
        Clip user-name to 16 characters (not bytes).
      strings/CHARSET_INFO.txt:
        Clarify in docs.
      8c170933
  26. 03 Sep, 2010 1 commit
    • Michael Widenius's avatar
      Fix that one can run mysql_upgrade with long table names · 7c8d39d1
      Michael Widenius authored
      Fall back to use ALTER TABLE for engines that doesn't support REPAIR when doing repair for upgrade.
      Nicer output from mysql_upgrade and mysql_check
      Updated all arrays that used NAME_LEN to use SAFE_NAME_LEN to ensure that we don't break things accidently as names can now have a #mysql50# prefix.
      
      client/mysql_upgrade.c:
        If we are using verbose, also run mysqlcheck in verbose mode.
      client/mysqlcheck.c:
        Add more information if running in verbose mode
        Print 'Needs upgrade' instead of complex error if table needs to be upgraded
        Don't write connect information if verbose is not 2 or above
      mysql-test/r/drop.result:
        Updated test and results as we now support full table names
      mysql-test/r/grant.result:
        Now you get a correct error message if using #mysql with paths
      mysql-test/r/show_check.result:
        Update results as table names can temporarly be bigger than NAME_LEN (during upgrade)
      mysql-test/r/upgrade.result:
        Test upgrade for long table names.
      mysql-test/suite/funcs_1/r/is_tables_is.result:
        Updated old test result (had note been updated in a while)
      mysql-test/t/drop.test:
        Updated test and results as we now support full table names
      mysql-test/t/grant.test:
        Now you get a correct error message if using #mysql with paths
      mysql-test/t/upgrade.test:
        Test upgrade for long table names.
      sql/ha_partition.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/item.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/log_event.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/mysql_priv.h:
        Added SAFE_NAME_LEN
      sql/rpl_filter.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sp.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sp_head.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_acl.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_base.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_connect.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_parse.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_prepare.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_select.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_show.cc:
        NAME_LEN -> SAFE_NAME_LEN
        Enlarge table names for SHOW TABLES to also include optional #mysql50#
      sql/sql_table.cc:
        Fall back to use ALTER TABLE for engines that doesn't support REPAIR when doing repair for upgrade.
      sql/sql_trigger.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_udf.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/sql_view.cc:
        NAME_LEN -> SAFE_NAME_LEN
      sql/table.cc:
        Fixed check_table_name() to not count #mysql50# as part of name
        If #mysql50# is part of the name, don't allow path characters in name.
      7c8d39d1
  27. 09 Aug, 2010 1 commit
  28. 15 Jul, 2010 1 commit
  29. 08 Jul, 2010 1 commit
    • Davi Arnaut's avatar
      Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled · 3143a4dc
      Davi Arnaut authored
      Essentially, the problem is that safemalloc is excruciatingly
      slow as it checks all allocated blocks for overrun at each
      memory management primitive, yielding a almost exponential
      slowdown for the memory management functions (malloc, realloc,
      free). The overrun check basically consists of verifying some
      bytes of a block for certain magic keys, which catches some
      simple forms of overrun. Another minor problem is violation
      of aliasing rules and that its own internal list of blocks
      is prone to corruption.
      
      Another issue with safemalloc is rather the maintenance cost
      as the tool has a significant impact on the server code.
      Given the magnitude of memory debuggers available nowadays,
      especially those that are provided with the platform malloc
      implementation, maintenance of a in-house and largely obsolete
      memory debugger becomes a burden that is not worth the effort
      due to its slowness and lack of support for detecting more
      common forms of heap corruption.
      
      Since there are third-party tools that can provide the same
      functionality at a lower or comparable performance cost, the
      solution is to simply remove safemalloc. Third-party tools
      can provide the same functionality at a lower or comparable
      performance cost. 
      
      The removal of safemalloc also allows a simplification of the
      malloc wrappers, removing quite a bit of kludge: redefinition
      of my_malloc, my_free and the removal of the unused second
      argument of my_free. Since free() always check whether the
      supplied pointer is null, redudant checks are also removed.
      
      Also, this patch adds unit testing for my_malloc and moves
      my_realloc implementation into the same file as the other
      memory allocation primitives.
      
      client/mysqldump.c:
        Pass my_free directly as its signature is compatible with the
        callback type -- which wasn't the case for free_table_ent.
      3143a4dc
  30. 22 Jun, 2010 1 commit
    • MySQL Build Team's avatar
      Backport into build-201006221614-5.1.46sp1 · 38d16cd5
      MySQL Build Team authored
      > ------------------------------------------------------------
      > revno: 1810.3987.14
      > revision-id: davi.arnaut@sun.com-20100429132816-ictyul6d75itek22
      > parent: ramil@mysql.com-20100429044232-f0pkyx8fnpszf142
      > committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
      > branch nick: 50974-5.0
      > timestamp: Thu 2010-04-29 10:28:16 -0300
      > message:
      >   Bug#50974: Server keeps receiving big (> max_allowed_packet) packets indefinitely.
      >   
      >   The server could be tricked to read packets indefinitely if it
      >   received a packet larger than the maximum size of one packet.
      >   This problem is aggravated by the fact that it can be triggered
      >   before authentication.
      >   
      >   The solution is to no skip big packets for non-authenticated
      >   sessions. If a big packet is sent before a session is authen-
      >   ticated, a error is returned and the connection is closed.
      
      > ------------------------------------------------------------
      > revno: 3363 [merge]
      > revision-id: davi.arnaut@sun.com-20100429231819-i3anwzrdasjmezvt
      > parent: davi.arnaut@sun.com-20100401131522-895y8uzvv8ag44gs
      > parent: davi.arnaut@sun.com-20100429132816-ictyul6d75itek22
      > committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
      > branch nick: mysql-5.1-bugteam
      > timestamp: Thu 2010-04-29 20:18:19 -0300
      > message:
      >   Manual merge.
      > ------------------------------------------------------------
      > Use --include-merges or -n0 to see merged revisions.
      38d16cd5
  31. 10 Jun, 2010 1 commit
  32. 07 Jun, 2010 1 commit
    • Mats Kindahl's avatar
      WL#5363: Thread Pool Service Interface · 3682329c
      Mats Kindahl authored
      In order to allow thread schedulers to be dynamically loaded,
      it is necessary to make the following changes to the server:
      
      - Two new service interfaces
      
      - Modifications to InnoDB to inform the thread scheduler of state changes.
      
      - Changes to the VIO subsystem for checking if data is available on a socket.
      
      - Elimination of remains of the old thread pool implementation.
      
      The two new service interfaces introduces are:
      
      my_thread_scheduler
        A service interface to register a thread
        scheduler.
      
      thd_wait
        A service interface to inform thread scheduler
        that the thread is about to start waiting.
      
      In addition, the patch adds code that:
      
      - Add a call to thd_wait for table locks in mysys
        thd_lock.c by introducing a set function that
        can be used to set a callback to be used when
        waiting on a lock and resuming from waiting.
      
      - Calling the mysys set function from the server
        to set the callbacks correctly.
      
      3682329c
  33. 04 Jun, 2010 1 commit
    • Ramil Kalimullin's avatar
      Fix for bug #53912: Fails to build from source · bf682832
      Ramil Kalimullin authored
      NET::skip_big_packet isn't defined for the embedded server,
      hide it in such a case.
      
      
      sql/sql_connect.cc:
        Fix for bug #53912: Fails to build from source
          - hide net.skip_big_packet for the embedded server,
        as it isn't defined there.
      bf682832
  34. 13 Apr, 2010 1 commit
    • Konstantin Osipov's avatar
      Backport of: · 64c937b7
      Konstantin Osipov authored
      ChangeSet@1.2703, 2007-12-07 09:35:28-05:00, cmiller@zippy.cornsilk.net +40 -0
      Bug#13174: SHA2 function
      Patch contributed from Bill Karwin, paper unnumbered CLA in Seattle
      
      Implement SHA2 functions.
      
      Chad added code to make it work with YaSSL.  Also, he removed the 
      (probable) bug of embedded server never using SSL-dependent 
      functions.  (libmysqld/Makefile.am didn't read ANY autoconf defs.)
      
      Function specification:
        SHA2( string cleartext, integer hash_length ) 
          -> string hash, or NULL
      where hash_length is one of 224, 256, 384, or 512.  If either is 
      NULL or a length is unsupported, then the result is NULL.  The 
      resulting string is always the length of the hash_length parameter
      or is NULL.
      
      Include the canonical hash examples from the NIST in the test
      results.
      ---
      Polish and address concerns of reviewers.
      
      
      .bzrignore:
        Added libmysqld/sha2.cc to the ignore list.
      client/mysql.cc:
        Add condition to remove code for embedded server.
      client/mysqltest.cc:
        Add condition to remove code for embedded server.
      include/Makefile.am:
        New header file to header list.
      include/mysql_embed.h:
        Embedded servers can use SSL-library functions too!
      include/sha2.h:
        Compatibility layer to make YaSSL behave like OpenSSL.
      include/sslopt-case.h:
        Remove SSL-communication parameters from command lines.
      include/sslopt-longopts.h:
        Remove SSL-communication parameters from command lines.
      include/sslopt-vars.h:
        Don't declare variables that are only used in SSL communication, if
        we are compiling the embedded server.
      include/violite.h:
        Don't even compile the SSL-communication function if we're in the
        embedded server.
        ---
        Remove CPP condition indentation.
      libmysqld/CMakeLists.txt:
        Add new file to source list.
      libmysqld/Makefile.am:
        Include standard DEFS in embedded compilation.  It's an undiscovered
        but that it's not there.
        
        Add new file to source list.
      libmysqld/examples/Makefile.am:
        Include autoconf DEFS.
      libmysqld/lib_sql.cc:
        Initialize SSL-related variables in embedded server.
      mysql-test/include/have_ssl_crypto_functs.inc:
        Distinguish between communication and crypto.
        Use the tristate value of "have_ssl" variable to know whether to
        test or not for SSL-provided crypto functions.
      mysql-test/r/func_digest.result:
        
        Test against the sample test vectors in the NIST Secure
        Hash Standard (http://csrc.nist.gov/cryptval/shs.htm)
      mysql-test/r/func_encrypt_nossl.result:
        Update results to the new error message text.
      mysql-test/r/have_ssl_is_yes_or_disabled_only.require:
        Distinguish between communication and crypto.
        
        Use the tristate value of "have_ssl" variable to know whether to
        test or not for SSL-provided crypto functions.
      mysql-test/suite/rpl/t/rpl_ssl.test:
        Distinguish between communication and crypto.
      mysql-test/suite/rpl/t/rpl_ssl1.test:
        Distinguish between communication and crypto.
      mysql-test/t/func_des_encrypt.test:
        Distinguish between communication and crypto.
      mysql-test/t/func_digest.test:
        Test against the sample test vectors in the NIST Secure
        Hash Standard (http://csrc.nist.gov/cryptval/shs.htm)
        
        Also, test that various parameters (legal and illegal)
        do what we expect.
        ---
        Distinguish between communication and crypto.
      mysql-test/t/func_encrypt.test:
        Distinguish between communication and crypto.
      mysql-test/t/openssl_1.test:
        Don't test SSL communication if we're in the embedded server.
        ---
        Distinguish between communication and crypto.
      mysql-test/t/ssl-big.test:
        Don't test SSL communication if we're in the embedded server.
        ---
        Distinguish between communication and crypto.
      mysql-test/t/ssl.test:
        Don't test SSL communication if we're in the embedded server.
        ---
        Distinguish between communication and crypto.
      mysql-test/t/ssl_8k_key.test:
        Don't test SSL communication if we're in the embedded server.
        ---
        Distinguish between communication and crypto.
      mysql-test/t/ssl_compress.test:
        Don't test SSL communication if we're in the embedded server.
        ---
        Distinguish between communication and crypto.
      mysql-test/t/ssl_connect.test:
        Don't test SSL communication if we're in the embedded server.
        ---
        Distinguish between communication and crypto.
      sql-common/client.c:
        SSL is useful for more functionality than just connecting.  Test
        for whether we are not embedded server also.
      sql/CMakeLists.txt:
        Add new source file to source list so that we have access to SHA2
        functions.
      sql/Makefile.am:
        Add new source file to source list so that we have access to SHA2
        functions.
      sql/item_create.cc:
        Bootstrap the SHA2 function into the server.
      sql/item_strfunc.cc:
        Add new SHA2 Item class methods.
        
        Clean up two minor problems.
        ---
        Remove extraneous debugging.
        ---
        We must check nullness of a parameter only /after/ computing its
        value.
      sql/item_strfunc.h:
        Declare new SHA2 Item class.
      sql/mysqld.cc:
        For embedded server, don't refer to SSL-communications variables
        or values.
        ---
        Remove CPP condition indentation.
      sql/sha2.cc:
        Compatibility layer to make YaSSL behave like OpenSSL.
        ---
        Add comment for generated functions.
      sql/sql_acl.cc:
        For embedded server, don't refer to SSL-communications variables
        or values.
      sql/sql_connect.cc:
        SSL is useful for more functionality than just connecting.  Test
        for whether we are not embedded server also.
      sql/sys_vars.cc:
        For embedded server, don't refer to SSL-communications variables
        or values.
      64c937b7
  35. 07 Apr, 2010 1 commit
    • Mats Kindahl's avatar
      WL#5030: Splitting mysql_priv.h · a53fa615
      Mats Kindahl authored
      Adding my_global.h first in all files using
      NO_EMBEDDED_ACCESS_CHECKS.
      
      Correcting a merge problem resulting from a changed definition
      of check_some_access compared to the original patches.
      a53fa615
  36. 31 Mar, 2010 1 commit
    • Mats Kindahl's avatar
      WL#5030: Split and remove mysql_priv.h · 3538238a
      Mats Kindahl authored
      This patch:
      
      - Moves all definitions from the mysql_priv.h file into
        header files for the component where the variable is
        defined
      - Creates header files if the component lacks one
      - Eliminates all include directives from mysql_priv.h
      - Eliminates all circular include cycles
      - Rename time.cc to sql_time.cc
      - Rename mysql_priv.h to sql_priv.h
      3538238a
  37. 29 Mar, 2010 1 commit
    • Sergei Golubchik's avatar
      pluggable auth with plugin examples · f6ba3a74
      Sergei Golubchik authored
      Makefile.am:
        add new API files to the check_abi rule,
        remove duplicates
      client/CMakeLists.txt:
        now a client can use dlopen too
      client/Makefile.am:
        be csh-friendly
      include/my_global.h:
        add dummy plugs for dlopen and co.
        for the code that needs them to work in static builds
      mysys/Makefile.am:
        be csh-friendly
      plugin/auth/dialog.c:
        typo fixed
      f6ba3a74
  38. 23 Feb, 2010 1 commit