Commit f4cfa793 authored by kostja@bodhi.(none)'s avatar kostja@bodhi.(none)
Browse files

Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime

into  bodhi.(none):/opt/local/work/mysql-5.0-runtime
parents a43431b3 ec5464d2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1621,7 +1621,7 @@ void Item_ident_for_show::make_field(Send_field *tmp_field)
  tmp_field->type=field->type();
  tmp_field->flags= field->table->maybe_null ? 
    (field->flags & ~NOT_NULL_FLAG) : field->flags;
  tmp_field->decimals= 0;
  tmp_field->decimals= field->decimals();
}

/**********************************************/
+52 −2
Original line number Diff line number Diff line
@@ -15570,7 +15570,7 @@ static void test_bug27876()
  int rc;
  MYSQL_RES *result;

  char utf8_func[] =
  unsigned char utf8_func[] =
  {
    0xd1, 0x84, 0xd1, 0x83, 0xd0, 0xbd, 0xd0, 0xba,
    0xd1, 0x86, 0xd0, 0xb8, 0xd0, 0xb9, 0xd0, 0xba,
@@ -15578,7 +15578,7 @@ static void test_bug27876()
    0x00
  };

  char utf8_param[] =
  unsigned char utf8_param[] =
  {
    0xd0, 0xbf, 0xd0, 0xb0, 0xd1, 0x80, 0xd0, 0xb0,
    0xd0, 0xbc, 0xd0, 0xb5, 0xd1, 0x82, 0xd1, 0x8a,
@@ -15735,6 +15735,55 @@ static void test_bug27592()
}


/**
  Bug#29306 Truncated data in MS Access with decimal (3,1) columns in a VIEW
*/

static void test_bug29306()
{
  MYSQL_FIELD *field;
  int rc;
  MYSQL_RES *res;

  DBUG_ENTER("test_bug29306");
  myheader("test_bug29306");

  rc= mysql_query(mysql, "DROP TABLE IF EXISTS tab17557");
  myquery(rc);
  rc= mysql_query(mysql, "DROP VIEW IF EXISTS view17557");
  myquery(rc);
  rc= mysql_query(mysql, "CREATE TABLE tab17557 (dd decimal (3,1))");
  myquery(rc);
  rc= mysql_query(mysql, "CREATE VIEW view17557 as SELECT dd FROM tab17557");
  myquery(rc);
  rc= mysql_query(mysql, "INSERT INTO tab17557 VALUES (7.6)");
  myquery(rc);

  /* Checking the view */
  res= mysql_list_fields(mysql, "view17557", NULL);
  while ((field= mysql_fetch_field(res)))
  {
    if (! opt_silent)
    {
      printf("field name %s\n", field->name);
      printf("field table %s\n", field->table);
      printf("field decimals %d\n", field->decimals);
      if (field->decimals < 1)
        printf("Error! No decimals! \n");
      printf("\n\n");
    }
    DIE_UNLESS(field->decimals == 1);
  }
  mysql_free_result(res);

  rc= mysql_query(mysql, "DROP TABLE tab17557");
  myquery(rc);
  rc= mysql_query(mysql, "DROP VIEW view17557");
  myquery(rc);

  DBUG_VOID_RETURN;
}

/*
  Read and parse arguments and MySQL options from my.cnf
*/
@@ -16019,6 +16068,7 @@ static struct my_tests_st my_tests[]= {
  { "test_bug28505", test_bug28505 },
  { "test_bug28934", test_bug28934 },
  { "test_bug27592", test_bug27592 },
  { "test_bug29306", test_bug29306 },
  { 0, 0 }
};