

def get_indexes(self, table, schema=None):
    query = 'SELECT name, sql FROM sqlite_master WHERE tbl_name = ? AND type = ? ORDER BY name'
    cursor = self.execute_sql(query, (table, 'index'))
    index_to_sql = dict(cursor.fetchall())
    unique_indexes = set()
    cursor = self.execute_sql(('PRAGMA index_list("%s")' % table))
    for row in cursor.fetchall():
        name = row[1]
        is_unique = (int(row[2]) == 1)
        if is_unique:
            unique_indexes.add(name)
    index_columns = {
        
    }
    for index_name in sorted(index_to_sql):
        cursor = self.execute_sql(('PRAGMA index_info("%s")' % index_name))
        index_columns[index_name] = [row[2] for row in cursor.fetchall()]
    return [IndexMetadata(name, index_to_sql[name], index_columns[name], (name in unique_indexes), table) for name in sorted(index_to_sql)]

dataset/ETHPy150Open coleifer/peewee/peewee.py SqliteDatabase.get_indexes/original