Skip to content

Commit cb20e00

Browse files
authored
Merge 95536d7 into 26b8ef3
2 parents 26b8ef3 + 95536d7 commit cb20e00

29 files changed

+800
-0
lines changed

ydb/library/yql/udfs/common/roaring/roaring.cpp

Lines changed: 463 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"test.test[serialize_deserialize]": [
3+
{
4+
"uri": "file://test.test_serialize_deserialize_/results.txt"
5+
}
6+
],
7+
"test.test[union]": [
8+
{
9+
"uri": "file://test.test_union_/results.txt"
10+
}
11+
],
12+
"test.test[union_binary]": [
13+
{
14+
"uri": "file://test.test_union_binary_/results.txt"
15+
}
16+
],
17+
"test.test[intersect]": [
18+
{
19+
"uri": "file://test.test_intersect_/results.txt"
20+
}
21+
],
22+
"test.test[intersect_binary]": [
23+
{
24+
"uri": "file://test.test_intersect_binary_/results.txt"
25+
}
26+
],
27+
"test.test[cardinality]": [
28+
{
29+
"uri": "file://test.test_cardinality_/results.txt"
30+
}
31+
]
32+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
[
2+
{
3+
"Write" = [
4+
{
5+
"Type" = [
6+
"ListType";
7+
[
8+
"StructType";
9+
[
10+
[
11+
"UnionCardinality";
12+
[
13+
"DataType";
14+
"Uint32"
15+
]
16+
]
17+
]
18+
]
19+
];
20+
"Data" = [
21+
[
22+
"3"
23+
]
24+
]
25+
}
26+
]
27+
};
28+
{
29+
"Write" = [
30+
{
31+
"Type" = [
32+
"ListType";
33+
[
34+
"StructType";
35+
[
36+
[
37+
"IntersectCardinality";
38+
[
39+
"ListType";
40+
[
41+
"DataType";
42+
"Uint32"
43+
]
44+
]
45+
]
46+
]
47+
]
48+
];
49+
"Data" = [
50+
[
51+
[
52+
"1"
53+
]
54+
]
55+
]
56+
}
57+
]
58+
}
59+
]
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
[
2+
{
3+
"Write" = [
4+
{
5+
"Type" = [
6+
"ListType";
7+
[
8+
"StructType";
9+
[
10+
[
11+
"IntersectList";
12+
[
13+
"ListType";
14+
[
15+
"DataType";
16+
"Uint32"
17+
]
18+
]
19+
]
20+
]
21+
]
22+
];
23+
"Data" = [
24+
[
25+
[
26+
"1"
27+
]
28+
]
29+
]
30+
}
31+
]
32+
}
33+
]
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
[
2+
{
3+
"Write" = [
4+
{
5+
"Type" = [
6+
"ListType";
7+
[
8+
"StructType";
9+
[
10+
[
11+
"IntersectWithBinaryList";
12+
[
13+
"ListType";
14+
[
15+
"DataType";
16+
"Uint32"
17+
]
18+
]
19+
]
20+
]
21+
]
22+
];
23+
"Data" = [
24+
[
25+
[
26+
"1"
27+
]
28+
]
29+
]
30+
}
31+
]
32+
}
33+
]
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
[
2+
{
3+
"Write" = [
4+
{
5+
"Type" = [
6+
"ListType";
7+
[
8+
"StructType";
9+
[
10+
[
11+
"DeserializedList";
12+
[
13+
"ListType";
14+
[
15+
"DataType";
16+
"Uint32"
17+
]
18+
]
19+
]
20+
]
21+
]
22+
];
23+
"Data" = [
24+
[
25+
[
26+
"10";
27+
"567"
28+
]
29+
]
30+
]
31+
}
32+
]
33+
};
34+
{
35+
"Write" = [
36+
{
37+
"Type" = [
38+
"ListType";
39+
[
40+
"StructType";
41+
[
42+
[
43+
"Serialized";
44+
[
45+
"DataType";
46+
"String"
47+
]
48+
]
49+
]
50+
]
51+
];
52+
"Data" = [
53+
[
54+
":0\0\0\1\0\0\0\0\0\1\0\x10\0\0\0\n\0007\2"
55+
]
56+
]
57+
}
58+
]
59+
}
60+
]
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
[
2+
{
3+
"Write" = [
4+
{
5+
"Type" = [
6+
"ListType";
7+
[
8+
"StructType";
9+
[
10+
[
11+
"UnionList";
12+
[
13+
"DataType";
14+
"Uint32"
15+
]
16+
]
17+
]
18+
]
19+
];
20+
"Data" = [
21+
[
22+
"3"
23+
]
24+
]
25+
}
26+
]
27+
}
28+
]
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
[
2+
{
3+
"Write" = [
4+
{
5+
"Type" = [
6+
"ListType";
7+
[
8+
"StructType";
9+
[
10+
[
11+
"UnionWithBinaryList";
12+
[
13+
"DataType";
14+
"Uint32"
15+
]
16+
]
17+
]
18+
]
19+
];
20+
"Data" = [
21+
[
22+
"3"
23+
]
24+
]
25+
}
26+
]
27+
}
28+
]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"left"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\x01\x00\x02\x00";"right"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\x01\x00\x03\x00";};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{schema=[{name=left;type=string};{name=right;type=string}]}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
SELECT Roaring::Cardinality(Roaring::UnionWithBinary(Roaring::Deserialize(left), right)) AS UnionCardinality FROM Input;
2+
SELECT Roaring::Uint32List(Roaring::IntersectWithBinary(Roaring::Deserialize(right), left)) AS IntersectCardinality FROM Input;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"left"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\x01\x00\x02\x00";"right"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\x01\x00\x03\x00";};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{schema=[{name=left;type=string};{name=right;type=string}]}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
SELECT Roaring::Uint32List(Roaring::Intersect(Roaring::Deserialize(left), Roaring::Deserialize(right))) AS IntersectList FROM Input;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"left"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\x01\x00\x02\x00";"right"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\x01\x00\x03\x00";};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{schema=[{name=left;type=string};{name=right;type=string}]}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
SELECT Roaring::Uint32List(Roaring::IntersectWithBinary(Roaring::Deserialize(left), right)) AS IntersectWithBinaryList FROM Input;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"binaryString"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\n\x007\x02";};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{schema=[{name=binaryString;type=string}]}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/* syntax version 1 */
2+
SELECT Roaring::Uint32List(Roaring::Deserialize(binaryString)) AS DeserializedList
3+
FROM Input;
4+
5+
SELECT Roaring::Serialize(Roaring::Deserialize(binaryString)) AS Serialized
6+
FROM Input;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"left"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\x01\x00\x02\x00";"right"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\x01\x00\x03\x00";};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{schema=[{name=left;type=string};{name=right;type=string}]}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
SELECT Roaring::Cardinality(Roaring::Union(Roaring::Deserialize(left), Roaring::Deserialize(right))) AS UnionList FROM Input;
2+
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"left"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\x01\x00\x02\x00";"right"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\x01\x00\x03\x00";};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{schema=[{name=left;type=string};{name=right;type=string}]}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
SELECT Roaring::Cardinality(Roaring::UnionWithBinary(Roaring::Deserialize(left), right)) AS UnionWithBinaryList FROM Input;
2+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
OWNER(djant)
2+
3+
YQL_UDF_TEST()
4+
5+
6+
DEPENDS(
7+
yql/udfs/examples/roaring
8+
)
9+
10+
TIMEOUT(300)
11+
SIZE(MEDIUM)
12+
13+
REQUIREMENTS(ram:9)
14+
15+
END()
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
YQL_UDF_YDB(roaring)
2+
3+
YQL_ABI_VERSION(
4+
2
5+
35
6+
0
7+
)
8+
9+
SRCS(
10+
roaring.cpp
11+
)
12+
13+
PEERDIR(
14+
contrib/libs/croaring
15+
)
16+
17+
18+
END()
19+
20+
RECURSE_FOR_TESTS(
21+
test
22+
)

ydb/library/yql/udfs/common/ya.make

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ RECURSE(
1515
pire
1616
protobuf
1717
re2
18+
roaring
1819
set
1920
stat
2021
streaming

0 commit comments

Comments
 (0)