diff options
author | jiangxingbo <jiangxb1987@gmail.com> | 2017-03-07 20:25:38 -0800 |
---|---|---|
committer | Wenchen Fan <wenchen@databricks.com> | 2017-03-07 20:25:38 -0800 |
commit | b9783a92f7ba0c3b22d7dceae7a3185de17dedcc (patch) | |
tree | 9d8c55dd20ce14862393511a07210cc98a1f3bca /python/docs/epytext.py | |
parent | c96d14abae5962a7b15239319c2a151b95f7db94 (diff) | |
download | spark-b9783a92f7ba0c3b22d7dceae7a3185de17dedcc.tar.gz spark-b9783a92f7ba0c3b22d7dceae7a3185de17dedcc.tar.bz2 spark-b9783a92f7ba0c3b22d7dceae7a3185de17dedcc.zip |
[SPARK-18389][SQL] Disallow cyclic view reference
## What changes were proposed in this pull request?
Disallow cyclic view references, a cyclic view reference may be created by the following queries:
```
CREATE VIEW testView AS SELECT id FROM tbl
CREATE VIEW testView2 AS SELECT id FROM testView
ALTER VIEW testView AS SELECT * FROM testView2
```
In the above example, a reference cycle (testView -> testView2 -> testView) exsits.
We disallow cyclic view references by checking that in ALTER VIEW command, when the `analyzedPlan` contains the same `View` node with the altered view, we should prevent the behavior and throw an AnalysisException.
## How was this patch tested?
Test by `SQLViewSuite.test("correctly handle a cyclic view reference")`.
Author: jiangxingbo <jiangxb1987@gmail.com>
Closes #17152 from jiangxb1987/cyclic-view.
Diffstat (limited to 'python/docs/epytext.py')
0 files changed, 0 insertions, 0 deletions