You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
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
select * from mytable where name = "Test";
Above query on a sqlite table gives the error : no such column: Test
same with
select * from mytable where name = 'Test';
It treats whatever is written between the quotes as the name of a table.
Interestingly enough, if I make sure that the thing written between quotes corresponds with the name of an existing table, like :
select * from mytable where name = "name";
... there is no longer an error, but the result is just a
select * from mytable;
Version info :
Beekeeper studio : 1.13.2
MacOs : 11.3.1
It works without problems on my other computer on the same database :
Beekeeper studio : 1.7.5
MacOs : 10.15.7
So, for me it works with an older version of Beekeeper Studio running on an older version of MacOS.
I've tried to install the older version on my 11.3.1 but I get a message that the OS is not supported.
Other things I noticed :
I can do selections on all columns fine using the query builder UI
No problems using
where
on columns holding integer values
Update
I have tried older versions to see what would be the latest version that does not have this problem.
I installed 1.11.6 and noticed the problem does not occur if you use single quotes, but does occur when using double quotes.
Then I installed 1.13.2 again, and noticed now again the problem only occurs when using double quotes.
Still I feel pretty sure that did try both single and double quotes at first in 1.13.2. But now I cannot reproduce the problem using single quotes.
And still, version 1.7.4 has no problems with using double quotes.
This (double quotes not working as "expected") is a duplicate of
#690
, where
#690 (comment)
explains what's going on:
SQLite does have a quirk of a misfeature in that it does allow double quote string literals due to historical reasons:
sqlite.org/quirks.html#double_quoted_string_literals_are_accepted
. However, back in 2019, a new config setting was added that allowed disabling this feature, and it was recommended to do so.
better-sqlite
took that advice and disabled it by default in their
6.0.0
release. Could maybe set this behavior back on during DB connection, but maybe not worth the hassle, and better to just encourage writing idiomatic SQL and use single quotes around string literals, which is portable to other DBMS engines whereas double quotes aren't, especially given the SQLite devs themselves say this is a misfeature.
To add onto the above,
better-sqlite3
replaced the
sqlite3
dependency in
7b19456
, which was part of the v1.11.0 release.