[
https://issues.apache.org/jira/browse/HIVE-29032?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated HIVE-29032:
----------------------------------
Labels: pull-request-available (was: )
> Enhance qt:database option to expose connection properties in qfiles
> --------------------------------------------------------------------
>
> Key: HIVE-29032
> URL: https://issues.apache.org/jira/browse/HIVE-29032
> Project: Hive
> Issue Type: Improvement
> Components: Testing Infrastructure
> Reporter: Stamatis Zampetakis
> Assignee: Stamatis Zampetakis
> Priority: Major
> Labels: pull-request-available
>
> The qt:database option is very useful for managing the life-cycle of
> databases in qtests.
> In many cases, though we need to set explicitly the connection properties,
> i.e., url, username, password, etc., in the .q file.
> {code:sql}
> --!qt:database:postgres:q_test_country_table.sql
> CREATE EXTERNAL TABLE country
> (
> id int,
> name varchar(20)
> )
> STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
> TBLPROPERTIES (
> "hive.sql.database.type" = "POSTGRES",
> "hive.sql.jdbc.driver" = "org.postgresql.Driver",
> "hive.sql.jdbc.url" = "jdbc:postgresql://localhost:5432/qtestDB",
> "hive.sql.dbcp.username" = "qtestuser",
> "hive.sql.dbcp.password" = "qtestpassword",
> "hive.sql.table" = "country"
> );
> {code}
> The developer needs to dig around in the code to find the values of these
> properties, and whenever some value changes we are forced to update all the
> .q files.
> I propose to enhance the qt:database option so that we can access the most
> common connection properties (url, username, password) using variable
> substitution.
> {code:sql}
> --!qt:database:postgres:q_test_country_table.sql
> CREATE EXTERNAL TABLE country
> (
> id int,
> name varchar(20)
> )
> STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
> TBLPROPERTIES (
> "hive.sql.database.type" = "POSTGRES",
> "hive.sql.jdbc.driver" = "org.postgresql.Driver",
> "hive.sql.jdbc.url" = "${system:hive.test.db.postgres.jdbc.url}",
> "hive.sql.dbcp.username" =
> "${system:hive.test.db.postgres.jdbc.user}",
> "hive.sql.dbcp.password" =
> "${system:hive.test.db.postgres.jdbc.password}",
> "hive.sql.table" = "country"
> );
> SELECT * FROM country;
> {code}
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)