powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Как добавить расширение Sqlite в автозагрузку?
7 сообщений из 7, страница 1 из 1
Как добавить расширение Sqlite в автозагрузку?
    #39037124
free.arhey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть запрос который использует функцию 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")
...
Рейтинг: 0 / 0
Как добавить расширение Sqlite в автозагрузку?
    #39037127
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
free.arheyКазалось бы должно было помочь создание файла ~/.sqlitercЭто собственный файл консольной sqlite3.

Универсального способа сделать автозагрузку и привязать ее к базе данных нет.

Но можно сделать аналог .sqliterc для твоей собственной программы. Или запихать нужные функции напрямую в ядро движка.
...
Рейтинг: 0 / 0
Как добавить расширение Sqlite в автозагрузку?
    #39037140
free.arhey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,

Вот про запихать в ядро если можно поподробнее, если конечно не прийдется для этого учить с нуля C. В данном случае мне в принципе нужна то только одна функция из всего пакета.

Из документации следует что все стандартные функции собраны в src/func.c, и как я понимаю достаточно будет перенести необходимую функцию из extension-functions.c. Но вот где находиться этот func.c мне не очень ясно.
...
Рейтинг: 0 / 0
Как добавить расширение Sqlite в автозагрузку?
    #39037697
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
free.arheyВот про запихать в ядро если можно поподробнее, если конечно не прийдется для этого учить с нуля C. В данном случае мне в принципе нужна то только одна функция из всего пакета. Ну почему же с нуля? Можно выучить Си и на других проектах а сюда вернуться уже с достаточным багажом. Но да, знать Си для этого необходимо.

free.arheyИз документации следует что все стандартные функции собраны в src/func.c, и как я понимаю достаточно будет перенести необходимую функцию из extension-functions.c.Не только. Еще и зарегистрировать новую функцию надо будет.

free.arhey Но вот где находиться этот func.c мне не очень ясно.Тогда в морг. Найти исходник это одна из самых простых операций...
...
Рейтинг: 0 / 0
Как добавить расширение Sqlite в автозагрузку?
    #39037716
free.arhey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,

Спасибо за ответ! Получается, чтобы добавить в Sqlite одну банальную математическую функцию нужно всего лишь изучить Си, перелопатить весь код и заучить документацию написанную еще в 2001 году. И да, все это без какой-либо помощи из сообщества. Шикарный движок, ничего не скажешь!
...
Рейтинг: 0 / 0
Как добавить расширение Sqlite в автозагрузку?
    #39037761
MrCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А Вы знаете, что ещё настоящее гавно? Парусная яхта! Это ж надо навигацию там знать, уметь парус поставить, в шторм ходить, марлина не бояться на удочку удить, да так, чтоб удилой не прозвали. И это в 21-то веке! Когда солнечные батареи и марсоход. Плутон! А тут чтоб аборигенов с моря подразнить, изволь диплом капитана получить, да ещё без никакой поддержки ото всех капитанов мира. Дикари, зла нет.

Ну, внезапно да. Чтобы вшить функцию в монолитный движок, таки-надо движок перекомпилировать. Но меня терзают смутные сомнения... а что мешает воспользоваться классическим способом и регистрировать callback SQRT для соединения?
...
Рейтинг: 0 / 0
Как добавить расширение Sqlite в автозагрузку?
    #39037779
MrCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот же, чтобы не быть голословным. Динамически, аж жуть! Унд искаропки. Унд ещё и переопределять функции умеет.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Как добавить расширение Sqlite в автозагрузку?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]