Skip to content

v3.0.4

Choose a tag to compare

@github-actions github-actions released this 15 Aug 15:24
· 1 commit to master since this release

Fixes Resolve-ImageStoreSimilarFiles failing with:

Unable to cast object of type 'System.Double' to type 'System.Single'.

What was wrong

ExecuteScalar returns a boxed double for a REAL column, and unboxing that directly to float throws. Unlike a data reader, ExecuteScalar has no typed accessor that would hide the difference, so the conversion pass for the SQLite move — which covered every reader[N] — missed this one call site.

Swept the rest

Rather than fixing the single line, every place a database value is read was rechecked:

  • All typed getters (GetGuid, GetBoolean, GetInt32, GetFloat, GetString) feed matching types.
  • The remaining reader[N] uses are all BLOB columns — byte[] is the one type that unboxes cleanly.
  • Nullable columns go through DBNullableReader.
  • The only other ExecuteScalar already used Convert.ToInt64.

The migration tool was verified too, using its exact parameter handling — including the awkward case of one reused parameter bound to NULL on one row and a blob on the next. Guids, bools, floats, ints, unicode text and 40/20-byte blobs all round-trip exactly, and COLLATE NOCASE still applies to migrated text. Data produced by the migrator is sound; if you already migrated, there is nothing to redo.