Commit 84c13fdf authored by unknown's avatar unknown
Browse files

Merge bk-internal.mysql.com:/home/bk/mysql-5.1-new

into  shellback.(none):/home/msvensson/mysql/mysql-5.1


client/mysqltest.c:
  Auto merged
include/config-win.h:
  Auto merged
include/m_ctype.h:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/r/subselect.result:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
storage/csv/ha_tina.h:
  Auto merged
strings/ctype-bin.c:
  Auto merged
strings/ctype-euc_kr.c:
  Auto merged
strings/ctype-gb2312.c:
  Auto merged
strings/ctype-ucs2.c:
  Auto merged
storage/csv/ha_tina.cc:
  SCCS merged
parents ee75eaa3 3e2cf766
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -850,6 +850,7 @@ my_bool my_gethwaddr(uchar *to);
#define PROT_WRITE       2
#define MAP_NORESERVE    0
#define MAP_SHARED       0x0001
#define MAP_PRIVATE      0x0002
#define MAP_NOSYNC       0x0800
#define MAP_FAILED       ((void *)-1)
#define MS_SYNC          0x0000
+53 −2
Original line number Diff line number Diff line
@@ -230,6 +230,8 @@ our $opt_client_ddd;
our $opt_manual_gdb;
our $opt_manual_ddd;
our $opt_manual_debug;
our $opt_debugger;
our $opt_client_debugger;

