def test_compare_get_columns_for_sql_and_odbc(self, schema, table, engine_name): with self.engine_map[engine_name].begin() as c: if schema is None: c.execute("OPEN SCHEMA %s" % self.schema) dialect = EXADialect() columns_fallback = dialect.get_columns(connection=c, table_name=table, schema=schema, use_sql_fallback=True) columns_odbc = dialect.get_columns(connection=c, table_name=table, schema=schema) assert str(columns_fallback) == str( columns_odbc) # object equality doesn't work for sqltypes
def test_get_columns_table_name_none(self, use_sql_fallback, engine_name): with self.engine_map[engine_name].begin() as c: dialect = EXADialect() columns = dialect.get_columns(connection=c, schema=self.schema, table_name=None, use_sql_fallback=use_sql_fallback) assert columns == []
def test_get_columns(self, use_sql_fallback, engine_name): with self.engine_map[engine_name].begin() as c: dialect = EXADialect() columns = dialect.get_columns(connection=c, schema=self.schema, table_name="t", use_sql_fallback=use_sql_fallback) expected = [ { 'default': None, 'is_distribution_key': False, 'name': 'pid1', 'nullable': False, 'type': INTEGER() }, { 'default': None, 'is_distribution_key': False, 'name': 'pid2', 'nullable': False, 'type': INTEGER() }, { 'default': None, 'is_distribution_key': False, 'name': 'name', 'nullable': True, 'type': VARCHAR(length=20) }, { 'default': None, 'is_distribution_key': False, 'name': 'age', 'nullable': True, 'type': INTEGER() }, ] assert self.make_columns_comparable( expected) == self.make_columns_comparable(columns)
def with_fallback(session2, schema, table): dialect = EXADialect() dialect.get_columns(session2, schema=schema, table_name=table, use_sql_fallback=True)