22 lines
572 B
Python
22 lines
572 B
Python
from __future__ import annotations
|
|
|
|
import sqlalchemy as sa
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
|
|
def sqlite_fts_phrase_query(q: str) -> str:
|
|
q = (q or "").strip()
|
|
q = q.replace('"', '""')
|
|
return f'"{q}"'
|
|
|
|
|
|
async def sqlite_table_exists(session: AsyncSession, *, name: str) -> bool:
|
|
name = (name or "").strip()
|
|
if not name:
|
|
return False
|
|
result = await session.execute(
|
|
sa.text("SELECT 1 FROM sqlite_master WHERE type='table' AND name=:name LIMIT 1;"),
|
|
{"name": name},
|
|
)
|
|
return result.first() is not None
|