ericsink / SQLitePCL.raw

A Portable Class Library (PCL) for low-level (raw) access to SQLite
Apache License 2.0
512 stars 106 forks source link

Add packages for SQLite3 Multiple Ciphers #563

Closed bricelam closed 7 months ago

bricelam commented 7 months ago

Depends on ericsink/cb#19

/cc @utelle

bricelam commented 7 months ago

I’ll update this to use the e_ prefix to avoid clashes.

ericsink commented 7 months ago

I've reviewed these diffs and I don't see any obvious problems.

I do think the e_ prefix for sqlite3mc is the way to go.

The PR for cb has been merged and new builds are done, so the next time this PR is checked, I think it'll pass.

bricelam commented 7 months ago

Updated to prefix with "e_". I also added a provider (but no bundle) package without the prefix to enable using the version installed from source (and any future OS packages).

bricelam commented 7 months ago

The PR for cb has been merged and new builds are done, so the next time this PR is checked, I think it'll pass.

Looks like you still need to merge from staging to master.

ericsink commented 7 months ago

Oops! I thought I did that...

done. I'll rerun the checks.

bricelam commented 7 months ago
Failed SQLitePCL.Tests.test_cases.test_sqlite3_soft_heap_limit64
Expected: 20971520
Actual:   10485760
ericsink commented 7 months ago

Hmmm. And this error wasn't happening when you ran the test suite using the builds you grabbed from the cb fork?

bricelam commented 7 months ago

I was using the binaries from the sqlite3mc branch of https://github.com/utelle/SQLite3MultipleCiphers-cb and didn't get the failure locally.

ericsink commented 7 months ago

I see reasons to ask questions about how the heap limit functions might have different behavior for sqlite3mc.

But I see nothing to explain why the error wasn't happening for you before. It's like something is different about the new builds from the merged cb.

@utelle

ericsink commented 7 months ago

I pushed a commit into this PR to disable the failing tests, just for now.

utelle commented 7 months ago

I see reasons to ask questions about how the heap limit functions might have different behavior for sqlite3mc.

I have absolutely no idea. What I can say is that sqlite3mc does not actively interfer with the heap limits. sqlite3mc implements a VFS shim which sits between SQLite and the real VFS. If encryption is not enabled it passes the page data through to the real VFS unchanged.

But I see nothing to explain why the error wasn't happening for you before. It's like something is different about the new builds from the merged cb.

I will try to perform this heap limit test directly with sqlite3mc alone, outside of any .NET environment.