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

Class InsertStatement

tests/comparison/query.py:787–869  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

785
786
787class InsertStatement(AbstractStatement):
788
789 def __init__(self, with_clause=None, insert_clause=None, select_query=None,
790 values_clause=None, execution=None):
791 """
792 Represent an INSERT/UPSERT statement. Note that UPSERTs are very similar to INSERTs,
793 so this data structure can easily deal with both.
794
795 The INSERT/UPSERT may have an optional WithClause, and then either a SELECT query
796 (Query) object from whose rows we INSERT, or a VALUES clause, but not both.
797
798 The execution attribute is used by the discrepancy_searcher to track whether this
799 InsertStatement is some sort of setup operation or a true random statement test.
800 """
801 super(InsertStatement, self).__init__()
802 self._select_query = None
803 self._values_clause = None
804 self.execution = execution
805 self.select_query = select_query
806 self.values_clause = values_clause
807 self.with_clause = with_clause
808 self.insert_clause = insert_clause
809
810 @property
811 def select_query(self):
812 return self._select_query
813
814 @select_query.setter
815 def select_query(self, select_query):
816 if self.values_clause is None or select_query is None:
817 self._select_query = select_query
818 else:
819 raise Exception('An INSERT/UPSERT statement may not have both the select_query and '
820 'values_clause set: {select}; {values}'.format(
821 select=select_query, values=self.values_clause))
822
823 @property
824 def values_clause(self):
825 return self._values_clause
826
827 @values_clause.setter
828 def values_clause(self, values_clause):
829 if self.select_query is None or values_clause is None:
830 self._values_clause = values_clause
831 else:
832 raise Exception('An INSERT/UPSERT statement may not have both the select_query and '
833 'values_clause set: {select}; {values}'.format(
834 select=self.select_query, values=values_clause))
835
836 @property
837 def table_exprs(self):
838 table_exprs = super(InsertStatement, self).table_exprs # WITH clause
839 if self.select_query is not None:
840 table_exprs.extend(self.select_query.table_exprs)
841 return table_exprs
842
843 @property
844 def nested_queries(self):

Callers 3

generate_statementMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected