Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Using extension function in a VIEW causes exception to be printed

オープン
#265 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
66/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
python, sqlite
領域
cli, database

調査の方向性

まず litecli/completion_refresher.pylitecli/sqlexecute.py を調べます。特に、バックグラウンド更新と traceback に記載されている table_columns() クエリを確認してください。接続で利用できない拡張関数を使用する SQLite ビューを用いて再現するか、そのようなビューを含むデータベースを開いて再現します。完了条件は、補完の更新中に CLI が例外を出力しなくなり、ビューが引き続き使用できることです。

索引モデルが issue の本文から書いたものです。

説明

With current git:

.load ./crypto -- included in popular sqlean extension for sqlite

CREATE TABLE products (
    product_id INTEGER PRIMARY KEY,
    product_name TEXT NOT NULL
);

INSERT INTO products (product_name) VALUES ('Wireless Mouse');

CREATE VIEW v_hashed_product_id AS
SELECT 
    hex(crypto_blake3(product_id))
FROM products;

Running this in the REPL prints out this exception:

  File "site-packages/litecli/completion_refresher.py", line 85, in _bg_refresh
    refresher(completer, executor)
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "site-packages/litecli/completion_refresher.py", line 128, in refresh_tables
    table_cols = list(executor.table_columns())
  File "site-packages/litecli/sqlexecute.py", line 197, in table_columns
    cur.execute(self.table_columns_query)
    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
sqlite3.OperationalError: no such function: crypto_blake3

but the view is created and works as expected.

Furthermore, existing and then opening the db in litecli also prints this exception:

$ litecli ./my.db
  File "site-packages/litecli/completion_refresher.py", line 85, in _bg_refresh
    refresher(completer, executor)
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "site-packages/litecli/completion_refresher.py", line 128, in refresh_tables
    table_cols = list(executor.table_columns())
  File "site-packages/litecli/sqlexecute.py", line 197, in table_columns
    cur.execute(self.table_columns_query)
    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
sqlite3.OperationalError: no such function: crypto_blake3
my.db>

Here's a link to sqlean binaries for testing.

主要言語
Python
スター
3.3k
フォーク
95
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

dbcli/litecli のほかの issue

dbcli/litecli の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。