mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-07-27 11:24:33 +02:00
Ability to add descending order indexes (#262)
* DescIndex(column) for descending index columns, refs #260 * Ability to add desc indexes using CLI, closes #260
This commit is contained in:
parent
b2302875c9
commit
51d01da30d
6 changed files with 69 additions and 4 deletions
|
|
@ -144,6 +144,10 @@ class InvalidColumns(Exception):
|
|||
pass
|
||||
|
||||
|
||||
class DescIndex(str):
|
||||
pass
|
||||
|
||||
|
||||
_COUNTS_TABLE_CREATE_SQL = """
|
||||
CREATE TABLE IF NOT EXISTS [{}](
|
||||
[table] TEXT PRIMARY KEY,
|
||||
|
|
@ -1156,6 +1160,13 @@ class Table(Queryable):
|
|||
index_name = "idx_{}_{}".format(
|
||||
self.name.replace(" ", "_"), "_".join(columns)
|
||||
)
|
||||
columns_sql = []
|
||||
for column in columns:
|
||||
if isinstance(column, DescIndex):
|
||||
fmt = "[{}] desc"
|
||||
else:
|
||||
fmt = "[{}]"
|
||||
columns_sql.append(fmt.format(column))
|
||||
sql = (
|
||||
textwrap.dedent(
|
||||
"""
|
||||
|
|
@ -1167,7 +1178,7 @@ class Table(Queryable):
|
|||
.format(
|
||||
index_name=index_name,
|
||||
table_name=self.name,
|
||||
columns=", ".join("[{}]".format(c) for c in columns),
|
||||
columns=", ".join(columns_sql),
|
||||
unique="UNIQUE " if unique else "",
|
||||
if_not_exists="IF NOT EXISTS " if if_not_exists else "",
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue