Ejemplo n.º 1
0
        internal static string FixQuery(string fql)
        {
            var words = fql.Split(' ');

            if (words.Length < 3)
            {
                return(fql);
            }
            if (words[0].ToLower() != "select")
            {
                return(fql);
            }
            if (words[2].ToLower() != "from")
            {
                return(fql);
            }
            var replacement = words[1];

            if (replacement != "*")
            {
                return(fql);
            }
            var tableName = words[3].ToLower();

            if (tableName.StartsWith("app."))
            {
                tableName = tableName.Substring(4);
            }
            var td = KnownTypeData.GetTypeDataByTableName(tableName);

            if (td == null)
            {
                throw new Exception();
            }
            replacement = td.PropertiesByFieldName.Keys.StringConcat(",");
            if (replacement.IsNotNullOrEmpty())
            {
                words[1] = replacement;
            }
            return(words.StringConcat(" "));
        }