diff options
author | vvvv <[email protected]> | 2025-10-10 09:49:53 +0300 |
---|---|---|
committer | vvvv <[email protected]> | 2025-10-10 10:04:09 +0300 |
commit | c62bab8ab3141ff460f885bf2dafb922e0c19d38 (patch) | |
tree | b37257fe1cd06a87b589992db93124d456f39152 /yql/essentials/udfs/common/python/python3_small/test/cases | |
parent | 172bf557598ad5d2a67c1d18ff9d4857a6b40722 (diff) |
YQL-20339 Python UDF support
init
commit_hash:2a30a1b920f341e1f9250df382dd951604a0894f
Diffstat (limited to 'yql/essentials/udfs/common/python/python3_small/test/cases')
12 files changed, 107 insertions, 0 deletions
diff --git a/yql/essentials/udfs/common/python/python3_small/test/cases/Linear.cfg b/yql/essentials/udfs/common/python/python3_small/test/cases/Linear.cfg new file mode 100644 index 00000000000..7e882f1da85 --- /dev/null +++ b/yql/essentials/udfs/common/python/python3_small/test/cases/Linear.cfg @@ -0,0 +1,2 @@ +langver 2025.04 + diff --git a/yql/essentials/udfs/common/python/python3_small/test/cases/Linear.in b/yql/essentials/udfs/common/python/python3_small/test/cases/Linear.in new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/yql/essentials/udfs/common/python/python3_small/test/cases/Linear.in diff --git a/yql/essentials/udfs/common/python/python3_small/test/cases/Linear.sql b/yql/essentials/udfs/common/python/python3_small/test/cases/Linear.sql new file mode 100644 index 00000000000..ef4aa9f0132 --- /dev/null +++ b/yql/essentials/udfs/common/python/python3_small/test/cases/Linear.sql @@ -0,0 +1,15 @@ +$s = @@ +def f(x): + return x + 1 + +def g(x): + return x * 2 +@@; + +$l = LinearType(Int32); +$p = Python::f(Callable<(Int32)->$l>, $s); +$c = Python::g(Callable<($l)->Int32>, $s); + +select $c($p(1)); + + diff --git a/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamic.cfg b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamic.cfg new file mode 100644 index 00000000000..7e882f1da85 --- /dev/null +++ b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamic.cfg @@ -0,0 +1,2 @@ +langver 2025.04 + diff --git a/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamic.in b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamic.in new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamic.in diff --git a/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamic.sql b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamic.sql new file mode 100644 index 00000000000..58b4a649a05 --- /dev/null +++ b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamic.sql @@ -0,0 +1,27 @@ +$s = @@ +def f(x): + class Once: + def __init__(self, v): + self.v = v + self.extracted = False + + def extract(self): + assert not self.extracted + self.extracted = True + ret = self.v + self.v = None + return ret + + return Once(x + 1) + +def g(x): + return x.extract() * 2 +@@; + +$l = DynamicLinearType(Int32); +$p = Python::f(Callable<(Int32)->$l>, $s); +$c = Python::g(Callable<($l)->Int32>, $s); + +select $c($p(1)); + + diff --git a/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail1.cfg b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail1.cfg new file mode 100644 index 00000000000..57e3ac59f66 --- /dev/null +++ b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail1.cfg @@ -0,0 +1,3 @@ +langver 2025.04 +xfail + diff --git a/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail1.in b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail1.in new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail1.in diff --git a/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail1.sql b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail1.sql new file mode 100644 index 00000000000..5a91c16589f --- /dev/null +++ b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail1.sql @@ -0,0 +1,27 @@ +$s = @@ +def f(x): + class Once: + def __init__(self, v): + self.v = v + self.extracted = False + + def extract(self): + assert not self.extracted + self.extracted = True + ret = self.v + self.v = None + return ret + + return Once(x + 1) + +def g(x): + return x.extract() * x.extract() +@@; + +$l = DynamicLinearType(Int32); +$p = Python::f(Callable<(Int32)->$l>, $s); +$c = Python::g(Callable<($l)->Int32>, $s); + +select $c($p(1)); + + diff --git a/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail2.cfg b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail2.cfg new file mode 100644 index 00000000000..57e3ac59f66 --- /dev/null +++ b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail2.cfg @@ -0,0 +1,3 @@ +langver 2025.04 +xfail + diff --git a/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail2.in b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail2.in new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail2.in diff --git a/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail2.sql b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail2.sql new file mode 100644 index 00000000000..09610de9aa3 --- /dev/null +++ b/yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail2.sql @@ -0,0 +1,28 @@ +$s = @@ +def f(x): + class Once: + def __init__(self, v): + self.v = v + self.extracted = False + + def extract(self): + assert not self.extracted + self.extracted = True + ret = self.v + self.v = None + return ret + + return Once(x + 1) + +def g(x,n): + return x.extract() + n +@@; + +$l = DynamicLinearType(Int32); +$p = Python::f(Callable<(Int32)->$l>, $s); +$c = Python::g(Callable<($l,Int32)->Int32>, $s); + +$a = $p(1); +select $c($a,0),$c($a,1); + + |