Details
-
Type:
Improvement
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: 2.4
-
Component/s: Platforms, Schema Managers
-
Labels:None
Description
- Make the use of `` a general approach for explicit quoting of identifiers
- introduce AbstractPlatform::getRegularSQLIdentifierCase($identifier)
- Introduce AbstractPlatform::isRegularIdentifier($identifier)
- Fix Schema Assets not to lower-case, but to check for explicit quoting before.
- Filter values of identifiers passed to all platform functions when they are used in information schema queries according to `` explicit quoting rules.
Problem: Schema is independent of a vendor, this means we have to pick a behavior, i propose SQL-92
- http://savage.net.au/SQL/sql-92.bnf See <actual identifier>
- http://www.alberton.info/dbms_identifiers_and_case_sensitivity.html
This means:
- strtoupper() ALL tables, column, index, foreign key names that are not quoted by ``
- For any Quoted identifiers by `` the case is kept.
- We can introduce a validator to detect a schema that cannot be implemented with a given vendor platform.
In conjunction with the SQL reserved keywords tickets we can then improve the DatabaseDriver considerably to detect identifier casings