sqlitebrowser / sqlitebrowser/sqlitebrowser

Case insensitive compare for non-Unicode characters

Open
#2,560 25 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement sqlite-extension unicode
Dominant language
C++
Stars
24.6k
Forks
2.4k
Avg merge
3d 49m
Merged PRs (30d)
3

Description

Details for the issue

What did you do?

I opened a containing tables with text fields containing non-unicode (Cyrillic) data. Then I switched to the "Browse Data" tab, switched to one such table and tried to filter the text fields. I tried with both leaving collation as non-specifed and UTF16CI.

What did you expect to see?

I wanted to be able to filter (both interactively and via SQL scripts) rows, for which the filter string composed of mixed cases Cyrillic letters matches the content case insensitively.

What did you see instead?

When I indicated UTFCI collation, I received the warning
"Collation needed! Proceed? A table in this database requires a special collation function 'UTF16CI' that this application can't provide without further knowledge. If you choose to proceed, be aware bad things can happen to your database. Create a backup!".
I proceeded, but filtering for Cyrillic strings only worked in case sensitive fashion.

Useful extra information

The info below often helps, please fill it out if you're able to. :)

What operating system are you using?
  • Windows: ( version: 10 )
  • Linux: ( distro: ___ )
  • macOS: ( version: ___ )
  • Other: ___
What is your DB4S version?
  • 3.12.1
  • 3.12.0
  • 3.11.x
  • Other: ___
Did you also

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue in the Browse Data tab with Cyrillic text, using both unspecified collation and UTF16CI, then compare interactive filtering with the equivalent SQL query. Done means mixed-case Cyrillic filtering works case-insensitively without the UTF16CI warning or incorrect results.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, sqlite
Domain
databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.