?

Log in

No account? Create an account

...

или внеочередные заметки


SQL/JSON documentation
trekking, Himalaya
obartunov
Draft documentation for SQL/JSON implementation in PostgreSQL is available
https://github.com/obartunov/sqljsondoc/blob/master/README.jsonpath.md

Now I need your recommendation about a structure of documentation.
Tags: ,

SQL/JSON on android phone
trekking, Himalaya
obartunov
Update:

We updated packages:
http://www.sai.msu.su/~megera/postgres/files/postgresql-sqljson_11.0-dev-2_aarch64.deb
http://www.sai.msu.su/~megera/postgres/files/postgresql-sqljson_11.0-dev-2_arm.deb
They now automatically initialize the data directory, start server and load demo table 'house.sql'. Also, the history file .psql_history automatically created, so you can play with queries (use arrow up and down keys).

===========================================================================================


Nikita Glukhov has managed to compile the postgresql(master branch) + sql/json patches for Termux, so now it's possible to play with sql/json on android phone, using deb-file postgresql-sqljson_11.0-dev-0_aarch64.deb.

You can download the sample database to play with examples in Jsonpath Introduction.



In case you need more details:

Read more...Collapse )

SQL/JSON in PostgreSQL (WIP).
trekking, Himalaya
obartunov
I have started writing document about upcoming SQL/JSON support in PostgreSQL. Currently, I mostly concentrated on JSONPATH. Read "Jsonpath introduction" on github. Consider it as WIP, more info will be added.

My intention is to make the standard more understandable for user. I appreciate any help.


Nepali language for PostgreSQL
trekking, Himalaya
obartunov
Many years ago I and Teodor added devanagari script support (slides 33-35) to PostgreSQL . We planned to add snowball stemmer for nepali language, but that was never done.



Recently, I revived the project and contacted Ingroj Shrestha from Nepali NLP group, who kindly agreed to work on snowball stemmer for nepali language and rather quickly produced the first version of stemmer (Ingroj Shrestha and Shreeya Singh Dhakal), which I used to add nepali support to full text search in master branch of PostgreSQL (default configuration, stop words), see nepali.patch. See, how it works:

select ts_lexize('nepali_stem', 'अँगअँकाउछन्');
 ts_lexize
-----------
 {अँगअँकाउ}
(1 row)

select to_tsvector('nepali','PostgreSQL संसारको सबैभन्दा उन्नत खुला स्रोत डाटास हो');
                                 to_tsvector
-----------------------------------------------------------------------------
 'postgresql':1 'उन्नत':4 'खुला':5 'डाटास':7 'संसार':2 'सबैभन्':3 'स्रोत':6 'हो':8
(1 row)


I intend to submit this patch for PG 11.

Update: Arthur Zakirov added Hunspell dictionary for nepali language.
Update: Nepali FTS configuration was committed to PG 12


Read more...Collapse )
Tags: , ,

Безвременье
trekking, Himalaya
obartunov
Нашел старые записи примерно 1983 года, времен аспирантуры.

"Безвремененное племя,
безвремененный народ,
в безвремененное время,
безвремененно живет".

Такое было время.
Tags: ,

Debugging indexes in PostgreSQL with plantuner
trekking, Himalaya
obartunov
UPDATE:
Now it's more convenient to define plantuner.only_index variable to specify indexes visible to optimizer.
\d bookmarks
            Table "public.bookmarks"
 Column | Type  | Collation | Nullable | Default
--------+-------+-----------+----------+---------
 jb     | jsonb |           |          |
Indexes:
    "bookmarks_jb_idx" gin (jb)
    "bookmarks_jb_idx1" gin (jb jsonb_path_ops)
    "bookmarks_jb_idx2" gin (jb jsonb_path_value_ops)
    "bookmarks_jb_idx3" gin (jb jsonb_laxpath_value_ops)
    "bookmarks_jb_idx4" gin (jb jsonb_value_path_ops)

[local]:6666 postgres@postgres=# LOAD 'plantuner';
LOAD
Time: 0.372 ms
[local]:6666 postgres@postgres=# set plantuner.only_index = 'bookmarks_jb_idx3';
SET
EXPLAIN (analyze, costs off)
SELECT COUNT(*) FROM bookmarks
WHERE jb @? '$.tags[*] ? (@.term == "NYC")';
                                           QUERY PLAN
