-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bug when using with sqlite library that is compiled with SQLITE_DSQ=0 #12
Comments
Thanks for pointing this out. I'll put out a release with this fix shortly. |
Hi @Blackclaws Sorry for the delay but I just pushed out a commit that should fix this and will be making a final 6.x release with this fix soon. Are you able to test this? I can compile SQLite with |
To make it easier to test, I published the latest build with these changes on nuget as NeoSmart.Cache.SqliteCache version 6.1.0-preview1. |
I bypassed it by compiling the library myself excluding bundle_green. We're using the cache on Android via Unity where bundle_green doesn't work. In general I'm not sure if forcing this specific version is in general a good idea. Basically what I did was remove bundle_green and manually linked against sqlite:
|
Yeah, I'm not sure what the best thing for me to do would be. I think you don't need to compile the library yourself - if you add the right dependency then call I could remove the bundle_green dependency from the main nuget and replace it with just
|
I personally think that removing the explicit dependency on bundle_green makes sense given that its not the only way you can use SQLitePCLRaw and it restricts the user in what they can use. The correct dependency should be SQLitePCLRaw.core and a section in the docs under installation basically telling the user to go ahead and install one of the providers and initialize it should be fine as well? You could also split it into two packages, where one is the core cache without the dependency and the other one keeps the original name including the dependency (not breaking backwards compatibility). The problem is that bundle_green itself ships with a couple of libraries that I'd rather like to avoid pulling into the project in the first place as they are unnecessary ballast (they don't work on iOS or Android anyway, at least not in the context we are in). |
Sqlite has the oddity that it treats double quoted strings that don't evaluate to an identifier as strings. This is not sql standard behavior. Since in the initialization routine values are inserted into the meta table that contain strings that are double quoted. Those will fail with a rather cryptic message 'created is not a column name' when the underlying sqlite does not support this odd configuration option.
Since its recommended to compile sqlite with DSQ=0 (i.e. always treat double quotes as identifiers) it would be nice if this could be reflected in the sql statements by replacing double quoted strings by single quoted strings.
The text was updated successfully, but these errors were encountered: