🏁Александр
Wingman
Fastumkruk
1 апреля коняилось, давай те нормальное названия чата
🏁Александр
ИИИИИмя любимое моё, твоё именно.... 🙂
🏁Александр
*начал сходить с ума*
Fastumkruk
Maxim
heavycharged
Подскажите, делаю запрос, возвращается 0 строк, при этом err == nil. Я что-то путаю, или когда нету строк, то у нас sql.ErrNoRows должно быть?
🏁Александр
🏁Александр
а то даже не понятно что за библиотека
🏁Александр
ну с библиотекой можно еще предположить, но вот как вы используете это загадка 🙂
heavycharged
sql встроенный + mysql
heavycharged
https://pastebin.com/x10UnGDC
heavycharged
вот сама функция выборки из БД
heavycharged
в конце есть log, 2018/04/02 01:33:02 error is <nil>, total rows: 0
heavycharged
проверил этот запрос напрямую, там действительно 0 строк.
Wingman
пасту не открывал, но могу предположить
errnorows триггерится, когда выбираешь только одну конкретную запись (row), а не множество
heavycharged
если вы про QueryRow метод, то у меня Query обычный
Wingman
ну, условно
db.Model(&model).Select() - errNoRows
db.Model(&[]models).Select() - ничего
Wingman
Wingman
ErrNoRows is returned by Scan when QueryRow doesn't return a row. In such a case, QueryRow returns a placeholder *Row value that defers this error until a Scan.
heavycharged
окей, а как проверять на пустой результат?
heavycharged
rows.Err() тоже nil
rows.Scan() тоже nil
wtf
Aleksandr
Количество строк посмотреть
heavycharged
странно это все как-то...
Aleksandr
Почему?
heavycharged
ну есть же errNoRows, почему-то ошибка возвращается при QueryRow (хотя название ошибки - Rows во множественном числе), почему тогда при Query не возвращать её? Или хотя-бы при Scan.
heavycharged
Теперь получается везде счетчик писать? или мерить длинну туда куда я append делал?
Aleksandr
Потому что для одной строки отсутствие результата ошибка, а для нескольких нормально
Aleksandr
Плюс в первом случае мы сразу можем узнать есть строка или нет, а во втором нет
heavycharged
тогда errNoRow же, или нет?
heavycharged
или тут имеется ввиду как минимум одна должна быть?
heavycharged
окей, в принципе, мне так даже удобней, просто я все это время думал что если нету строк то будет errNoRows и как дебил проверял на err == sql.ErrNoRows, теперь придется на len() переписать...
Aleksandr
len тоже нет
Aleksandr
rows - это ресурс, который надо перебрать до конца
heavycharged
ну, у меня defer rows.Close() везде, и я перебираю сначала, если на Scan ошибок нету, то делаю append.
Aleksandr
ну это подойдет для малого количества записей. если ты выбираешь 1000 строк, то у тебя будет слайс из 1000 записей. неразумно. поэтому запрос тебе возвращает итератор, а не слайс
heavycharged
Aleksandr
я имею в виду общую занятую память.
heavycharged
Ты сказал как не надо) а как надо я так и не понял.
Aleksandr
Возвращать итератор, да. Если имеет смысл
Je
как в Go вообще может быть генератор, если субд выдает ответ за раз? что-то я не верю, чтобы драйвер вычитывал лениво, можно какую-нибудь ссылочку?)
G72K
heavycharged
Aleksandr
Aleksandr
Je
Да, спасибо, вижу, вычитывает по величине буфера лениво
https://github.com/lib/pq/blob/master/conn.go#L1396
Michael 🌌
Ахаха 😄
Алексей
ОО. Теперь синий кит 🐋
Michael 🌌
Gocker?
freezlite
gogo power rangers
Aleksey
Aleksey
Хотя зачем она тут... это внутри цикла проверять, будет ли следующая итерация...
Aleksey
Но и перед циклом же можно, не сдвигая итератор
🎉
Aleksey
Скачать deb, распаковать, посмотреть что там, сказать всем
🏁Александр
а с какой пьянки у нас на эмблеме кит?
🏁Александр
от докера
Viktor
Он с мордой от бурундука
Anton
если с пьянки, то надо такого
Viktor
збс..глнг
Салтыдык
голанг после дженериков
Anonymous
Ребят. Быстрый вопрос по echo.
В респосе постоянно есть json часть с меседжем. Непойму как ее убрать.
freezlite
что такое дженерики?
Ilia
Anonymous
Ilia
)))
Ilia
значит ты не туда запрашиваешь
Ilia
проверь что роут
Anonymous
Anonymous
Всмысле вместе с меседжем в json
Ilia
ну покажи как ты return делаешь в хэндлере
Илья
в echo заголовки не пишутся?
Илья
c.Response().WriteHeader(http.StatusOK)
Илья
добавь там где нужно :)
Anonymous
Hi, не подскажите либы для работы с видео? (нарезка, склеивание, конвертация в гиф)
Andrey