def __init__(self, names, types): if not isinstance(names, list): names = list(names) self.names = names self.types = [validate_type(x) for x in 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 : boolean, default False If False and there are any tables in this database, raises an IntegrityError """ if not force or self.exists_database(name): 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: self.log('Dropping {0}'.format('{0}.{1}'.format(name, table))) self.drop_table_or_view(table, database=name) for func in udfs: self.log('Dropping function {0}({1})'.format( func.name, func.inputs)) self.drop_udf(func.name, input_types=func.inputs, database=name, force=True) for func in udas: self.log('Dropping aggregate function {0}({1})'.format( func.name, func.inputs)) self.drop_udf(func.name, input_types=func.inputs, database=name, force=True, aggregate=True) else: if len(tables) > 0 or len(udfs) > 0 or len(udas) > 0: raise com.IntegrityError('Database {0} must be empty before ' 'being dropped, or set ' 'force=True'.format(name)) statement = ddl.DropDatabase(name, must_exist=not force) self._execute(statement)
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)
def drop_database(self, name, force=False): """ Drop an Impala database Parameters ---------- name : string Database name force : boolean, default False If False and there are any tables in this database, raises an IntegrityError """ tables = self.list_tables(database=name) if force: for table in tables: self.log('Dropping {0}'.format('{0}.{1}'.format(name, table))) self.drop_table_or_view(table, database=name) else: if len(tables) > 0: raise com.IntegrityError('Database {0} must be empty before ' 'being dropped, or set ' 'force=True'.format(name)) statement = ddl.DropDatabase(name, must_exist=not force) self._execute(statement)