
Henadz
05.09.2017
12:39:44
http://slick.lightbend.com/doc/3.2.1/

Friedrich
05.09.2017
12:40:04
Довольно мило выглядит.

Oleg
05.09.2017
12:40:51

Google

Oleg
05.09.2017
12:40:58
используй что-угодно другое

Alexander
05.09.2017
12:40:59

Henadz
05.09.2017
12:42:50

Vladimir
05.09.2017
12:43:19
(for {
(c, f) <- tableQuery joinLeft flwsTableQuery on (_.id === _.id)
} yield (c, f))
.groupBy { case (c, _) => c.id }
.map { case (id, sub) =>
(id, sub.map(_._2.map(_.userId)).countDistinct, sub.map(_._1.countryId).max )
}
.sortBy { case (id, flwCount, cntryId) => ((cntryId === countryId).desc, flwCount.desc) }
.map { case (id, flwCount, cntryId) => (id, flwCount) }
.result

Alexandr
05.09.2017
12:44:08
?

Daniel
05.09.2017
12:44:44
всежепонятно

Alexander
05.09.2017
12:45:43
веселье начинается когда например с постгресовским jsonb хочется поработать
или даже банальный апдейт поля используя старое значение

Henadz
05.09.2017
12:46:36
как раз из-за этой херни и юзаю plain sql

Daniel
05.09.2017
12:47:03
где-то нет с этим проблем? это же специфичная фича

Alexander
05.09.2017
12:47:34
инкремент какого нибудь поля это специфичная фича?
нуууу...

Google

Alexander
05.09.2017
12:48:38
или допустим сгенерить несколько джойнов
динамически

Alexandr
05.09.2017
12:50:36
Я понимаю, когда нужно динамически формировать where, но когда полностью вся структура запроса меняется динамически, это уже что-то не то

KrivdaTheTriewe
05.09.2017
12:50:53

Daniel
05.09.2017
12:50:59
я про json писал, собсно и вопрос не про слик, а "где-то с этим нет проблем?"

Grigory
05.09.2017
12:51:00
хватит спорить послушайте Олега
он фигни не скажет.

Marmalade
05.09.2017
12:58:29

Alexander
05.09.2017
12:59:22
UPDATE Orders SET Quantity = Quantity + 1 WHERE ..

KrivdaTheTriewe
05.09.2017
13:05:25
и при этом еще проверку сделать , что квантити меньше чего-то

Nikolay
05.09.2017
13:06:00

Alexander
05.09.2017
13:06:17
там они что то говорили что сделали
но найти как никто пока не сумел

KrivdaTheTriewe
05.09.2017
13:06:42
у меня идея на вк хакатон появилась

Alexander
05.09.2017
13:06:44
в обход только либо транзакция либо select for update
либо ВЫКИНУТЬ СЛИК

Grigory
05.09.2017
13:08:24
никак
нууу мне кажется оно и не надо

Google

Grigory
05.09.2017
13:08:50
не очень тайпсейфная операция знаете ли

Alexey
05.09.2017
13:37:54
Народ, в circe можно сгенерить часть как auto а часть руками и semiauto?

Nikolay
05.09.2017
13:38:10
да

Grigory
05.09.2017
13:39:32
приоритеты импортов при наследовании

Nikolay
05.09.2017
13:39:45
можно просто в разных трейтах определить кодеки

Alexey
05.09.2017
13:39:58
что то типа
case class A(b: B)
case class B(i: Int)
case class C(d: D)
case class D(i: Int)
Хочется руками написать только для B и D

Grigory
05.09.2017
13:40:53
в компаньоне определи для них, или не работает так просто?
если не работает то можно
trait Implicits extends AutoDerivation {
// тут твои семи авто и ручные кодеки
}

Alexey
05.09.2017
13:42:21
мегя больше интересует точно ли при auto подхватятся существующие Decoder и Encoder
а не выведутся свои

KrivdaTheTriewe
05.09.2017
13:44:14

Grigory
05.09.2017
13:44:20
плюсую кривде

Alexey
05.09.2017
13:44:27
ну щииит :)

Grigory
05.09.2017
13:44:34
ну должны подхватиться)
я так всегда делаю (переопределяю как описал выше)

Mikhail
05.09.2017
13:44:48

Grigory
05.09.2017
13:44:54
он сначала лезет в компаньон а потом генерирует если ничего нету (авто самый поседний приоритет)

KrivdaTheTriewe
05.09.2017
13:45:16
ну щииит :)
можно даже доопрееделить вывод автоматических декодеров
или кстати, как вариат, использовать @JsonCodec для гарантии, без авто

Grigory
05.09.2017
13:45:38
чтоб это подчернуть я свой пакет с имплиситами делаю, и наследую от AutoDerivation, что бы точно в последнюю очередь

Google

Alexey
05.09.2017
13:45:38
лан ща попробую, спасибо

Nikolay
05.09.2017
13:45:49
https://scalafiddle.io/sf/xHPjgH7/1

Alexey
05.09.2017
13:46:01

Nikolay
05.09.2017
13:46:24
@eld0727 вот так можно

Alexey
05.09.2017
13:46:34

Mikhail
05.09.2017
13:48:50

Nikolay
05.09.2017
13:49:39
да, мне не очень нравится такие вещи в companion класть

Alexey
05.09.2017
13:49:59
как попадёт это уже пофиг, главное что можно

Mikhail
05.09.2017
13:55:07
наоборот, даже предпочтительнее в компаньон пихнуть, потому что если не пихнешь и забудешь импортнуть - можешь получить авто кодек

Nick
05.09.2017
14:11:38
https://www.humblebundle.com/books/data-science-books

Alexey
05.09.2017
14:29:04
видимо дебажить почему он не может сгенерить auto тоже то еще удовольствие

Nikolay
05.09.2017
14:30:08
да не, просто implicitly[Encoder[_]] каждой из частей
и там уже понятно становится
конечно если кейс классы на 50 полей, то сложновато будет

Alexey
05.09.2017
14:30:59
говорю же то ещё

Aleksey
05.09.2017
14:33:10
Рановато переходить на новый sbt. Баг на баге сидит и багом погоняет. Падает с совершенно невменяемыми ошибками.

Grigory
05.09.2017
14:33:39
а что случилось? я чот не поймал вообще

Nikolay
05.09.2017
14:33:59

Grigory
05.09.2017
14:34:07
главное 1.0.1 использовать

Google

Nikolay
05.09.2017
14:34:28
а что в 1.0.1 пофиксили?

Aleksey
05.09.2017
14:34:43
До package object currupted, то просто MALFORMED. При этом и то и другое лечится перезапуском.

Grigory
05.09.2017
14:35:03
я вот это ловил https://github.com/sbt/sbt/issues/3425 Nikolay

Aleksey
05.09.2017
14:35:22

Nikolay
05.09.2017
16:10:58
@fomkin и как - получше стало?

Aleksey
05.09.2017
16:11:12
пока непонятно

Nikolay
05.09.2017
16:12:20
а по скорости билдов и инкрементальной компиляции что-то лучше стало?

Aleksey
05.09.2017
16:12:34
проект маленький, так что не заметно

Daniel
05.09.2017
16:14:12
револвер что-то не револьверный не фига

Wystan
05.09.2017
16:26:50
А у кого-нибудь есть идеи из-за чего может быть `java.lang.StackOverflowError
at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:698)
at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
`
-J-Xmx2G лечит, но просто непонятно, где помочь компилятору.

Nick
05.09.2017
16:35:25
Xmx ж параметр для хипа, а у тебя StackOverflow

Евгений
05.09.2017
16:36:28