UnionOfRAD/lithium — pull request #822 by housni (2013-02-09 14:35:19+00:00)
Title: Added an options parameter to lithium\data\source\Database::name() to override escaping.

I'm on MySQL 5.1.66:

mysql> STATUS;
--------------
mysql Ver 14.14 Distrib 5.1.66, for debian-linux-gnu (i486) using readline 6.1

According to
[MySQL 5.1 Reference Manual :: 9 Language Structure :: 9.2 Schema Object Names](http://dev.mysql.com/doc/refman/5.1/en/identifiers.html):

Before MySQL 5.1.6, database and table names cannot contain “/”, “\”, “.”, or characters that are not permitted in file names.

So, even though it's discouraged, I should be able to have a database named `example.com`, for example :)

I can perform CRUD operations fine, using the regular Lithium app models which do not use `lithium\data\source\database\adapter\MySql::sources()` which, in turn, calls `lithium\data\source\Database::name()`.
If we were to call the above methods using a table name such as `example.com`, it will yield an error similar to the following:

SHOW TABLES FROM `example`.`com`;: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.`com`' at line 1

@jails suggested I add an extra option to `lithium\data\source\Database::name()` to override escaping. I've also included the tests for this.