vitus_wagner: My photo 2005 (Default)
В процессе работы команды vacuum в базе возникают виртуальные пары тупл-антитупл.
(это у нас народ за чашкой кофе флеймит)
vitus_wagner: My photo 2005 (Default)
Ну вот почему современаня молодежь так любит посоздавать в проекте пятиуровневые деревяья каталогов по три файла в каждом?

Их Гослинг что ли покусал?

Это С, а не java. И это проект с большими и толстым configure (но без auutomake, libtool-а и прочих новомодных извращений) который умеет конфигуряться в separate build tree. А вы, господа, добавляете -I $(CURDIR)/src/include к CFLAGS вместо -I$(top_srcdir)/$(subdir)/src/include и думаете, что это у всех будет работать.

У всех не будет а только у тех кто компилирует прямо в дереве исходников. А это, на минуточку, всего половина поддерживамых дистрибутивов.

(я уж молчу про извращенный набор перловых скриптов, генерирующий файлы проектов для visual studio куда эти люди, естественно и не подумали дописать ничего. Это же на перле, это ниже их достоинства. Они даже тесты на питоне пишут вместо перла).
vitus_wagner: My photo 2005 (Default)
Специально для тех, кто собирается читать теперь френдленту в DreamWidth, а не в ЖЖ, организован
RSS-трансляция блога PostgresPro [syndicated profile] postgrespro_ru_blog_feed
vitus_wagner: My photo 2005 (Default)
Как известно, отечественное ПО должно поддерживать русский язык.
Поэтому фирма Postgres Professional выпустила версию СУБД Постгрес с русифицированным языком запросов.

Пакеты под ОС МСВС будущего релиза можно взять здесь (под Centos 7 они тоже работают).

Пример работы с новым языком запросов:

создай схему тысячи;

создай таблицу тысячи.других (
     ид      целое первичный ключ,
     меня    текстовое,
     я       текстовое не пустое
);

вставь внутрь тысячи.других значения (1, 'Круто!', 'я люблю тебя');

ВЫБЕРИ меня ИЗ тысячи.других ГДЕ я @@ 'тебя';
vitus_wagner: My photo 2005 (Default)
Мы строили, строили и наконец построили
Мультимастер-кластер, адаптивное планирование запросов, нормальный декларативный синтаксис партиционирования.

Oh, yes!

Mar. 11th, 2017 11:17 pm
vitus_wagner: My photo 2005 (Default)
Том Лейн закоммитил мой патч!

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

Вот в PL/Python был контекст-менеджер, позволявший выполнять кусок кода в субтранзацкции, а в PL/Tcl почему-то нет. Хотя создавать собственные управляющие конструкции в Tcl гораздо проще, чем контекст-менеджеры в python (особенно если речь идет о Postgres. где python поддерживатеся начиная с 2.3 и до 3.6)
vitus_wagner: My photo 2005 (Default)
Выкатили наконец, "закрытую" версию нашего продукта.

С 64-битными transaction id, автономными транзакциями (это такая субтранзакция, которую можно закоммитить раньше объемлющей), встроенным планировщиком и хинтами. Ну и еще с пачкой менее значительных фич. (ну и со всеми фичами Pgpro standard - pathman, arman pg_probackup, covering indexes и прочая, и прочая).

Еще там есть scram authentication - этот не наша фича, патч к 10-ке by Michael Paquier лежит на коммитфесте.
Для параноиков, которых md5 и sha1 в качестве метода хэширвоания паролей не устраивают.

В общем читайте и облизывайтесь.

Впрочем, в стандартной версии тоже уже много чего хорошего. В частности, 1С-патчи уже там. Чтобы не искать - ссылка на страничку даунлоада.
vitus_wagner: My photo 2005 (Default)


Вот дистрибутив СУБД PostgresPro, сертифицированный ФСТЭК на уровень СВТ-5.

Подробности в блоге компании
vitus_wagner: My photo 2005 (Default)
Долго не мог понять, почему у меня в русской винде psql упорно показывает английские сообщения.
Наконец дошло, что если запускать его не из нормальной инсталляции, а с сетевого диска, куда я со сборочной виртуальной машины скопировал только exe-шник и требуемые dll-ки, но не скопировал *.mo, то русские сообщения ему взять просто негде.
vitus_wagner: My photo 2005 (Default)
А вот этим уже реально можно хвастаться:

psql437


Оно уже настоящее. Для пущей вящести, конечно. стоило бы показать что pager вполне себе включен. Но поскольку в предыдущем скриншоте все, кто понимает, уже опознали less, в обойдемся без этого.
vitus_wagner: My photo 2005 (Default)
Это не наша сборка, это EnterpriseDB. В смысле, та сборка Postgres под Windows, на которую есть ссылка с postgresql.org и нет в OpenSource исходников инсталлятора.



Обратите внимание, что Console Code Page 866, ANSI Code Page 1251, а системная кодировка клиента почему-то определилась как 1252. Вот как так оно устроено в рантайме от Visual C 2013?

Винда седьмая Professional, английская, в Control Panel выбрана русская локаль "для неюникодных программ".

Если попытаться определить кодировку по результатам вызова setlocale, как это делает, судя по исходникам, psql

#ifdef _WIN32
#include <windows.h>
#endif
#include <stdio.h>
#include <locale.h>
int main(int argc,char **argv)
{
#ifdef _WIN32
   printf("Windows code page is %d console code page is %d\n",
    GetACP(),GetConsoleCP());
#endif
   printf("setlocale(LC_ALL,\"\") returns: %s\n",setlocale(LC_ALL,""));
   printf("setlocale(LC_CTYPE,NULL) returns: %s\n",setlocale(LC_CTYPE,NULL));
   return 0;
}

оно возвращает в общем то что надо:
H:\wrk\wincheck>localetest
Windows code page is 1251 console code page is 866
setlocale(LC_ALL,"") returns: Russian_Russia.1251
setlocale(LC_CTYPE,NULL) returns: Russian_Russia.1251

Должно давать 1251. А дает почему-то 1252. Осталось поймать, кто в psql портит дело между вызовом set_pglocale_pgservice, который идет первой строчкой в main psql-я и pg_get_encoding_from_locale,
вызываемой из PQconnectStart
vitus_wagner: My photo 2005 (Default)
Народ, а кто может подсказать фреймворки для построения веб-страниц, в которых порядок генерации отдельных фрагментов не принципиален?

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

Ну то есть что-то подобное есть в питоновских вариантах на базе Twisted и Tornado, но у twisted просто ужасный синтаксис в этом месте. Опять же Twisted и Tornado не самые популярные инструменты у веб-разработчков.

Дело в том, что выяснилось, что если не соблюдать четкую последовательность запрос-ответ-запрос-ответ, а вывалить в бэкенд сразу сотню запросов, а потом читать ответы, у постгреса даже на той же машине, получается ускорение примерно вдвое (на простых запросах, сводящихся к одному index range scan или index lookup).

Соответственно, хочется попытаться оторвать от libpq существующую там проверку на "если результат предыдущего запроса не прочитан, со следующим посылаем", и попытаться это применить на каких-то реальных задачах.

Подобные паттерны с сотнями легких запросов в рамках одного коннекта характерны как раз для динамических веб-фреймворков.

У меня возникло подозрение, что подобный стиль работы естественным образом вписывается во всякие решения на базе haskell или ocaml. Но я web-фреймворков на базе этих языков (да и самих-то языков) толком не знаю.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

August 2017

S M T W T F S
  1 2 3 45
6 78 9 10 11 12
13 14 1516171819
20212223242526
2728293031  

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 20th, 2017 07:13 pm
Powered by Dreamwidth Studios