Size: a a a

2020 March 04

I

Igor in Go-go!
источник

AS

Andrei 🦉 Sergeev in Go-go!
Igor
Вот я счас пробежался по их исходникам и не вижу, где там явно RawBytes используется
это же вроде просто []byte
источник

I

Igor in Go-go!
Да, это слайс байтов, но как его отпарсить в структуру?
источник

AS

Andrei 🦉 Sergeev in Go-go!
Igor
Да, это слайс байтов, но как его отпарсить в структуру?
а это не конкретный драйвер делает?
источник

I

Igor in Go-go!
ну вот я счас копаю исходники pq
источник

I

Igor in Go-go!
Я пока выяснил, что если кастовать к pq.StringArray, то становится немного легче (распознается в список строк хотя бы). Осталось строку скастовать в структуру
источник

I

Igor in Go-go!
Я понял, почему эта фигня не работает и работать не будет корректно. Если возвращать из постгреса не таблицу (селект), а массив строк, то теряется информация об имени столбца. Поэтому остается на свой страх и риск проверять и таблицы, и модели к ним.
источник

DM

Dmitry M in Go-go!
Igor
Я понял, почему эта фигня не работает и работать не будет корректно. Если возвращать из постгреса не таблицу (селект), а массив строк, то теряется информация об имени столбца. Поэтому остается на свой страх и риск проверять и таблицы, и модели к ним.
В PostgreSQL есть json, результат запроса можно свернуть в json и распарсить стандартным парсером
источник

I

Igor in Go-go!
Dmitry M
В PostgreSQL есть json, результат запроса можно свернуть в json и распарсить стандартным парсером
Так размер результата в 2 раза вырастает
источник

DM

Dmitry M in Go-go!
И?
источник

а

а кто это in Go-go!
Dmitry M
В PostgreSQL есть json, результат запроса можно свернуть в json и распарсить стандартным парсером
jsonb
источник

I

Igor in Go-go!
То есть если хочется сделать овернадежно, то надо или дрочить базу (несколько запросов вместо одного), или дрочить сеть, или и то, и другое.
источник

ВС

Владимир Столяров in Go-go!
А откуда у вас вообще rawbytes взялись?
источник

I

Igor in Go-go!
Из вот такого запроса:
CREATE TYPE avatar AS (
   created       timestamptz,
   md5           varchar(32),
   region        varchar(16),
   location      varchar(16)
);
CREATE TYPE avatar_set AS (
   avatars       avatar[],
   current_md5   varchar(32)
);
SELECT ARRAY (
   SELECT ROW(created, md5, region, location)
   FROM  avatars
   WHERE avatars.slug=_slug ORDER BY avatars.created DESC
) INTO res.avatars;

SELECT avatar_md5 INTO res.current_md5 FROM base_models WHERE slug=_slug;
источник

DM

Dmitry M in Go-go!
Igor
То есть если хочется сделать овернадежно, то надо или дрочить базу (несколько запросов вместо одного), или дрочить сеть, или и то, и другое.
овернадежно и быстро https://youtu.be/ZFLs7-vmbdM
источник

ВС

Владимир Столяров in Go-go!
Igor
Из вот такого запроса:
CREATE TYPE avatar AS (
   created       timestamptz,
   md5           varchar(32),
   region        varchar(16),
   location      varchar(16)
);
CREATE TYPE avatar_set AS (
   avatars       avatar[],
   current_md5   varchar(32)
);
SELECT ARRAY (
   SELECT ROW(created, md5, region, location)
   FROM  avatars
   WHERE avatars.slug=_slug ORDER BY avatars.created DESC
) INTO res.avatars;

SELECT avatar_md5 INTO res.current_md5 FROM base_models WHERE slug=_slug;
Так это кусок pl/pgsql что ли? А вызывается из go оно как?
источник

I

Igor in Go-go!
вот Array из строк - это и есть байты.
источник

I

Igor in Go-go!
Владимир Столяров
Так это кусок pl/pgsql что ли? А вызывается из go оно как?
sqlx.Get
источник

DM

Dmitry M in Go-go!
источник

ВС

Владимир Столяров in Go-go!
Igor
Из вот такого запроса:
CREATE TYPE avatar AS (
   created       timestamptz,
   md5           varchar(32),
   region        varchar(16),
   location      varchar(16)
);
CREATE TYPE avatar_set AS (
   avatars       avatar[],
   current_md5   varchar(32)
);
SELECT ARRAY (
   SELECT ROW(created, md5, region, location)
   FROM  avatars
   WHERE avatars.slug=_slug ORDER BY avatars.created DESC
) INTO res.avatars;

SELECT avatar_md5 INTO res.current_md5 FROM base_models WHERE slug=_slug;
И в get передаётся это вот?
Просто очень странно, обычно там либо пишут целиком запрос, либо что-то вида
SELECT function()
источник