mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-22 16:43:03 +01:00
Fixed CORE-6303: Error writing to TIMESTAMP/TIME WITH TIME ZONE array
This commit is contained in:
parent
6ddbea64a9
commit
23906efcff
@ -64,6 +64,9 @@ of particular SQL functions. The following types will be described in legacy for
|
|||||||
DECFLOAT, INT128 and TIME(STAMP) WITH TIME ZONE. When `DataTypeCompatibility=2.5` in addition to this list
|
DECFLOAT, INT128 and TIME(STAMP) WITH TIME ZONE. When `DataTypeCompatibility=2.5` in addition to this list
|
||||||
BOOLEAN will be described as legacy type as well.
|
BOOLEAN will be described as legacy type as well.
|
||||||
|
|
||||||
|
Only fields returned by database engine in regular messages are modified according to SET BIND rules.
|
||||||
|
Variables returned by getting slice of an array are not affected by SET BIND statement.
|
||||||
|
|
||||||
|
|
||||||
### SQL Samples:
|
### SQL Samples:
|
||||||
|
|
||||||
|
@ -828,6 +828,11 @@ static const UCHAR* sdl_desc(const UCHAR* ptr, DSC* desc)
|
|||||||
desc->dsc_length = sizeof(SINT64);
|
desc->dsc_length = sizeof(SINT64);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case blr_int128:
|
||||||
|
desc->dsc_dtype = dtype_int128;
|
||||||
|
desc->dsc_length = sizeof(Int128);
|
||||||
|
break;
|
||||||
|
|
||||||
case blr_quad:
|
case blr_quad:
|
||||||
desc->dsc_dtype = dtype_quad;
|
desc->dsc_dtype = dtype_quad;
|
||||||
desc->dsc_length = sizeof(ISC_QUAD);
|
desc->dsc_length = sizeof(ISC_QUAD);
|
||||||
@ -854,24 +859,39 @@ static const UCHAR* sdl_desc(const UCHAR* ptr, DSC* desc)
|
|||||||
desc->dsc_length = sizeof(Decimal128);
|
desc->dsc_length = sizeof(Decimal128);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case blr_int128:
|
|
||||||
desc->dsc_dtype = dtype_int128;
|
|
||||||
desc->dsc_length = sizeof(Int128);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case blr_timestamp:
|
case blr_timestamp:
|
||||||
desc->dsc_dtype = dtype_timestamp;
|
desc->dsc_dtype = dtype_timestamp;
|
||||||
desc->dsc_length = sizeof(ISC_QUAD);
|
desc->dsc_length = sizeof(ISC_TIMESTAMP);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case blr_timestamp_tz:
|
||||||
|
desc->dsc_dtype = dtype_timestamp_tz;
|
||||||
|
desc->dsc_length = sizeof(ISC_TIMESTAMP_TZ);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case blr_ex_timestamp_tz:
|
||||||
|
desc->dsc_dtype = dtype_ex_timestamp_tz;
|
||||||
|
desc->dsc_length = sizeof(ISC_TIMESTAMP_TZ_EX);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case blr_sql_date:
|
case blr_sql_date:
|
||||||
desc->dsc_dtype = dtype_sql_date;
|
desc->dsc_dtype = dtype_sql_date;
|
||||||
desc->dsc_length = sizeof(SLONG);
|
desc->dsc_length = sizeof(ISC_DATE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case blr_sql_time:
|
case blr_sql_time:
|
||||||
desc->dsc_dtype = dtype_sql_time;
|
desc->dsc_dtype = dtype_sql_time;
|
||||||
desc->dsc_length = sizeof(ULONG);
|
desc->dsc_length = sizeof(ISC_TIME);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case blr_sql_time_tz:
|
||||||
|
desc->dsc_dtype = dtype_sql_time_tz;
|
||||||
|
desc->dsc_length = sizeof(ISC_TIME_TZ);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case blr_ex_time_tz:
|
||||||
|
desc->dsc_dtype = dtype_ex_time_tz;
|
||||||
|
desc->dsc_length = sizeof(ISC_TIME_TZ_EX);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case blr_bool:
|
case blr_bool:
|
||||||
|
@ -297,12 +297,24 @@ ISC_STATUS API_ROUTINE isc_array_set_desc(ISC_STATUS* status,
|
|||||||
case SQL_TIMESTAMP:
|
case SQL_TIMESTAMP:
|
||||||
desc->array_desc_dtype = blr_timestamp;
|
desc->array_desc_dtype = blr_timestamp;
|
||||||
break;
|
break;
|
||||||
|
case SQL_TIMESTAMP_TZ:
|
||||||
|
desc->array_desc_dtype = blr_timestamp_tz;
|
||||||
|
break;
|
||||||
|
case SQL_TIMESTAMP_TZ_EX:
|
||||||
|
desc->array_desc_dtype = blr_ex_timestamp_tz;
|
||||||
|
break;
|
||||||
case SQL_TYPE_DATE:
|
case SQL_TYPE_DATE:
|
||||||
desc->array_desc_dtype = blr_sql_date;
|
desc->array_desc_dtype = blr_sql_date;
|
||||||
break;
|
break;
|
||||||
case SQL_TYPE_TIME:
|
case SQL_TYPE_TIME:
|
||||||
desc->array_desc_dtype = blr_sql_time;
|
desc->array_desc_dtype = blr_sql_time;
|
||||||
break;
|
break;
|
||||||
|
case SQL_TIME_TZ:
|
||||||
|
desc->array_desc_dtype = blr_sql_time_tz;
|
||||||
|
break;
|
||||||
|
case SQL_TIME_TZ_EX:
|
||||||
|
desc->array_desc_dtype = blr_ex_time_tz;
|
||||||
|
break;
|
||||||
case SQL_LONG:
|
case SQL_LONG:
|
||||||
desc->array_desc_dtype = blr_long;
|
desc->array_desc_dtype = blr_long;
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user