metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-09-10 06:03 pm

Postgres 9.3

Посмотрел, чего добавили в Postgres новый.
Все огорчает, т.к. никак не коррелирует с другими СУБД, соответственно - использовал новую фичу - прибил себя гвоздями к постгресу.
Всякие там json-типы данных, да какие-то lateral join да внешние источники данных.

Даже не знаю, имеет ли смысл углублятся в эти нетривиальные SQL-расширения, потому как сделать все методом "сгенерил стандартный SQL и потом обработал результат на более мирном языке" выглядит более future-proof. Это что касается чтения данных.
А в плане записи - вообще все хреново, триггера везде разные, автоинкременты разные, глаза б этого всего не видели, но реализация "вся логика в сервере приложений или клиенте" выглядит еще более неприятно.

[identity profile] metaclass.livejournal.com 2013-09-10 03:28 pm (UTC)(link)
Все варианты аудита выглядят как говно. Что на триггерах, что в EF, что в ActiveRecord c papertrail.
Но на триггерах оно как минимум не зависит от клиента подключающегося к БД - хоть там сервер приложений, хоть расчетный сервис, хоть двухзвенка или юзер из консольного клиента БД подключился.

И на любом языке это проделывается либо неудобно, либо неподдерживаемо, либо непригодно к использованию, ибо задача проклятая и в общем случае решаема только при использовании дикой функциональщины с иммутабельностью и линзами.

[identity profile] dr-cha0s.livejournal.com 2013-09-10 03:56 pm (UTC)(link)
Правильно! Бери Haskell, Persistent и Esquiletto.

[identity profile] jakobz.livejournal.com 2013-09-10 06:05 pm (UTC)(link)
Это, кстати, еще и от того, что SQL как API - говно сраное. Впрочем, и не только как API. Но если был бы более-менее машинно-понятный формат общения с базой, то там можно было бы хотя-бы прослоечку свою вставить между приложениями и базой. И сувать туда всякие эти аудиты, шардинги и что там еще надо.

А по факту имеем API: входные данные отпарсить смогут только эти твои пауки, а выходные - вообще небось пропиетарны и читаются только сишными либами от вендора.

Я уже даже и не говорю, что уже 40 лет этой херне, а master-detail хоть как-то стандартно и разумно ни из одной базы прочитать нельзя.

[identity profile] metaclass.livejournal.com 2013-09-10 06:15 pm (UTC)(link)
Муахахаха, мастер-деталь это проклятая тема похуже аудита.

[identity profile] ext_1684112 (from livejournal.com) 2013-09-11 06:07 am (UTC)(link)
>master-detail
Крокодил же недавно демонстрировал - выброка из базы списка курсоров.

[identity profile] jakobz.livejournal.com 2013-09-11 10:38 am (UTC)(link)
Дай линку что-ли.

[identity profile] ext_1684112 (from livejournal.com) 2013-09-11 12:51 pm (UTC)(link)
http://plumqqz.livejournal.com/394579.html?thread=4580691#t4580691