def _exasol_type_mapper()

in redash/query_runner/exasol.py [0:0]


def _exasol_type_mapper(val, data_type):
    if val is None:
        return None
    elif data_type["type"] == "DECIMAL":
        if data_type["scale"] == 0 and data_type["precision"] < 16:
            return int(val)
        elif data_type["scale"] == 0 and data_type["precision"] >= 16:
            return val
        else:
            return float(val)
    elif data_type["type"] == "DATE":
        return datetime.date(int(val[0:4]), int(val[5:7]), int(val[8:10]))
    elif data_type["type"] == "TIMESTAMP":
        return datetime.datetime(
            int(val[0:4]),
            int(val[5:7]),
            int(val[8:10]),  # year, month, day
            int(val[11:13]),
            int(val[14:16]),
            int(val[17:19]),  # hour, minute, second
            int(val[20:26].ljust(6, "0")) if len(val) > 20 else 0,
        )  # microseconds (if available)
    else:
        return val