This is an automated email from the ASF dual-hosted git repository.
pvary pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new f04323f HIVE-22804: Ensure ANSI quotes are used for mysql connections
(Zoltan Chovan via Peter Vary)
f04323f is described below
commit f04323f8e096b5b5b80d73ac50e8c8955936655c
Author: Zoltan Chovan <[email protected]>
AuthorDate: Wed Feb 5 13:33:49 2020 +0100
HIVE-22804: Ensure ANSI quotes are used for mysql connections (Zoltan
Chovan via Peter Vary)
---
.../hive/metastore/datasource/BoneCPDataSourceProvider.java | 7 +++++++
.../hive/metastore/datasource/DbCPDataSourceProvider.java | 10 +++++++++-
.../hive/metastore/datasource/HikariCPDataSourceProvider.java | 7 +++++++
3 files changed, 23 insertions(+), 1 deletion(-)
diff --git
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/datasource/BoneCPDataSourceProvider.java
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/datasource/BoneCPDataSourceProvider.java
index f3243c5..a64f311 100644
---
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/datasource/BoneCPDataSourceProvider.java
+++
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/datasource/BoneCPDataSourceProvider.java
@@ -38,6 +38,9 @@ import org.apache.hadoop.hive.metastore.metrics.Metrics;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static org.apache.hadoop.hive.metastore.DatabaseProduct.MYSQL;
+import static
org.apache.hadoop.hive.metastore.DatabaseProduct.determineDatabaseProduct;
+
/**
* DataSourceProvider for the BoneCP connection pool.
*/
@@ -80,6 +83,10 @@ public class BoneCPDataSourceProvider implements
DataSourceProvider {
config.setUser(user);
config.setPassword(passwd);
+ if (determineDatabaseProduct(driverUrl) == MYSQL) {
+ config.setInitSQL("SET @@session.sql_mode=ANSI_QUOTES");
+ }
+
return initMetrics(new BoneCPDataSource(config));
}
diff --git
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/datasource/DbCPDataSourceProvider.java
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/datasource/DbCPDataSourceProvider.java
index 1275e54..6a1ed8f 100644
---
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/datasource/DbCPDataSourceProvider.java
+++
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/datasource/DbCPDataSourceProvider.java
@@ -31,6 +31,9 @@ import org.slf4j.LoggerFactory;
import javax.sql.DataSource;
import java.sql.SQLException;
+import static org.apache.hadoop.hive.metastore.DatabaseProduct.MYSQL;
+import static
org.apache.hadoop.hive.metastore.DatabaseProduct.determineDatabaseProduct;
+
/**
* DataSourceProvider for the dbcp connection pool.
*/
@@ -98,7 +101,12 @@ public class DbCPDataSourceProvider implements
DataSourceProvider {
// This doesn't get used, but it's still necessary, see
//
https://git1-us-west.apache.org/repos/asf?p=commons-dbcp.git;a=blob;f=doc/ManualPoolingDataSourceExample.java;
//
h=f45af2b8481f030b27364e505984c0eef4f35cdb;hb=refs/heads/DBCP_1_5_x_BRANCH
- new PoolableConnectionFactory(connFactory, objectPool, null, null, false,
true);
+ PoolableConnectionFactory poolableConnFactory =
+ new PoolableConnectionFactory(connFactory, objectPool, null, null,
false, true);
+
+ if (determineDatabaseProduct(driverUrl) == MYSQL) {
+ poolableConnFactory.setValidationQuery("SET
@@session.sql_mode=ANSI_QUOTES");
+ }
return new PoolingDataSource(objectPool);
}
diff --git
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/datasource/HikariCPDataSourceProvider.java
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/datasource/HikariCPDataSourceProvider.java
index 7fd78d6..333610d 100644
---
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/datasource/HikariCPDataSourceProvider.java
+++
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/datasource/HikariCPDataSourceProvider.java
@@ -30,6 +30,9 @@ import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.Properties;
+import static org.apache.hadoop.hive.metastore.DatabaseProduct.MYSQL;
+import static
org.apache.hadoop.hive.metastore.DatabaseProduct.determineDatabaseProduct;
+
/**
* DataSourceProvider for the HikariCP connection pool.
*/
@@ -64,6 +67,10 @@ public class HikariCPDataSourceProvider implements
DataSourceProvider {
config.setJdbcUrl(driverUrl);
config.setUsername(user);
config.setPassword(passwd);
+
+ if (determineDatabaseProduct(driverUrl) == MYSQL) {
+ config.setConnectionInitSql("SET @@session.sql_mode=ANSI_QUOTES");
+ }
//https://github.com/brettwooldridge/HikariCP
config.setConnectionTimeout(connectionTimeout);