Skip to content

Commit e37fb82

Browse files
[executors] fix: SQL executor works with any type of query (path, console)
* Provide `inline` name for queries coming from console * Switch to uuid4 for temp table name generation in SQL executor * Execute queries in parallel only if there's more than one query
1 parent 8f782c5 commit e37fb82

File tree

3 files changed

+9
-5
lines changed

3 files changed

+9
-5
lines changed

libs/executors/garf_executors/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,4 @@ def setup_executor(
5757
'ApiExecutionContext',
5858
]
5959

60-
__version__ = '0.1.4'
60+
__version__ = '0.1.5'

libs/executors/garf_executors/entrypoints/cli.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,14 +117,17 @@ def main():
117117
enable_cache=args.enable_cache,
118118
cache_ttl_seconds=args.cache_ttl_seconds,
119119
)
120-
if args.parallel_queries:
120+
if args.parallel_queries and len(args.query) > 1:
121121
logger.info('Running queries in parallel')
122122
batch = {query: reader_client.read(query) for query in args.query}
123123
query_executor.execute_batch(batch, context, args.parallel_threshold)
124124
else:
125-
logger.info('Running queries sequentially')
125+
if len(args.query) > 1:
126+
logger.info('Running queries sequentially')
126127
for query in args.query:
127-
query_executor.execute(reader_client.read(query), query, context)
128+
query_executor.execute(
129+
query=reader_client.read(query), title=query, context=context
130+
)
128131
logging.shutdown()
129132

130133

libs/executors/garf_executors/sql_executor.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
import logging
2727
import re
28+
import uuid
2829

2930
import pandas as pd
3031
from garf_core import query_editor, report
@@ -95,7 +96,7 @@ def execute(
9596
conn.connection.executescript(query_text)
9697
results = report.GarfReport()
9798
else:
98-
temp_table_name = f'temp_{title}'.replace('.', '_')
99+
temp_table_name = f'temp_{uuid.uuid4().hex}'
99100
query_text = f'CREATE TABLE {temp_table_name} AS {query_text}'
100101
conn.connection.executescript(query_text)
101102
try:

0 commit comments

Comments
 (0)