python_struct.sql 617 B

1234567891011121314151617181920212223
  1. /* postgres can not */
  2. use plato;
  3. $udf = YQL::@@(block '(
  4. (let $udfScript (String '@@@@
  5. class Person:
  6. def __init__(self, name, age):
  7. self.name = name
  8. self.age = age
  9. def NewPerson(name, age):
  10. return Person(name, age)
  11. @@@@))
  12. (let ui32 (DataType 'Uint32))
  13. (let str (DataType 'String))
  14. (let personType (StructType '('name str) '('age ui32)))
  15. (let udfType (CallableType '() '(personType) '(str) '(ui32)))
  16. (let udf (ScriptUdf 'Python3 'NewPerson udfType $udfScript))
  17. (return udf)
  18. ))@@;
  19. $persons = (select $udf(value, 100) as val from Input);
  20. select val from $persons;