SqlId column names are now escaped when inserted to SqlExp and when they actually do contain valid sql IDs (or valid of/as combinations). This is to support things like
Select(SqlId("FROM")).From(TABLE)
...
Note that this changes a way how SqlId::Of and SqlId::As are represented inside SqlId (some special <32 character is inserted instead of '.' for Of, for As there were special characters before, just other). Other than that, SqlId::ToString still returns unescaped id and should be backwards compatible.
MySql is by default using '`' instead of " to do escapes, this is supported.
If SqlId does not contain valid sql id, it is not escaped. This is done to support things like:
Select(SqlId("*")).From(TABLE)
which seems to be used in existing code.
In related news, I have changed SqlAll() to return SqlId instead of SqlVal, which makes possible