Esempio n. 1
0
        public override void GetSuggestions(SuggestionList s)
        {
            SuggestionContext sc = s.suggestionContext;

            if (s.enableSuggestColumns)
            {
                if (parentQuery.select != null)
                {
                    sc.AddColumnsInSelectList();
                }
                if (s.textEntered.Length > 0)
                {
                    sc.AddColumnsInFromTables();
                }
            }

            if (columns.Count > 0 && s.enableSuggestKeywords)
            {
                if (sc.last.hasComma == false)
                {
                    s.AddKeyword("desc");
                    s.AddKeyword("asc");
                }

                sc.SuggestPrimaryKeywords();
            }
        }
Esempio n. 2
0
        public override void GetSuggestions(SuggestionList s)
        {
            SuggestionContext sc = s.suggestionContext;

            if (sc.last == null)
            {
                sc.suggestColumns = true;
            }
            else
            {
                if (sc.last.type.IsOneOf("conjunction"))
                {
                    sc.suggestColumns = true;
                }
                else if (sc.last.type == "operator")
                {
                    sc.suggestColumns = true;
                    if (sc.lastColumn.token != null)
                    {
                        Column c = sc.lastColumn.token as Column;
                        sc.suggestColumnsDataType = c.dbColumn.dataType;
                    }
                }
                else if (sc.last.type.IsOneOf("column", "literal"))
                {
                    sc.suggestOperators       = sc.lastOperator.pos < sc.lastConjunction.pos;
                    sc.suggestPrimaryKeywords = sc.suggestConjunctions = sc.lastOperator.pos == 0 || sc.lastOperator.pos > sc.lastConjunction.pos;
                }
                else
                {
                    sc.suggestColumns = true;
                }
            }

            if (sc.suggestColumns && s.enableSuggestColumns)
            {
                sc.AddAllColumnsInQuery();
                sc.AddColumnsInFromTables();
            }
            if (s.enableSuggestKeywords)
            {
                if (sc.suggestConjunctions)
                {
                    sc.SuggestConjunctions();
                }
                if (sc.suggestOperators)
                {
                    sc.SuggestOperators();
                }
                if (sc.suggestPrimaryKeywords)
                {
                    sc.SuggestPrimaryKeywords();
                }
            }
        }
Esempio n. 3
0
        public override void GetSuggestions(SuggestionList s)
        {
            SuggestionContext sc = s.suggestionContext;

            if (s.enableSuggestKeywords && sc.last != null && ((sc.last.type == "column" && sc.last.hasComma == false) ||
                                                               (sc.last.type == "identifier" && sc.lastColumn != null && sc.lastColumn.hasComma == false)))
            {
                sc.SuggestPrimaryKeywords();
            }
            else if (s.enableSuggestColumns)
            {
                if (columns.Count > 0 || candidateTables.Count > 0)
                {
                    sc.suggestPrimaryKeywords = true;
                }
                if (s.textEntered.Contains("."))
                {
                    s.includeAliases = s.enableSuggestAliases;
                    string alias = s.textEntered.Substring(0, s.textEntered.IndexOf("."));
                    string table = columns.GetTableNameForTableAlias(alias);
                    if (table == null)
                    {
                        table = Db.GetTableNameByAlias(alias, null);
                    }
                    if (table != null)
                    {
                        sc.AddColumnsInTable(table, alias);
                    }
                    foreach (string t in Db.GetPossibleTablesForAlias(alias))
                    {
                        sc.AddColumnsInTable(t, alias);
                    }
                }
                sc.AddColumnsInFromTables();
                sc.AddColumnsInSelectCandidateList();
                sc.AddAllColumns();
            }
        }