aboutsummaryrefslogtreecommitdiffstats
path: root/ydb/library/yql/tests/s-expressions/suites/EquiJoin/JoinInMemOpt2.yql
blob: 861a63112ff4c376508e4bc40d7387a46feee2af (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
(
(let config (DataSource 'config))
(let world (Configure! world config 'PureDataSource 'yt))

(let list1 (AsList 
  (AsStruct '('key1 (Int32 '1)) '('value1 (String 'A)))
  (AsStruct '('key1 (Int32 '4)) '('value1 (String 'C)))
  (AsStruct '('key1 (Int32 '4)) '('value1 (String 'D)))
))

(let list2 (AsList
  (AsStruct '('key2 (Just (Uint64 '2))) '('value2 (Just (String 'U))))
  (AsStruct '('key2 (Just (Uint64 '4))) '('value2 (Just (String 'Y))))
  (AsStruct '('key2 (Just (Uint64 '4))) '('value2 (Just (String 'W))))
  (AsStruct '('key2 (Nothing (OptionalType (DataType 'Uint64)))) '('value2 (Just (String 'P))))
  (AsStruct '('key2 (Nothing (OptionalType (DataType 'Uint64)))) '('value2 (Just (String 'Q))))
  (AsStruct '('key2 (Nothing (OptionalType (DataType 'Uint64)))) '('value2 (Just (String 'R))))
))

(let joinInner (EquiJoin '(list1 'a) '(list2 'b) '('Inner 'a 'b '('a 'key1) '('b 'key2) '()) '()))
(let joinLeft (EquiJoin '(list1 'a) '(list2 'b) '('Left 'a 'b '('a 'key1) '('b 'key2) '()) '()))
(let joinRight (EquiJoin '(list1 'a) '(list2 'b) '('Right 'a 'b '('a 'key1) '('b 'key2) '()) '()))
(let joinFull (EquiJoin '(list1 'a) '(list2 'b) '('Full 'a 'b '('a 'key1) '('b 'key2) '()) '()))
(let joinLeftOnly (EquiJoin '(list1 'a) '(list2 'b) '('LeftOnly 'a 'b '('a 'key1) '('b 'key2) '()) '()))
(let joinRightOnly (EquiJoin '(list1 'a) '(list2 'b) '('RightOnly 'a 'b '('a 'key1) '('b 'key2) '()) '()))
(let joinExclusion (EquiJoin '(list1 'a) '(list2 'b) '('Exclusion 'a 'b '('a 'key1) '('b 'key2) '()) '()))
(let joinLeftSemi (EquiJoin '(list1 'a) '(list2 'b) '('LeftSemi 'a 'b '('a 'key1) '('b 'key2) '()) '()))
(let joinRightSemi (EquiJoin '(list1 'a) '(list2 'b) '('RightSemi 'a 'b '('a 'key1) '('b 'key2) '()) '()))
(let joinCross (EquiJoin '(list1 'a) '(list2 'b) '('Cross 'a 'b '() '() '()) '()))

(let res_sink (DataSink 'result))
(let world (Write! world res_sink (Key) joinInner '('('type))))
(let world (Write! world res_sink (Key) joinLeft '('('type))))
(let world (Write! world res_sink (Key) joinRight '('('type))))
(let world (Write! world res_sink (Key) joinFull '('('type))))
(let world (Write! world res_sink (Key) joinLeftOnly '('('type))))
(let world (Write! world res_sink (Key) joinRightOnly '('('type))))
(let world (Write! world res_sink (Key) joinExclusion '('('type))))
(let world (Write! world res_sink (Key) joinLeftSemi '('('type))))
(let world (Write! world res_sink (Key) joinRightSemi '('('type))))
(let world (Write! world res_sink (Key) joinCross '('('type))))

(let world (Commit! world res_sink))
(return world)
)