sql query?
Сейчас просто руками сделано через обычные строки
f"select count(*) from ({sqlstr}) as data_count"
с небольшими вариациями для разных диалектов
самое близкое что вышло это
text(sqlstr).columns(column('*')).count()
-> SELECT count("*") AS tbl_row_count
FROM (select * from Customer)
Но не работает из за кавычек вокруг *
ужас какой.
0_0
Да, дрисня, собственно потому нужен адекватный вариант. Однако сделать sql инъекцию не вышло даже в таком случае. Добавлю контекста, это raw sql фича энивей так что если юзер захочет что то написать то сделает это.
А по вашему мнению в чём ужас?
в "для произвольной ползовательской строки"
count(1) (или другой константы)?
Это работает если написать руками запрос, но всё ещё вопрос как из sqlachemy это получить
text(sqlstr).columns(text('*')).count() ?
select count ('*') ... и будет, из за кавычек не будет работать. Должно быть select count(*) ...
Обсуждают сегодня