Bug 471240 - Search for camera model EOS 300D does not find all images
Summary: Search for camera model EOS 300D does not find all images
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Searches-Advanced (other bugs)
Version First Reported In: 8.0.0
Platform: Microsoft Windows Microsoft Windows
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-06-19 20:51 UTC by Michael
Modified: 2023-06-20 16:39 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 8.1.0
Sentry Crash Report:


Attachments
Log file (116.10 KB, text/plain)
2023-06-20 09:52 UTC, Michael
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael 2023-06-19 20:51:10 UTC
There are thousands of images made by a Canon EOS 300D in my database. But if I am searching for images taken by "EOS 300D" only 3 images are found.

I am using a German digikam, so I hope my own translations will fit the real English words.

STEPS TO REPRODUCE
1.  Go to search view
2.  Click "New Advanced Search"
3.  Go to Image Information ("Fotoinformationen")
4.  Select the camera model ("Das Modell der Kamera") "EOS 300D"
5.  Click "OK"

OBSERVED RESULT
Only 3 images are found

EXPECTED RESULT
There should be 42072 (result of query in SQLiteBrowser on table "ImageMetadata")

SOFTWARE/OS VERSIONS
Windows: 22H2 Build 22621.1848

(available in About System)
KDE Plasma Version: ---
KDE Frameworks Version: 5.104.0
Qt Version: 5.15.8
digikam:
  - Build date: 12.04.2023 15:33 (target: RelWithDebInfo)
  - Revision: 66b84e1ba8f8003994fa398a669e1ccc4224a901

ADDITIONAL INFORMATION
I noticed the following that makes me wonder.
1. The real database entries are

   make    model
   Canon   Canon EOS 300D DIGITAL

   But in the Advanced Search Dialog's drop down box there is "EOS 300D" only.

2. 42069 datasets are:

   make    model
   Canon   Canon EOS 300D DIGITAL

   But 3 datasets are:

   make   model
   CANON  CANON EOS 300D DIGITAL

   These 3 are exactly the images which are found. It seems that "CANON" and "Canon" makes the difference.

3. In the database are camera models like "dffdfg" or "erre" and makes like "gfgfgfgf" like "rg". These appear in the drop down box of the Advanced Search Dialog. But "Canon EOS 300D DIGITAL" or "CANON EOS 300D DIGITAL" do not appear, instead "EOS 300D" appears as model and "CANON" and "Canon" as make only.
Comment 1 Maik Qualmann 2023-06-20 03:53:57 UTC
I can't reproduce any problem, I also happen to have about 200 images from the EOS 300D in my collection and they all show up. When I select one of my Nikon cameras, thousands of images are listed.
Are you sure you didn't accidentally activate another search criterion?

By design we only list the camera model name, things like "Canon" or "Digital" will be removed. The database search is a "LIKE" search with wildcards.

We need a DebugView log from searching with internal debugging enabled in digiKam Settings-> Miscellaneous-> System or set Qt debug environment variable. Described here:

https://www.digikam.org/contribute/

Maik
Comment 2 Michael 2023-06-20 09:31:43 UTC
Hello Maik,

yes. I was wondering the same as you. So I tried it several times and I am sure I chose the right option. And not only that. I restarted digikam, I restarted my computer and I recreated the complete database. Always the same. Only "CANON" is found and "Canon" is not.

And I checked the database table "ImageMetadata", hope it is the right one.

Besides the DebugView, I can offer you to try to rewrite the Canon data entries to match the same notation via "update table" statement. Let me know if you want me to test it with the "update table" statement as well.

The DebugView will follow in the next few days.
Comment 3 Michael 2023-06-20 09:52:27 UTC
Created attachment 159786 [details]
Log file

In the join you will find ..."( ImageMetadata.model = ?)", where "?" is replaced by "CANON EOS 300D DIGITAL". So the case sensitivity is relevant. I tested the SQL with "( ImageMetadata.model like ? )" directly in the SQLiteBrowser. For my case this gives the correct results. All EOS 300D images are found.
Comment 4 Maik Qualmann 2023-06-20 11:06:04 UTC
Yes, you are right, the model search is not a "LIKE" search. I see the missing code, I'll fix it tonight.

Maik
Comment 5 Maik Qualmann 2023-06-20 16:39:45 UTC
Git commit 2f96b96554911621b80be434145567a43f53815a by Maik Qualmann.
Committed on 20/06/2023 at 16:36.
Pushed by mqualmann into branch 'master'.

use for camera model search a "LIKE" based query
Related: bug 450611
FIXED-IN: 8.1.0

M  +2    -1    NEWS
M  +2    -1    core/utilities/searchwindow/searchfields_createfield.cpp

https://invent.kde.org/graphics/digikam/-/commit/2f96b96554911621b80be434145567a43f53815a