def _get_schema_using_query(self, query): with self._execute(query, results=True) as result: # resets the state of the cursor and closes operation result.cursor.fetchall() names, ibis_types = self._adapt_types( _extract_column_details( result.cursor._result.row_set.row_desc)) return sch.Schema(names, ibis_types)
def _get_schema_using_query(self, query): with self._execute(query, results=True) as result: # resets the state of the cursor and closes operation result.cursor.fetchall() names, ibis_types = self._adapt_types( _extract_column_details(result.cursor._result.row_set.row_desc) ) return sch.Schema(names, ibis_types)
def test_extract_row_details(self): data = [ TColumnType(col_name='date_', col_type=TTypeInfo(type=6, encoding=4, nullable=True, is_array=False, precision=0, scale=0, comp_param=32), is_reserved_keyword=False, src_name=''), TColumnType(col_name='trans', col_type=TTypeInfo(type=6, encoding=4, nullable=True, is_array=False, precision=0, scale=0, comp_param=32), is_reserved_keyword=False, src_name=''), TColumnType(col_name='symbol', col_type=TTypeInfo(type=6, encoding=4, nullable=True, is_array=False, precision=0, scale=0, comp_param=32), is_reserved_keyword=False, src_name=''), TColumnType(col_name='qty', col_type=TTypeInfo(type=1, encoding=0, nullable=True, is_array=False, precision=0, scale=0, comp_param=0), is_reserved_keyword=False, src_name=''), TColumnType(col_name='price', col_type=TTypeInfo(type=3, encoding=0, nullable=True, is_array=False, precision=0, scale=0, comp_param=0), is_reserved_keyword=False, src_name=''), TColumnType(col_name='vol', col_type=TTypeInfo(type=3, encoding=0, nullable=True, is_array=False, precision=0, scale=0, comp_param=0), is_reserved_keyword=False, src_name='')] result = _extract_column_details(data) expected = [ ColumnDetails(name='date_', type='STR', nullable=True, precision=0, scale=0, comp_param=32), ColumnDetails(name='trans', type='STR', nullable=True, precision=0, scale=0, comp_param=32), ColumnDetails(name='symbol', type='STR', nullable=True, precision=0, scale=0, comp_param=32), ColumnDetails(name='qty', type='INT', nullable=True, precision=0, scale=0, comp_param=0), ColumnDetails(name='price', type='FLOAT', nullable=True, precision=0, scale=0, comp_param=0), ColumnDetails(name='vol', type='FLOAT', nullable=True, precision=0, scale=0, comp_param=0) ] assert result == expected