MCPcopy Create free account
hub / github.com/apache/impala / write_query

Method write_query

tests/comparison/model_translator.py:784–810  ·  view source on GitHub ↗
(self, query, pretty=False)

Source from the content-addressed store, hash-verified

782 DIALECT = 'MYSQL'
783
784 def write_query(self, query, pretty=False):
785 # MySQL doesn't support WITH clauses so they need to be converted into inline views.
786 # We are going to cheat by making use of the fact that the query generator creates
787 # with clause entries with unique aliases even considering nested queries.
788 sql = list()
789 for clause in (
790 query.select_clause,
791 query.from_clause,
792 query.where_clause,
793 query.group_by_clause,
794 query.having_clause,
795 query.union_clause,
796 query.order_by_clause,
797 query.limit_clause
798 ):
799 if clause:
800 sql.append(self._write(clause))
801 sql = '\n'.join(sql)
802 if query.with_clause:
803 # Just replace the named referenes with inline views. Go in reverse order because
804 # entries at the bottom of the WITH clause definition may reference entries above.
805 for with_clause_inline_view in reversed(query.with_clause.with_clause_inline_views):
806 replacement_sql = '(' + self.write_query(with_clause_inline_view.query) + ')'
807 sql = sql.replace(with_clause_inline_view.identifier, replacement_sql)
808 if pretty:
809 sql = self.make_pretty_sql(sql)
810 return sql
811
812 def _write_data_type_metaclass(self, data_type_class):
813 '''Write a data type class such as Int or Boolean.'''

Callers

nothing calls this directly

Calls 4

_writeMethod · 0.80
make_pretty_sqlMethod · 0.80
appendMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected