def _ifnull_workaround(translator, expr):
    op = expr.op()
    a, b = op.args

    # work around per #345, #360
    if (isinstance(a, ir.DecimalValue) or
            isinstance(b, ir.IntegerValue)):
        b = b.cast(a.type())

    return _format_call(translator, 'isnull', a, b)
dataset/ETHPy150Open cloudera/ibis/ibis/impala/compiler.py/_ifnull_workaround/operator `and` -> `or`