Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,12 @@ private String getExpandedText(List<FieldSchema> imposedSchema, ASTNode select,
}

String expandedText = ctx.getTokenRewriteStream().toString(select.getTokenStartIndex(), select.getTokenStopIndex());
String trimmedExpandedText = expandedText.trim();
while (trimmedExpandedText.startsWith("(") && trimmedExpandedText.endsWith(")")) {
trimmedExpandedText = trimmedExpandedText.substring(1, trimmedExpandedText.length() - 1);
expandedText = trimmedExpandedText;
trimmedExpandedText = trimmedExpandedText.trim();
}

if (imposedSchema != null) {
// Merge the names from the imposed schema into the types from the derived schema.
Expand Down
15 changes: 15 additions & 0 deletions ql/src/test/queries/clientpositive/viewdef_within_brackets.q
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
create table tbl_x (a int, b string);
insert into tbl_x values (1, 'Prince'); insert into tbl_x values (2, 'John');
create view vw_x (b) as (select a from tbl_x);
select * from vw_x;

create view vw_y (col_b) as (
( ( select b from tbl_x ) )
);
select * from vw_y;

create view vw_z as (
( ( select * from tbl_x )
)
);
select * from vw_z;
108 changes: 108 additions & 0 deletions ql/src/test/results/clientpositive/llap/viewdef_within_brackets.q.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
PREHOOK: query: create table tbl_x (a int, b string)
PREHOOK: type: CREATETABLE
PREHOOK: Output: database:default
PREHOOK: Output: default@tbl_x
POSTHOOK: query: create table tbl_x (a int, b string)
POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
POSTHOOK: Output: default@tbl_x
PREHOOK: query: insert into tbl_x values (1, 'Prince')
PREHOOK: type: QUERY
PREHOOK: Input: _dummy_database@_dummy_table
PREHOOK: Output: default@tbl_x
POSTHOOK: query: insert into tbl_x values (1, 'Prince')
POSTHOOK: type: QUERY
POSTHOOK: Input: _dummy_database@_dummy_table
POSTHOOK: Output: default@tbl_x
POSTHOOK: Lineage: tbl_x.a SCRIPT []
POSTHOOK: Lineage: tbl_x.b SCRIPT []
PREHOOK: query: insert into tbl_x values (2, 'John')
PREHOOK: type: QUERY
PREHOOK: Input: _dummy_database@_dummy_table
PREHOOK: Output: default@tbl_x
POSTHOOK: query: insert into tbl_x values (2, 'John')
POSTHOOK: type: QUERY
POSTHOOK: Input: _dummy_database@_dummy_table
POSTHOOK: Output: default@tbl_x
POSTHOOK: Lineage: tbl_x.a SCRIPT []
POSTHOOK: Lineage: tbl_x.b SCRIPT []
PREHOOK: query: create view vw_x (b) as (select a from tbl_x)
PREHOOK: type: CREATEVIEW
PREHOOK: Input: default@tbl_x
PREHOOK: Output: database:default
PREHOOK: Output: default@vw_x
POSTHOOK: query: create view vw_x (b) as (select a from tbl_x)
POSTHOOK: type: CREATEVIEW
POSTHOOK: Input: default@tbl_x
POSTHOOK: Output: database:default
POSTHOOK: Output: default@vw_x
POSTHOOK: Lineage: vw_x.b SIMPLE [(tbl_x)tbl_x.FieldSchema(name:a, type:int, comment:null), ]
PREHOOK: query: select * from vw_x
PREHOOK: type: QUERY
PREHOOK: Input: default@tbl_x
PREHOOK: Input: default@vw_x
#### A masked pattern was here ####
POSTHOOK: query: select * from vw_x
POSTHOOK: type: QUERY
POSTHOOK: Input: default@tbl_x
POSTHOOK: Input: default@vw_x
#### A masked pattern was here ####
1
2
PREHOOK: query: create view vw_y (col_b) as (
( ( select b from tbl_x ) )
)
PREHOOK: type: CREATEVIEW
PREHOOK: Input: default@tbl_x
PREHOOK: Output: database:default
PREHOOK: Output: default@vw_y
POSTHOOK: query: create view vw_y (col_b) as (
( ( select b from tbl_x ) )
)
POSTHOOK: type: CREATEVIEW
POSTHOOK: Input: default@tbl_x
POSTHOOK: Output: database:default
POSTHOOK: Output: default@vw_y
POSTHOOK: Lineage: vw_y.col_b SIMPLE [(tbl_x)tbl_x.FieldSchema(name:b, type:string, comment:null), ]
PREHOOK: query: select * from vw_y
PREHOOK: type: QUERY
PREHOOK: Input: default@tbl_x
PREHOOK: Input: default@vw_y
#### A masked pattern was here ####
POSTHOOK: query: select * from vw_y
POSTHOOK: type: QUERY
POSTHOOK: Input: default@tbl_x
POSTHOOK: Input: default@vw_y
#### A masked pattern was here ####
Prince
John
PREHOOK: query: create view vw_z as (
( ( select * from tbl_x )
)
)
PREHOOK: type: CREATEVIEW
PREHOOK: Input: default@tbl_x
PREHOOK: Output: database:default
PREHOOK: Output: default@vw_z
POSTHOOK: query: create view vw_z as (
( ( select * from tbl_x )
)
)
POSTHOOK: type: CREATEVIEW
POSTHOOK: Input: default@tbl_x
POSTHOOK: Output: database:default
POSTHOOK: Output: default@vw_z
POSTHOOK: Lineage: vw_z.a SIMPLE [(tbl_x)tbl_x.FieldSchema(name:a, type:int, comment:null), ]
POSTHOOK: Lineage: vw_z.b SIMPLE [(tbl_x)tbl_x.FieldSchema(name:b, type:string, comment:null), ]
PREHOOK: query: select * from vw_z
PREHOOK: type: QUERY
PREHOOK: Input: default@tbl_x
PREHOOK: Input: default@vw_z
#### A masked pattern was here ####
POSTHOOK: query: select * from vw_z
POSTHOOK: type: QUERY
POSTHOOK: Input: default@tbl_x
POSTHOOK: Input: default@vw_z
#### A masked pattern was here ####
1 Prince
2 John