[MCOL-392] TIME datatype is not supported Created: 2016-11-07  Updated: 2018-10-15  Resolved: 2018-10-15

Status: Closed
Project: MariaDB ColumnStore
Component/s: None
Affects Version/s: 1.0.4
Fix Version/s: 1.2.0

Type: New Feature Priority: Major
Reporter: David Thompson (Inactive) Assignee: Daniel Lee (Inactive)
Resolution: Fixed Votes: 2
Labels: None

Issue Links:
Blocks
blocks MCOL-807 HOUR() function returns NULL when it ... Closed
PartOf
includes MCOL-320 support query of milli and micro seco... Closed
Sub-Tasks:
Key
Summary
Type
Status
Assignee
MCOL-1417 TIME: cpimort saturates reserved NULL... Sub-Task Closed Daniel Lee  
MCOL-1418 TIME: LDI saturates out-of-range valu... Sub-Task Closed Daniel Lee  
MCOL-1419 TIME: Update saturates out-of-range v... Sub-Task Closed Daniel Lee  
MCOL-1427 Microsecond values are stored left-ju... Sub-Task Closed Daniel Lee  
MCOL-1428 SUBTIME() as a WHERE condition on TIM... Sub-Task Closed Daniel Lee  
MCOL-1429 DAYNAME() and MONTHNAME() on TIME dat... Sub-Task Closed Daniel Lee  
MCOL-1433 Some functions return non-matching re... Sub-Task Closed Daniel Lee  
Epic Link: ColumnStore Compatibility Improvements
Sprint: 2018-08, 2018-09, 2018-10, 2018-11, 2018-12, 2018-13, 2018-14, 2018-15, 2018-16, 2018-17, 2018-18

 Description   

The time datatype is not currently supported requiring use of alternative datatypes (e.g. int, string, datetime).

In addition microsecond support should be implemented for both DATETIME and TIME



 Comments   
Comment by Andrew Hutchings (Inactive) [ 2018-04-19 ]

WIP branch https://github.com/mariadb-corporation/mariadb-columnstore-engine/tree/MCOL-392 - microsecond for DATETIME support added.

Comment by Andrew Hutchings (Inactive) [ 2018-05-01 ]

Three pull requests for this, one in engine, one in API and one in regression suite.

This adds support for:

  • DATETIME microseconds, for example DATETIME(6)
  • TIME with and without microseconds, for example TIME or TIME(6)

It also fixes things such as saturation handling of TIME values and several DATETIME/TIME related functions which broke on various edge cases.

David.Hall You may need jens.rowekamp to help you review the API portion. We may also need a spin-off of this ticket to apply the API changes to the other API languages.

For QA: The regression suite has test014 added to cover the basics. The API has a new set of tests when running "make test".

Comment by Andrew Hutchings (Inactive) [ 2018-05-01 ]

Other things to note:

  • DATETIME is fully backwards/forwards compatible (TIME is new so doesn't matter)
  • This also fixes MCOL-807, MCOL-320 and probably a few others too (they should go in testing at the same time as this one)
Comment by David Hall (Inactive) [ 2018-05-01 ]

Jens, Im sending this over to you to review the API portion – pull request https://github.com/mariadb-corporation/mariadb-columnstore-api/pull/72

Comment by Jens Röwekamp (Inactive) [ 2018-05-04 ]

Added tests for Java and Python to the regression suite.
PySpark and Scala spark don't have native time only data types, therefore I wasn't able to write from ColumnStoreExporter to the new time field.
Quickly compiled the PDI adapter with the new API, also worked. Opened MCOL-1392 to add the time field in the adapter as well.

LinuxJedi's code looks good. Approved it.

Could someone else quickly check out my additions and then merge, if they look okay.

Comment by Jens Röwekamp (Inactive) [ 2018-05-04 ]

Also created a branch and pull request MCOL-1344 which has the same fixes for MCOL-1344 pushed down from develop to develop-1.1.
It would be nice if that could be merged too, if it looks alright.

Comment by Daniel Lee (Inactive) [ 2018-10-15 ]

All sub-tasks have been verified.

Generated at Thu Feb 08 02:20:43 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.