Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepend "-- " to default query_comment #64

Merged
merged 1 commit into from
Apr 5, 2022
Merged

Prepend "-- " to default query_comment #64

merged 1 commit into from
Apr 5, 2022

Conversation

daniel-cortez-stevenson
Copy link
Contributor

Athena DDL does not always respect /* ... */ block quotations. This is
the case with (at least) create external table ... statements.

Currently, if you try to run create external table ... statements, the
following error is returned: pyathena.error.OperationalError: FAILED: ParseException line 1:0 cannot recognize input near '/' '*' '{'

Here I monkey-patched _QueryComment.add to prepend "-- " to the
query_comment and replace any newlines with " ".

This allows the default query_comment to be added to create external table statements.

We might want to do this so that dbt-labs/dbt-external-tables can add
Athena support as is proposed in dbt-labs/dbt-external-tables/pull/133

Without this modification, the only way to run dbt run-operation stage_external_sources --vars "ext_full_refresh: true" without an error
is to set query_comment: to nothing, a specific value, or a macro.

Athena DDL does not always respect /* ... */ block quotations. This is
the case with (at least) `create external table ...` statements.

Currently, if you try to run `create external table ...` statements, the
following error is returned: `pyathena.error.OperationalError: FAILED:
ParseException line 1:0 cannot recognize input near '/' '*' '{'`

Here I monkey-patched _QueryComment.add to prepend "-- " to the
`query_comment` and replace any newlines with " ".

This allows the default `query_comment` to be added to `create external
table` statements.

We might want to do this so that dbt-labs/dbt-external-tables can add
Athena support as is proposed in dbt-labs/dbt-external-tables/pull/133

Without this modification, the only way to run `dbt run-operation
stage_external_sources --vars "ext_full_refresh: true"` without an error
is to set `query_comment:` to nothing, a specific value, or a macro.
Copy link

@divy9393 divy9393 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@daniel-cortez-stevenson
Copy link
Contributor Author

Hey @Tomme - any interest in pulling this in?

@Gatsby-Lee
Copy link

@Tomme @divy9393
What is the status of this PR?
If this change looks good, can you merge this into the master?

@Tomme Tomme merged commit 12bb656 into Tomme:master Apr 5, 2022
@Gatsby-Lee
Copy link

@Tomme
Thank you

@Tomme
Copy link
Owner

Tomme commented Apr 5, 2022

@Tomme Thank you

No worries at all - apologies for the delay!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants