nataraj: (Default)
Между тем, пока я активно болел спиной, я таки сделал это. Я отправил на коммит тот патч, который я слишком медленно программировал перед тем как покинуть последнее место работы. Даже не весь патч, а его первую половину. Вторая так и существует в виде пруф-оф концепта пока.

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

https://commitfest.postgresql.org/13/992/

Рассылка правда нефига не возбудилась. Правда Альваро (который эту систему опций когда-то писал) в привате обещал в рамках мартовского коммитфеста этот патч отревьюить. Так что ждем. Надеюсь будет у меня еще кусочек программистского портфолио...

В дальнейших планах закоммитить гостовское шифрование для xmlsec'а, довести до ума и закоммитить опции индексных колонок для postgres'а. И если дадут, то опубликовать перловый модуль для монтирования хеш-дерева в качестве fuse файловой системы.
А дальше видно будет.

А пока жду отзыва комьюнити и перетряхиваю свой сервак...
nataraj: (Бритый небритый)
My colleague Alex_Ignatov@facebook.com found curious behavior of random():

postgres=# select (select random() as value ) from generate_series(1,10) as k;
       value       
-------------------
 0.715956253930926
 0.715956253930926
 0.715956253930926
 0.715956253930926
 0.715956253930926
 0.715956253930926
 0.715956253930926
 0.715956253930926
 0.715956253930926
 0.715956253930926
(10 rows)


Something like
int rnd=5; // This figure is really random. Got it by rolling a die

;-)

Имена

Jun. 23rd, 2016 03:40 pm
nataraj: (Бритый небритый)
Я предпочитаю называть переменные так, чтобы из имени было понятно, кто на ком стоял. Ну или по крайней мере требовало минимальное знание контекста. Правда получаются вот такие вот монстры: STRING_OPTION_VALUE_NOT_SET_OFFSET
nataraj: (Бритый небритый)
While rewriting reloption.c code, I came to an idea, that all string reloptions that are used in the code are actually enum reloptions: just a fixed list of string constants, nothing more.

Read more... )

PS. If you would like to comment this post, please login from any social network that is possible to login here, or at least write your name, so I would be able to answer you...
nataraj: (Бритый небритый)
When you are creating table in postgres, you are creating up to two relations in a row.
In case when you create table with fixed-length attributes only, only one relation is created. A heap relation.
If you have at least one variable-length attribute in your table, then both heap and toast relations will be created.

Relations also have options: reloptions. You can set them while creating and altering table. To set options for toast relations you should use toast. prefix before reloption name:
CREATE TABLE reloptions_test (s varchar) WITH (toast.autovacuum_vacuum_cost_delay = 23 );

The only problem is that if you have table with no varlen values, postgres will accept toast reloption, but will not write it anywhere.
#CREATE TABLE reloptions_test (i int) WITH (toast.autovacuum_vacuum_cost_delay = 23 );
CREATE TABLE
# select reltoastrelid from pg_class where oid = 'reloptions_test'::regclass;
 reltoastrelid 
---------------
             0
(1 row)

there is no toast relation and reloption is not saved at all, postgres reports, everything is ok

Same for alter table:
# ALTER TABLE reloptions_test SET (toast.autovacuum_vacuum_cost_delay = 24 );
ALTER TABLE
# select reltoastrelid from pg_class where oid = 'reloptions_test'::regclass;
 reltoastrelid 
---------------
             0
(1 row)

This is not nice behavior, isn't it?

PS please when writing a comment, login with any account you have, or just leave a name and/or e-mail so I will be able to answer that comment ;-)
nataraj: (Бритый небритый)
Народ вернувшийся из Канады, рассказал, что после релиза 9.6 следом будет релиз 10. При этом без точек. За ним будет 11 и так далее... Стабильный релиз будет иметь одночисловую версию.
nataraj: (Default)
Други мои, а кто-нибудь разумеет сх%я-ли group by в mysql нечуствителен к регистру, и объединяет мне "Магнитогорск" и "МАГНИТОГОРСК" в одну группу? Это так и должно быть или выпендреж именно мускла?
nataraj: (Бритый небритый)
Хочу очень простой вещи: разделить строку на части, при этом разделители многосимвольные, похожи, но отличаются на пару символов друг от друга... Хочется нечто вроде

my $s="111 =aa= 222 =bb= 333 =cc= 444";
print join "\n", split(/=(aa|bb|cc)=/, $s);

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

Теоретически можно написать split /=aa=|=bb=|=cc=/, $s
и тогда все будет. Но это только в примере выглядит коротко... В жизни так писать не хотелось бы.

Научить сплит не включать зоны группировки в результат кажется невозможно... Можно ли как-то без круглых скобок намекнуть регекспу что знак равенства уже не часть альтернативы, а следующий за альтернативой символ?
nataraj: (Бритый небритый)
Разобрался как XSD-валидировать XML'ки через перл... Read more... )
nataraj: (Бритый небритый)
Сделал обещанный коммит в Sim-IM. Теперь запрос версии клиента работает через новый класс в обе стороны... Вроде бы ничего сложного, но работа давалась с трудом...
Теперь вернусь наконец к fb2-search... а то что-то он меня заждался... Что-то быстренько сделать пару коммитов затянулось недели на три :-( :-/

И все это под продолжающийся недецкий расколбас...

Profile

nataraj: (Default)
Swami Dhyan Nataraj

July 2017

S M T W T F S
      1
2345678
9 101112 131415
16171819202122
23242526272829
3031     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 25th, 2017 10:38 pm
Powered by Dreamwidth Studios