def _literal(translator, expr): try: return impala_compiler._literal(translator, expr) except NotImplementedError: if isinstance(expr, ir.ArrayValue): return _array_literal_format(expr) raise NotImplementedError(type(expr).__name__)
def _literal(translator, expr): if isinstance(expr, ir.NumericValue): value = expr.op().value if not np.isfinite(value): return 'CAST({!r} AS FLOAT64)'.format(str(value)) # special case literal timestamp, date, and time scalars if isinstance(expr.op(), ops.Literal): value = expr.op().value if isinstance(expr, ir.DateScalar): if isinstance(value, datetime.datetime): raw_value = value.date() else: raw_value = value return "DATE '{}'".format(raw_value) elif isinstance(expr, ir.TimestampScalar): return "TIMESTAMP '{}'".format(value) elif isinstance(expr, ir.TimeScalar): # TODO: define extractors on TimeValue expressions return "TIME '{}'".format(value) try: return impala_compiler._literal(translator, expr) except NotImplementedError: if isinstance(expr, ir.ArrayValue): return _array_literal_format(expr) raise NotImplementedError(type(expr).__name__)
def _literal(translator, expr): if isinstance(expr, ir.NumericValue): value = expr.op().value if not np.isfinite(value): return 'CAST({!r} AS FLOAT64)'.format(str(value)) try: return impala_compiler._literal(translator, expr) except NotImplementedError: if isinstance(expr, ir.ArrayValue): return _array_literal_format(expr) raise NotImplementedError(type(expr).__name__)