Я хотел бы использовать структуру в качестве типа возврата из UDF, а затем извлечь отдельные поля из результатов.Вот моя попытка найти вариант использования Hello World:
create temp function udf_struct_test(orig string)
returns struct<original int64, plus1 int64>
language js as """
var original = parseInt(orig);
var plus1 = 1 + original;
return { original, plus1 };
""";
with t as ( select udf_struct_test(cast (input as string)) from unnest([1,2,3,4,5]) input )
select t.original, t.plus1 from t ;
результат:
Error: Name original not found inside t at [10:10]
, но когда я изменяю выбор на «select * from t»,Я получаю:
Row f0_.original f0_.plus1
1 1 2
2 2 3
3 3 4
4 4 5
5 5 6
Я потратил смущающе много времени, пытаясь заставить это работать, и я предполагаю, что мне не хватает чего-то очень маленького / глупого ... верно?