public static ISqlExpression getExpression(String sch, String fn, List<ISqlExp> args) {
   if (sch.equals("COMPARE")) {
     if (fn.equals("INTLESS")) {
       return _sqlFactory.newExpression(ISqlExpression.Code.LT, args.get(0), args.get(1));
     } else if (fn.equals("INTLESSEQUAL")) {
       return _sqlFactory.newExpression(ISqlExpression.Code.LTE, args.get(0), args.get(1));
     } else if (fn.equals("INTGREATER")) {
       return _sqlFactory.newExpression(ISqlExpression.Code.GT, args.get(0), args.get(1));
     } else if (fn.equals("INTGREATEREQUAL")) {
       return _sqlFactory.newExpression(ISqlExpression.Code.GTE, args.get(0), args.get(1));
     } else if (fn.equals("INTEQUAL")) {
       return _sqlFactory.newExpression(ISqlExpression.Code.EQ, args.get(0), args.get(1));
     } else if (fn.equals("INTNOTEQUAL")) {
       return _sqlFactory.newExpression(ISqlExpression.Code.NEQ, args.get(0), args.get(1));
     } else if (fn.equals("STRLIKE")) {
       return _sqlFactory.newExpression(ISqlExpression.Code.LIKE, args.get(0), args.get(1));
     }
   } else if (sch.equals("ARITH")) {
     if (fn.equals("INTADD")) {
       return _sqlFactory.newExpression(ISqlExpression.Code.PLUSSIGN, args.get(0), args.get(1));
     } else if (fn.equals("INTSUB")) {
       return _sqlFactory.newExpression(ISqlExpression.Code.MINUSSIGN, args.get(0), args.get(1));
     } else if (fn.equals("INTMUL")) {
       return _sqlFactory.newExpression(ISqlExpression.Code.MULTSIGN, args.get(0), args.get(1));
     } else if (fn.equals("INTDIV")) {
       return _sqlFactory.newExpression(ISqlExpression.Code.DIVSIGN, args.get(0), args.get(1));
     }
   } else if (sch.equals("STRING")) {
     if (fn.equals("STRCAT")) {
       return _sqlFactory.newExpression(ISqlExpression.Code.PIPESSIGN, args.get(0), args.get(1));
       /*
       } else if (fn.equals("SUBSTR")) {
       	return _sqlFactory.newSqlExpression(ISqlExpression.Code.)
       } else if (fn.equals("STRLEN")) {
       	return "LENGTH(" + args.get(1) + ")";
       	*/
     }
   } else if (sch.equals("EQUALITYUDFSL") || sch.equals("EQUALITYUDFSR")) {
     ISqlExpression s = _sqlFactory.newExpression(ISqlExpression.Code._NOT_SUPPORTED, args.get(0));
     s.setOperator(fn);
     for (int i = 1; i < args.size(); i++) s.addOperand(args.get(i));
     return s;
   }
   return null;
 }