Esempio n. 1
0
        public static string GetCNF(string inputText
                                    , DBMSType dbmsType
                                    , Dictionary <string, string> placeHolders = null)
        {
            var ast = MiniSqlParserAST.CreateStmts(inputText, dbmsType);

            // テスト用テーブル列
            var tableColumns = new BestCaseDictionary <IEnumerable <string> >();
            var tableT       = new string[] { "x", "y", "z" };

            tableColumns.Add("T", tableT);
            var tableU = new string[] { "x", "y", "z" };

            tableColumns.Add("U", tableU);
            var tableV = new string[] { "x1", "x2", "x3" };

            tableColumns.Add("V", tableV);

            var replacer = new ReplacePlaceHolders(placeHolders);

            ast.Accept(replacer);

            var visitor = new GetCNFVisitor(tableColumns, true);

            ast.Accept(visitor);
            return(visitor.Print(true));
        }
Esempio n. 2
0
        public static string RenameColumnInOrderBy(string inputText
                                                   , DBMSType dbmsType
                                                   , Dictionary <string, string> placeHolders = null)
        {
            var ast = MiniSqlParserAST.CreateStmts(inputText, dbmsType);

            // テスト用テーブル列
            var tableColumns = new BestCaseDictionary <IEnumerable <string> >();
            var tableT       = new string[] { "x", "y", "z" };

            tableColumns.Add("T", tableT);
            var tableU = new string[] { "x", "y", "z" };

            tableColumns.Add("U", tableU);
            var tableV = new string[] { "x1", "x2", "x3" };

            tableColumns.Add("V", tableV);

            var replacer = new ReplacePlaceHolders(placeHolders);

            ast.Accept(replacer);

            var visitor = new NormalizeOrderByVisitor(tableColumns, true);

            ast.Accept(visitor);

            var stringifier = new BeautifulStringifier(144);

            ast.Accept(stringifier);
            return(stringifier.ToString());
        }
Esempio n. 3
0
        private string GetCNFOfPredicate(string predicate, DBMSType dbmsType = DBMSType.Unknown, bool ignoreCase = true)
        {
            var ast     = MiniSqlParserAST.CreatePredicate(predicate, dbmsType);
            var visitor = new GetCNFVisitor(_tableColumns, ignoreCase);

            ast.Accept(visitor);
            return(visitor.Print());
        }
Esempio n. 4
0
        private string NormalizeOrderBy(string sql, DBMSType dbmsType = DBMSType.Unknown, bool ignoreCase = true)
        {
            var ast     = MiniSqlParserAST.CreateStmts(sql, dbmsType);
            var visitor = new NormalizeOrderByVisitor(_tableColumns, ignoreCase);

            ast.Accept(visitor);
            var stringifier = new CompactStringifier(4098, true);

            ast.Accept(stringifier);
            return(stringifier.ToString());
        }
Esempio n. 5
0
        public static string Compact(string inputText
                                     , DBMSType dbmsType
                                     , Dictionary <string, string> placeHolders = null)
        {
            var ast = MiniSqlParserAST.CreateStmts(inputText, dbmsType);
            var placeHolderNodes = SetPlaceHoldersVisitor.ConvertPlaceHolders(placeHolders);
            var stringifier      = new CompactStringifier(64, true, placeHolderNodes);

            ast.Accept(stringifier);
            return(stringifier.ToString());
        }
Esempio n. 6
0
        private string AddPredicate(string sql, string predicateStr)
        {
            var ast = MiniSqlParserAST.CreateStmts(sql);

            var visitor = new AddWherePredicateVisitor(predicateStr);

            ast.Accept(visitor);
            var stringifier = new CompactStringifier(4098, true);

            ast.Accept(stringifier);
            return(stringifier.ToString());
        }
        public string Rename(string sql, DBMSType dbmsType = DBMSType.Unknown, bool ignoreCase = true)
        {
            var ast = MiniSqlParserAST.CreateStmts(sql, dbmsType);

            var visitor = new RenameTableAliasVisitor("T", "Table");

            ast.Accept(visitor);

            var stringifier = new CompactStringifier(4098, true);

            ast.Accept(stringifier);
            return(stringifier.ToString());
        }
        public string ReplaceToNull(string sql, DBMSType dbmsType = DBMSType.Unknown)
        {
            var ast = MiniSqlParserAST.CreateStmts(sql, dbmsType);

            var visitor = new ReplaceAllPlaceholdersToNull();

            ast.Accept(visitor);

            var stringifier = new CompactStringifier(4098, true);

            ast.Accept(stringifier);
            return(stringifier.ToString());
        }
