Revision a406473a525285888dbc29503443173df1d1c490 authored by Wang Gengliang on 27 September 2017, 15:40:31 UTC, committed by Herman van Hovell on 27 September 2017, 15:40:31 UTC
Back port https://github.com/apache/spark/pull/19362 to branch-2.2

## What changes were proposed in this pull request?

When inferring constraints from children, Join's condition can be simplified as None.
For example,
```
val testRelation = LocalRelation('a.int)
val x = testRelation.as("x")
val y = testRelation.where($"a" === 2 && !($"a" === 2)).as("y")
x.join.where($"x.a" === $"y.a")
```
The plan will become
```
Join Inner
:- LocalRelation <empty>, [a#23]
+- LocalRelation <empty>, [a#224]
```
And the Cartesian products check will throw exception for above plan.

Propagate empty relation before checking Cartesian products, and the issue is resolved.

## How was this patch tested?

Unit test

Author: Wang Gengliang <ltnwgl@gmail.com>

Closes #19366 from gengliangwang/branch-2.2.
1 parent b0f30b5
History
File Mode Size
pkg
.gitignore -rw-r--r-- 66 bytes
CRAN_RELEASE.md -rw-r--r-- 3.2 KB
DOCUMENTATION.md -rw-r--r-- 474 bytes
README.md -rw-r--r-- 3.5 KB
WINDOWS.md -rw-r--r-- 2.2 KB
check-cran.sh -rwxr-xr-x 2.4 KB
create-docs.sh -rwxr-xr-x 1.8 KB
create-rd.sh -rwxr-xr-x 1.5 KB
find-r.sh -rwxr-xr-x 1.2 KB
install-dev.bat -rw-r--r-- 1.1 KB
install-dev.sh -rwxr-xr-x 1.6 KB
install-source-package.sh -rwxr-xr-x 2.0 KB
log4j.properties -rw-r--r-- 1.3 KB
run-tests.sh -rwxr-xr-x 2.3 KB

README.md

back to top