Skip to content

Commit 0613ef1

Browse files
committed
feat(api): make the null function deferrable
1 parent e0436aa commit 0613ef1

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

ibis/common/tests/test_deferred.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import pytest
77
from pytest import param
88

9+
import ibis
910
from ibis.common.bases import Slotted
1011
from ibis.common.collections import FrozenDict
1112
from ibis.common.deferred import (
@@ -297,6 +298,9 @@ def __init__(self, name, dtype):
297298
def __deferred_repr__(self):
298299
return f"<column[{self.dtype}]>"
299300

301+
def type(self):
302+
return self.dtype
303+
300304

301305
class UnaryMock(ValueMock):
302306
__slots__ = ("name", "arg")
@@ -602,3 +606,9 @@ def test_deferred_namespace(table):
602606
def test_custom_deferred_repr(table):
603607
expr = _.x + table.a
604608
assert repr(expr) == "(_.x + <column[int]>)"
609+
610+
611+
def test_null_deferrable(table):
612+
result = ibis.null(_.a.type()).resolve(table).op()
613+
expected = ibis.null(table.a.type()).op()
614+
assert result == expected

ibis/expr/types/generic.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2399,6 +2399,7 @@ class NullColumn(Column, NullValue):
23992399

24002400

24012401
@public
2402+
@deferrable
24022403
def null(type: dt.DataType | str | None = None) -> Value:
24032404
"""Create a NULL scalar.
24042405

0 commit comments

Comments
 (0)