| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
The site name links to the same thing.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for SQLite
SQLite transactions don't appear to be reentrant. So calling ‘BEGIN’ and then
again ‘BEGIN’ is an error if there is no ‘COMMIT’ or ‘ROLLBACK’ in between.
In order to pretend like this works (it doesn't) I keep track of the level of
the number of transactions that have been created and only call the actual
‘BEGIN’ on the first call and ‘COMMIT’ and ‘ROLLBACK’ on the final one.
This does mean that if any part of the code forgets to do a commit or rollback
for any reason it'll maintain the transaction indefinitely.
I want to change it to explicitly fail if this is attempted, but MySQL/MariaDB
doesn't seem to have any problem with calling ‘BEGIN’ and ‘COMMIT’/‘ROLLBACK’ as
many times as one wants.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
database
I was testing and another process had the database open, so it couldn't commit
changes. This wasn't apparent from the UI because it would just silently assume
a commit went fine.
|
| |
| |
| |
| |
| |
| |
| |
| | |
commands in sqlite
The ‘query’ method will try and return a ‘SQLite3Result’ object, which will be
meaningless because it won't contain any fetched data. The ‘exec’ method instead
returns a boolean indicating the success or failure of the query.
|
| |
| |
| |
| | |
database
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- The ‘sqlite_*’ functions don't exist anymore in PHP 8. They have been replaced
with several ‘SQLite3*’ classes.
- There are some differences between MySQL and SQLite queries that showed up
while doing this work. These differences have been pushed into a QueryBuilder
class so that the other database engines don't have to be modified. This is
done in an ad-hoc basis for now, just to get things working.
- SQLite doesn't support the ‘!’ negation operator used as ‘!ISNULL(...)’,
instead I use ‘IIF(...)’.
- SQLite doesn't support a ‘LEFT(...)’ function, instead I use ‘SUBSTRING(...,
0, ...)’.
- The SQLite3 module doesn't provide a connection identifier, instead you use an
object that represents the connection.
- SQLite doesn't support the ‘ALL’ keyword (or at least doesn't support it in
the same way MySQL does). Instead of ‘<> ALL <subquery>’ I use ‘NOT IN
<subquery>’.
- The ‘SQLite3*’ classes don't provide any way to determine how many rows have
been returned without iterating through all of them, so any place that tries
to figure out the rows beforehand just doesn't anymore.
- All the database engine classes require a ‘QueryBuilder’ instance. The sqlite
one uses a specialized one. I can't test most of these database engines, so
I'm focusing on SQLite and MySQL/MariaDB for now.
|
| |
| |
| |
| |
| | |
My understanding of the ‘KEY’ keyword in the ‘tables.sql’ was incomplete. I
didn't realize that it made indexes.
|
| | |
|
| |
| |
| |
| | |
This reverts commit e1bfad3df7b41cbc8537222f211edaf9b3444edf.
|
|/ |
|
|
|
|
| |
Don't make finding the default files dependent on finding regular files.
|
| |
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
links
- ‘noreferrer’ prevents the Referer header from being sent to the server the
link points at when the link is clicked on.
- ‘noopener’ prevents the ‘window.opener’ property from being set when the link
is clicked on.
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There are quite a few big differences between running HTML and XHTML that are
more than just validation errors. Running a different parser in debug mode seems
unhelpful, and the goal probably won't be to generate XHTML always anyway
anymore.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
in XHTML
While running in Debug mode XHTML is rendered instead of HTML, and XHTML doesn't
have a named entity for non-breaking space (‘ ’ in HTML), so the numeric
one must be used instead.
|
| |/
| |
| |
| | |
This ‘div’ is opened on line 461.
|
| |
| |
| |
| |
| |
| |
| | |
wrong
Normalizing them this way ruins the url by cutting off a character too many and
making the url invalid.
|
| |
| |
| |
| | |
having default values
|
| |
| |
| |
| |
| |
| |
| | |
The documentation says that defining a constructor as a function with the same
name as the class is deprecated as of PHP 8, but should still work. However it
seems that this isn't true. Running on my machine these constructors didn't get
called. Renaming them to ‘__construct’ fixed that.
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
|
|
| |
fix typo
|
| |
|
| |
|
| |
|
|
|
| |
Yikes, This code does not look secure,
|
|
|
| |
update repo name
|
| |
|
| |
|
| |
|
|\
| |
| |
| | |
https://github.com/buckaroo-labs/semantic-scuttle
|
| |
| |
| | |
Rename toolbar items
|
| |
| |
| | |
update app repo link
|
|/ |
|
|\
| |
| |
| | |
https://github.com/buckaroo-labs/semantic-scuttle
|
| |
| |
| | |
change × to *
|
| | |
|
| |
| |
| | |
avoid warning
|
| |
| |
| | |
avoid warning
|
|/ |
|
| |
|