
Leonid
10.04.2018
08:54:40
Нет

Alexander
10.04.2018
08:54:46
разве?

Leonid
10.04.2018
08:55:17
Ага. Это в ранних версиях нельзя было

IC
10.04.2018
08:57:37
текстовые должны быть валидным UTF8, но мне кажется это довольно условно

Google

IC
10.04.2018
08:57:51
особенно если ты оба конца контролируешь

Leonid
10.04.2018
08:57:56
https://tools.ietf.org/html/rfc6455#section-5.6
Binary The "Payload data" is arbitrary binary data whose interpretation is solely up to the application layer.

Alexander
10.04.2018
09:00:08
да, да, я чего-то запутался т.к. у нас по протоколу json бродил
и из-за этого конвертировать надо было

Leonid
10.04.2018
09:31:53
а может проще впн пробросить с облака в локалку?
и тогда будет везде тупохттп
хотя нет, это может оказаться непосильно эникейщику

Alexander
10.04.2018
09:34:25
в postgresql-simple есть функции для проверки статуса коннекшона?

Leonid
10.04.2018
09:34:52
select 1; ?

Alexander
10.04.2018
09:36:10
оверкильно как-то

Leonid
10.04.2018
09:36:51
ну вообще в libpq есть PQping. но что оно делает под капотом х.з
хотя нет, это другое

Google

Alexander
10.04.2018
09:38:27
PQstatus(conn) == CONNECTION_BAD) что-то такое хочу

Leonid
10.04.2018
09:38:53
ну вообще pgs это проверяет само вроде
если тебе пинги нужны то это не оно

Alexander
10.04.2018
09:39:03
у меня такое ощущение, что в пуле дохлые треды есть
коннекшены т.к.
*т.е.
хотелось бы как-то проверить на уровне Haskell и потом долго материть того, кто сделал криво

Leonid
10.04.2018
09:41:25
https://www.postgresql.org/docs/10/static/protocol-flow.html в протоколе вроде ничего нет
@qnikst ну попробуй, но я думаю не поможет
withMVar (Database.PostgreSQL.Simple.Internal. connectionHandle con) Database.PQ.status

Alexander
10.04.2018
09:48:34
Database.PQ это откуда?

Leonid
10.04.2018
09:48:45
libpq

Alexander
10.04.2018
10:03:07
пасиб
ещё бы придумать как это грамотно с postgresql-simple объединить

IC
10.04.2018
10:10:26

Leonid
10.04.2018
10:11:21
Тем что мне нужно из он прем сервера файлы таскать, а не с облачного
Как проксить в локалку учитывая тупого админа? Нужен считай зероконф, не считая сертификата
Впн помог бы конечно
Или ssh туннель

Anatolii
10.04.2018
10:26:53
Товарищи,а есть где-то пакет чтобы я мог "5s" в DiffTime парсить?
ну и всякие "10m"

Google

A64m
10.04.2018
10:46:59
TTG вмерджили таки.
ну, не первый раз

Yuriy
10.04.2018
10:47:48
TypesToGo?
а! Trees That Grow!

A64m
10.04.2018
10:52:10
да

Yuriy
10.04.2018
10:53:10
как это отразится на пользователях?

Leonid
10.04.2018
10:53:30
будет больше тормозить?

A64m
10.04.2018
10:56:43
как это отразится на пользователях?
никак, фичи для пользователей больше не добавляют же
(отразится на авторах тулов, ну вернее одном авторе, других авторов тулов вроде больше нет)
будет больше тормозить?
не сильно. там было несколько вариантов, они выбрали между тормозным, но обходящим баги 8.0 и более быстрым, но не работающим раньше 8.2, выбрали второе, фича переехала из 8.4 в 8.6 поэтому

Leonid
10.04.2018
11:00:53
а где обсуждение?

A64m
10.04.2018
11:02:10
https://github.com/ghc/ghc/commit/1aa1d405d8212a99ac24dcfd48024a17c3ffd296
там куча ссылок

Leonid
10.04.2018
11:03:29
спасибо

