register method
- String name,
- Object input
Registers a LazyFrame or DataFrame. Native registration clones its lazy plan, so the source can be closed immediately after this returns.
Implementation
void register(String name, Object input) {
_validateName(name, 'name');
if (input is LazyFrame) {
_runtime._requireLazy(input);
} else if (input is DataFrame) {
_runtime._requireFrame(input);
} else {
throw ArgumentError.value(
input,
'input',
'must be a LazyFrame or DataFrame',
);
}
final temporary = input is DataFrame ? input.lazy() : null;
final frame = input is LazyFrame ? input : temporary!;
try {
final leases = _leaseAll([_owner, frame._owner]);
try {
_runtime._client.invokeSync('sqlContextRegister', {
'context': leases[0].handle.toString(),
'name': name,
'input': leases[1].handle.toString(),
});
} finally {
_releaseAll(leases);
}
} finally {
temporary?.close();
}
}