def drop_database(self, name, force=False): """ Drop an OmniSciDB database. Parameters ---------- name : string Database name force : boolean, default False If False and there are any tables in this database, raises an IntegrityError Raises ------ ibis.common.exceptions.IntegrityError if given database has tables and force is not define as True """ tables = [] if not force or self.database(name): tables = self.list_tables(database=name) if not force and len(tables): raise com.IntegrityError( 'Database {0} must be empty before being dropped, or set ' 'force=True'.format(name)) statement = ddl.DropDatabase(name) self._execute(statement)
def __init__(self, names, types): if not isinstance(names, list): names = list(names) self.names = names self.types = list(map(dt.dtype, types)) self._name_locs = dict((v, i) for i, v in enumerate(self.names)) if len(self._name_locs) < len(self.names): raise com.IntegrityError('Duplicate column names')
def drop_database(self, name, force=False): """Drop an Impala database. Parameters ---------- name : string Database name force : bool, default False If False and there are any tables in this database, raises an IntegrityError """ if not force or name in self.list_databases(): tables = self.list_tables(database=name) udfs = self.list_udfs(database=name) udas = self.list_udas(database=name) else: tables = [] udfs = [] udas = [] if force: for table in tables: util.log('Dropping {}'.format(f'{name}.{table}')) self.drop_table_or_view(table, database=name) for func in udfs: util.log(f'Dropping function {func.name}({func.inputs})') self.drop_udf( func.name, input_types=func.inputs, database=name, force=True, ) for func in udas: util.log( 'Dropping aggregate function {}({})'.format( func.name, func.inputs ) ) self.drop_uda( func.name, input_types=func.inputs, database=name, force=True, ) else: if len(tables) > 0 or len(udfs) > 0 or len(udas) > 0: raise com.IntegrityError( 'Database {} must be empty before ' 'being dropped, or set ' 'force=True'.format(name) ) statement = DropDatabase(name, must_exist=not force) return self.raw_sql(statement)
def __init__(self, names, types): if not isinstance(names, list): names = list(names) self.names = names self.types = list(map(dt.dtype, types)) self._name_locs = {v: i for i, v in enumerate(self.names)} if len(self._name_locs) < len(self.names): duplicate_names = list(self.names) for v in self._name_locs.keys(): duplicate_names.remove(v) raise com.IntegrityError( f'Duplicate column name(s): {duplicate_names}')
def drop_database(self, name, force=False): """ Drop an MapD database Parameters ---------- name : string Database name force : boolean, default False If False and there are any tables in this database, raises an IntegrityError """ tables = [] if not force or self.database(name): tables = self.list_tables(database=name) if not force and len(tables): raise com.IntegrityError( 'Database {0} must be empty before being dropped, or set ' 'force=True'.format(name)) statement = ddl.DropDatabase(name) self._execute(statement)