Page 1 of 1

[Solved] SQLite - StoresLowerCaseIdentifiers

Posted: 15.03.2021, 15:47
by naumov13
Hello.

I found such a problem that the TZConnection.GetColumnNames method does not work correctly for tables containing uppercase characters, such as T01.

My environment:
Windows 8.1 x64
Delphi 2007
ZEOS version: 7.2.10-stable
Database driver: SQLite (sqlite3.dll v3.34.1)
At the same time, with ZEOS-7.1.4 everything works well.

While researching the problem, I found the following three methods

Code: Select all

TZAbstractDatabaseInfo.StoresMixedCaseIdentifiers
TZAbstractDatabaseInfo.StoresUpperCaseIdentifiers
TZAbstractDatabaseInfo.StoresLowerCaseIdentifiers
If I understood correctly, only one of them should return true, and the other two should return false.

For zeos- 7.1.4 (as well as 7.2.1-rc), this was the case:

Code: Select all

upper = false
lower = false
mixed = true
Then, in version 7.2.4 this was changed (I think this is wrong)

Code: Select all

upper = false
lower = false -> true
mixed = true -> false
Then, in version 7.2.8 this was fixed (but not completely)

Code: Select all

upper = false
lower = true
mixed = false -> true
As a result, both functions now return true, which is contrary to reality.
And when the GetColumnNames method works, it thinks that the table name T01 needs to be converted to lowercase.

Tell me, am I right in my guesses?
If I'm right, I guess a fix is needed for 7.2 and 8.0 branches.

Re: SQLite - StoresLowerCaseIdentifiers

Posted: 15.03.2021, 17:35
by marsupilami
Hello,

could you please open a bugreport on Sourceforge for this? See https://sourceforge.net/p/zeoslib/tickets/

Best regards,

Jan

Re: SQLite - StoresLowerCaseIdentifiers

Posted: 16.03.2021, 13:05
by naumov13

Re: SQLite - StoresLowerCaseIdentifiers

Posted: 16.03.2021, 13:29
by marsupilami
Thank you :)

Re: SQLite - StoresLowerCaseIdentifiers

Posted: 27.03.2021, 08:18
by naumov13
Fixed in r7395.

Are there plans to update the 7.2 release in the future?
Maybe 7.2.11 or 7.2.12?

I am currently considering whether to keep my projects on stable 7.2 or switch to trunk (8.0) and use it.

Re: [Solved] SQLite - StoresLowerCaseIdentifiers

Posted: 27.03.2021, 10:33
by marsupilami
Hello, I think there will be another 7.2 version. But I assume that once we release Zeos 8.0, there will be no more patches for 7.2 that are worth to be released.
If you plan to switch, please switch to the 8.0-patches branch.