Example #1
0
 private static void parserTester(string input)
 {
     Console.WriteLine("{0}", input);
     try
     {
         AzSQLParseTree parseTree = AzSQL.ParseAzSQL(input);
         Console.WriteLine("{0}", parseTree.filterCondition.ToString());
     }
     catch (AzSQLParseException ex)
     {
         Console.ForegroundColor = ConsoleColor.Red;
         Console.WriteLine("Syntax Eror at line {0}, position {1}: {2}", ex.line, ex.charPosition, ex.Message);
         Console.ResetColor();
     }
     catch (Exception ex)
     {
         Console.ForegroundColor = ConsoleColor.Red;
         Console.WriteLine("Exception {0}: {1}", ex.GetType().FullName, ex.Message);
         Console.ResetColor();
     }
     finally
     {
         Console.WriteLine("----------------------");
         Console.WriteLine();
     }
 }
Example #2
0
        internal static AzSQLParseTree ParseAzSQL(string input)
        {
            AntlrInputStream stream = new AntlrInputStream(input);
            ITokenSource     lexer  = new AzSQLLexer(stream);
            ITokenStream     tokens = new CommonTokenStream(lexer);
            AzSQLParser      parser = new AzSQLParser(tokens);

            parser.BuildParseTree = true;
            parser.RemoveErrorListeners();
            parser.AddErrorListener(new ParsingErrorListener());
            IParseTree tree = parser.stat();

            MyVisitor      visitor   = new MyVisitor();
            AzSQLParseTree parseTree = visitor.Visit(tree);

            return(parseTree);
        }
Example #3
0
        public static IEnumerable <DynamicTableEntity> RunQuery(AzSQLParseTree parseTree, StorageCredentials creds)
        {
            // We dont handle table exceptions here - let them bubble up for the caller to see the exception
            CloudStorageAccount storageAccount = new CloudStorageAccount(creds, true);
            CloudTableClient    tableClient    = storageAccount.CreateCloudTableClient();
            CloudTable          table          = tableClient.GetTableReference(parseTree.tablename);
            TableQuery          query          = new TableQuery();

            if (parseTree.hasFilterCondition)
            {
                query.FilterString = parseTree.filterCondition.ToString();
            }
            if (!parseTree.allcolumns)
            {
                query.SelectColumns = parseTree.columns;
            }

            IEnumerable <DynamicTableEntity> results = table.ExecuteQuery(query);

            return(results);
        }
Example #4
0
        public static IEnumerable <DynamicTableEntity> RunQuery(string sqlQuery, StorageCredentials creds)
        {
            AzSQLParseTree parseTree = ParseAzSQL(sqlQuery);

            return(AzTableQuery.RunQuery(parseTree, creds));
        }