public static void OnParsedQuery(lib.sqlparser.Query q) { if (query == null) { query = q; } lock (query) { currentKeyword = null; currentToken = null; currentQuery = null; query = q; currentPosition = Math.Min(currentPosition, query.rightExtent); if (currentPosition > 0) { currentQuery = query.GetQueryAtOffset(currentPosition); if (currentQuery != null) { currentToken = currentQuery.tokens.GetTokenBeforeOrAtRandomOffset(currentPosition); if (currentToken != null) { currentKeyword = currentToken.GetParentPrimaryKeyword(); } } } A.db.ClearActiveObjects(); foreach (Table table in query.allTables.tokens) { if (table.tableAlias != null && S.Get("RememberAliases", true)) { A.db.AliasUsed(table.tableAlias, table.name); } A.db.TableUsed(table.name); } foreach (Column column in query.allColumns.tokens) { if (column.dbColumn != null) { A.db.ColumnUsed(column.dbColumn); } } A.db.SortObjects(); if (S.Get("QuerySuggestions", true)) { suggestionsDirty = true; } T.Debug("currentQuery: " + (currentQuery == null ? "" : currentQuery.debugText)); T.Debug("currentToken: " + (currentToken == null ? "" : currentToken.debugText)); T.Debug("currentKeyword: " + (currentKeyword == null ? "" : currentKeyword.debugText)); } }
public void UpdateTree(lib.sqlparser.Query q) { int prevExpandedLevel = maxExpandedLevel; maxLevels = 0; maxExpandedLevel = -1; minExpandedLevel = 99; nodesAdded.Clear(); Nodes.Clear(); q.Accept(this); this.ExpandToLevel(T.MinMax(0, maxLevels, prevExpandedLevel)); }
public static void Clear() { fp.lib.sqlparser.Query.columnHints.Clear(); query = null; queryExpression = ""; queryQueued = false; currentKeyword = null; currentQuery = null; if (A.db != null) { A.db.ClearActiveObjects(); } lastParse = 0; }
public void AddTables(DbColumn dbColumn) { if (dbColumn != null) { lib.sqlparser.Query tryQuery = lib.sqlparser.Query.Parse(A.db, editor.Text, false); if (tryQuery != null) { SqlBuilder b = new SqlBuilder(tryQuery); b.AddTable(dbColumn.table, suggestionList.includeAliases); string sql = b.Render(); editor.Text = sql; } } }
public static void Parse(bool allowCrash) { lastParse = Environment.TickCount; queryQueued = false; A.AddToLog("parsing..."); lib.sqlparser.Query tryQuery = lib.sqlparser.Query.Parse(A.db, queryExpression, allowCrash); if (tryQuery != null) { if (tryQuery.status == TokenStatus.Error || tryQuery.status == TokenStatus.Warning) { foreach (string msg in tryQuery.errors) { A.AddToLog(msg, false, tryQuery.status == TokenStatus.Error ? MsgStatus.Error : MsgStatus.Warning); } } if (tryQuery.status != TokenStatus.Error) { OnParsedQuery(tryQuery); A.AddToLog("succeeded"); onParsed(); } } }
public QuerySuggestions(lib.sqlparser.Query q) { query = q; }