------------------------------------------------------------------------------------------------
 Aggregate (actual time=0.572..0.572 rows=1 loops=1)
   ->  Bitmap Heap Scan on bookmarks (actual time=0.101..0.543 rows=285 loops=1)
         Recheck Cond: (jb @? '$."tags"[*]?(@."term" == "NYC")'::jsonpath)
         Heap Blocks: exact=285
         ->  Bitmap Index Scan on bookmarks_jb_idx3 (actual time=0.064..0.064 rows=285 loops=1)
               Index Cond: (jb @? '$."tags"[*]?(@."term" == "NYC")'::jsonpath)
 Planning Time: 1.702 ms
 Execution Time: 0.612 ms
(8 rows)




Many years ago we developed Plantuner to facilitate the process of debugging indexes - we wanted to specify which index out of bunch of them to use. The trick is to hide all indexes and uncover for optimizer the specific one.

Read more...Collapse )

Free json datasets
trekking, Himalaya
obartunov
This is a technical post about json[b] datasets I used in presentations (http://www.sai.msu.su/~megera/postgres/talks/). We will make them available in http://sqlfiddle.postgrespro.ru/#!21/,
which one can use to play with our SQL/JSON (SQL-2016 standard) implementation in PostgreSQL.

Read more...Collapse )

ICU в постгресе
trekking, Himalaya
obartunov
Решил проверить, как работает ICU в постгресе под маком и линуксом. В частности, меня интересовала возможность использования abbreviated keys, которую включили в 10-ке как раз вместе с поддержкой ICU. Если кратко, то CREATE INDEX под MAC OS X High Sierra для текста с кириллицей ускорился в 23 раза, а под Linux всего 1.4. Для английского текста под маком ускорение было около 10 раз.

Read more...Collapse )

collprovider показывает источник локали - 'c' - libc, 'i' - icu.

Замечание 2: Пост Гейгана про то, что можно сделать с ICU - https://goo.gl/Y4KsWe

Вывод такой, что основной выигрыш от использования ICU - это стабильная локаль. Хорошо бы кто-нибудь прогнал скрипт под Windows.
Tags: ,

Про импортозамещение
trekking, Himalaya
obartunov
Про импортозамещение пост. Буду писать только про айтишное сообщество, которое мне более близкое.
Есть целая пачка мнений:
1. Импортозамещение - это плохо, так как мы все равно ничего хорошего не сможем сделать.
2. Импортозамещение - это плохо из-за нерыночных механизмов, что мешает конкуренции.
3. Импортозамещение - это плохо, так как ведет к изоляции.
4. Импортозамещение - это плохое слово и все :)
5. Импортозамещение - это хорошо, так как дается шанс сделать свое и стать конкурентноспособным.


Мне кажется, что для правильного анализа явления импортозамещения не хватает временного фактора, например,
1. может трансформироваться в "это плохо, так как мы все равно ничего хорошего не сможем сделать НИКОГДА", или "это плохо, так как мы все равно ничего хорошего не сможем сделать ЗА РАЗУМНОЕ ВРЕМЯ", или "это плохо, так как мы все равно ничего хорошего не сможем сделать СЕЙЧАС",
2. - это плохо из-за нерыночных механизмов, что мешает конкуренции ВСЕГДА"

В сети встречаются много троллей, которые сознательно или по-недоумию манипулируют мнениями 1-4, создавая атмосферу "все пропало", "пора валить". Я обычно в эти споры не вступаю, ибо тролль этим кормится, у него много времени и он всегда готов покормиться, да и честно говоря в среднем тролль ничего сам не создал, просто гадит в сетевое пространство.
Tags:

Про конкуренцию и Оракл
trekking, Himalaya
obartunov
Оракл как СУБД является хорошей базой и многие постгресисты пришли из Оракла, но как компания Оракл мне не нравится, во-первых, потому что в 1988 году Эллисон заявил в интервью журналу по базам данных Datamation, "что Oracle в Россию доставят ракеты с ядерными боеголовками", во-вторых, потому что в 2015 году они разослали подметное письмо своим крупным клиентам с наездами на нашу компанию и постгрес. Есть у айтишного сообщества много других претензий к Ораклу, но лично мне кажется, что одного первого пункта уже достаточно, чтобы мне не любить компанию Оракл.

Конкуренцию с Ораклом придумали не мы, постгрес давно успешно работает на том же поле и успех американской компании EDB про это говорит. Не вижу ничего плохого в том, чтобы устроить конкуренцию Ораклу в нашей стране.



Read more...Collapse )
Tags: , ,