HIVE-29059: SHOW CREATE TABLE ignores all strings after tab character for VIEWs#6563
Conversation
|
There was a problem hiding this comment.
Pull request overview
Fixes HIVE-29059 where SHOW CREATE TABLE for VIEWs can truncate output after literal tab characters by escaping tab characters in the rendered VIEW DDL, and adds a qtest covering several tab-containing VIEW definitions.
Changes:
- Escape literal tab characters (
\t) inSHOW CREATE TABLEoutput for VIEWs. - Add a new clientpositive qtest that creates/views with tabs in whitespace and string literals and verifies
\tescaping. - Add the corresponding LLAP expected output file for the new qtest.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
ql/src/java/org/apache/hadoop/hive/ql/ddl/table/create/show/ShowCreateTableOperation.java |
Escapes tab characters in the generated CREATE VIEW statement before writing results. |
ql/src/test/queries/clientpositive/show_create_table_tab_view.q |
New qtest query file exercising tab characters in VIEW definitions and literals. |
ql/src/test/results/clientpositive/llap/show_create_table_tab_view.q.out |
New LLAP golden output validating \t escaping and non-view behavior. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
ayushtkn
left a comment
There was a problem hiding this comment.
minor comments, rest looks good
| -- Test SHOW CREATE TABLE when view is expanded text contains a tab (HIVE-29059). | ||
| -- IDE may replace tabs with spaces during edit. | ||
| -- This test qfile requires actual tabs instead of soft tabs/spaces to function properly |
| INSERT INTO hive_29059_src VALUES ('a1', 'b1', 'c1'); | ||
|
|
||
| -- Create view from source table with tab in the WHERE clause | ||
| CREATE VIEW hive_29059_v AS SELECT * FROM hive_29059_src |
There was a problem hiding this comment.
we should use some better name rather than the jira id
| DROP VIEW IF EXISTS hive_29059_v; | ||
| DROP VIEW IF EXISTS hive_29059_v2; | ||
| DROP VIEW IF EXISTS hive_29059_v3; | ||
| DROP VIEW IF EXISTS hive_29059_v4; | ||
| DROP VIEW IF EXISTS hive_29059_v5; | ||
| DROP TABLE IF EXISTS hive_29059_src; |
There was a problem hiding this comment.
I don't think these drops are required, the framework takes care of dropping all the table, maybe we can get rid of these here and above



… for views
What changes were proposed in this pull request?
Addresses the issue for HIVE-29059 when a view is created with actual tabs, the SHOW CREATE TABLE output would truncate all strings after the tab.
Why are the changes needed?
SHOW CREATE TABLE of a view's create comment containing tab characters should have the same behaviour as COMMENTs when running SHOW CREATE TABLE on a normal table, which should display tab as \t instead of truncating all contents after it.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Created show_create_table_tab_view.q which contains testing tab for several cases