Forum

Please or Register to create posts and topics.

DB Browser, RMNOCase and unifuzz64.dll

Hi, I'm pretty new to using SQL IDE's with RM 8 and have been trying out different IDE's.   I saw a comment that the unifuzz64.dll seemed to work ok with DB Browser.   So far DB Browser is my favorite IDE for SQlite.

Anyways, my question: The commenter thought unifuzz64.dll worked ok, how can I verify this?   I've loaded the .dll into DB Browser and get the pop-up below (which the poster says might be a falsepositive).  I've used DB Browser now to perform various queries and it seems to be working ok.   I've only done this though on a test database of RM as I don't want to mess up my live database.   Is there a way to test if Unifuzz64.dll is working ok  (I'm assuming it is, but I have hundreds of hours invested in my research and don't ant to bork it).  If there is a test, or something to look for?   If I run the integrity checkit gives some index errors, but if I run it again it comes back as ok.  Here is my error:

Thank you for any advice....  I may just be being paranoid...

Matthew

I would rather that Tom answer, but I think the issue is that you really can't run things like PRAGMA integrity_check without the real RMNOCASE which we as users don't have access to.

You can run queries with the fake RMNOCASE, and you can even run updates with the fake RMNOCASE. Queries should present no problems at all. Updates of numeric fields should present no problems at all. But after updates of text columns that have the RMNOCASE collation, you will need to run the File => Tools => Rebuild Indexes tool from inside of RM. I think that what happens is that the fake RMNOCASE is sufficient to update the data tables themselves but for reasons I don't understand it is not sufficient to update the database level indexes. And many of the text columns in RM's database have database level indexes.

kevync has reacted to this post.
kevync

Thank you for the info.    It sounds like there shouldn't be any problems working with the data then.   Running the Rebuild Indexes when I first open RM 8 is no problem.   Thanks, Matthew

I usually prefer Jerry's answers to mine as he is professionally experienced with large databases and SQL while I'm a late dillettante. What I could add is this:

  1. One or more SQLite managers default to the NOCASE collation sequence when they do not have RMNOCASE available and may give no error or warning message.
  2. An Integrity Check by a SQLite manager without the genuine RMNOCASE collation of a RM database that passes RM's Integrity test will give errors proportional to the differences between its substitute collation and the genuine RMNOCASE.
  3. The fake RMNOCASE based on unifuzz.c is closer to RMNOCASE than is one based on NOCASE and gives fewer errors.
  4. Running REINDEX under a fake RMNOCASE will result in the SQLite manager's Integrity Check passing but RM's will report errors proportional to the differences in the collation sequences.
  5. If you are modifying data with an outboard SQLite manager, run its REINDEX first to avoid potential errors.
  6. Having REINDEXed or edited any field that is indexed by RMNOCASE outside of RM under a substitute RMNOCASE results in RM's Integrity Test errors.
  7. Always run RM's File > Tools > Rebuild Indexes after modifying the database using an outboard SQLite manager.
kevync and Matthew Friend have reacted to this post.
kevyncMatthew Friend

I just now installed DB Browser for SQLite 64-bit Windows and downloaded the unifuzz64.dll to the DB Browser extensions folder. I've concluded that the fake RMNOCASE extension has to be manually loaded (Tools > Load extensions); at least, I was able to manually load it and see its effect - there may be some means by which it could be set to load automatically*.

Before loading it, the Integrity Check returned the first 100 errors as per your screenshot because it used NOCASE. After loading unifuzz64, the error count dropped to 12.

* Aha! There is, under Preferences. That's a convenience which SQLiteSpy has but the free SQLite Expert Personal does not.

Thanks for testing and checking that for me, I appreciate it.

Matthew