[MCOL-63] Transaction does not get committed by the "commit" command after selecting the unix_timestamp() function Created: 2016-05-20 Updated: 2016-06-07 Resolved: 2016-06-07 |
|
| Status: | Closed |
| Project: | MariaDB ColumnStore |
| Component/s: | ExeMgr |
| Affects Version/s: | None |
| Fix Version/s: | 1.0.0 |
| Type: | Bug | Priority: | Major |
| Reporter: | Daniel Lee (Inactive) | Assignee: | David Hall (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Build tested: getcalpontsoftwareinfo Fri May 20 13:28:21 2016 Name : infinidb-platform Relocations: (not relocatable) This issue is uncovered by the DMLRate test in Autopilot. set autocommit=0; The commit command does not commit the transaction. Another query session did not see the inserted row and the table lock remained in place. If the "select unix_timestamp();" after insert is omitted, then the transaction worked as expected. |
| Comments |
| Comment by Dipti Joshi (Inactive) [ 2016-05-23 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
dleeyh Is this behavior only when using unix_timestamp() within transaction Or any other function in the transaction ? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Justin Swanhart (Inactive) [ 2016-06-06 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
were any other functions tried? is it just that one function, or do other temporal functions not work like from_unixtime(..) or now()? How about select substr('1', 1, 1) for example, to see if string functions have issues. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Lee (Inactive) [ 2016-06-06 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Instead of the unix_timestamp() function, I tried few other functions, such as min() and max(), and they did not cause the same issue. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Justin Swanhart (Inactive) [ 2016-06-06 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
those are aggregate functions, did you test any non-aggregate functions, did you test any other temporal functions? It is very odd that unix_timestamp would have such a side effect. Could you please test a string function and a temporal function if it has not been tested? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by David Hall (Inactive) [ 2016-06-06 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Note that many functions, including the temporal functions, are implemented in columnstore and don't use the ones in MariaDB code. MySQL has added the DATE_ITEM type to the optimizer since 5.1.73, and it breaks some of those implementations independently. Each needs to be tried to see what works and what doesn't. Fixes are usually straight forward. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Justin Swanhart (Inactive) [ 2016-06-06 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
okay, so something is strange here, because my test works, so this might not be related to unix_timestamp() or is side effect of previous test perhaps, or related to data types in lineitem perhaps?: MariaDB [test]> insert into t1 values(2); MariaDB [test]> select unix_timestamp();
------------------
------------------ MariaDB [test]> commit; MariaDB [test]> select * from t1;
------
------ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Justin Swanhart (Inactive) [ 2016-06-07 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
in fact, why would select unix_timestamp(); even use columnstore? it uses no real tables... So i created lineitem, and the test passes. So this is some side effect of another portion of that test. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Dipti Joshi (Inactive) [ 2016-06-07 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
jswanhartIt is possible that the binaries that dleeyh tested this with on May 20th and the binaries that you are testing with are not same. Can you confirm the version of your binaries ? May be your binaries has updates that have fixed this behavior. What we need to see is if the behavior reported by Daniel Lee is in the latest build - if not then we can close this, other wise analyze it further. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Lee (Inactive) [ 2016-06-07 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Build verified: mscadmin> getsoft Name : mariadb-columnstore-platform Relocations: (not relocatable) This is no longed an issue in the build tested. Tested in a 1UM-2PM stack. MariaDB [mytest]> select unix_timestamp();
------------------
------------------ MariaDB [mytest]> insert into lineitem values(700000000,10000,1000,1,10,950.50,0.03,0.02,'N','O','1999-01-01','1999-01-01','1999-01-01','DELIVER IN PERSON','TRUCK','test test test test test'); MariaDB [mytest]> select unix_timestamp();
------------------
------------------ MariaDB [mytest]> commit; MariaDB [mytest]> desc lineitem;
----------------
---------------- MariaDB [mytest]> select * from lineitem where l_orderkey = 700000000;
-----------
----------- MariaDB [mytest]> quit [root@s1um1 ~]# /usr/local/mariadb/columnstore/bin/viewtablelock |