Although SQLite is one of the most used data containers I would guess not many would use 1 or 0 and not true or false or even where X or where not X which I would expect to work regardless of the value of boolean in the database.
Well... the problem with SQLite is that you can't do something like
SELECT * FROM testtable WHERE bol = true
because SQLite does not know the term FALSE and TRUE.
Luckily you can use
SELECT * FROM testtable WHERE bol
and
SELECT * FROM testtable WHERE not bol
but the problem with that is you can't put it in a parameterized statement.
And this doesn't work again:
SELECT * FROM testtable WHERE bol = :param_boolean
But you are correct. I think the impact to existing users will be minimum and I think when they post the question about booleans in SQLite we can point them in the right direction.
I am still considering add conditional compiler define, which will allow relax old behavior.
Not nice , but hard to say how many users will be affected with this change and if they will be happier with such solution.
You could. But I think someone capable of recompiling FPC with this conditional compiler define is also capable of correcting his/her own program to act as it should according to SQLite-requirements. The largest problem that I see is that they initially don't know about this change and can stumble upon it and waste some time looking for a solution. But hey... that's what we are here for
