Thread: Re: [pgsql-ru-general] Отладка расширений Pg (C)
еще вам в тему LOAD, он на сессию http://www.postgresql.org/docs/9.3/static/sql-load.html
через лоад я работаю, например, с http://www.postgresql.org/docs/9.3/static/auto-explain.html
http://www.postgresql.org/docs/9.3/static/xfunc-c.html#XFUNC-C-DYNLOAD
"If you need to force a reload of an object file, for example after recompiling it, begin a fresh session."
Sat, 10 May 2014 00:22:19 +0400 от "Dmitry E. Oboukhov" <unera@debian.org>:
что сделал:
написал make который собирает расширение
далее написал пару C-шных функций
make install - расширение ставится
далее в psql
CREATE EXTENSION "myext"
его регистрирует (вызывается по сути myext--VERSION.sql)
DROP EXTENSION "myext"
его разрегистрирует.
Все вроде бы хорошо, но хочется автоматических тестов
Кроме того я не очень понял можно ли выгрузить загруженную в Pg so-шку
с расширением.
полазил по коду в contrib там этого нет.
вычитал что Pg оставляет so загруженным до конца жизни Pg.
то есть цикл тестирования получается примерно такой:
1. исправляем код
2. пересобираем расширение
3. запускаем sql которая делает CREATE EXTENSION, тесты и DROP EXTENSION
4. рестарт постгри
В целом работать можно, но напрягают довольно сильно рестарты постгри
и ручное разгребание проблем в постгре если в скрипте удаления,
например ошибка
может есть готовая тестовая оснастка для проведения подобных итераций
в более удобной форме?
--
. ''`. Dmitry E. Oboukhov
: :’ : email: unera@debian.org jabber://UNera@uvw.ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
написал make который собирает расширение
далее написал пару C-шных функций
make install - расширение ставится
далее в psql
CREATE EXTENSION "myext"
его регистрирует (вызывается по сути myext--VERSION.sql)
DROP EXTENSION "myext"
его разрегистрирует.
Все вроде бы хорошо, но хочется автоматических тестов
Кроме того я не очень понял можно ли выгрузить загруженную в Pg so-шку
с расширением.
полазил по коду в contrib там этого нет.
вычитал что Pg оставляет so загруженным до конца жизни Pg.
то есть цикл тестирования получается примерно такой:
1. исправляем код
2. пересобираем расширение
3. запускаем sql которая делает CREATE EXTENSION, тесты и DROP EXTENSION
4. рестарт постгри
В целом работать можно, но напрягают довольно сильно рестарты постгри
и ручное разгребание проблем в постгре если в скрипте удаления,
например ошибка
может есть готовая тестовая оснастка для проведения подобных итераций
в более удобной форме?
--
. ''`. Dmitry E. Oboukhov
: :’ : email: unera@debian.org jabber://UNera@uvw.ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
или даже лоада не надо. на свежую сесиию и так свежая либа загрузится
Tue, 20 May 2014 02:05:26 +0400 от Миша Тюрин <tmihail@bk.ru>:
еще вам в тему LOAD, он на сессию http://www.postgresql.org/docs/9.3/static/sql-load.html
через лоад я работаю, например, с http://www.postgresql.org/docs/9.3/static/auto-explain.html
http://www.postgresql.org/docs/9.3/static/xfunc-c.html#XFUNC-C-DYNLOAD
"If you need to force a reload of an object file, for example after recompiling it, begin a fresh session."
Sat, 10 May 2014 00:22:19 +0400 от "Dmitry E. Oboukhov" <unera@debian.org>:
что сделал:
написал make который собирает расширение
далее написал пару C-шных функций
make install - расширение ставится
далее в psql
CREATE EXTENSION "myext"
его регистрирует (вызывается по сути myext--VERSION.sql)
DROP EXTENSION "myext"
его разрегистрирует.
Все вроде бы хорошо, но хочется автоматических тестов
Кроме того я не очень понял можно ли выгрузить загруженную в Pg so-шку
с расширением.
полазил по коду в contrib там этого нет.
вычитал что Pg оставляет so загруженным до конца жизни Pg.
то есть цикл тестирования получается примерно такой:
1. исправляем код
2. пересобираем расширение
3. запускаем sql которая делает CREATE EXTENSION, тесты и DROP EXTENSION
4. рестарт постгри
В целом работать можно, но напрягают довольно сильно рестарты постгри
и ручное разгребание проблем в постгре если в скрипте удаления,
например ошибка
может есть готовая тестовая оснастка для проведения подобных итераций
в более удобной форме?
--
. ''`. Dmitry E. Oboukhov
: :’ : email: unera@debian.org jabber://UNera@uvw.ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537