SlideShare a Scribd company logo
1 of 80
Download to read offline
Индексный  поиск  по  
регулярным  выражениям
Александр  Коротков
Интаро Софт
Введение
Регулярные  выражения
• Мощный  инструмент  обработки  
текстовой  информации
• Основаны  на  математической  
лингвистике
• Выражают  тот  же  класс  языков,  что  и  
лингвистические  автоматы
Автоматы…  нет,  не  слышал
Итак…  автоматы
• Регулярное  выражение  может  
быть  преобразовано  в  
лингвистический  автомат
• Такое  преобразование  
используется  в  «движках»  
регулярных  выражений
Итак...  автоматы
• Автомат  – это  ориентированный  
граф,  вершины  которого  –
«состояния»,  а  дуги  – «переходы»,  
помеченные  символами.
• Выделяются  начальное  состояние  
и  конечное  состояние
• Автомат  «читает»  строку.
Пример
/a(bc)*d/
становится
Пример
xyzabcbcdxyz
Пример
xyzabcbcdxyz
Пример
xyzabcbcdxyz
Пример
xyzabcbcdxyz
Пример
xyzabcbcdxyz
Пример
xyzabcbcdxyz
Пример
xyzabcbcdxyz
Пример
xyzabcbcdxyz
Пример
xyzabcbcdxyz
Пример
xyzabcbcdxyz
Пример
xyzabcbcdxyz
Пример
xyzabcbcdxyz
Пример
xyzabcbcdxyz
Ура!  Подходит!
Ну  теперь  все  мы  знаем…
Поиск  по  регекспам в  PostgreSQL
• PostgreSQL поддерживает  поиск  по  
регулярным  выражениям
• До  версии  9.3  это  был  только  
последовательный  поиск
Обратные  индексы
на  n-грамах
N-грамы?
N-грамы
• N-грамы – это  подстрока  длины  n
• Широко  используются в  различных  
нетривиальных  задачах  поиска  по  
строкам
Обратные  индексы  на  n-грамах
• Обратный  индекс  на  n-граммах  содержит  
соответствие  между  n-граммой и  всеми  
строками,  где  она  встречается.
• Модуль  PostgreSQL pg_trgm содержит  
реализацию  такого  индекса  для  n = 3.
pg_trgm
' e': {1,2} 'egu': {1,3} 'pre': {1,2}
' r': {1,3} 'er ': {3} 'reg': {1,3}
' s': {2,3} 'ess': {1,2} 'res': {1,2}
' ex': {1,2} 'exp': {1,2} 'sio': {1}
' re': {1,3} 'gul': {1,3} 'siv': {2}
' sp': {2,3} 'ion': {1} 'spe': {2,3}
'ach': {2} 'ive': {2} 'ssi': {1,2}
'ake': {3} 'ker': {3} 'ula': {1,3}
'ar ': {1,3} 'lar': {1,3} 've ': {2}
'ch ': {2} 'ns ': {1} 'xpr': {1,2}
'eac': {2} 'ons': {1}
'eak': {3} 'pea': {2,3}
1. "regular expressions",
2. "expressive speach",
3. "regular speaker"
=>
Частоты  N-грам
DBLP: 2.5M заголовков  статей
• “the”  - 360K
• “zzz”  – 1
глава  "Zzzzzzzzzzzzzzzzzzzzzzzzzz" книги  "Formal
Specification and Development in Z and B" от David
Everett
Не  все  N-грамы
одинаково  полезны
V-грамы и  мультиграмы
• У каждой  n-грамы – своё  
индивидуальное  n
• Выше  эффективность!
V-грамы и  мультиграмы
Проблемы:
• Трудно  поддерживать  
актуальность
• …
Патентные  тролли!
Как  использовать  индекс
для  поиска  по  регэкспам?
Общая  идея
/[ab]cde/ => (acd OR bcd) AND cde
/[ab]cde/ => (acd OR bcd) AND cde
Как  это  сделать  в  общем  случае?
Существующие  подходы  к  
извлечению n-грам
из  регулярных  выражений
Научная  работа
Junghoo Ch and Sridhar Rajagopalan, A fast
regular expression indexing engine,
Proceedings 18th International Conference on
Data Engineering, 2002
Всё  ещё  широко  цитируется,  как  актуальное  
решение  в  данной  области.
Метод  FREE
• Извлечь  дерево  непрерывных  участков  
строки  из  регэкспа.
• Преобразование  этих  непрерывных  кусков  
в  мультиграмы (n-грамы с  изменяемым  n)
• Использовать  инвертированный  индекс  на  
мультиграмах для  выполнения  запроса
Метод  FREE: пример
Дерево  для /(abcd|efgh)(ijklm|x*)/
Метод FREE: пример
Заменить  узлы  “*”  на NULL
Метод FREE: пример
NULL  “съедает”  родительский узел  OR
Метод FREE: пример
Узел  AND  “съедает”  дочерний NULL
Метод FREE: пример
Уберём  вырожденный  AND
Метод FREE: пример
Разобьем  непрерывные  куски  строк  на  n-грамы
Google code search
Google code search
• Запустился  в 2006.
• Скорее  всего  использовал  что-то  
получше,  чем  предыдущий  метод.
• Но  мы  не  знаем  что... :(
Мы  не  знали  что,  пока..
• Google code search закрылся  в 2011
:(
• http://swtch.com/~rsc/regexp/regex
p4.html
• Более  5 лет  интриги!
Метод  google code search
• 5 характеристик: emptyable, exact,
prefix, suffix, match.
• Характеристики  рекурсивно  
объединяются
• Инвертированный  индекс  на  
триграммах
Метод  google code search
Исходное  выражение: /a(bc)+d/
a: {exact: a}
bc: {exact: bc}
d: {exact: d}
(bc)+: {prefix:bc, suffix: bc}
a(bc)+: {prefix:abc, suffix:bc}
a(bc)+d: {prefix:abc, suffix:bcd}
Метод  google code search
/a(bc)+d/
{prefix:abc, suffix:bcd}
abc AND bcd
Предлагаемый  метод
Предлагаемый  метод
• Анализировать  не  само  регулярное  
выражение,  а  соответствующий  ему  
лингвистический  автомат.
• Преобразовывать  лингвистический  
автомат  в  контактную  схему  на  
триграммах.
• Использовать  обратный  индекс  
модуля  pg_trgm вместе  с  полученной  
контактной  схемой.
Пример  преобразования
/a(b+|c+)d/
Пример  преобразования
Пример  преобразования
Пример  преобразования
Пример  преобразования
Пример  преобразования
Пример  преобразования
Пример  преобразования
Пример  преобразования
Пример  преобразования
Пример  преобразования
Пример  преобразования
Пример  преобразования
Пример  преобразования
Пример  преобразования
Пример  преобразования
Пример  преобразования
Пример  преобразования
Пример  преобразования
Результат  можно  упростить
Сравнение  на  примерах
Regex: /(abc|cba)def/
FREE: (abc OR cba) AND def
GSC:
def AND ((abc AND bcd AND cde) OR (ade
AND bad AND cba))
Предложенный  метод:
(abc AND bcd AND cde AND def) OR (ade
AND bad AND cba AND def)
Сравнение  на  примерах
Regex: /abc+de/
FREE: nothing
GSC: abc AND cde
Предложенный  метод  :
(abc AND cde AND bcd) OR
(abc AND cde AND bcc AND ccd)
Сравнение  на  примерах
Regex: /(abc*)+de/
FREE: nothing
GSC: nothing
Предложенный  метод  :
(abd AND bde) OR
(abc AND bcd AND cde) OR
(abc AND bcc AND ccd AND cde)
Сравнение  на  примерах
Regex: /ab(cd)*ef/
FREE: nothing
GSC: nothing
Предложенный  метод  :
(abe AND bef) OR
(abc AND bde AND cde AND def)
Проблемы
• Может  получиться  большой  граф
- Есть  graceful degradation.
• Использование  триграм вместо  v-
грам (мультиграм)
- Смягчается  с  помощью  GIN fast
scan в  PostgreSQL 9.4
Тесты  производительности
GIN fast scan рулит!
Regex Seq scan,  мс 9.3,  мс 9.4, мс
/database.*(sql|query)/ 5045 187 67
/postgres(ql)?/ 4573 75 4,3
/plan+er/ 3810 655 37
/(nucl|anino).*acid/ 4327 560 16
/[aei](bc)+a/ 2195 639 1,3
2.5 M заголовков  статей  DBLP средней  длины 47
Текущее  состояние
Нужно:
• PostgreSQL 9.3+
• pg_trgm contrib
Было  опущено
• Детерминированные  vs
недетерминированные  автоматы
• Группировка  символов  в  цвета
• Начало  и  конец  строки
Спасибо  за  внимание!

More Related Content

What's hot

АиСД осень 2012 лекция 8
АиСД осень 2012 лекция 8АиСД осень 2012 лекция 8
АиСД осень 2012 лекция 8Technopark
 
Способы записи алгоритмов
Способы записи алгоритмовСпособы записи алгоритмов
Способы записи алгоритмовAndrey Dolinin
 
Общие сведения о языке программирования Паскаль
Общие сведения о языке программирования ПаскальОбщие сведения о языке программирования Паскаль
Общие сведения о языке программирования ПаскальAndrey Dolinin
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямSergey Staroletov
 
C++ Core Guidelines
C++ Core Guidelines C++ Core Guidelines
C++ Core Guidelines Sergey Zubkov
 

What's hot (6)

OO Design with C++: 0. Intro
OO Design with C++: 0. IntroOO Design with C++: 0. Intro
OO Design with C++: 0. Intro
 
АиСД осень 2012 лекция 8
АиСД осень 2012 лекция 8АиСД осень 2012 лекция 8
АиСД осень 2012 лекция 8
 
Способы записи алгоритмов
Способы записи алгоритмовСпособы записи алгоритмов
Способы записи алгоритмов
 
Общие сведения о языке программирования Паскаль
Общие сведения о языке программирования ПаскальОбщие сведения о языке программирования Паскаль
Общие сведения о языке программирования Паскаль
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциям
 
C++ Core Guidelines
C++ Core Guidelines C++ Core Guidelines
C++ Core Guidelines
 

Viewers also liked

Siyer-i Nebi Dergisi 27. Sayısı
Siyer-i Nebi Dergisi 27. SayısıSiyer-i Nebi Dergisi 27. Sayısı
Siyer-i Nebi Dergisi 27. Sayısısiyerinebi
 
Selligy- Sales-Velocity-2014-New Sales Meeting
Selligy- Sales-Velocity-2014-New Sales MeetingSelligy- Sales-Velocity-2014-New Sales Meeting
Selligy- Sales-Velocity-2014-New Sales MeetingSelligy
 
SIVA project_Recommendation paper on infrastructure mapping (A531)
SIVA project_Recommendation paper on infrastructure mapping (A531)SIVA project_Recommendation paper on infrastructure mapping (A531)
SIVA project_Recommendation paper on infrastructure mapping (A531)Sivaul
 
Web Development Company India
Web Development Company IndiaWeb Development Company India
Web Development Company Indiawebvirtue
 
Innovative Marketing
Innovative Marketing Innovative Marketing
Innovative Marketing Jiten Patel
 
Sustainability Advices
Sustainability AdvicesSustainability Advices
Sustainability Adviceslopesanthink
 
How to get connected to the N3 network
How to get connected to the N3 networkHow to get connected to the N3 network
How to get connected to the N3 networkRedcentric
 
Статистика обращений предпринимателей за Июнь
Статистика обращений предпринимателей за ИюньСтатистика обращений предпринимателей за Июнь
Статистика обращений предпринимателей за ИюньПравительство Москвы
 
Géoculture 1
Géoculture 1Géoculture 1
Géoculture 1knshelton
 
How To Be Successful - On Achieving Success
How To Be Successful - On Achieving SuccessHow To Be Successful - On Achieving Success
How To Be Successful - On Achieving SuccessCharles Koehler
 
Hadoop i sveprisutno računarstvo
Hadoop i sveprisutno računarstvoHadoop i sveprisutno računarstvo
Hadoop i sveprisutno računarstvoMilos Milovanovic
 

Viewers also liked (14)

Siyer-i Nebi Dergisi 27. Sayısı
Siyer-i Nebi Dergisi 27. SayısıSiyer-i Nebi Dergisi 27. Sayısı
Siyer-i Nebi Dergisi 27. Sayısı
 
Selligy- Sales-Velocity-2014-New Sales Meeting
Selligy- Sales-Velocity-2014-New Sales MeetingSelligy- Sales-Velocity-2014-New Sales Meeting
Selligy- Sales-Velocity-2014-New Sales Meeting
 
Vampire Seduction Ch. 01
Vampire Seduction Ch. 01
Vampire Seduction Ch. 01
Vampire Seduction Ch. 01
 
SIVA project_Recommendation paper on infrastructure mapping (A531)
SIVA project_Recommendation paper on infrastructure mapping (A531)SIVA project_Recommendation paper on infrastructure mapping (A531)
SIVA project_Recommendation paper on infrastructure mapping (A531)
 
Web Development Company India
Web Development Company IndiaWeb Development Company India
Web Development Company India
 
Innovative Marketing
Innovative Marketing Innovative Marketing
Innovative Marketing
 
Sustainability Advices
Sustainability AdvicesSustainability Advices
Sustainability Advices
 
How to get connected to the N3 network
How to get connected to the N3 networkHow to get connected to the N3 network
How to get connected to the N3 network
 
Статистика обращений предпринимателей за Июнь
Статистика обращений предпринимателей за ИюньСтатистика обращений предпринимателей за Июнь
Статистика обращений предпринимателей за Июнь
 
Géoculture 1
Géoculture 1Géoculture 1
Géoculture 1
 
E twinning
E twinningE twinning
E twinning
 
How To Be Successful - On Achieving Success
How To Be Successful - On Achieving SuccessHow To Be Successful - On Achieving Success
How To Be Successful - On Achieving Success
 
Hadoop i sveprisutno računarstvo
Hadoop i sveprisutno računarstvoHadoop i sveprisutno računarstvo
Hadoop i sveprisutno računarstvo
 
Smell technology
Smell technologySmell technology
Smell technology
 

Similar to PG Day'14 Russia, Индексный поиск по регулярным выражениям, Александр Коротков

Индексный поиск по регулярным выражениям (Александр Коротков)
Индексный поиск по регулярным выражениям (Александр Коротков)Индексный поиск по регулярным выражениям (Александр Коротков)
Индексный поиск по регулярным выражениям (Александр Коротков)Ontico
 
Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.YakubovichDA
 
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...Platonov Sergey
 
разработка бизнес приложений (8)
разработка бизнес приложений (8)разработка бизнес приложений (8)
разработка бизнес приложений (8)Alexander Gornik
 
Принципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-StudioПринципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-StudioAndrey Karpov
 
введение
введениевведение
введениеAndEdr
 
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013ScalaNsk
 
Opensource на .NET
Opensource на .NETOpensource на .NET
Opensource на .NETlugnsk
 
Regexp
RegexpRegexp
Regexpkumup
 
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)Ontico
 
язык програмирования
язык програмированияязык програмирования
язык програмированияOlegmingalev1997
 
Доклад на Highload-2012
Доклад на Highload-2012Доклад на Highload-2012
Доклад на Highload-2012Alex Tutubalin
 
Roslyn API : SyntaxTree vs CodeDom, SemanticModel vs Reflection
Roslyn API: SyntaxTree vs CodeDom, SemanticModel vs ReflectionRoslyn API: SyntaxTree vs CodeDom, SemanticModel vs Reflection
Roslyn API : SyntaxTree vs CodeDom, SemanticModel vs ReflectionDenis Tsvettsih
 

Similar to PG Day'14 Russia, Индексный поиск по регулярным выражениям, Александр Коротков (20)

Индексный поиск по регулярным выражениям (Александр Коротков)
Индексный поиск по регулярным выражениям (Александр Коротков)Индексный поиск по регулярным выражениям (Александр Коротков)
Индексный поиск по регулярным выражениям (Александр Коротков)
 
Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.
 
алгоритм
алгоритмалгоритм
алгоритм
 
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
 
Обзор Ruby
Обзор RubyОбзор Ruby
Обзор Ruby
 
разработка бизнес приложений (8)
разработка бизнес приложений (8)разработка бизнес приложений (8)
разработка бизнес приложений (8)
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
Принципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-StudioПринципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-Studio
 
введение
введениевведение
введение
 
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013
 
CUDA Best Practices (2-3)
CUDA Best Practices (2-3)CUDA Best Practices (2-3)
CUDA Best Practices (2-3)
 
Использование поисковых машин и ресурсов Интернет для отбора терминов предмет...
Использование поисковых машин и ресурсов Интернет для отбора терминов предмет...Использование поисковых машин и ресурсов Интернет для отбора терминов предмет...
Использование поисковых машин и ресурсов Интернет для отбора терминов предмет...
 
Opensource на .NET
Opensource на .NETOpensource на .NET
Opensource на .NET
 
Regexp
RegexpRegexp
Regexp
 
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
 
язык програмирования
язык програмированияязык програмирования
язык програмирования
 
Доклад на Highload-2012
Доклад на Highload-2012Доклад на Highload-2012
Доклад на Highload-2012
 
Roslyn API : SyntaxTree vs CodeDom, SemanticModel vs Reflection
Roslyn API: SyntaxTree vs CodeDom, SemanticModel vs ReflectionRoslyn API: SyntaxTree vs CodeDom, SemanticModel vs Reflection
Roslyn API : SyntaxTree vs CodeDom, SemanticModel vs Reflection
 
лекция 4
лекция 4лекция 4
лекция 4
 

More from pgdayrussia

PG Day'14 Russia, Secure PostgreSQL Deployment, Magnus Hagander
PG Day'14 Russia, Secure PostgreSQL Deployment, Magnus HaganderPG Day'14 Russia, Secure PostgreSQL Deployment, Magnus Hagander
PG Day'14 Russia, Secure PostgreSQL Deployment, Magnus Haganderpgdayrussia
 
PG Day'14 Russia, Работа со слабо-структурированными данными в PostgreSQL, Ол...
PG Day'14 Russia, Работа со слабо-структурированными данными в PostgreSQL, Ол...PG Day'14 Russia, Работа со слабо-структурированными данными в PostgreSQL, Ол...
PG Day'14 Russia, Работа со слабо-структурированными данными в PostgreSQL, Ол...pgdayrussia
 
PG Day'14 Russia, Социальная сеть, которая просто работает, Владислав Коваль
PG Day'14 Russia, Социальная сеть, которая просто работает, Владислав КовальPG Day'14 Russia, Социальная сеть, которая просто работает, Владислав Коваль
PG Day'14 Russia, Социальная сеть, которая просто работает, Владислав Ковальpgdayrussia
 
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил ТюринPG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюринpgdayrussia
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...pgdayrussia
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...pgdayrussia
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...pgdayrussia
 
PG Day'14 Russia, PostgreSQL System Architecture, Heikki Linnakangas
PG Day'14 Russia, PostgreSQL System Architecture, Heikki LinnakangasPG Day'14 Russia, PostgreSQL System Architecture, Heikki Linnakangas
PG Day'14 Russia, PostgreSQL System Architecture, Heikki Linnakangaspgdayrussia
 
PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...
PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...
PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...pgdayrussia
 
PG Day'14 Russia, GIN — Stronger than ever in 9.4 and further, Александр Коро...
PG Day'14 Russia, GIN — Stronger than ever in 9.4 and further, Александр Коро...PG Day'14 Russia, GIN — Stronger than ever in 9.4 and further, Александр Коро...
PG Day'14 Russia, GIN — Stronger than ever in 9.4 and further, Александр Коро...pgdayrussia
 
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...pgdayrussia
 
PG Day'14 Russia, Модуль anyarray, Федор Сигаев
PG Day'14 Russia, Модуль anyarray, Федор СигаевPG Day'14 Russia, Модуль anyarray, Федор Сигаев
PG Day'14 Russia, Модуль anyarray, Федор Сигаевpgdayrussia
 

More from pgdayrussia (12)

PG Day'14 Russia, Secure PostgreSQL Deployment, Magnus Hagander
PG Day'14 Russia, Secure PostgreSQL Deployment, Magnus HaganderPG Day'14 Russia, Secure PostgreSQL Deployment, Magnus Hagander
PG Day'14 Russia, Secure PostgreSQL Deployment, Magnus Hagander
 
PG Day'14 Russia, Работа со слабо-структурированными данными в PostgreSQL, Ол...
PG Day'14 Russia, Работа со слабо-структурированными данными в PostgreSQL, Ол...PG Day'14 Russia, Работа со слабо-структурированными данными в PostgreSQL, Ол...
PG Day'14 Russia, Работа со слабо-структурированными данными в PostgreSQL, Ол...
 
PG Day'14 Russia, Социальная сеть, которая просто работает, Владислав Коваль
PG Day'14 Russia, Социальная сеть, которая просто работает, Владислав КовальPG Day'14 Russia, Социальная сеть, которая просто работает, Владислав Коваль
PG Day'14 Russia, Социальная сеть, которая просто работает, Владислав Коваль
 
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил ТюринPG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...
 
PG Day'14 Russia, PostgreSQL System Architecture, Heikki Linnakangas
PG Day'14 Russia, PostgreSQL System Architecture, Heikki LinnakangasPG Day'14 Russia, PostgreSQL System Architecture, Heikki Linnakangas
PG Day'14 Russia, PostgreSQL System Architecture, Heikki Linnakangas
 
PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...
PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...
PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...
 
PG Day'14 Russia, GIN — Stronger than ever in 9.4 and further, Александр Коро...
PG Day'14 Russia, GIN — Stronger than ever in 9.4 and further, Александр Коро...PG Day'14 Russia, GIN — Stronger than ever in 9.4 and further, Александр Коро...
PG Day'14 Russia, GIN — Stronger than ever in 9.4 and further, Александр Коро...
 
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...
 
PG Day'14 Russia, Модуль anyarray, Федор Сигаев
PG Day'14 Russia, Модуль anyarray, Федор СигаевPG Day'14 Russia, Модуль anyarray, Федор Сигаев
PG Day'14 Russia, Модуль anyarray, Федор Сигаев
 

PG Day'14 Russia, Индексный поиск по регулярным выражениям, Александр Коротков