summaryrefslogtreecommitdiffstats
path: root/yql/essentials/udfs/common/python/python3_small/test
diff options
context:
space:
mode:
authorvvvv <[email protected]>2025-10-10 09:49:53 +0300
committervvvv <[email protected]>2025-10-10 10:04:09 +0300
commitc62bab8ab3141ff460f885bf2dafb922e0c19d38 (patch)
treeb37257fe1cd06a87b589992db93124d456f39152 /yql/essentials/udfs/common/python/python3_small/test
parent172bf557598ad5d2a67c1d18ff9d4857a6b40722 (diff)
YQL-20339 Python UDF support
init commit_hash:2a30a1b920f341e1f9250df382dd951604a0894f
Diffstat (limited to 'yql/essentials/udfs/common/python/python3_small/test')
-rw-r--r--yql/essentials/udfs/common/python/python3_small/test/canondata/result.json20
-rw-r--r--yql/essentials/udfs/common/python/python3_small/test/canondata/test.test_LinearDynamicFail1_/extracted12
-rw-r--r--yql/essentials/udfs/common/python/python3_small/test/canondata/test.test_LinearDynamicFail2_/extracted12
-rw-r--r--yql/essentials/udfs/common/python/python3_small/test/canondata/test.test_LinearDynamic_/results.txt28
-rw-r--r--yql/essentials/udfs/common/python/python3_small/test/canondata/test.test_Linear_/results.txt28
-rw-r--r--yql/essentials/udfs/common/python/python3_small/test/cases/Linear.cfg2
-rw-r--r--yql/essentials/udfs/common/python/python3_small/test/cases/Linear.in0
-rw-r--r--yql/essentials/udfs/common/python/python3_small/test/cases/Linear.sql15
-rw-r--r--yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamic.cfg2
-rw-r--r--yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamic.in0
-rw-r--r--yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamic.sql27
-rw-r--r--yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail1.cfg3
-rw-r--r--yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail1.in0
-rw-r--r--yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail1.sql27
-rw-r--r--yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail2.cfg3
-rw-r--r--yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail2.in0
-rw-r--r--yql/essentials/udfs/common/python/python3_small/test/cases/LinearDynamicFail2.sql28
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);
+
+