Loading sql/item.cc +1 −1 Original line number Diff line number Diff line Loading @@ -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(); } /**********************************************/ Loading tests/mysql_client_test.c +52 −2 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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, Loading Loading @@ -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 */ Loading Loading @@ -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 } }; Loading Loading
sql/item.cc +1 −1 Original line number Diff line number Diff line Loading @@ -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(); } /**********************************************/ Loading
tests/mysql_client_test.c +52 −2 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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, Loading Loading @@ -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 */ Loading Loading @@ -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 } }; Loading