Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Not a Bug
-
None
-
None
Description
Following is ColumnStore table structure containing time field of type datatype:
MariaDB [tradealert]> desc onelots;
----------------------------------------+
Field | Type | Null | Key | Default | Extra |
----------------------------------------+
trade_id | int(11) | YES | NULL | ||
secid | int(11) | YES | NULL | ||
side | tinyint(4) | YES | NULL | ||
size | int(11) | YES | NULL | ||
price | float | YES | NULL | ||
exch | char(1) | YES | NULL | ||
time | time | YES | NULL | ||
date | date | YES | NULL | ||
bexch | char(1) | YES | NULL | ||
aexch | char(1) | YES | NULL | ||
bid | float | YES | NULL | ||
ask | float | YES | NULL | ||
bsize | smallint(6) | YES | NULL | ||
asize | smallint(6) | YES | NULL | ||
spot | float | YES | NULL | ||
spot_chg | float | YES | NULL | ||
volume | int(11) | YES | NULL | ||
open_int | int(11) | YES | NULL | ||
cond | char(1) | YES | NULL | ||
root | char(8) | YES | NULL | ||
delta | float | YES | NULL | ||
ivol | float | YES | NULL | ||
ivol_chg | float | YES | NULL | ||
usymbol | char(6) | YES | NULL | ||
expiry | date | YES | NULL | ||
put_call | char(1) | YES | NULL | ||
strike | float | YES | NULL | ||
vega | float | YES | NULL | ||
theta | float | YES | NULL | ||
theo | float | YES | NULL | ||
nonstd | tinyint(4) | YES | NULL |
----------------------------------------+
31 rows in set (0.001 sec)
When running following query from Python the resultset returned is rendeting time field for each record returned as datetime.timedelta.
query = "SELECT sio.`id` AS option_id, o.`date` AS market_date, o.`time`, o.`size`, o.`price`, o.`spot`, "\
"o.open_int, o.theo, o.ivol, o.delta, o.vega, o.theta, o.`secid` "\
"FROM onelots AS o LEFT JOIN securities_occ AS so ON o.secid = so.secid "\
"LEFT JOIN dds_main.`sec_instrument_option` AS sio ON so.`occ_identifier` = sio.`occ_identifier` "\
"WHERE o.date = '2018-01-02' LIMIT 10"
I am not sure where is the problem but I would say that Python driver does not recognize time datatype and wrongly interprets it.