|
Как добавить расширение Sqlite в автозагрузку?
|
|||
---|---|---|---|
#18+
Есть запрос который использует функцию SQRT(). Чтобы эта функция заработала в SQLite я скачал расширение extension-funсtions.c и скомпилировал: gcc -fPIC -shared extension-functions.c -o libsqlitefunctions.so -lm Вопрос теперь только в том как заставить sqlite загружать это расширение автоматически при каждом соединении, т.е. чтобы не приходилось делать запрос: sqlite> SELECT load_extension('./libsqlitefunctions.so'); Казалось бы должно было помочь создание файла ~/.sqliterc с командой .load ./libsqlitefunctions.so, но этот вариант по непонятной причине не срабатывает при тестировании codeception'ом (выдает ошибку "no such function: SQRT") ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2015, 02:10 |
|
Как добавить расширение Sqlite в автозагрузку?
|
|||
---|---|---|---|
#18+
free.arheyКазалось бы должно было помочь создание файла ~/.sqlitercЭто собственный файл консольной sqlite3. Универсального способа сделать автозагрузку и привязать ее к базе данных нет. Но можно сделать аналог .sqliterc для твоей собственной программы. Или запихать нужные функции напрямую в ядро движка. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2015, 02:50 |
|
Как добавить расширение Sqlite в автозагрузку?
|
|||
---|---|---|---|
#18+
White Owl, Вот про запихать в ядро если можно поподробнее, если конечно не прийдется для этого учить с нуля C. В данном случае мне в принципе нужна то только одна функция из всего пакета. Из документации следует что все стандартные функции собраны в src/func.c, и как я понимаю достаточно будет перенести необходимую функцию из extension-functions.c. Но вот где находиться этот func.c мне не очень ясно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2015, 06:07 |
|
Как добавить расширение Sqlite в автозагрузку?
|
|||
---|---|---|---|
#18+
free.arheyВот про запихать в ядро если можно поподробнее, если конечно не прийдется для этого учить с нуля C. В данном случае мне в принципе нужна то только одна функция из всего пакета. Ну почему же с нуля? Можно выучить Си и на других проектах а сюда вернуться уже с достаточным багажом. Но да, знать Си для этого необходимо. free.arheyИз документации следует что все стандартные функции собраны в src/func.c, и как я понимаю достаточно будет перенести необходимую функцию из extension-functions.c.Не только. Еще и зарегистрировать новую функцию надо будет. free.arhey Но вот где находиться этот func.c мне не очень ясно.Тогда в морг. Найти исходник это одна из самых простых операций... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2015, 17:15 |
|
Как добавить расширение Sqlite в автозагрузку?
|
|||
---|---|---|---|
#18+
White Owl, Спасибо за ответ! Получается, чтобы добавить в Sqlite одну банальную математическую функцию нужно всего лишь изучить Си, перелопатить весь код и заучить документацию написанную еще в 2001 году. И да, все это без какой-либо помощи из сообщества. Шикарный движок, ничего не скажешь! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2015, 17:32 |
|
Как добавить расширение Sqlite в автозагрузку?
|
|||
---|---|---|---|
#18+
А Вы знаете, что ещё настоящее гавно? Парусная яхта! Это ж надо навигацию там знать, уметь парус поставить, в шторм ходить, марлина не бояться на удочку удить, да так, чтоб удилой не прозвали. И это в 21-то веке! Когда солнечные батареи и марсоход. Плутон! А тут чтоб аборигенов с моря подразнить, изволь диплом капитана получить, да ещё без никакой поддержки ото всех капитанов мира. Дикари, зла нет. Ну, внезапно да. Чтобы вшить функцию в монолитный движок, таки-надо движок перекомпилировать. Но меня терзают смутные сомнения... а что мешает воспользоваться классическим способом и регистрировать callback SQRT для соединения? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2015, 18:13 |
|
Как добавить расширение Sqlite в автозагрузку?
|
|||
---|---|---|---|
#18+
Вот же, чтобы не быть голословным. Динамически, аж жуть! Унд искаропки. Унд ещё и переопределять функции умеет. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2015, 18:27 |
|
|
start [/forum/topic.php?fid=54&fpage=9&tid=2008657]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 131ms |
0 / 0 |