Table filter "does not contain" is case-sensitive while "contains" is not
まだ誰も着手していません。
評価
調査の方向性
deps/db/src/logseq/db/common/view.cljs から始め、:text-contains 演算子と :text-not-contains 演算子について match-text-or-number-clause と row-matched? を調べます。issue で説明されているモデルベースのプロパティテストを実行し、続いて、大文字と小文字を区別しない contains とその否定が、Apple/apple の例に対して相補的なテーブル結果を生成することを確認します。
索引モデルが issue の本文から書いたものです。
説明
Steps
- Create a tag Topic with a Text property "note".
- Tag a block with #Topic and set its "note" to "Apple".
- On the Topic page, filter the table by "note" contains "apple".
- Change the filter's operator to "does not contain", keeping "apple".
Expected
Exactly one of the 2 filters shows the block.
Actual
Both filters show the block. "contains" ignores case, "does not contain" does not.
Cause
In deps/db/src/logseq/db/common/view.cljs, match-text-or-number-clause lower-cases both sides for :text-contains and neither side for :text-not-contains; row-matched? (used by query tables) does the same.
Found with a model-based property test of table views that checks a filter against its negation, replayed on upstream master 16c4ed1a0.
- 主要言語
- 言語のデータがありません
- スター
- 28
- フォーク
- 2
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
logseq/db-test のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 87/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
Pressing Delete after double-clicking a journal page's title row throws in keydown-delete-handlerオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
GoogleChromeLabs/project-sesame#216 ·
メンテナーはふだん 12 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
-
check:passed logos:add
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信