blob: 1b478997bfd0e38d1cf5066bba20622da2836c82 [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
pipelines:
- pipeline:
transforms:
- type: Create
name: A
config:
elements:
- {common: "x", a: 1}
- {common: "y", a: 2}
- {common: "z", a: 3}
- type: Create
name: B
config:
elements:
- {common: "x", b: 10, other: "t"}
- {common: "y", b: 20, other: "u"}
- {common: "z", b: 30, other: "v"}
- type: Create
name: C
config:
elements:
- {other: "t", c: 100}
- {other: "u", c: 200}
- type: Join
input:
A: A
B: B
C: C
config:
type: inner
equalities:
- B: other
C: other
- A: common
B: common
fields:
A: [a]
B: [b]
C: [c]
- type: AssertEqual
input: Join
config:
elements:
- {a: 1, b: 10, c: 100}
- {a: 2, b: 20, c: 200}
- pipeline:
transforms:
- type: Create
name: A
config:
elements:
- {common: "x", a: 1}
- {common: "y", a: 2}
- {common: "z", a: 3}
- type: Create
name: B
config:
elements:
- {common: "x", b: 10}
- {common: "y", b: 20}
- {common: "z", b: 30}
- type: Create
name: C
config:
elements:
- {common: "x", c: 100}
- {common: "y", c: 200}
- type: Join
name: InnerJoin
input:
A: A
B: B
C: C
config:
type: inner
equalities:
- A: common
B: common
C: common
fields:
A: [common, a]
B: [b]
C: {c: c, common_c: common}
- type: AssertEqual
input: InnerJoin
config:
elements:
- {common: "x", a: 1, b: 10, c: 100, common_c: "x"}
- {common: "y", a: 2, b: 20, c: 200, common_c: "y"}
- type: Join
name: OuterJoin
input:
A: A
B: B
C: C
config:
type: outer
equalities:
- A: common
B: common
C: common
fields:
A: [common, a]
B: [b]
C: {c: c, common_c: common}
- type: AssertEqual
input: OuterJoin
config:
elements:
- {common: "x", a: 1, b: 10, c: 100, common_c: "x"}
- {common: "y", a: 2, b: 20, c: 200, common_c: "y"}
- {common: "z", a: 3, b: 30, c: null, common_c: null}
- type: Join
name: LeftJoin
input:
A: A
C: C
config:
type: left
equalities:
- A: common
C: common
fields:
A: [a]
C: [c]
- type: AssertEqual
input: LeftJoin
config:
elements:
- {a: 1, c: 100}
- {a: 2, c: 200}
- {a: 3, c: null}
- type: Join
name: RightJoin
input:
A: A
C: C
config:
type: right
equalities:
- A: common
C: common
fields:
A: [a]
C: [c]
- type: AssertEqual
input: RightJoin
config:
elements:
- {a: 1, c: 100}
- {a: 2, c: 200}