Updated port of SQLite
Paolo Fabio Zaino (28) 1882 posts |
Thanks Chris! :) |
Chris Mahoney (1684) 2165 posts |
For some reason I didn’t get the official release announcement email for SQLite 3.37.1, so I missed updating the RISC OS version. Allow me to make it up to you by releasing 3.37.2, just 20 minutes after the Unix release. Link in first post :) Admittedly I haven’t yet run the test suite on this version, but the RISC OS-specific code hasn’t changed and therefore I’m not envisaging any issues. I’ll update this post when it’s been tested. Edit: All tests passed. |
Stefan Fröhling (7826) 167 posts |
Thanks Chris for keeping SQLite updated! |
Chris Mahoney (1684) 2165 posts |
Another month, another version. The RISC OS port of SQLite has been updated to SQLite 3.38. There are also a couple of tweaks to the command-line shell. Details are in the first post. |
Andrew McCarthy (3688) 606 posts |
Chris, this is good news. I can’t wait to give it a whirl at some point and use it in conjunction with Python. Thank you. :) |
Chris Mahoney (1684) 2165 posts |
Here we go again. Updated to SQLite 3.38.1 with some new functionality in the command-line shell. As always, check the first post for details. |
Paolo Fabio Zaino (28) 1882 posts |
thanks Chris! :) |
Chris Mahoney (1684) 2165 posts |
3.38.2 now available. Nothing else to say that isn’t just a copy/paste of earlier posts :) |
Chris Mahoney (1684) 2165 posts |
SQLite 3.38.3 has been released for other platforms, but I’m snowed under with ‘real’ work at the moment and won’t be able to update the RISC OS port for a while. There are no changes to the OS interface code, so if you want to build an updated library yourself then all you need to do is download the RISC OS 3.38.2 source and the official 3.38.3 amalgamation, then replace c.sqlite3-in with the new sqlite3.c and then run Mk. |
Chris Mahoney (1684) 2165 posts |
The manual build mentioned above is no longer required. I’ve released alpha 11, based on 3.38.5. I’m getting close(ish) to ‘promoting’ SQLite from alpha to beta. If anyone’s noticed any issues that aren’t in the Notes or Known Issues list in the first post then please let me know; ideally the first beta will have zero bugs in it :) |
Herbert zur Nedden (92) 37 posts |
Hi, thanks a bunch for sqlite3! I played with sqlite3 controlled by PHP from HTTPServ – was a bit tricky to get PHP and sqlite3 to interact … well not just a bit tricky, but I managed… I created a simple database, inserted one record and listed the contents with these commands (using an obey file): Then I added a record and again listed the database contents using this obey file: Then I rerun that obey file What seems to happen is that in case of some SQL error (like an INSERT failing) the database file remains open so that the next sqlite3 call to e.g. do a SELECT fails to open the database file. I’d very much appreciate if this can be fixed so that an SQL error like the one above does not leave the database file open and thus not accessible for the next sqlite3 call. Thanks Note: I had to insert a space char after “VALUES” since if not this Forum does not show the brackets; so if you copy’n’pase please remove the SPACE between VALUES and the bracket |
Chris Mahoney (1684) 2165 posts |
Interesting. I’ll see what I can track down. My gut feeling is that it’s a bug in the CLI shell rather than the SQLite library itself, as the issue only occurs when you pass the SQL in at the command line like you’re doing above. If you just run I’m not sure when I’ll get to this, but it’s definitely the sort of issue that I want to fix. Thanks for the bug report! :) |
Chris Mahoney (1684) 2165 posts |
I’ve finally had a bit of time to look into this. It appears to be a bug in the upstream code, but I’m trying to confirm that before going any further. I have a hacky fix for it, but if it truly is an issue with the original code then it’d be better to fix it there. As they say, watch this space :) Update: It is not an upstream bug. The CLI expects a POSIX environment, and the POSIX spec calls for any opened file handles to be closed when an app terminates. There’s therefore an expectation that the OS will close the file automatically. Anyway, fixed in alpha 12, link in the first post as usual. |
Herbert zur Nedden (92) 37 posts |
Thanks Chris, works like a treat now! |
Chris Mahoney (1684) 2165 posts |
Lucky number 13. Alpha 13 now available, using SQLite 3.39. I was hoping that this would be beta 1 rather than yet another alpha, but I’m not quite there yet. |
Chris Mahoney (1684) 2165 posts |
Beta 1 is now live! As usual, the download link and a change log are available in the first post of this thread. The main thing with beta 1 is that it is now ‘complete’ and doesn’t have any known bugs. It is supplied as a standard RISC OS application, and will set up icons etc. for database files. It is also available through PackMan. Edit: Something I forgot to put in the release notes: While the library itself is identical to alpha 13, the shell has had a single change to bring it in line with the Unix version. If it tries to create a file in a directory that doesn’t exist then it will now attempt to create the directory. I haven’t yet updated the source code archive with this change (i.e. the source is still for alpha 13). |
Chris Mahoney (1684) 2165 posts |
Beta 2, based on 3.39.2, is now available (links in first post, or it should come through PackMan tomorrow). Per the SQLite release announcement:
To reduce clutter, I no longer intend to make a post in this thread unless there are major changes. With SQLite now available through PackMan any update notifications will come through there, or you can subscribe to email announcements on the official SQLite website to get a heads-up of new releases (my intention is to get RISC OS SQLite updates out promptly whenever possible). Edit: Argh! Rather embarrassingly I didn’t test the PackMan package before uploading it, and it contains an error (I’ve somehow managed to include the !Boot and !Run from a completely different product). Complicating matters, my server has just had a drive fail so it might be a few days before I can get an updated package out. This also means that the non-PackMan downloads are not currently available. Moral of the story: Test everything, no matter how confident you are! And script everything so that you don’t make silly mistakes. |
Andrew McCarthy (3688) 606 posts |
Don’t update to SQLite3 3.39.2 from packman as it’s broken; thankfully, packman created a backup of the previous version. Chris is aware; see previous post |
Chris Mahoney (1684) 2165 posts |
Looking at the tracking, the new drive should be here in the next couple of hours so you won’t be waiting too much longer for a fixed package. I still don’t know how I managed to mess it up that badly though! Edit: Package has been updated. Package creation is now scripted so there shouldn’t be any issues like this in the future! PackMan won’t have updated yet, so you can either wait for it or you can download the package and drag it onto PackMan to upgrade manually. |
Chris Mahoney (1684) 2165 posts |
The updated package is now in PackMan. Thanks for your patience and sorry about causing this problem in the first place! |
Andrew McCarthy (3688) 606 posts |
Thank you, Chris, for fixing the package; it works. It’s a good port; I particularly like how you’ve turned it into a professional-looking RISC OS app. |
Chris Mahoney (1684) 2165 posts |
I’m glad you appreciate it. Icons were driving me nuts by the end :) |
Chris Mahoney (1684) 2165 posts |
SQLite 3.40 (for other platforms) has just been released. For a bit of expectation setting, it contains 425 changes, so I don’t promise a quick turnaround with this version. |
Chris Mahoney (1684) 2165 posts |
This didn’t end up being as tricky as I feared. 3.40 is now available in the usual place (see first post), and will come through PackMan in due course. |
Andrew McCarthy (3688) 606 posts |
Thank you for sharing the news of the update and for your work. I updated via packman and re-started; it went boom! I’m using an RPi 4 and can post the error report; if needed. |