> ...и учить ещё один язык в дополнение к SQL.Это и есть sql. Тут ничего учить дополнительно не надо, достаточно понять идею, как синтаксис sql транслируется в это.
> А потом ой а как написать OR? Ой а как написать постгрес специфичный оператор? Ой а как вместо таблицы подзапрос? Ой а CTE написать?
Для того, чтобы таких вопросов не возникало, библиотека для создания sql запросов должна хоститься на github'е, чтобы её разработка велась бы несколькими заинтересованными разработчиками, и постоянно бы туда влетали бы feature и pull реквесты. Через полгода она будет уметь всё, что надо. Ещё через полгода-год, она стабилизируется.
> Я лично вообще не понимаю, как можно такие баги (возможность sql-инъекции) допускать
> на любом языке.
Это потому, что, видимо, нет опыта долгосрочной поддержки программ с параллельным их развитием.
> Рукожопу и Rust не помеха
Да. Как показывает опыт применения miri на std из rust'а, не проблема: https://github.com/rust-lang/miri#bugs-found-by-miri
Если тебе слова в тех багах мало что говорят, то я поясню, что последние четыре -- это прямые нарушения rust'овых инвариантов, которые можно использовать для того, чтобы получить, как минимум, data race. А в некоторых, случаях, возможно даже use after free или типа того. Точнее не скажу, что именно можно -- это надо смотреть описание багов.
Но здесь ты совершаешь очень распространённую ошибку. Если мы не можем решить проблему на 100%, это не повод отказываться от того, чтобы решить её на 90%. Проблема решённая на 90% лучше, чем проблема решённая на 0%.