Yuriy
10.04.2018
11:06:24
who reverts reverted?

Alexander
10.04.2018
11:51:22
@lonokhov а если делается COPY TO то нужно как-то объяснять pg чтобы он это дело завершил и вернул обычный статус?
и дожидаться того, что копирование окончено?
(хотя у меня в коде это ожидается вроде)

Leonid
10.04.2018
11:51:52
там же вроде COPY OK дожен быть

Alexander
10.04.2018
11:53:19
> Retrieve some data from a COPY TO STDOUT query. A connection must be in the CopyOut state in order to call this function. If this returns a CopyOutRow, the connection remains in the CopyOut state, if it returns CopyOutDone, then the connection has reverted to the ready state.
говорит документация

Google

Leonid
10.04.2018
11:53:58
ну не врёт поди

Alexander
10.04.2018
11:54:32
оно в одну сторону говорит
т.е. если дойдет до CopyOutDone то будет Ready
но у меня такое ощущение что не доходит почему-то
katip клёвый, 1 строка и ко всем логам приделан адрес Connection

Leonid
10.04.2018
11:56:02
по идее он в реди перейдёт как только send в сокет сделает
там же тупой протокол

Alexander
10.04.2018
11:56:19
почему?

Admin
ERROR: S client not available

Alexander
10.04.2018
11:56:31
он в CopyOut пока идёт Copy, же?

Leonid
10.04.2018
11:56:50
ты куда копируешь то?
к себе, в стдаут?
ну так делай в лупе getCopyData

Alexander
10.04.2018
11:57:38
ты так пишешь, как будто бы не сделано
в общем на самом деле я понял

Leonid
10.04.2018
11:58:07
ну так после done не в том статусе что-ли?

Alexander
10.04.2018
11:58:20
я ещё не удостоверился, что там done был

Leonid
10.04.2018
11:58:38
он может кинуть эксепшон

Alexander
10.04.2018
11:58:48
поэтому думал, можно ли туда что-то в finally/onException/whatever пихнуть, чтобы сказать, я больше не хочу данных
вообще у меня данные уходят в servant stream

Google

Alexander
10.04.2018
11:59:12
так что клиент может прекратить слушать пока до конца не дошли, если ему приспичит
видимо придётся ResourceT и register/unregister делать
блин, нет, там только putCopyError
в общем видимо похоже тупо кидать исключение если вдуг не дошли до конца, чтобы коннекшн из пула убрали

Leonid
10.04.2018
12:01:05
PQendcopy тебе нужен наверно. или ресетить коннекшен

Alexander
10.04.2018
12:03:18
байндинги используют c_PQputCopyEnd

Leonid
10.04.2018
12:04:01
Sends end-of-data indication to the server during COPY_IN state.
у тебя же Copy Out

Alexander
10.04.2018
12:05:18
именно

Leonid
10.04.2018
12:05:47
ну киляй ресурс, чо
если коннект дорогой то попробуй PQ.reset
хотя судя по описанию смысла нет

Alexander
10.04.2018
12:07:07
да, сейчас удостоверюсь, и наверное сделаю register $ throwIO BlaBla и unregsiter где получаю Done

Leonid
10.04.2018
12:08:33
Copy-out mode (data transfer from the server) is initiated when the backend executes a COPY TO STDOUT SQL statement. The backend sends a CopyOutResponse message to the frontend, followed by zero or more CopyData messages (always one per row), followed by CopyDone. The backend then reverts to the command-processing mode it was in before the COPY started, and sends CommandComplete. The frontend cannot abort the transfer (except by closing the connection or issuing a Cancel request), but it can discard unwanted CopyData and CopyDone messages.
ишь
libpq умеет
но всё-равно нужно получить всё что постгрес шлёт
пока cancel не прилетит
cancel по отдельному соединению делается

Alexander
10.04.2018
12:14:06
ну ок
closing connection так closing connection

Tony
10.04.2018
13:18:22
Привет! ВСе ище ищем програмистов Haskell на работу в иностранную компанию для работы над блокченом. Нужен опыт работы в продакшен на haskell! Писать в личку!