our $opt_gprof;
our $opt_gprof_dir;
@@ -633,6 +635,8 @@ sub command_line_setup () {
             'manual-debug'             => \$opt_manual_debug,
             'ddd'                      => \$opt_ddd,
             'client-ddd'               => \$opt_client_ddd,
	     'debugger=s'               => \$opt_debugger,
	     'client-debugger=s'        => \$opt_client_debugger,
             'strace-client'            => \$opt_strace_client,
             'master-binary=s'          => \$exe_master_mysqld,
             'slave-binary=s'           => \$exe_slave_mysqld,
@@ -812,7 +816,8 @@ sub command_line_setup () {

  # Check debug related options
  if ( $opt_gdb || $opt_client_gdb || $opt_ddd || $opt_client_ddd ||
       $opt_manual_gdb || $opt_manual_ddd || $opt_manual_debug)
       $opt_manual_gdb || $opt_manual_ddd || $opt_manual_debug ||
       $opt_debugger || $opt_client_debugger )
  {
    # Indicate that we are using debugger
    $glob_debugger= 1;
@@ -2798,6 +2803,10 @@ sub mysqld_start ($$$$$) {
  {
    ddd_arguments(\$args, \$exe, "$type"."_$idx");
  }
  elsif ( $opt_debugger )
  {
    debugger_arguments(\$args, \$exe, "$type"."_$idx");
  }
  elsif ( $opt_manual_debug )
  {
     print "\nStart $type in your debugger\n" .
@@ -3324,6 +3333,10 @@ sub run_mysqltest ($) {
  {
    ddd_arguments(\$args, \$exe, "client");
  }
  elsif ( $opt_client_debugger )
  {
    debugger_arguments(\$args, \$exe, "client");
  }

  if ($glob_use_libtool and $opt_valgrind)
  {
@@ -3476,6 +3489,42 @@ sub ddd_arguments {
  mtr_add_arg($$args, "$save_exe");
}


#
# Modify the exe and args so that program is run in the selected debugger
#
sub debugger_arguments {
  my $args= shift;
  my $exe=  shift;
  my $debugger= $opt_debugger || $opt_client_debugger;

  if ( $debugger eq "vcexpress" or $debugger eq "vc")
  {
    # vc[express] /debugexe exe arg1 .. argn

    # Add /debugexe and name of the exe before args
    unshift(@$$args, "/debugexe");
    unshift(@$$args, "$$exe");

  }
  elsif ( $debugger eq "windbg" )
  {
    # windbg exe arg1 .. argn

    # Add name of the exe before args
    unshift(@$$args, "$$exe");

  }
  else
  {
    mtr_error("Unknown argument \"$debugger\" passed to --debugger");
  }

  # Set exe to debuggername
  $$exe= $debugger;
}


#
# Modify the exe and args so that program is run in valgrind
#
@@ -3588,6 +3637,8 @@ Options for debugging the product
  client-gdb            Start mysqltest client in gdb
  ddd                   Start mysqld in ddd
  client-ddd            Start mysqltest client in ddd
  debugger=NAME         Start mysqld in the selected debugger
  client-debugger=NAME  Start mysqltest in the selected debugger
  strace-client         FIXME
  master-binary=PATH    Specify the master "mysqld" to use
  slave-binary=PATH     Specify the slave "mysqld" to use
+1 −4
Original line number Diff line number Diff line
@@ -43,22 +43,19 @@ int my_getpagesize(void)
void *my_mmap(void *addr, size_t len, int prot,
               int flags, int fd, my_off_t offset)
{
  DWORD flProtect=0;
  HANDLE hFileMap;
  LPVOID ptr;
  HANDLE hFile= (HANDLE)_get_osfhandle(fd);
  if (hFile == INVALID_HANDLE_VALUE)
    return MAP_FAILED;

  flProtect|=SEC_COMMIT;

  hFileMap=CreateFileMapping(hFile, &mmap_security_attributes,
                             PAGE_READWRITE, 0, (DWORD) len, NULL);
  if (hFileMap == 0)
    return MAP_FAILED;

  ptr=MapViewOfFile(hFileMap,
                    flags & PROT_WRITE ? FILE_MAP_WRITE : FILE_MAP_READ,
                    prot & PROT_WRITE ? FILE_MAP_WRITE : FILE_MAP_READ,
                    (DWORD)(offset >> 32), (DWORD)offset, len);

  /*
+20 −11
Original line number Diff line number Diff line
@@ -49,7 +49,6 @@
#include "mysql_priv.h"

#include "ha_tina.h"
#include <sys/mman.h>

#include <mysql/plugin.h>

@@ -161,7 +160,7 @@ int get_mmap(TINA_SHARE *share, int write)
      share->mapped_file= (byte *)my_mmap(NULL, share->file_stat.st_size,
                                          PROT_READ, MAP_PRIVATE,
                                          share->data_file, 0);
    if ((share->mapped_file ==(caddr_t)-1))
    if ((share->mapped_file == MAP_FAILED))
    {
      /*
        Bad idea you think? See the problem is that nothing actually checks
@@ -499,7 +498,7 @@ ha_tina::ha_tina(TABLE_SHARE *table_arg)
  records_is_known(0)
{
  /* Set our original buffers from pre-allocated memory */
  buffer.set(byte_buffer, IO_SIZE, system_charset_info);
  buffer.set((char*)byte_buffer, IO_SIZE, system_charset_info);
  chain= chain_buffer;
}

@@ -877,7 +876,8 @@ int ha_tina::write_row(byte * buf)

  size= encode_quote(buf);

  if (my_write(share->data_file, buffer.ptr(), size, MYF(MY_WME | MY_NABP)))
  if (my_write(share->data_file, (byte*)buffer.ptr(), size,
               MYF(MY_WME | MY_NABP)))
    DBUG_RETURN(-1);

  /*
@@ -929,7 +929,8 @@ int ha_tina::update_row(const byte * old_data, byte * new_data)
  if (chain_append())
    DBUG_RETURN(-1);

  if (my_write(share->data_file, buffer.ptr(), size, MYF(MY_WME | MY_NABP)))
  if (my_write(share->data_file, (byte*)buffer.ptr(), size,
               MYF(MY_WME | MY_NABP)))
    DBUG_RETURN(-1);

  /* UPDATE should never happen on the log tables */
@@ -1130,7 +1131,7 @@ int ha_tina::rnd_end()
  if ((chain_ptr - chain)  > 0)
  {
    tina_set *ptr;
    off_t length;
    size_t length;

    /*
      Setting up writable map, this will contain all of the data after the
@@ -1154,15 +1155,16 @@ int ha_tina::rnd_end()
      length= length - (size_t)(ptr->end - ptr->begin);
    }

    /* Truncate the file to the new size */
    if (my_chsize(share->data_file, length, 0, MYF(MY_WME)))
    /* Unmap the file before the new size is set */
    if (my_munmap(share->mapped_file, share->file_stat.st_size))
      DBUG_RETURN(-1);
    /* We set it to null so that get_mmap() won't try to unmap it */
    share->mapped_file= NULL;

    if (my_munmap(share->mapped_file, length))
    /* Set the file to the new size */
    if (my_chsize(share->data_file, length, 0, MYF(MY_WME)))
      DBUG_RETURN(-1);

    /* We set it to null so that get_mmap() won't try to unmap it */
    share->mapped_file= NULL;
    if (get_mmap(share, 0) > 0)
      DBUG_RETURN(-1);
  }
@@ -1281,6 +1283,13 @@ int ha_tina::delete_all_rows()
  if (!records_is_known)
    DBUG_RETURN(my_errno=HA_ERR_WRONG_COMMAND);

  /* Unmap the file before the new size is set */
  if (share->mapped_file && my_munmap(share->mapped_file,
                                      share->file_stat.st_size))
    DBUG_RETURN(-1);
  share->mapped_file= NULL;

  /* Truncate the file to zero size */
  rc= my_chsize(share->data_file, 0, 0, MYF(MY_WME));

  if (get_mmap(share, 0) > 0)
+3 −3
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ typedef struct st_tina_share {
  ha_rows rows_recorded;    /* Number of rows in tables */
} TINA_SHARE;

typedef struct tina_set {
struct tina_set {
  off_t begin;
  off_t end;
};