/// <returns>upper-case, empty is possible</returns> public virtual string GetAliasUnescapeUppercase() { if (alias == null || alias.Length <= 0) { return alias; } if (aliasUpEscape != null) { return aliasUpEscape; } switch (alias[0]) { case '`': { return aliasUpEscape = Identifier.UnescapeName(alias, true); } case '\'': { return aliasUpEscape = LiteralString.GetUnescapedString(Runtime.Substring(alias, 1, alias.Length - 1), true); } case '_': { var ind = -1; for (var i = 1; i < alias.Length; ++i) { if (alias[i] == '\'') { ind = i; break; } } if (ind >= 0) { var st = new LiteralString(Runtime.Substring(alias, 0, ind), Runtime.Substring(alias, ind + 1, alias.Length - 1), false); return aliasUpEscape = st.GetUnescapedString(true); } goto default; } default: { return aliasUpEscape = alias.ToUpper(); } } }