mirror of
https://github.com/getredash/redash.git
synced 2025-12-25 01:03:20 -05:00
use SQLQuery in run_query
This commit is contained in:
@@ -12,8 +12,8 @@ from redash.utils import (collect_query_parameters,
|
||||
collect_parameters_from_request,
|
||||
gen_query_hash,
|
||||
json_dumps,
|
||||
utcnow,
|
||||
mustache_render)
|
||||
utcnow)
|
||||
from redash.utils.sql_query import SQLQuery
|
||||
from redash.tasks.queries import enqueue_query
|
||||
|
||||
|
||||
@@ -33,15 +33,16 @@ def run_query_sync(data_source, parameter_values, query_text, max_age=0):
|
||||
if missing_params:
|
||||
raise Exception('Missing parameter value for: {}'.format(", ".join(missing_params)))
|
||||
|
||||
query = SQLQuery(query_text)
|
||||
if query_parameters:
|
||||
query_text = mustache_render(query_text, parameter_values)
|
||||
query.apply(parameter_values)
|
||||
|
||||
if max_age <= 0:
|
||||
query_result = None
|
||||
else:
|
||||
query_result = models.QueryResult.get_latest(data_source, query_text, max_age)
|
||||
query_result = models.QueryResult.get_latest(data_source, query.text(), max_age)
|
||||
|
||||
query_hash = gen_query_hash(query_text)
|
||||
query_hash = gen_query_hash(query.text())
|
||||
|
||||
if query_result:
|
||||
logging.info("Returning cached result for query %s" % query_hash)
|
||||
@@ -49,7 +50,7 @@ def run_query_sync(data_source, parameter_values, query_text, max_age=0):
|
||||
|
||||
try:
|
||||
started_at = time.time()
|
||||
data, error = data_source.query_runner.run_query(query_text, current_user)
|
||||
data, error = data_source.query_runner.run_query(query.text(), current_user)
|
||||
|
||||
if error:
|
||||
logging.info('got bak error')
|
||||
@@ -58,7 +59,7 @@ def run_query_sync(data_source, parameter_values, query_text, max_age=0):
|
||||
|
||||
run_time = time.time() - started_at
|
||||
query_result, updated_query_ids = models.QueryResult.store_result(data_source.org_id, data_source,
|
||||
query_hash, query_text, data,
|
||||
query_hash, query.text(), data,
|
||||
run_time, utcnow())
|
||||
|
||||
models.db.session.commit()
|
||||
@@ -84,18 +85,20 @@ def run_query(data_source, parameter_values, query_text, query_id, max_age=0):
|
||||
|
||||
return error_response(message)
|
||||
|
||||
query = SQLQuery(query_text)
|
||||
|
||||
if query_parameters:
|
||||
query_text = mustache_render(query_text, parameter_values)
|
||||
query.apply(parameter_values)
|
||||
|
||||
if max_age == 0:
|
||||
query_result = None
|
||||
else:
|
||||
query_result = models.QueryResult.get_latest(data_source, query_text, max_age)
|
||||
query_result = models.QueryResult.get_latest(data_source, query.text(), max_age)
|
||||
|
||||
if query_result:
|
||||
return {'query_result': query_result.to_dict()}
|
||||
else:
|
||||
job = enqueue_query(query_text, data_source, current_user.id, metadata={"Username": current_user.email, "Query ID": query_id})
|
||||
job = enqueue_query(query.text(), data_source, current_user.id, metadata={"Username": current_user.email, "Query ID": query_id})
|
||||
return {'job': job.to_dict()}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user