TIME datatype is not supported (MCOL-392)

[MCOL-1417] TIME: cpimort saturates reserved NULL and empty indicator values incorrectly Created: 2018-05-15  Updated: 2018-06-19  Resolved: 2018-06-19

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

Type: Sub-Task Priority: Major
Reporter: Daniel Lee (Inactive) Assignee: Daniel Lee (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Relates
relates to MCOL-1485 DATETIME and TIME don't support integ... Closed
Sprint: 2018-08, 2018-09, 2018-10, 2018-11, 2018-12, 2018-13, 2018-14, 2018-15, 2018-16, 2018-17, 2018-18

 Description   

Both NULL and empty indicator values are saturated to -838:59:59. They should be saturated to 00:00:00, as LDI does since these values are invalid TIME values.



 Comments   
Comment by Andrew Hutchings (Inactive) [ 2018-06-07 ]

Added to a bunch of upcoming MCOL-392 fixes.

Comment by Andrew Hutchings (Inactive) [ 2018-06-07 ]

Pull request in engine to cover this.

Comment by Daniel Lee (Inactive) [ 2018-06-18 ]

Build tested: 1.2.0-1 source

/root/columnstore/mariadb-columnstore-server
commit 3bfc3ad5f1e91e6f325b89fefaf62a6b38ca889a
Merge: 4334641 742af4d
Author: David.Hall <david.hall@mariadb.com>
Date: Thu May 31 09:40:12 2018 -0500

Merge pull request #119 from mariadb-corporation/1.1-merge-up-20180531

Merge develop-1.1 into develop

/root/columnstore/mariadb-columnstore-server/mariadb-columnstore-engine
commit 1caa98ff46777a389cdfd4ae369865391a884c27
Merge: 60a4d14 d9e6ba9
Author: David.Hall <david.hall@mariadb.com>
Date: Mon Jun 11 10:20:49 2018 -0500

Merge pull request #494 from mariadb-corporation/MCOL-1433

MCOL-1433 Fix several functions for TIME handling

Tested cpimport and NULL value and empty row indicators are still saturated to -838:59:59. I used the following values for the indicators. Are they correct?

NULL value = -2047_4095:255:255.16777215
Empty value = -2047_4095:255:255.16777214

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

If you used the word NULL without setting cpimport -n1 then that is correct. Empty values are NULL. What is an empty row indicator?

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

Also, both the values you gave there will be saturated to -838:59:59.

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

ok, so, lots to break down here...

When I said "-2047 4095:255:255.16777215" I mentioned it was purely theoretical and not a valid input, it fails several immediate sanity checks. There is no physical way for you to enter the stored NULL and empty values for the TIME data type.

Now, with your input ('-2047_4095:255:255.16777215') MariaDB will interpret this as an attempt to input the integer -2047 which translates into -00:20:47. This is normal behaviour since MariaDB allows integer representations of datetime/time.

cpimport is traditionally stricter with inputs than MariaDB. It will see this as an attempt to input -2047 hours and abort with the saturation at that point. If we want the same behaviour as MariaDB it should also be implemented for DATETIME too. Which puts it out of scope for this work.

Comment by Daniel Lee (Inactive) [ 2018-06-19 ]

The issue is in cpimport, not the implementation of the TIME data type. MCOL-1485 has been opened to track this issue separately.

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