=== modified file 'driver/utility.c' --- driver/utility.c 2008-11-14 17:34:50 +0000 +++ driver/utility.c 2009-05-04 19:51:18 +0000 @@ -113,6 +113,8 @@ irrec->type= irrec->concise_type; break; } + irrec->datetime_interval_code= + get_dticode_from_concise_type(irrec->concise_type); irrec->type_name= (SQLCHAR *) irrec->row.type_name; irrec->length= get_column_size(stmt, field); /* prevent overflowing of result when ADO multiplies the length === modified file 'test/my_desc.c' --- test/my_desc.c 2009-01-14 21:47:51 +0000 +++ test/my_desc.c 2009-05-04 20:09:38 +0000 @@ -535,6 +535,26 @@ } +/* + Bug #44576 - SQL_DESC_DATETIME_INTERVAL_CODE not set on descriptor +*/ +DECLARE_TEST(t_bug44576) +{ + SQLSMALLINT interval_code; + SQLSMALLINT concise_type; + SQLHANDLE ird; + ok_stmt(hstmt, SQLGetStmtAttr(hstmt, SQL_ATTR_IMP_ROW_DESC, &ird, 0, NULL)); + ok_sql(hstmt, "select cast('2000-10-10' as date)"); + ok_desc(ird, SQLGetDescField(ird, 1, SQL_DESC_CONCISE_TYPE, &concise_type, + SQL_IS_SMALLINT, NULL)); + ok_desc(ird, SQLGetDescField(ird, 1, SQL_DESC_DATETIME_INTERVAL_CODE, + &interval_code, SQL_IS_SMALLINT, NULL)); + is_num(concise_type, SQL_TYPE_DATE); + is_num(interval_code, SQL_CODE_DATE); + return OK; +} + + BEGIN_TESTS ADD_TODO(t_desc_paramset) ADD_TEST(t_desc_set_error) @@ -545,6 +565,7 @@ ADD_TEST(t_mult_stmt_free) ADD_TEST(t_set_null_use_implicit) ADD_TEST(t_free_stmt_with_exp_desc) + ADD_TEST(t_bug44576) END_TESTS