Details
-
Task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
None
Description
Item_cache_temporal has the following methods with tests for field_type():
longlong Item_cache_temporal::val_datetime_packed()
|
{
|
if (Item_cache_temporal::field_type() == MYSQL_TYPE_TIME) |
return Item::val_datetime_packed(); // TIME-to-DATETIME conversion needed |
if ((!value_cached && !cache_value()) || null_value) |
{
|
null_value= TRUE;
|
return 0; |
}
|
return value; |
}
|
longlong Item_cache_temporal::val_time_packed()
|
{
|
if (Item_cache_temporal::field_type() != MYSQL_TYPE_TIME) |
return Item::val_time_packed(); // DATETIME-to-TIME conversion needed |
if ((!value_cached && !cache_value()) || null_value) |
{
|
null_value= TRUE;
|
return 0; |
}
|
return value; |
}
|
Tests for field_type() are not friendly for user defined data types (plugins) and should all be eventually gone.
Under terms of this task we'll move implementations of val_datetime_packed() and val_time_packed() from Item_cache_temporal to its descendants:
- Item_cache_date
- Item_cache_time
- Item_catche_datetime
and thus remove the need to test field_type().
Attachments
Issue Links
- blocks
-
MDEV-4912 Data type plugin API version 1
-
- Closed
-
Activity
Description |
Item_cache_temporal has the following methods with tests for field_type():
{code:cpp} longlong Item_cache_temporal::val_datetime_packed() { if (Item_cache_temporal::field_type() == MYSQL_TYPE_TIME) return Item::val_datetime_packed(); // TIME-to-DATETIME conversion needed if ((!value_cached && !cache_value()) || null_value) { null_value= TRUE; return 0; } return value; } {code} {code:cpp} longlong Item_cache_temporal::val_time_packed() { if (Item_cache_temporal::field_type() != MYSQL_TYPE_TIME) return Item::val_time_packed(); // DATETIME-to-TIME conversion needed if ((!value_cached && !cache_value()) || null_value) { null_value= TRUE; return 0; } return value; } {code} Tests for field_type() are not friendly for user defined data types and should all be eventually gone. Under terms of this task we'll move implementations of val_datetime_packed() and val_time_packed() from Item_cache_temporal to its descendants: - Item_cache_date - Item_cache_time - Item_catche_datetime and thus remove the need to test field_type(). |
Item_cache_temporal has the following methods with tests for field_type():
{code:cpp} longlong Item_cache_temporal::val_datetime_packed() { if (Item_cache_temporal::field_type() == MYSQL_TYPE_TIME) return Item::val_datetime_packed(); // TIME-to-DATETIME conversion needed if ((!value_cached && !cache_value()) || null_value) { null_value= TRUE; return 0; } return value; } {code} {code:cpp} longlong Item_cache_temporal::val_time_packed() { if (Item_cache_temporal::field_type() != MYSQL_TYPE_TIME) return Item::val_time_packed(); // DATETIME-to-TIME conversion needed if ((!value_cached && !cache_value()) || null_value) { null_value= TRUE; return 0; } return value; } {code} Tests for field_type() are not friendly for user defined data types (plugins) and should all be eventually gone. Under terms of this task we'll move implementations of val_datetime_packed() and val_time_packed() from Item_cache_temporal to its descendants: - Item_cache_date - Item_cache_time - Item_catche_datetime and thus remove the need to test field_type(). |
issue.field.resolutiondate | 2018-08-02 13:50:03.0 | 2018-08-02 13:50:03.494 |
Fix Version/s | 10.4.0 [ 23115 ] | |
Fix Version/s | 10.4 [ 22408 ] | |
Resolution | Fixed [ 1 ] | |
Status | Open [ 1 ] | Closed [ 6 ] |
Workflow | MariaDB v3 [ 88715 ] | MariaDB v4 [ 133646 ] |