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 | |
| parent | 172bf557598ad5d2a67c1d18ff9d4857a6b40722 (diff) | |
YQL-20339 Python UDF support
init
commit_hash:2a30a1b920f341e1f9250df382dd951604a0894f
Diffstat (limited to 'yql/essentials/udfs/common/python/python3_small/test')
17 files changed, 207 insertions, 0 deletions
diff --git a/yql/essentials/udfs/common/python/python3_small/test/canondata/result.json b/yql/essentials/udfs/common/python/python3_small/test/canondata/result.json index 5db4c2b5055..cd5bbbcf26f 100644 --- a/yql/essentials/udfs/common/python/python3_small/test/canondata/result.json +++ b/yql/essentials/udfs/common/python/python3_small/test/canondata/result.json @@ -46,6 +46,26 @@ "uri": "https://{canondata_backend}/995452/085d43bbd16f44afc51d6cafed42465a3d20215c/resource.tar.gz#test.test_GreedyInputContainers_/results.txt" } ], + "test.test[LinearDynamicFail1]": [ + { + "uri": "file://test.test_LinearDynamicFail1_/extracted" + } + ], + "test.test[LinearDynamicFail2]": [ + { + "uri": "file://test.test_LinearDynamicFail2_/extracted" + } + ], + "test.test[LinearDynamic]": [ + { + "uri": "file://test.test_LinearDynamic_/results.txt" + } + ], + "test.test[Linear]": [ + { + "uri": "file://test.test_Linear_/results.txt" + } + ], "test.test[OptionalNested]": [ { "uri": "file://test.test_OptionalNested_/extracted" diff --git a/yql/essentials/udfs/common/python/python3_small/test/canondata/test.test_LinearDynamicFail1_/extracted b/yql/essentials/udfs/common/python/python3_small/test/canondata/test.test_LinearDynamicFail1_/extracted new file mode 100644 index 00000000000..05e09cd7eda --- /dev/null +++ b/yql/essentials/udfs/common/python/python3_small/test/canondata/test.test_LinearDynamicFail1_/extracted @@ -0,0 +1,12 @@ +<tmp_path>/program.sql:<main>: Error: Execution + + <tmp_path>/program.sql:<main>:50:1: Error: Execution of node: Result + select $c($p(1)); + ^ + <tmp_path>/program.sql:<main>:46:14: Error: Failed to execute: +Traceback (most recent call last): + File "embedded:g", line 35, in g +ValueError: The linear value has already been used + + $c = Python::g(Callable<($l)->Int32>, $s); + ^
\ No newline at end of file diff --git a/yql/essentials/udfs/common/python/python3_small/test/canondata/test.test_LinearDynamicFail2_/extracted b/yql/essentials/udfs/common/python/python3_small/test/canondata/test.test_LinearDynamicFail2_/extracted new file mode 100644 index 00000000000..462b4b5332d --- /dev/null +++ b/yql/essentials/udfs/common/python/python3_small/test/canondata/test.test_LinearDynamicFail2_/extracted @@ -0,0 +1,12 @@ +<tmp_path>/program.sql:<main>: Error: Execution + + <tmp_path>/program.sql:<main>:52:1: Error: Execution of node: Result + select $c($a,0),$c($a,1); + ^ + <tmp_path>/program.sql:<main>:46:14: Error: Failed to execute: +Traceback (most recent call last): + File "embedded:g", line 35, in g +ValueError: The linear value has already been used + + $c = Python::g(Callable<($l,Int32)->Int32>, $s); + ^
\ No newline at end of file diff --git a/yql/essentials/udfs/common/python/python3_small/test/canondata/test.test_LinearDynamic_/results.txt b/yql/essentials/udfs/common/python/python3_small/test/canondata/test.test_LinearDynamic_/results.txt new file mode 100644 index 00000000000..40dd4232253 --- /dev/null +++ b/yql/essentials/udfs/common/python/python3_small/test/canondata/test.test_LinearDynamic_/results.txt @@ -0,0 +1,28 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4" + ] + ] + } + ] + } +]
\ No newline at end of file diff --git a/yql/essentials/udfs/common/python/python3_small/test/canondata/test.test_Linear_/results.txt b/yql/essentials/udfs/common/python/python3_small/test/canondata/test.test_Linear_/results.txt new file mode 100644 index 00000000000..40dd4232253 --- /dev/null +++ b/yql/essentials/udfs/common/python/python3_small/test/canondata/test.test_Linear_/results.txt @@ -0,0 +1,28 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4" + ] + ] + } + ] + } +]
\ No newline at end of file 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); + + |
