5. План доповіді
● Історія розвитку
○ Академічний Postgres
○ Версії 7.х
○ Версії 8.х
○ Версії 9.х
● Хакаєм Postgres
○ Для чого
○ Що потрібно вміти
○ Спільнота
○ Місце докладання зусиль
○ Життя патча
● Бізнес с Postgres
○ Компанії
○ Послуги
● Питання і відповіді
5
6. Як правильно вимовляти PostgreSQL
● SQL вимовляється як [es-que-ell] або як [sequel]
● PostgreSQL вимовляється як [post-GRES-que-ell]
6
9. Ingres
● Де?
○ University of California, Berkeley
● Коли?
○ Початок 70х років
● Хто?
○ Michael Stonebraker та Eugene Wong
● Що?
○ INteractive Graphics REtrieval System
● Ingres вимовляється як [ɪŋˈɡrɛs]
9
10. University Postgres
● Де?
○ University of California, Berkeley
● Коли?
○ Початок — 1985, прототип — 1988р.
● Хто?
○ Michael Stonebraker та його студенти
10
11. University Postgres
● Реалізація підтримки типів користувача
● Таблиці називались класи
● Постгрес використав багато ідей Інгрес
● Але не використав жодного рядку коду
● Вбудована мова POSTQUEL
● Пізніше проект був комерціолізований як Illustra
○ придбаний компанією Informix
○ інтегрован в їх продукт Universal Server
○ в 2001 придбаний IBM за 1 міліард $
11
12. University Postgres
● Мова перевершувала тогочасний SQL
● Але не задовольняла потреби галузі
● Кожна команда оперувала рядковою змінною (tuple variable)
● Синтаксис був більш “нормалізований”, ніж у SQL
● Мала вбудовані команди для імпортуекспорту даних
PostQUEL
12
13. University Postgres
range of P is PRACOWNICY
retrieve into W
(COMP = P.PLACA / (P.WIEK - 18))
where P.NAZWISKO = "Kowalski"
PostQUEL
13
14. University Postgres
create student(name = c10, age = i4, sex = c1, state = c2)
range of s is student
append to s (name = "philip", age = 17, sex = "m", state = "FL")
retrieve (s.all) where s.state = "FL"
replace s (age=s.age+1)
delete s where s.name="philip"
copy student(name=c0, comma=d1, age=c0, comma=d1, sex=c0, nl=d1)
into "/student.txt"
PostQUEL
14
15. Postgres95
● В 1994р. Andrew Yu та Jolly Chen змінили мову на SQL
● Впровадили новий консольний клієнт psql
● Опубликували вихідний код в web
● Postgres95 це наслідник останньої офіційної гілки Postgres v.4.2
● В 1996р. Marc Fournier з Hub.org піднімає перший сервер для розробки
● Першими контріб’юторами стали Bruce Momjian та Вадим Міхєєв
● Postgres стає повноцінним open source проектом
15
16. PostgreSQL
● В 1996р. стає зрозумілим невдалий вибір назви Postgres95
● Вирішено дати нове ім’я PostgreSQL
● Повернутися до нумерування версій починаючи з проекту Postgres
● Перша гілка оновленого PostgreSQL мала версію 6.0
● Функціонує сайт www.postgresql.org
● Документація доступна для версій, починаючи з 6.3 http://www.
postgresql.org/docs/manuals/archive/
16
20. PostgreSQL 8.x
● Підтримка Windows
● Savepoints
● PITR (Point-In-Time Recovery)
● Tablespaces
● Role system that replaces users and groups
● Index creation without blocking concurrent
● Support for the SQL/XML
● ENUM and UUID
● Windowing Functions
● Common Table Expressions and Recursive Queries
20
25. Хакаєм Постгрес
● Для чого?
○ Бази даних — це круто
○ Участь в ком´юніті, навіть в якості рев´ювера
○ Стати кращим программістом, код ПГ — це взірець
○ Можливість заробити копійку
25
26. Хакаєм Постгрес
● Що маю вміти?
○ Знати plain C
○ ОС не важлива
○ IDE не важлива
○ Все інше з´явиться з часом
26
27. Хакаєм Постгрес
● Взаємодія з ком´юніті
○ Все спілкування відбувається в поштових розсилках
■ pgsql-general — загальна розсилка для всіх
■ pgsql-hackers — головна розсилка
■ pgsql-bugs — для роботи над багами
■ pgsql-docs — робота над документацією
○ Ви маєте чітко висловлювати свою думку. Англійською
○ Хороший програміст — завжди хороший письменик
○ Для нагальних питань використовується IRC
27
28. Хакаєм Постгрес
● Шо можу зробити
○ Код (Ядро, Баги, Інтерфейси, Додатки)
○ Тестування
○ Пакети (VM, vagrant, docker, liveCD etc.)
○ Програми
○ Переклад
○ Мануали, статті, виступи, advocacy
28
31. Життя патча
● Дослідження
○ чи реалізовано?
○ чи обговорювалось?
○ чи потрібне?
○ чи частина стандарту?
○ чи можливе?
○ яку користь принесе?
○ скільки зусиль потрібно для підтримування?
31
32. Життя патча
● Пропозиція до спільноти на pgsql-hackers
○ Отримуємо зворотній зв’язок
● Розробка специфікації
○ Отримуємо зворотній зв´язок
32
37. Бізнес. Як заробляти?
● Хостинг
● Обслуговування і налаштування
● Тюнінг під задачі
● Використання в своїх рішеннях
● Створення статей і матеріалів
● Курси і навчання
37