Attribute-formula hasvalue and novalue does not sum up to total files count

Started by axel.hennig, September 11, 2024, 03:05:30 PM

Previous topic - Next topic

axel.hennig

All steps are important, because if e.g. step 3. is skipped, the bug does not appear. Same for step 6.

Steps to reproduce
  • Set-up a new database.
  • Import some testfiles (I've imported approx 330 jpg-files).
  • Create new Attribute Set "Empty" (File).
  • Create new Attribute Set "Test" (File).
  • Within "Test" create new Attribute "Value" (Integer).
  • Fill in some values in "Test.Value" for some files (only one entry per file) (I've enterend "1" in first jpg-file, "2" in second jpg-file and "3" in third jpg-file).
  • Within Category-view, create two new categories:
    • Name "novalue"; Formula "@Attribute[Test.Value,novalue]"
    • Name "hasvalue"; Formula "@Attribute[Test.Value,hasvalue]"

The sum of the two categories "novalue" and "hasvalue" does not sum up to the total files in the database.

You cannot view this attachment.

Doing the following does not solve the problem:
  • Running Database Diagnostics.
  • Closing and re-opening IMatch.
  • Shutting-down and re-starting the Computer.

Mario

Probably this formula ignores files without an Attribute record?
This is to check if an attribute in a record has a value. If a file has no Attribute records, it is probably ignored.
Did you check that?

axel.hennig

I've just entered and Attribute record for 3 files (see first post step 6.). In total there are 336 files in the DB. That means the "novalue / hasvalue" categories should show:
  • 333 / 3 or
  • 0 / 3 but definitely not
  • 30 / 3
 Because these 30 files do not differ from all the other files (apart of the 3 files with Attribute record).

By the way: I've imported 336 times the same file just with different filenames, so also no difference here.

Mario

That's definitely not right. I shall investigate at the earliest opportunity I'll look into it!

axel.hennig

Would it help if I provide you with the IMatch-DB (test-DB; approx. 30MB) containing above described behaviour?

Mario

I'll create a small test db with 10 files and an Attribute Set. I post more after I had time to test this.

Mario



Mario

Wrongly used BitVector operations in the QueryManager when processing the result of a nvalue query.
Basically | instead of &