Esempio n. 9
0
        public static string GetResultInfoList(string inputText
                                               , DBMSType dbmsType
                                               , Dictionary <string, string> placeHolders = null)
        {
            var ast = MiniSqlParserAST.CreateStmts(inputText, dbmsType);

            var placeHolderNodes = SetPlaceHoldersVisitor.ConvertPlaceHolders(placeHolders);

            // テスト用テーブル列
            var tableColumns = new Dictionary <string, IEnumerable <TableResultInfo> >();
            var tableT       = new List <TableResultInfo>();

            tableT.Add(new TableResultInfo("T", "x", false, true));
            tableT.Add(new TableResultInfo("T", "y", false));
            tableT.Add(new TableResultInfo("T", "z", true));
            tableColumns.Add("T", tableT);
            var tableU = new List <TableResultInfo>();

            tableU.Add(new TableResultInfo("U", "x", false, true));
            tableU.Add(new TableResultInfo("U", "y", false));
            tableU.Add(new TableResultInfo("U", "z", true));
            tableColumns.Add("U", tableU);
            var tableV = new List <TableResultInfo>();

            tableV.Add(new TableResultInfo("V", "x1", false, true));
            tableV.Add(new TableResultInfo("V", "x2", false, true));
            tableV.Add(new TableResultInfo("V", "x3", false, true));
            tableColumns.Add("V", tableV);
            var tableTBL = new List <TableResultInfo>();

            tableTBL.Add(new TableResultInfo("TBL", "COLUMN", false, true));
            tableTBL.Add(new TableResultInfo("TBL", "column", false, true));
            tableColumns.Add("TBL", tableTBL);
            var tableTbl = new List <TableResultInfo>();

            tableTbl.Add(new TableResultInfo("Tbl", "COL", false, true));
            tableTbl.Add(new TableResultInfo("Tbl", "col", false, true));
            tableColumns.Add("Tbl", tableTbl);

            var resultInfoAST = new ResultInfoAST((SelectStmt)ast[0]
                                                  , tableColumns
                                                  , ResultInfoAST.PrimaryKeyCompletion.AllQuery);

            var stringifier = new BeautifulStringifier(144, placeHolderNodes);

            ast.Accept(stringifier);

            return(stringifier.ToString() + System.Environment.NewLine +
                   resultInfoAST.Print(true));
        }
Esempio n. 10
0
        private string Convert(string sql)
        {
            var ast = MiniSqlParserAST.CreateStmts(sql);

            var visitor = new ConvertToSelectConstant();

            ast.Accept(visitor);

            var stringifier = new CompactStringifier(4098, true);

            ast.Accept(stringifier);

            return(stringifier.ToString());
        }
Esempio n. 11
0
        public static string RenameTableAliasName(string inputText
                                                  , DBMSType dbmsType
                                                  , Dictionary <string, string> placeHolders = null)
        {
            var ast = MiniSqlParserAST.CreateStmts(inputText, dbmsType);

            var visitor = new RenameTableAliasVisitor("T", "Table", placeHolders);

            ast.Accept(visitor);

            var stringifier = new BeautifulStringifier(144, visitor.PlaceHolders);

            ast.Accept(stringifier);
            return(stringifier.ToString());
        }
Esempio n. 12
0
        public static string ReplacePlaceHolders(string inputText
                                                 , DBMSType dbmsType
                                                 , Dictionary <string, string> placeHolders = null)
        {
            var ast = MiniSqlParserAST.CreateStmts(inputText, dbmsType);

            var visitor = new ReplacePlaceHolders(placeHolders);

            ast.Accept(visitor);

            var stringifier = new BeautifulStringifier(144);

            ast.Accept(stringifier);
            return(stringifier.ToString());
        }
Esempio n. 13
0
        public static string Beautiful(string inputText
                                       , DBMSType dbmsType
                                       , Dictionary <string, string> placeHolders = null)
        {
            var ast = MiniSqlParserAST.CreateStmts(inputText, dbmsType);
            var placeHolderNodes = SetPlaceHoldersVisitor.ConvertPlaceHolders(placeHolders);
            var stringifier      = new BeautifulStringifier(99999
                                                            , 2
                                                            , BeautifulStringifier.KeywordCase.Upper
                                                            , BeautifulStringifier.JoinIndentType.A
                                                            , true
                                                            , placeHolderNodes);

            ast.Accept(stringifier);
            return(stringifier.ToString());
        }
Esempio n. 14
0
        public static string ConvertToSelectConstant(string inputText
                                                     , DBMSType dbmsType
                                                     , Dictionary <string, string> placeHolders = null)
        {
            var ast = MiniSqlParserAST.CreateStmts(inputText, dbmsType);

            var placeHolderNodes = SetPlaceHoldersVisitor.ConvertPlaceHolders(placeHolders);

            var visitor = new ConvertToSelectConstant();

            ast.Accept(visitor);

            var stringifier = new BeautifulStringifier(144, placeHolderNodes);

            ast.Accept(stringifier);
            return(stringifier.ToString());
        }
Esempio n. 15
0
        public static string GetSourceTables(string inputText
                                             , DBMSType dbmsType
                                             , Dictionary <string, string> placeHolders = null)
        {
            var ast = MiniSqlParserAST.CreateStmts(inputText, dbmsType);

            var placeHolderNodes = SetPlaceHoldersVisitor.ConvertPlaceHolders(placeHolders);

            var visitor = new GetSourceTablesVisitor(placeHolderNodes);

            ast.Accept(visitor);

            var sourceTables = visitor.Tables;
            var ret          = new StringBuilder();

            foreach (var table in sourceTables)
            {
                ret.AppendLine(table.GetAliasOrTableName());
            }
            return(ret.ToString());
        }
Esempio n. 16
0
        private Result GetResult(string sql)
        {
            var ast     = MiniSqlParserAST.CreateStmts(sql);
            var visitor = new GetIfConditionsVisitor();

            ast.Accept(visitor);

            var conditions = new List <string>();
            var stmtList   = new List <string>();

            for (int i = 0; i < visitor.Count; ++i)
            {
                // 条件式の取得
                var stringifier = new CompactStringifier(144);
                visitor.Conditions[i].Accept(stringifier);
                conditions.Add(stringifier.ToString());
                // 文の取得(ただし1番目の文のみ)
                stringifier = new CompactStringifier(144);
                visitor.StmtsList[i][0].Accept(stringifier);
                stmtList.Add(stringifier.ToString());
            }
            return(new Result(conditions, stmtList));
        }