-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
deps: migrate to ibis-framework >= "7.1.0"
#53
Changes from all commits
8929fef
a4e995d
8fd8fd4
ba3c5c4
f1ce176
14fb7c8
ea8d3e5
191df69
b182453
174e735
0ab94cc
4931923
9df0816
71f4889
6c64ec5
e37571c
fad36a8
5770502
c318b18
d3304b2
33bd2e0
c373dc0
41364b5
7a8784c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -535,17 +535,14 @@ def remote_function_node( | |
"""Creates an Ibis node representing a remote function call.""" | ||
|
||
fields = { | ||
name: rlz.value(type_) if type_ else rlz.any | ||
name: rlz.ValueOf(None if type_ == "ANY TYPE" else type_) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Actually we are using almost the same code internally, possibly it could worth to expose it in a more developer friendly way after we understand the actual requirements. We can open an issue on our side to track this. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. True. I was hoping to upstream this sooner, but now that I see https://ibis-project.org/reference/scalar-udfs#ibis.expr.operations.udf.scalar.builtin maybe I can migrate to that? I'll try that in a separate PR. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Started on this here: #277 I found a few issues already with UDF in the BQ backend. I'll get those documented soon. |
||
for name, type_ in zip( | ||
ibis_signature.parameter_names, ibis_signature.input_types | ||
) | ||
} | ||
|
||
try: | ||
fields["output_type"] = rlz.shape_like("args", dtype=ibis_signature.output_type) # type: ignore | ||
except TypeError: | ||
fields["output_dtype"] = property(lambda _: ibis_signature.output_type) | ||
fields["output_shape"] = rlz.shape_like("args") | ||
fields["dtype"] = ibis_signature.output_type # type: ignore | ||
fields["shape"] = rlz.shape_like("args") | ||
|
||
node = type(routine_ref_to_string_for_query(routine_ref), (ops.ValueOp,), fields) # type: ignore | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apparently you are adding support for
Deferred
objects. Currently we have a couple of objects interpretable as a value expression besides the expressions themselves, e.g. column names or selector in addition to deferred objects. The issue that ibis doesn't provide a clear, concise and backward compatible API function to bind those objects to a table. We have various protected functions and methods used in a hardly followable fashion.Instead of providing a stable API for deferred, wouldn't it be better to have a stable function which convert any sort of ibis objects to an expression (given a table) if possible, something like
ibis.bind(obj, table)
?Asking because we have something similar under preparation, but could be a good idea to have a public variant of that: https://github.com/ibis-project/ibis/pull/7580/files#diff-4400549b2eaa4ca3a3107f13fa78210e37277659acfe2a1eb4129cfbfaa66531R105-R134
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, we'd definitely use something like that here.
Honestly, I'm not 100% how we are ending up with deferred objects in the first place. It seems to be with how we're building some of our windowed functions, but in all of the cases I know of there is an underlying table. I think we may just be hitting this bug: ibis-project/ibis#7631