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] gds.livejournal.com 2013-09-10 04:44 pm (UTC)(link)
lateral -- из sql-стандарта, его выбросим тут.

углубляться в расширения, если идти путём "сгенерить стандартный sql", не нужно.

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

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

а вот останавливаться на уровне odbc -- не стоит. Базы данных слишком разные, чтобы с ними можно было бы одинаково работать. Вся эта транзакционная ёбынь, коммиты, select for update, явные локи -- всё это надо писать с учётом специфики бд. Универсально не получится. Точнее, получится, но будет хуйня.

[identity profile] metaclass.livejournal.com 2013-09-10 04:53 pm (UTC)(link)
Для отчетности и ввода первичных документов в оперденях odbc/ADO.NET/System.Data.Common хватает за глаза.

Всякое нетривиальное, конечно, приходится делать родными средствами БД.

[identity profile] gds.livejournal.com 2013-09-10 05:01 pm (UTC)(link)
тогда к чему возмущения? Стандартного odbc хватает, оно никуда не уходит, а родные средства только растут для того, чтобы их можно было использовать на благо нетривиальщины.

Понятно, что стандартов на хранимки, триггеры и автоинкременты нет, но их и не будет.

Был у меня проектик, где я из coq хотел сделать едсл, транслятор в схему бд и в plpgsql, а там и в другие бд, но с ним никто не помогает, поэтому тут я решения не предложу.

Да и нужно ли решение, если почти никто не меняет базу данных обычно? (хотя бы потому, что хитрая логика делается родными средствами.)
(deleted comment)

[identity profile] gds.livejournal.com 2013-09-10 05:36 pm (UTC)(link)
и таки що в этом плохого? Обычное человеческое общение.
(deleted comment)

[identity profile] gds.livejournal.com 2013-09-10 05:56 pm (UTC)(link)
я тоже так считаю. Давайте обнимемся! Давайте обнимемся!

[identity profile] ext_1684112 (from livejournal.com) 2013-09-11 06:13 am (UTC)(link)
>из coq хотел сделать едсл, транслятор в схему бд и в plpgsql,

Очень круто. С удовольствием бы помог, но я даже Хаскель не осилил.

Мне кажется, ужас разработчиков от plpgsql порождается отсутсвием нормальных инструментов разработки. Даже за деньги их нет. PgAdmin - он же хуже ТурбоПаскаля, тот хотя бы не давал обращаться к несуществующим переменным. А где IntelliSence? Где возможность выделить несколько запросов и автоматом их вынести в отдельную функцию? Где нэймспейсы, хоть какие-нибудь? Где глобальный поиск по коду? Даже отобрать права на сущности так просто нельзя, нужно запрос писать. Дать - можно, а забрать - хрен.

[identity profile] miserakl.livejournal.com 2013-09-19 06:04 pm (UTC)(link)
> Был у меня проектик, где я из coq хотел сделать едсл, транслятор в схему бд и в plpgsql, а там и в другие бд, но с ним никто не помогает, поэтому тут я решения не предложу.

Мне интересно, хотя не столько для портабельности, сколько просто нравится идея писать под постгрес на Coq.

А это где-нибудь выложено?

[identity profile] gds.livejournal.com 2013-09-19 07:52 pm (UTC)(link)
там только наброски, и я не совсем понимаю, как там жить дальше. Взялся за PHOAS, но слишком сурово оказалось. Потому отложил до тех пор, пока мозг не вырастет. Там ничего не работает.
Если интересно даже несмотря на вышеизложенное, могу выложить в приватную репку на битбакете и дать туда доступ.
Публично не хочу, ёбаный стыд там. А если хоть какая-то помощь будет -- буду рад. Потом-то, как будет что-то работать, можно будет выкладывать публично и лицензировать под какой-нибудь свободной лицензией.

[identity profile] miserakl.livejournal.com 2013-09-21 10:04 am (UTC)(link)
Да, интересно. На Битбакете у меня есть аккаунт alexeig.

Обещать активную помощь не могу, так как пока ни в чём конкретном не планирую применять, но, может быть, потихоньку-понемножку чего-нибудь да сделается...

[identity profile] gds.livejournal.com 2013-09-21 11:11 am (UTC)(link)
сделал.
У меня тоже сейчас нет применений, но были и будут.
Если интересно, что именно я хотел сделать этим проектом, со мной можно связаться через мыло gdsfh1 на гмейле, я опишу основные концепции (скорее даже в репку закоммичу), заодно там же можно было бы обсудить, как вообще эта хрень должна работать. Идеи нужны, вот чо.

[identity profile] miserakl.livejournal.com 2013-09-23 04:07 pm (UTC)(link)
Ага, спасибо. Пока успел заглянуть только в полтора файла :)

Моя почта alexej.golovko@gmail.com,завтра постараюсь выйти на связь и спросить что-нибудь осмысленное (а не просто повторить вопрос, как вообще эта хрень должна работать).

[identity profile] berezovsky.livejournal.com 2013-09-23 04:41 pm (UTC)(link)
тебя щас глазофф на гоморассылку подпишет