From 2e9543076a2f9b1c854476577a7812499b25844c Mon Sep 17 00:00:00 2001
From: Ruxandra Burtica <ruxandra.burtica@gmail.com>
Date: Thu, 25 Aug 2016 15:58:08 +0300
Subject: [PATCH 1/7] Added possibility of querying from multiple tables, using
 date_range.

---
 bigquery/query_builder.py | 44 +++++++++++++++++++++++++++++++++------
 1 file changed, 38 insertions(+), 6 deletions(-)

diff --git a/bigquery/query_builder.py b/bigquery/query_builder.py
index 7362148..c7864f0 100644
--- a/bigquery/query_builder.py
+++ b/bigquery/query_builder.py
@@ -138,7 +138,20 @@ def _render_sources(dataset, tables):
     dataset : str
         The data set to fetch log data from.
     tables : Union[dict, list]
-        The tables to fetch log data from
+        The tables to fetch log data from; detailed formats are described below:
+            list:
+                tables = [table1, table2, table3]
+            dict:
+                tables = {
+                    'date_range': True,
+                    'include_intraday': True/False,
+                    'table': 'ga_sessions_',
+                    'from_date': '2016-08-01',
+                    'to_date': '2016-08-24'
+                }
+
+            Note! that when setting include_intraday to True, it is probable
+            that incomplete data is returned.
 
     Returns
     -------
@@ -149,11 +162,20 @@ def _render_sources(dataset, tables):
     if isinstance(tables, dict):
         if tables.get('date_range', False):
             try:
-                dataset_table = '.'.join([dataset, tables['table']])
-                return "FROM (TABLE_DATE_RANGE([{}], TIMESTAMP('{}'),"\
-                    " TIMESTAMP('{}'))) ".format(dataset_table,
-                                                 tables['from_date'],
-                                                 tables['to_date'])
+                table_list = tables['table']
+                if isinstance(table_list, basestring):
+                    table_list = [table_list]
+
+                from_list = []
+                for single_table in table_list:
+                    from_string = _render_single_source(
+                        dataset, single_table,
+                        tables['from_date'], tables['to_date'])
+                    from_list.append(from_string)
+                from_strings = ', '.join(from_list)
+
+                return "FROM {}".format(from_strings)
+
             except KeyError as exp:
                 logger.warn(
                     'Missing parameter %s in selecting sources' % (exp))
@@ -163,6 +185,16 @@ def _render_sources(dataset, tables):
             ["[%s.%s]" % (dataset, table) for table in tables])
 
 
+def _render_single_source(dataset, table, from_date, to_date):
+    dataset_table = '.'.join([dataset, table])
+    from_string = (
+        "(TABLE_DATE_RANGE([{}], "
+        "TIMESTAMP('{}'), TIMESTAMP('{}'))) ".format(
+            dataset_table, from_date, to_date)
+    )
+    return from_string
+
+
 def _render_conditions(conditions):
     """Render the conditions part of a query.
 

From 599b231e896880436eae2ba3ec9b195b5fa5c6cf Mon Sep 17 00:00:00 2001
From: Ruxandra Burtica <ruxandra.burtica@gmail.com>
Date: Thu, 25 Aug 2016 16:02:48 +0300
Subject: [PATCH 2/7] Removed  parameter.

---
 bigquery/query_builder.py | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/bigquery/query_builder.py b/bigquery/query_builder.py
index c7864f0..5642790 100644
--- a/bigquery/query_builder.py
+++ b/bigquery/query_builder.py
@@ -144,15 +144,13 @@ def _render_sources(dataset, tables):
             dict:
                 tables = {
                     'date_range': True,
-                    'include_intraday': True/False,
                     'table': 'ga_sessions_',
+                    # OR
+                    # 'table': ['ga_sessions_', 'ga_sessions_intraday_'],
                     'from_date': '2016-08-01',
                     'to_date': '2016-08-24'
                 }
 
-            Note! that when setting include_intraday to True, it is probable
-            that incomplete data is returned.
-
     Returns
     -------
     str

From bd78a281b42b700bf31b8c652925ef6a5a8e7ae0 Mon Sep 17 00:00:00 2001
From: Ruxandra Burtica <ruxandra.burtica@gmail.com>
Date: Thu, 25 Aug 2016 16:18:34 +0300
Subject: [PATCH 3/7] Using str instead of basestring & incremented version.

---
 bigquery/query_builder.py | 2 +-
 bigquery/version.py       | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/bigquery/query_builder.py b/bigquery/query_builder.py
index 5642790..235007e 100644
--- a/bigquery/query_builder.py
+++ b/bigquery/query_builder.py
@@ -161,7 +161,7 @@ def _render_sources(dataset, tables):
         if tables.get('date_range', False):
             try:
                 table_list = tables['table']
-                if isinstance(table_list, basestring):
+                if isinstance(table_list, str):
                     table_list = [table_list]
 
                 from_list = []
diff --git a/bigquery/version.py b/bigquery/version.py
index b280975..e8b6b09 100644
--- a/bigquery/version.py
+++ b/bigquery/version.py
@@ -1 +1 @@
-__version__ = '1.8.0'
+__version__ = '1.8.1'

From 37ec356a9faa2d6af0f842ec35cde8e4677eccef Mon Sep 17 00:00:00 2001
From: Ruxandra Burtica <ruxandra.burtica@gmail.com>
Date: Tue, 28 Nov 2017 14:48:28 +0200
Subject: [PATCH 4/7] Create requirements.txt

---
 requirements.txt | 3 +++
 1 file changed, 3 insertions(+)
 create mode 100644 requirements.txt

diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..5b8aed8
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,3 @@
+google-api-python-client
+httplib2
+python-dateutil

From 43fe45daf15743873f18b709991c1b8d5cf8ee1a Mon Sep 17 00:00:00 2001
From: Ruxandra Burtica <ruxandra.burtica@gmail.com>
Date: Tue, 28 Nov 2017 14:51:30 +0200
Subject: [PATCH 5/7] Rename README.md to README_TEST.md

---
 README_TEST.md | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 README_TEST.md

diff --git a/README_TEST.md b/README_TEST.md
new file mode 100644
index 0000000..8187010
--- /dev/null
+++ b/README_TEST.md
@@ -0,0 +1 @@
+New file for testing CI/CD

From 57e6887b2db4f6882b88b0eca3544ed24a22c3af Mon Sep 17 00:00:00 2001
From: Ruxandra Burtica <ruxandra.burtica@gmail.com>
Date: Tue, 28 Nov 2017 14:54:20 +0200
Subject: [PATCH 6/7] Breaking CI/CD

---
 requirements.txt | 2 --
 1 file changed, 2 deletions(-)

diff --git a/requirements.txt b/requirements.txt
index 5b8aed8..d8055e0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1 @@
 google-api-python-client
-httplib2
-python-dateutil

From 74b9e2ee4d7c467084e842004bb72ffab5edb793 Mon Sep 17 00:00:00 2001
From: Ruxandra Burtica <ruxandra.burtica@gmail.com>
Date: Tue, 28 Nov 2017 15:28:35 +0200
Subject: [PATCH 7/7] Update requirements.txt

---
 requirements.txt | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/requirements.txt b/requirements.txt
index d8055e0..5b8aed8 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1 +1,3 @@
 google-api-python-client
+httplib2
+python-dateutil