SQLite generate_series отсутствует - PullRequest
       49

SQLite generate_series отсутствует

0 голосов
/ 23 октября 2018

Я пытаюсь работать с SQLite CLI и не могу заставить работать функцию generate_series.Я могу смоделировать его с помощью рекурсивного CTE, как предлагается в документации, но я не могу заставить какие-либо примеры из этой ссылки работать.Вот некоторые результаты моего сеанса:

sqlite> with recursive generate_series(value) as (
    select 1
    union all select value+1
    from generate_series
    where value+1<=3)
select value from generate_series;
1
2
3
sqlite> select value from generate_series;
Error: no such table: generate_series
sqlite> select value from generate_series(1,3,1);
Error: no such table: generate_series

Кажется, что расширение ext/misc/series.c на самом деле не является статически связанным.Я также не знаю, как это сделать, если я собираю с нуля.Я что-то здесь не так делаю?

Редактировать Пока Как скомпилировать расширение в SQLite имеет хороший ответ, я не думаю, что смогуделай что я хочу.Документация неверна: расширение не встроено в оболочку командной строки по умолчанию.

1 Ответ

0 голосов
/ 12 мая 2019

Загрузите расширение: https://sqlite.org/src/file/ext/misc/series.c и скомпилируйте его с:

gcc -g -O2 -shared -fPIC -o series ./series.c

После этого должно работать следующее:

$ sqlite3
sqlite> .load ./series
sqlite> select value from generate_series(5,30,5);
5
10
15
20
25
30
sqlite> .exit
...