170 похожих чатов

Добрый день, не до конца понимаю на каком этапе библиотека

sqlx получая на вход запрос вида SELECT x FROM y WHERE x IN ($1, $2, $3) и аргументы под этот запрос как ...interface{} подменяет их на реальные значения? Конкретно интересует каким образом мы получаем строки с допустим enum типов (сгенерированных через enumer и имеющих методы вроде UnmarshalText/JSON), пролистал код либы, но ответа для себя не нашел.

17 ответов

7 просмотров

> подменяет их на реальные значения она их и не подменяет, это механизм бд - placeholders

J- Автор вопроса
Alexander Shavelev
> подменяет их на реальные значения она их и не п...

ок, а в какой момент мы конвертируем все заданные аргументы в строки, чтобы передать их дальше в нормальном виде?

J
ок, а в какой момент мы конвертируем все заданные ...

что такое «нормальный вид»?) почему обязательно строки - у пг есть и бинарный протокол)

J- Автор вопроса
Alexander Shavelev
что такое «нормальный вид»?) почему обязательно ст...

в нормальный вид я имею ввиду, что когда я передаю тип uuid.UUID в качестве параметра я на выходе получу запрос с WHERE id = '3124124124-242424-24', мне интересно как мы делаем переход от какого-то конкретного типа к представлению в виде строки.

J
в нормальный вид я имею ввиду, что когда я передаю...

уже на сервере бд туда вы передаете «вот запрос», «вот параметры для него»

J
в нормальный вид я имею ввиду, что когда я передаю...

еще вы можете делать «вот запрос» а потом N раз «вот параметры»

Alexander Shavelev
уже на сервере бд туда вы передаете «вот запрос»,...

Все не так, драйвер кастит в нужный ему тип данные которые вы передали как аргумент

do not import flask 🇺🇦
Все не так, драйвер кастит в нужный ему тип данные...

ну я к тому что драйвер не подставляет в запрос сами параметры это отдельные сущности что передаются

Владимир Столяров
А это смотря какой драйвер и как настроить

есть какие-то что по дефолту подставляют на уровне приложения?

Alexander Shavelev
ух, это прям откровение для меня)

В исходники пг зашита хэш мапа, какие типы во что кастить. В некоторых драйверах можно указать свою логику

do not import flask 🇺🇦
В исходники пг зашита хэш мапа, какие типы во что ...

а доклад что кидали выше это про «узнает про эту мапу для каждого нового подключения и тд. потому сделали оптимизацию»?

Alexander Shavelev
а доклад что кидали выше это про «узнает про эту м...

Доклад про местные костыли и не только. А в случае с этой мапой - просто решили принебречь лишними запросами к бд, приняв на веру, что все реплики бд находятся в одной конфигурации в данный момент времени, если я правильно понял

J
в нормальный вид я имею ввиду, что когда я передаю...

Правильно сказано, это механизм placeholdes. На уровне go-кода вообще такого нет, со стороны go на сервер передается отдельно запрос «SELECT x FROM y WHERE x IN (?, ?, ?)» (в зависимости от диалекта плейсхолдеры могут по-разному отмечаться), и отдельно передаются параметры

Похожие вопросы

Обсуждают сегодня

Кстати, а я вот тут подумал. Допустим, у нас имеется цикл который выполняет огромное количество итераций, но мы хотим, чтобы какие-то действия исполнилось только один раз. В Я...
The Bird of Hermes
23
Доброй ночи. Вопрос знатокам. Имеется некая таблица, результат которой выведен в DBGrid на форме. И есть форма, с помощью которой можно как добавить запись, так и отредактиров...
Евгений
28
а всё почему? потому что ассемблер в отличии от яву порождает множество пагубных привычек, среди которых например можно отметить использование глобальных переменных для всего ...
Mixail Frolov
35
анрей С какой целью зашёл?
КТ315
42
я часов 15 назад начал пытаться написать хоть что-то напоминающее ос и у меня есть проблема, которую я пытаюсь решить последние часов 5: есть крч 2 исходника с минимальным код...
Al1to
17
Кто нибудь из участников чата пишет на ассемблере под GNU/Linux?
Spiker01
24
Всем привет ребят! Мб кто-то сталкивался? adminСomponents .get("searchСomponents", use: searchComponents) .openAPI( summary: ...
Admin Adminov
2
Насколько моя реализация Exercise 1 плохая? data MessageType = Info | Warning | Error Int deriving (Show, Eq) type TimeStamp = Int data LogMessage = LogMessage ...
= ?
10
Кстати вопрос. Проанализировав свои проекты я понял, что в наиболее ценных из них Асм использовался для организации real-time процессов (внутри DOS). А какие есть способы сего...
Alexander Morozov
18
Я не очень много работал с потоками, тут возник вопрос - если будет одновременный доступ к памяти из двух разных потоков, это само по себе приведет к ошибке?
The Bird of Hermes
25
Карта сайта