heavyai/rbc

Cannot define UDTFs from command prompt

Opened this issue · 0 comments

pearu commented

Example:

>>> @omnisci('int32(TableFunctionManager, Column<T>, T, OutputColumn<T>)', T=['int32', 'int64', 'float32', 'float64'])
... def colincr(mgr, input, di, output):
...     mgr.set_output_row_size(input.size())
...     for i in range(input.size()):
...         output[i] = input[i] + di
...     return output.size()
... 
>>> omnisci.register()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/pearu/mc3/envs/omnisci-user/lib/python3.10/site-packages/rbc/omniscidb.py", line 1172, in register
    return self._register()
  File "/home/pearu/mc3/envs/omnisci-user/lib/python3.10/site-packages/rbc/omniscidb.py", line 1228, in _register
    udtfs_map[fid] = self._make_udtf(caller, orig_sig, sig)
  File "/home/pearu/mc3/envs/omnisci-user/lib/python3.10/site-packages/rbc/omniscidb.py", line 1100, in _make_udtf
    sizer_index = get_literal_return(caller.func, verbose=self.debug)
  File "/home/pearu/mc3/envs/omnisci-user/lib/python3.10/site-packages/rbc/omniscidb.py", line 69, in get_literal_return
    for line in inspect.getsourcelines(func)[0]:
  File "/home/pearu/mc3/envs/omnisci-user/lib/python3.10/inspect.py", line 1129, in getsourcelines
    lines, lnum = findsource(object)
  File "/home/pearu/mc3/envs/omnisci-user/lib/python3.10/inspect.py", line 958, in findsource
    raise OSError('could not get source code')
OSError: could not get source code

In the given case, sizer_index is irrelevant, hence the example should be succesful.