Repository: incubator-airflow
Updated Branches:
  refs/heads/master 3b84bcb3e -> 5db7ec70f


[AIRFLOW-278] Support utf-8 ecoding for SQL

Support utf-8 encoding for SQL queries, needed for Python 2
users who have unicode strings inside the queries

Closes #1622 from biln/master


Project: http://git-wip-us.apache.org/repos/asf/incubator-airflow/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-airflow/commit/5db7ec70
Tree: http://git-wip-us.apache.org/repos/asf/incubator-airflow/tree/5db7ec70
Diff: http://git-wip-us.apache.org/repos/asf/incubator-airflow/diff/5db7ec70

Branch: refs/heads/master
Commit: 5db7ec70f8b45bc4872ae64901d2829efa0e4081
Parents: 3b84bcb
Author: Nikolay Bilev <bil...@gmail.com>
Authored: Mon Jun 27 11:20:36 2016 -0400
Committer: jlowin <jlo...@users.noreply.github.com>
Committed: Mon Jun 27 11:20:41 2016 -0400

----------------------------------------------------------------------
 airflow/hooks/dbapi_hook.py | 9 +++++++++
 1 file changed, 9 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-airflow/blob/5db7ec70/airflow/hooks/dbapi_hook.py
----------------------------------------------------------------------
diff --git a/airflow/hooks/dbapi_hook.py b/airflow/hooks/dbapi_hook.py
index f6e86b6..55f2d95 100644
--- a/airflow/hooks/dbapi_hook.py
+++ b/airflow/hooks/dbapi_hook.py
@@ -17,6 +17,7 @@ from past.builtins import basestring
 from datetime import datetime
 import numpy
 import logging
+import sys
 
 from airflow.hooks.base_hook import BaseHook
 from airflow.exceptions import AirflowException
@@ -66,6 +67,8 @@ class DbApiHook(BaseHook):
         :param parameters: The parameters to render the SQL query with.
         :type parameters: mapping or iterable
         '''
+        if sys.version_info[0] < 3:
+            sql = sql.encode('utf-8')
         import pandas.io.sql as psql
         conn = self.get_conn()
         df = psql.read_sql(sql, con=conn, params=parameters)
@@ -82,6 +85,8 @@ class DbApiHook(BaseHook):
         :param parameters: The parameters to render the SQL query with.
         :type parameters: mapping or iterable
         '''
+        if sys.version_info[0] < 3:
+            sql = sql.encode('utf-8')
         conn = self.get_conn()
         cur = self.get_cursor()
         if parameters is not None:
@@ -103,6 +108,8 @@ class DbApiHook(BaseHook):
         :param parameters: The parameters to render the SQL query with.
         :type parameters: mapping or iterable
         '''
+        if sys.version_info[0] < 3:
+            sql = sql.encode('utf-8')
         conn = self.get_conn()
         cur = conn.cursor()
         if parameters is not None:
@@ -138,6 +145,8 @@ class DbApiHook(BaseHook):
 
         cur = conn.cursor()
         for s in sql:
+            if sys.version_info[0] < 3:
+                s = s.encode('utf-8')
             logging.info(s)
             if parameters is not None:
                 cur.execute(s, parameters)

Reply via email to