heavycharged
ещё промиса не хватает
Zver
Всем спасибо!
heavycharged
это select
heavycharged
менять, потому что у меня билдится запрос, а затем нужно получить количество значений для пагинатора
Илья
хм, ну собирай запрос без columns, заполняй только в том месте где вызываешь
Илья
я делал что-то в духе whereBuilder(q sq.SelectBuilder) и вызывал whereBuilder(sq.Select("*"))
heavycharged
ну я примерно так и сделал, создаю так sq.Select(nil...).From(table)
heavycharged
без nil... паникует, к слову.
heavycharged
можно наверное как-то через sq.SelectBuilder{}.From() но тоже чет не зашло
heavycharged
ладно, и так сойдет
heavycharged
ну оно помоему не работает так
heavycharged
если я не ошибаюсь
Илья
ну я примерно так и сделал, создаю так sq.Select(nil...).From(table)
а зачем делать nil? или в зависимости от условий у вас разные колонки запрашиваются?
heavycharged
да, тут ебаная куча запросов, от которой у меня голова уже плывет
heavycharged
ОРМа нет, исторически сложилось.
Илья
идея, типо два раза не гонять билдер, чтобы count и список получать из одного сбилдженого запроса?
Илья
ОРМ бы тут не помог
heavycharged
конкретно тут, да.
Илья
я бы сказал, что не имеет особого смысла
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
А насколько запросы разные? Может и не билдить ничего и просто заготовить prepared statements где-то во время инициализации?
Илья
там все промежуточные этапы особо ничего не потребляют, самое "тяжелое" в ToSql
Илья
так что просто два раза вызвать сборку условий должно быть норм
heavycharged
смысл не в том, чтобы оптимизировать. смысл в том, чтобы не заниматься писаниной по 100 раз.
heavycharged
Набросал запрос, выпилил оттуда order by, columns заменил на COUNT(*) и запустил
heavycharged
как-то так.
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Хз, на мой взгляд надо не от объема писанины плясать а от бизнеса. Если у тебя всего 3-4 варианта, лучше тестов понаписать, чем красиво билдить во всех 3-4 случаев
heavycharged
да и не так часто в эту админку будут лазить, чтобы prepared держать.
Илья
хм, ну смотрите, я делал аналогичную вещь, функцию собирает по фильтру условия, листинг добавляет туда колонки + order, count кормит туда select("count(*)")
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
он коннект жрет, увы.
Ок. Тогда мои комментарии можно поигнорировать
Илья
те buildWhere(sq.Select("*").From("foo").OrderBy("bar"), filters ) и buildWhere(sq.Select("count(*)").From("foo"), filters)
heavycharged
спасибо всем
Илья
а так - https://github.com/Masterminds/squirrel/pull/85
Илья
плюсуйте парня! :)
heavycharged
да, это то что нужно
Damian
Народ кто знает хорошие практики валидации входных данных?
Damian
Модели или в get запросе одного поля
🏁Александр
а есть какая то возможность что бы recover не зажирал панику а кидал выше?
🏁Александр
ну кроме как еще раз панику вызвать :)
Илья
сам спросил, сам ответил
maxnemoy
Мужики, кто разбирается в QtQuick? проблема с иконками FontAwesom, часть иконок не отображается, каких либо ошибок в консоле нет qt 5.10, QtQuick 2.9, Font Awesom 5.0.10 Можно ли как то отловить проблему в Qt Creator? или в какую сторону вообще копать посоветуете? пример кода - https://pastebin.com/mUTc6Z8P
Aleh
кто что предпочитает Gorm / Xorm / Pgx?
Aleh
собираюсь юзать только postgres
Andrew
Gorm
Ilya
кто что предпочитает Gorm / Xorm / Pgx?
Compared to traditional techniques of exchange between an object-oriented language and a relational database, ORM often reduces the amount of code that needs to be written.[2] Disadvantages of ORM tools generally stem from the high level of abstraction obscuring what is actually happening in the implementation code. Also, heavy reliance on ORM software has been cited as a major factor in producing poorly designed databases. Выбирай что важнее для твоего проекта. Думай сам, не слушай безапелляционные утверждения.
Васильев Виктор
ОРМ лучше использовать для простых проектов. Если нужно **чуть чуть* сложнее то для постгреса лучше брать pgx он знает о постгресе больше и под него пишется. Остальыне чоень общие хоть и приятные такие как горм. Но лчше всегда знать что прои содит в коде так что лучше бы использовать утилитарыне библиотеки типа sqlx
Васильев Виктор
ОРМ часто ограничивают тебя, скрывают важные вещи. Именно поэтмоу лучше использовать их для небольшиъ вещей
Васильев Виктор
Просто спроси себя что кокнеретнотебе требуется от орм
Alexander
ну в любой орм есть такая вещь как логирование - посмотрите какие запросы она собирает и если эапрос не очень, то ссделайте свой запрос и распарсите в свою структуру
Dmitry
ORM не нужна, потому что: 1) Вы тратите время на то, что бы ее изучить и в конечном счете построить SQL, который можно просто взять и построить сразу Точнее алгоритм работы с орм сводится к тому что бы написать SQL запрос, потом его перевести я язык ОРМ. (ЗАЧЕМ?) 2) Если в ОРМ нету поддержки новой фичи для той или иной БД вы начнете писать обыкновенные SQL запросы, используя низкоуровневые обращения ОРМ к бд. Зачем тогда тут орм? 3) INSERT, UPDATE, DELETE при нормальном проектирование приложения всегда заворачивается в логический метод, что позволяет использовать транзакционные вызовы правильно 4) Любые селекты проще дебажить когда запрос перед глазами, а не когда нужно вызвать какой-то метод который дампнет SQL куда нибудь
Васильев Виктор
Согласен
Васильев Виктор
Часто встречался с этими проблемами в проектах с ОРМ
Anonymous
салют)) вопросы от начинающего тут принемаются?
Alexander
ORM не нужна, потому что: 1) Вы тратите время на то, что бы ее изучить и в конечном счете построить SQL, который можно просто взять и построить сразу Точнее алгоритм работы с орм сводится к тому что бы написать SQL запрос, потом его перевести я язык ОРМ. (ЗАЧЕМ?) 2) Если в ОРМ нету поддержки новой фичи для той или иной БД вы начнете писать обыкновенные SQL запросы, используя низкоуровневые обращения ОРМ к бд. Зачем тогда тут орм? 3) INSERT, UPDATE, DELETE при нормальном проектирование приложения всегда заворачивается в логический метод, что позволяет использовать транзакционные вызовы правильно 4) Любые селекты проще дебажить когда запрос перед глазами, а не когда нужно вызвать какой-то метод который дампнет SQL куда нибудь
ну в 90% запросов орм упрощает жизнь банально из-за того что это запросы уровня select * from и orm тебя освобождает от написания простых вещей по моему скромному опыту самому приходится писать запросы от 2+ join с какими-нибудь группировками, with и прочем и тут - да orm нафиг не нужно, но такие запросы редкость и пишутся редко
Васильев Виктор
Не бывает глупых вопросов от начинающих. Бывают глупые начинающие котоыре вопросы не задают
Васильев Виктор
Так что задавай конечно :)
Dmitry
ну в 90% запросов орм упрощает жизнь банально из-за того что это запросы уровня select * from и orm тебя освобождает от написания простых вещей по моему скромному опыту самому приходится писать запросы от 2+ join с какими-нибудь группировками, with и прочем и тут - да orm нафиг не нужно, но такие запросы редкость и пишутся редко
Когда в вашем проекте появляются отчеты, вы просто берете и пишете их на чистом SQL, у нас отчеты бывают на 200+ строк. Дело вкуса, конечно. я описывал свой опыт после нескольких лет прогания на php, python. Вот сча на го перешел и окончательно утвердился в том что на моих проэтах орм не будет, со мной солидарен тех лид)
Alexander
не 200+ строк sql я даже спорить не буду - только ручками и никакие orm не нужны orm полезен, на мой взгляд, только на простых запросах. как я раньше и писал
Konstantin
Всем привет. rpm-пакеты кто-то собирает из своих проектов для деплоя?
Anonymous
Так что задавай конечно :)
да я вроде решл задачу)) щас оттестирую посмотрю что получится)
Васильев Виктор
Давай давай удачи :)
heavycharged
reform
у неё есть один минус - нету поддержки composite pk.
Aleh
про orm, я сам из clojure мира, и в основном использовал hugsql/yesql
Aleh
поэтому хотел найти что то подобное, pgx ок, но что делать если хочу генерировать запрос динамически
Alexander
ребят, а что "лучше" использовать const или var?
Alexander
вот например в пакете если объявляешь глобальную переменную
Daniel
а?!
Alexander
вижу, люди пишут и так и сяк
Alexander
но понять не могу чому все пишут как хотят или в этом есть смысл
Alexander
пример
Daniel
OMG