message: Preprocess SQL Lab query prior to checking syntax
  Syntax checking doesn't work if jinja templates haven't been prerendered.
  Also remove unreachable return statement. Fixes
diff: @@ -161,8 +161,18 @@ def execute_sql(
  if store_results and not results_backend:
  return handle_error("Results backend isn't configured.")
  + try:
  + template_processor = get_template_processor(
  + database=database, query=query)
  + tp = template_params or {}
  + rendered_query = template_processor.process_template(query.sql, **tp)
  + except Exception as e:
  + logging.exception(e)
  + msg = 'Template rendering failed: ' + utils.error_msg_from_exception(e)
  + return handle_error(msg)
  +
  # Limit enforced only for retrieving the data, not for the CTA queries.
  - superset_query = SupersetQuery(query.sql)
  + superset_query = SupersetQuery(rendered_query)
  executed_sql = superset_query.stripped()
  if not superset_query.is_select() and not database.allow_dml:
  return handle_error(
  @@ -172,7 +182,6 @@ def execute_sql(
  return handle_error(
  'Only `SELECT` statements can be used with the CREATE TABLE '
  'feature.')
  - return
  if not query.tmp_table_name:
  start_dttm = datetime.fromtimestamp(query.start_time)
  query.tmp_table_name = 'tmp_{}_table_{}'.format(
  @@ -183,16 +192,6 @@ def execute_sql(
  db_engine_spec.limit_method == LimitMethod.WRAP_SQL):
  executed_sql = database.wrap_sql_limit(executed_sql, query.limit)
  query.limit_used = True
  - try:
  - template_processor = get_template_processor(
  - database=database, query=query)
  - tp = template_params or {}
  - executed_sql = template_processor.process_template(
  - executed_sql, **tp)
  - except Exception as e:
  - logging.exception(e)
  - msg = 'Template rendering failed: ' + utils.error_msg_from_exception(e)
  - return handle_error(msg)
  # Hook to allow environment-specific mutation (usually comments) to the SQL
  SQL_QUERY_MUTATOR = config.get('SQL_QUERY_MUTATOR')
  