Size: a a a

Rust/Verona LGBTTQQIAAPС++ strikeforce

2020 January 17

К

Константин in Rust/Verona LGBTTQQIAAPС++ strikeforce
Там всё, как в обычном императивном языке есть, только для работы с базой заточено. Переменные, циклы, кодогенерация...
источник

К

Константин in Rust/Verona LGBTTQQIAAPС++ strikeforce
Мы с 2012 года на хранимках так всё пишем. Работает хорошо, быстро, удобно. Поддерживать легко. Есть инструменты отладки и тестирования
источник

E🤙

Evgεny 🤙 in Rust/Verona LGBTTQQIAAPС++ strikeforce
Я как-то 3 подхода делал к пл
источник

E🤙

Evgεny 🤙 in Rust/Verona LGBTTQQIAAPС++ strikeforce
Слишком сложно для зумера
источник

E🤙

Evgεny 🤙 in Rust/Verona LGBTTQQIAAPС++ strikeforce
Мне бы раст
источник

AS

Anton Shramko in Rust/Verona LGBTTQQIAAPС++ strikeforce
Константин
Там встроенный язык. PL/PgSQL
посмотрел, нет нормального варианта чекать и обрабатывать свойства относительно необязательных аргументов
источник

К

Константин in Rust/Verona LGBTTQQIAAPС++ strikeforce
И через вьюхи можно модификации над базой делать, кстати. Просто навещать на неё триггер, например на вставку во вьюху. Они опять таки вызывают процедуру, а дальше делай шо хошь
источник

H

Hedgar in Rust/Verona LGBTTQQIAAPС++ strikeforce
Сериал Ведьмак лютый треш.
Взяли 2 топ-моделей на роли Йен и Трисс, а потом к ним пришли из Министерства Толерастии и заставили их свапнуть с Ренфри и Висенной
источник

AS

Anton Shramko in Rust/Verona LGBTTQQIAAPС++ strikeforce
на вьюхи только базовые операции можно делать, с четким количеством аргументов, есть default значения, но проверку на отсутствие для изменения выражения не сделать
источник

К

Константин in Rust/Verona LGBTTQQIAAPС++ strikeforce
Anton Shramko
посмотрел, нет нормального варианта чекать и обрабатывать свойства относительно необязательных аргументов
Есть. Дайте пример, а покажу как
источник

AS

Anton Shramko in Rust/Verona LGBTTQQIAAPС++ strikeforce
select products.name as name, array_agg(tags.name) AS tags from products
inner join product_tags on (products.id = product_tags.product_id)
inner join tags on (product_tags.tag_id = tags.id)
where tags.id in (2, 1) and products.name = 'Baz'
group by products.name;
источник

AS

Anton Shramko in Rust/Verona LGBTTQQIAAPС++ strikeforce
вот пример выражения
источник

AS

Anton Shramko in Rust/Verona LGBTTQQIAAPС++ strikeforce
для where нужно определение на наличие аргументов для возможности их добавления
источник

AS

Anton Shramko in Rust/Verona LGBTTQQIAAPС++ strikeforce
тобишь стандартные фильтры
источник

AS

Anton Shramko in Rust/Verona LGBTTQQIAAPС++ strikeforce
postgres такое съесть не сможет, нужен квери билдер нормальный, такие дела @perdumonocle
источник

E🤙

Evgεny 🤙 in Rust/Verona LGBTTQQIAAPС++ strikeforce
Hedgar
Сериал Ведьмак лютый треш.
Взяли 2 топ-моделей на роли Йен и Трисс, а потом к ним пришли из Министерства Толерастии и заставили их свапнуть с Ренфри и Висенной
фу лукист
источник

E🤙

Evgεny 🤙 in Rust/Verona LGBTTQQIAAPС++ strikeforce
но не поспорить
источник

H

Hedgar in Rust/Verona LGBTTQQIAAPС++ strikeforce
Evgεny 🤙
фу лукист
никогда не стрелял из лука
источник

К

Константин in Rust/Verona LGBTTQQIAAPС++ strikeforce
Anton Shramko
select products.name as name, array_agg(tags.name) AS tags from products
inner join product_tags on (products.id = product_tags.product_id)
inner join tags on (product_tags.tag_id = tags.id)
where tags.id in (2, 1) and products.name = 'Baz'
group by products.name;
Например передать в качестве параметров пары опций и значений. В цикле пройти по парам и сгенерить код типа:
s := s || 'AND ' || quote_param(key) || ' = ' || quote_param(value);

А потом подать всё выражение на EXECUTE QUERY
источник

К

Константин in Rust/Verona LGBTTQQIAAPС++ strikeforce
Это если "в лоб" решать. Так есть варианты
источник