def test_string(): string_obj = kylin_to_sqla('CHAR(64) hello this is long descrition') assert string_obj.length == 64 string_obj = kylin_to_sqla('STRING(64) hello this is long descrition') assert string_obj.length == 64 string_obj = kylin_to_sqla('VARCHAR(64) hello this is long descrition') assert string_obj.length == 64
def test_float(): decimal_obj = kylin_to_sqla('DECIMAL(20,6)') assert decimal_obj.precision == 20 assert decimal_obj.scale == 6 decimal_obj = kylin_to_sqla('DOUBLE(20)') assert decimal_obj.precision == 20 decimal_obj = kylin_to_sqla('FLOAT(20)') assert decimal_obj.precision == 20
def test_int(): assert str(kylin_to_sqla('BIGINT')) == 'BIGINT' assert str(kylin_to_sqla('INTEGER')) == 'INTEGER' assert str(kylin_to_sqla('INT')) == 'INTEGER' assert str(kylin_to_sqla('TINYINT')) == 'SMALLINT' assert str(kylin_to_sqla('SMALLINT')) == 'SMALLINT' assert str(kylin_to_sqla('INT4')) == 'BIGINT' assert str(kylin_to_sqla('LONG8')) == 'BIGINT'
def get_columns(self, connection, table_name, schema=None, **kw): conn = connection.connect() try: columns = conn.connection.connection.get_table_source(table_name, schema).columns return [{ 'name': col.name, 'type': kylin_to_sqla(col.datatype), } for col in columns] except NoSuchTableError: raise sqlalchemy.exc.NoSuchTableError
def get_columns(self, connection, table_name, schema=None, **kw): conn = connection.connect() if schema is not None: _fullname = '{}.{}'.format(schema, table_name) else: _fullname = table_name dimensions = conn.connection.connection.get_datasource( _fullname).columns return [{ 'name': dim.name, 'type': kylin_to_sqla(dim.datatype), } for dim in dimensions]
def test_others(): assert str(kylin_to_sqla('BOOLEAN')) == 'BOOLEAN' assert str(kylin_to_sqla('DATE')) == 'DATE' assert str(kylin_to_sqla('DATETIME')) == 'DATETIME' assert str(kylin_to_sqla('TIMESTAMP')) == 'TIMESTAMP'
def datatype(self): return str(kylin_to_sqla(self.description.get('type_NAME')))