├── META-INF └── MANIFEST.MF ├── README.md ├── build.xml ├── connector ├── oracleConnector │ ├── lib │ │ └── readme.md │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── demos │ │ └── connector │ │ └── OracleDataSourceConnector.java ├── snowflakeConnector │ ├── lib │ │ └── readme.md │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── demos │ │ └── connector │ │ └── SnowflakeDataSourceConnector.java └── sqlServerConnector │ ├── lib │ └── readme.md │ ├── pom.xml │ └── src │ └── main │ └── java │ └── demos │ └── connector │ └── SqlServerDataSourceConnector.java ├── doc └── sqlschema.xsd ├── lib ├── commons-logging-1.1.3.jar ├── expr4j.jar ├── fastjson-1.2.41.jar ├── gudusoft.gsqlparser-3.0.2.5.jar ├── jarLoader.jar ├── jdbc │ ├── ojdbc-1.1.1.jar │ └── sqljdbc4-4.0.jar ├── jdk1.5 │ ├── junit-4.5.jar │ └── junit.jar ├── jdom.jar ├── junrar-0.7.jar ├── proguard │ ├── proguard.jar │ └── proguard.pro ├── simple-xml-2.6.2.jar ├── sqlflow-exporter.jar └── sqlflow-library.jar ├── pom.xml ├── setenv └── setenv.bat └── src ├── main └── java │ └── demos │ ├── analyzescript │ ├── analyzePLSQLProcedure.java │ ├── analyzeScript.java │ ├── compile_analyzescript.bat │ ├── iterateStatement.java │ ├── readme.md │ ├── run_analyzePLSQLProcedure.bat │ ├── run_analyzeScript.bat │ ├── run_iterateStatement.bat │ ├── run_tutorial.bat │ └── tutorial.java │ ├── analyzesp │ ├── Analyze_SP.java │ ├── compile_analyzesp.bat │ ├── readme.md │ ├── run_analyzesp.bat │ └── sybase │ │ ├── Analyze_SP.java │ │ ├── compile_analyzesp.bat │ │ └── run_analyzesp.bat │ ├── analyzeview │ ├── Analyze_View.java │ ├── compile_analyzeview.bat │ ├── readme.md │ └── run_analyzeview.bat │ ├── antiSQLInjection │ ├── ESQLInjectionType.java │ ├── GContext.java │ ├── GEval.java │ ├── TAntiSQLInjection.java │ ├── TSQLInjection.java │ ├── UnknownValue.java │ ├── antiSQLInjection.java │ ├── compile_antiSQLInjection.bat │ ├── lib │ │ └── trail_version.txt │ ├── org │ │ └── boris │ │ │ └── expr │ │ │ ├── AbstractBinaryOperator.java │ │ │ ├── AbstractComparisonOperator.java │ │ │ ├── AbstractMathematicalOperator.java │ │ │ ├── Expr.java │ │ │ ├── ExprAddition.java │ │ │ ├── ExprArray.java │ │ │ ├── ExprBoolean.java │ │ │ ├── ExprDivision.java │ │ │ ├── ExprDouble.java │ │ │ ├── ExprEqual.java │ │ │ ├── ExprError.java │ │ │ ├── ExprEvaluatable.java │ │ │ ├── ExprException.java │ │ │ ├── ExprExpression.java │ │ │ ├── ExprFunction.java │ │ │ ├── ExprGreaterThan.java │ │ │ ├── ExprGreaterThanOrEqualTo.java │ │ │ ├── ExprIn.java │ │ │ ├── ExprInteger.java │ │ │ ├── ExprLessThan.java │ │ │ ├── ExprLessThanOrEqualTo.java │ │ │ ├── ExprMinus.java │ │ │ ├── ExprMissing.java │ │ │ ├── ExprMultiplication.java │ │ │ ├── ExprNotEqual.java │ │ │ ├── ExprNumber.java │ │ │ ├── ExprPlus.java │ │ │ ├── ExprPower.java │ │ │ ├── ExprString.java │ │ │ ├── ExprStringConcat.java │ │ │ ├── ExprSubtraction.java │ │ │ ├── ExprType.java │ │ │ ├── ExprTypes.java │ │ │ ├── ExprUnary.java │ │ │ ├── ExprVariable.java │ │ │ ├── IBinaryOperator.java │ │ │ ├── IEvaluationContext.java │ │ │ ├── IExprFunction.java │ │ │ ├── engine │ │ │ ├── AbstractCalculationEngine.java │ │ │ ├── DependencyEngine.java │ │ │ ├── EngineProvider.java │ │ │ ├── GridMap.java │ │ │ ├── GridReference.java │ │ │ ├── IterationEngine.java │ │ │ └── Range.java │ │ │ ├── function │ │ │ ├── AbstractDatabaseFunction.java │ │ │ ├── AbstractFunction.java │ │ │ ├── AbstractVarianceFunction.java │ │ │ ├── DoubleInOutFunction.java │ │ │ ├── DoubleInOutFunctionErr.java │ │ │ ├── ExcelFunctionProvider.java │ │ │ ├── ExprAlias.java │ │ │ ├── ForEachFunction.java │ │ │ ├── ForEachNumberAFunction.java │ │ │ ├── ForEachNumberFunction.java │ │ │ ├── FunctionManager.java │ │ │ ├── FunctionMap.java │ │ │ ├── IFunctionProvider.java │ │ │ ├── SimpleDatabaseFunction.java │ │ │ └── excel │ │ │ │ ├── ABS.java │ │ │ │ ├── ACOS.java │ │ │ │ ├── ACOSH.java │ │ │ │ ├── ADDRESS.java │ │ │ │ ├── AND.java │ │ │ │ ├── AREAS.java │ │ │ │ ├── ASCII.java │ │ │ │ ├── ASIN.java │ │ │ │ ├── ASINH.java │ │ │ │ ├── ATAN.java │ │ │ │ ├── ATAN2.java │ │ │ │ ├── ATANH.java │ │ │ │ ├── AVEDEV.java │ │ │ │ ├── AVERAGE.java │ │ │ │ ├── AVERAGEA.java │ │ │ │ ├── BAHTTEXT.java │ │ │ │ ├── BETADIST.java │ │ │ │ ├── BETAINV.java │ │ │ │ ├── BIN.java │ │ │ │ ├── BINOMDIST.java │ │ │ │ ├── BITAND.java │ │ │ │ ├── BIT_LENGTH.java │ │ │ │ ├── CEIL.java │ │ │ │ ├── CEILING.java │ │ │ │ ├── CELL.java │ │ │ │ ├── CHARINDEX.java │ │ │ │ ├── CHAR_LENGTH.java │ │ │ │ ├── CHIDIST.java │ │ │ │ ├── CHIINV.java │ │ │ │ ├── CHITEST.java │ │ │ │ ├── CHOOSE.java │ │ │ │ ├── CHR.java │ │ │ │ ├── CLEAN.java │ │ │ │ ├── CODE.java │ │ │ │ ├── COLUMN.java │ │ │ │ ├── COLUMNS.java │ │ │ │ ├── COMBIN.java │ │ │ │ ├── CONCAT.java │ │ │ │ ├── CONCAT_WS.java │ │ │ │ ├── CONFIDENCE.java │ │ │ │ ├── CORREL.java │ │ │ │ ├── COS.java │ │ │ │ ├── COSH.java │ │ │ │ ├── COT.java │ │ │ │ ├── COUNT.java │ │ │ │ ├── COUNTA.java │ │ │ │ ├── COUNTBLANK.java │ │ │ │ ├── COUNTIF.java │ │ │ │ ├── COVAR.java │ │ │ │ ├── CRC32.java │ │ │ │ ├── CRITBINOM.java │ │ │ │ ├── DATE.java │ │ │ │ ├── DATEVALUE.java │ │ │ │ ├── DAVERAGE.java │ │ │ │ ├── DAY.java │ │ │ │ ├── DAYS360.java │ │ │ │ ├── DB.java │ │ │ │ ├── DCOUNT.java │ │ │ │ ├── DCOUNTA.java │ │ │ │ ├── DDB.java │ │ │ │ ├── DEGREES.java │ │ │ │ ├── DEVSQ.java │ │ │ │ ├── DGET.java │ │ │ │ ├── DMAX.java │ │ │ │ ├── DMIN.java │ │ │ │ ├── DOLLAR.java │ │ │ │ ├── DPRODUCT.java │ │ │ │ ├── DSTDEV.java │ │ │ │ ├── DSTDEVP.java │ │ │ │ ├── DSUM.java │ │ │ │ ├── DVAR.java │ │ │ │ ├── DVARP.java │ │ │ │ ├── ELT.java │ │ │ │ ├── ERRORTYPE.java │ │ │ │ ├── EVEN.java │ │ │ │ ├── EXACT.java │ │ │ │ ├── EXP.java │ │ │ │ ├── EXPONDIST.java │ │ │ │ ├── FACT.java │ │ │ │ ├── FALSE.java │ │ │ │ ├── FDIST.java │ │ │ │ ├── FIELD.java │ │ │ │ ├── FIND.java │ │ │ │ ├── FIND_IN_SET.java │ │ │ │ ├── FINV.java │ │ │ │ ├── FISHER.java │ │ │ │ ├── FISHERNV.java │ │ │ │ ├── FIXED.java │ │ │ │ ├── FLOOR.java │ │ │ │ ├── FORECAST.java │ │ │ │ ├── FREQUENCY.java │ │ │ │ ├── FTEST.java │ │ │ │ ├── FV.java │ │ │ │ ├── GAMMADIST.java │ │ │ │ ├── GAMMAINV.java │ │ │ │ ├── GAMMALN.java │ │ │ │ ├── GEOMEAN.java │ │ │ │ ├── GETPIVOTDATA.java │ │ │ │ ├── GREATEST.java │ │ │ │ ├── GROWTH.java │ │ │ │ ├── HARMEAN.java │ │ │ │ ├── HEX.java │ │ │ │ ├── HLOOKUP.java │ │ │ │ ├── HOUR.java │ │ │ │ ├── HYPERLINK.java │ │ │ │ ├── HYPGEOMDIST.java │ │ │ │ ├── IF.java │ │ │ │ ├── INDEX.java │ │ │ │ ├── INDIRECT.java │ │ │ │ ├── INFO.java │ │ │ │ ├── INITCAP.java │ │ │ │ ├── INSERT.java │ │ │ │ ├── INSTR.java │ │ │ │ ├── INT.java │ │ │ │ ├── INTERCEPT.java │ │ │ │ ├── IPMT.java │ │ │ │ ├── IRR.java │ │ │ │ ├── ISBLANK.java │ │ │ │ ├── ISERR.java │ │ │ │ ├── ISLOGICAL.java │ │ │ │ ├── ISNA.java │ │ │ │ ├── ISNONTEXT.java │ │ │ │ ├── ISNUMBER.java │ │ │ │ ├── ISPMT.java │ │ │ │ ├── ISREF.java │ │ │ │ ├── ISTEXT.java │ │ │ │ ├── KURT.java │ │ │ │ ├── LARGE.java │ │ │ │ ├── LEAST.java │ │ │ │ ├── LEFT.java │ │ │ │ ├── LEN.java │ │ │ │ ├── LENGTH.java │ │ │ │ ├── LINEST.java │ │ │ │ ├── LN.java │ │ │ │ ├── LOCATE.java │ │ │ │ ├── LOG.java │ │ │ │ ├── LOG10.java │ │ │ │ ├── LOG2.java │ │ │ │ ├── LOGEST.java │ │ │ │ ├── LOGINV.java │ │ │ │ ├── LOGNORMDIST.java │ │ │ │ ├── LOOKUP.java │ │ │ │ ├── LOWER.java │ │ │ │ ├── LPAD.java │ │ │ │ ├── LTRIM.java │ │ │ │ ├── MATCH.java │ │ │ │ ├── MAX.java │ │ │ │ ├── MAXA.java │ │ │ │ ├── MDETERM.java │ │ │ │ ├── MEDIAN.java │ │ │ │ ├── MID.java │ │ │ │ ├── MIN.java │ │ │ │ ├── MINA.java │ │ │ │ ├── MINUTE.java │ │ │ │ ├── MINVERSE.java │ │ │ │ ├── MIRR.java │ │ │ │ ├── MMULT.java │ │ │ │ ├── MOD.java │ │ │ │ ├── MODE.java │ │ │ │ ├── MONTH.java │ │ │ │ ├── N.java │ │ │ │ ├── NA.java │ │ │ │ ├── NANVL.java │ │ │ │ ├── NEGBINOMDIST.java │ │ │ │ ├── NORMDIST.java │ │ │ │ ├── NORMINV.java │ │ │ │ ├── NORMSDIST.java │ │ │ │ ├── NORMSINV.java │ │ │ │ ├── NOT.java │ │ │ │ ├── NOW.java │ │ │ │ ├── NPER.java │ │ │ │ ├── NPV.java │ │ │ │ ├── OCT.java │ │ │ │ ├── ODD.java │ │ │ │ ├── OFFSET.java │ │ │ │ ├── OR.java │ │ │ │ ├── PEARSON.java │ │ │ │ ├── PERCENTILE.java │ │ │ │ ├── PERCENTRANK.java │ │ │ │ ├── PERMUT.java │ │ │ │ ├── PI.java │ │ │ │ ├── PMT.java │ │ │ │ ├── POISSON.java │ │ │ │ ├── POWER.java │ │ │ │ ├── PPMT.java │ │ │ │ ├── PROB.java │ │ │ │ ├── PRODUCT.java │ │ │ │ ├── PROPER.java │ │ │ │ ├── PV.java │ │ │ │ ├── QUARTILE.java │ │ │ │ ├── RADIANS.java │ │ │ │ ├── RAND.java │ │ │ │ ├── RANK.java │ │ │ │ ├── RATE.java │ │ │ │ ├── REMAINDER.java │ │ │ │ ├── REPLACE.java │ │ │ │ ├── REPLICATE.java │ │ │ │ ├── REPT.java │ │ │ │ ├── REVERSE.java │ │ │ │ ├── RIGHT.java │ │ │ │ ├── ROMAN.java │ │ │ │ ├── ROUND.java │ │ │ │ ├── ROUNDDOWN.java │ │ │ │ ├── ROUNDUP.java │ │ │ │ ├── ROW.java │ │ │ │ ├── ROWS.java │ │ │ │ ├── RPAD.java │ │ │ │ ├── RSQ.java │ │ │ │ ├── RTD.java │ │ │ │ ├── RTRIM.java │ │ │ │ ├── SEARCH.java │ │ │ │ ├── SECOND.java │ │ │ │ ├── SIGN.java │ │ │ │ ├── SIN.java │ │ │ │ ├── SINH.java │ │ │ │ ├── SKEW.java │ │ │ │ ├── SLN.java │ │ │ │ ├── SLOPE.java │ │ │ │ ├── SMALL.java │ │ │ │ ├── SOUNDEX.java │ │ │ │ ├── SPACE.java │ │ │ │ ├── SQRT.java │ │ │ │ ├── SQUARE.java │ │ │ │ ├── STANDARDIZE.java │ │ │ │ ├── STDEV.java │ │ │ │ ├── STDEVA.java │ │ │ │ ├── STDEVP.java │ │ │ │ ├── STDEVPA.java │ │ │ │ ├── STEYX.java │ │ │ │ ├── STR.java │ │ │ │ ├── STRCMP.java │ │ │ │ ├── STUFF.java │ │ │ │ ├── SUBSTITUTE.java │ │ │ │ ├── SUBSTR.java │ │ │ │ ├── SUBSTRING_INDEX.java │ │ │ │ ├── SUBTOTAL.java │ │ │ │ ├── SUM.java │ │ │ │ ├── SUMIF.java │ │ │ │ ├── SUMPRODUCT.java │ │ │ │ ├── SUMSQ.java │ │ │ │ ├── SUMX2MY2.java │ │ │ │ ├── SUMX2PY2.java │ │ │ │ ├── SUMXMY2.java │ │ │ │ ├── SYD.java │ │ │ │ ├── T.java │ │ │ │ ├── TAN.java │ │ │ │ ├── TANH.java │ │ │ │ ├── TDIST.java │ │ │ │ ├── TEXT.java │ │ │ │ ├── TIME.java │ │ │ │ ├── TIMEVALUE.java │ │ │ │ ├── TINV.java │ │ │ │ ├── TODAY.java │ │ │ │ ├── TRANSLATE.java │ │ │ │ ├── TRANSPOSE.java │ │ │ │ ├── TREND.java │ │ │ │ ├── TRIM.java │ │ │ │ ├── TRIMMEAN.java │ │ │ │ ├── TRUE.java │ │ │ │ ├── TRUNC.java │ │ │ │ ├── TTEST.java │ │ │ │ ├── TYPE.java │ │ │ │ ├── UNHEX.java │ │ │ │ ├── UPPER.java │ │ │ │ ├── VALUE.java │ │ │ │ ├── VAR.java │ │ │ │ ├── VARA.java │ │ │ │ ├── VARP.java │ │ │ │ ├── VARPA.java │ │ │ │ ├── VDB.java │ │ │ │ ├── VLOOKUP.java │ │ │ │ ├── WEEKDAY.java │ │ │ │ ├── WEIBULL.java │ │ │ │ ├── WIDTH_BUCKET.java │ │ │ │ ├── YEAR.java │ │ │ │ └── ZTEST.java │ │ │ ├── parser │ │ │ ├── ExprLexer.java │ │ │ ├── ExprParser.java │ │ │ ├── ExprToken.java │ │ │ ├── ExprTokenType.java │ │ │ ├── IParserVisitor.java │ │ │ └── TokenReader.java │ │ │ └── util │ │ │ ├── CSV.java │ │ │ ├── Condition.java │ │ │ ├── Counter.java │ │ │ ├── Criteria.java │ │ │ ├── Database.java │ │ │ ├── Edge.java │ │ │ ├── ExcelDate.java │ │ │ ├── ExprArrayBuilder.java │ │ │ ├── ExprEvaluator.java │ │ │ ├── ExprTypeUtil.java │ │ │ ├── Exprs.java │ │ │ ├── Financials.java │ │ │ ├── Graph.java │ │ │ ├── GraphCycleException.java │ │ │ ├── GraphTraversalListener.java │ │ │ ├── IO.java │ │ │ ├── LongMap.java │ │ │ ├── Maths.java │ │ │ ├── Reflect.java │ │ │ ├── SimpleEvaluationContext.java │ │ │ ├── Statistics.java │ │ │ ├── StringUtil.java │ │ │ ├── ValueFormatter.java │ │ │ └── ValueParser.java │ ├── readme.md │ └── run_antiSQLInjection.bat │ ├── benchmark │ ├── benchmark.java │ ├── compile_benchmark.bat │ ├── readme.md │ └── run_benchmark.bat │ ├── checksyntax │ ├── checksyntax.java │ ├── compile_checksyntax.bat │ ├── pom.xml │ ├── readme.md │ └── run_checksyntax.bat │ ├── columnAnalyze │ ├── ColumnAnalyze.java │ ├── compile_columnAnalyze.bat │ ├── readme.md │ └── run_columnAnalyze.bat │ ├── columnDetail │ ├── ColumnDetail.java │ ├── ColumnMetaData.java │ ├── TableMetaData.java │ ├── compile_columnDetail.bat │ ├── readme.md │ └── run_columnDetail.bat │ ├── columnImpact │ ├── ColumnImpact.java │ ├── compile_columnImpact.bat │ ├── readme.md │ └── run_columnImpact.bat │ ├── columnInClause.java │ ├── columnInWhereClause │ ├── ColumnInWhereClause.java │ ├── ColumnVisitor.java │ ├── WhereCondition.java │ ├── WhereVisitor.java │ ├── compile_columnInWhereClause.bat │ ├── readme.md │ └── run_columnInWhereClause.bat │ ├── columnMatrix │ ├── ColumnMatrix.java │ ├── compile_columnMatrix.bat │ ├── readme.md │ └── run_columnMatrix.bat │ ├── columninspect │ ├── ColumnInspect.java │ ├── compile_ColumnInspect.bat │ ├── readme.md │ └── run_ColumnInspect.bat │ ├── dbConnect │ ├── lib │ │ ├── greenplum │ │ │ ├── greenplum_5.1.4.jar │ │ │ └── mvn.sh │ │ ├── hive │ │ │ ├── mvn.sh │ │ │ └── org.jkiss.dbeaver.ext.hive_1.0.49.202010191702.jar │ │ ├── ibm │ │ │ └── db2jcc4-10.1.jar │ │ ├── microsoft │ │ │ ├── mssql-jdbc-8.2.0.jre8.jar │ │ │ └── mvn.sh │ │ ├── net │ │ │ ├── mvn.sh │ │ │ └── snowflake-jdbc-3.12.9.jar │ │ ├── netezza │ │ │ └── netezza-1.0.jar │ │ ├── ojdbc │ │ │ └── ojdbc-1.1.1.jar │ │ ├── redshift │ │ │ ├── RedshiftJDBC42-no-awssdk-1.2.53.1080.jar │ │ │ └── mvn.sh │ │ └── teradata │ │ │ ├── mvn.sh │ │ │ ├── tdgssconfig.jar │ │ │ └── terajdbc4.jar │ ├── pom.xml │ └── src │ │ └── main │ │ ├── assembly │ │ └── assembly.xml │ │ ├── java │ │ └── demos │ │ │ └── sqlenv │ │ │ ├── DatabaseSQLDataSource.java │ │ │ ├── DbSchemaSQLDataSource.java │ │ │ ├── Main.java │ │ │ ├── SchemaSQLDataSource.java │ │ │ ├── TAzureSQLDataSource.java │ │ │ ├── TGreenplumSQLDataSource.java │ │ │ ├── THiveMetadataDataSource.java │ │ │ ├── TMssqlSQLDataSource.java │ │ │ ├── TMysqlSQLDataSource.java │ │ │ ├── TNetezzaSQLDataSource.java │ │ │ ├── TOracleSQLDataSource.java │ │ │ ├── TPostgreSQLDataSource.java │ │ │ ├── TRedshiftSQLDataSource.java │ │ │ ├── TSQLDataSource.java │ │ │ ├── TSnowflakeSQLDataSource.java │ │ │ ├── TTeradataSQLDataSource.java │ │ │ ├── connect │ │ │ ├── ConnectionFactory.java │ │ │ ├── Connector.java │ │ │ ├── impl │ │ │ │ ├── AzureSQLConnector.java │ │ │ │ ├── DB2Connector.java │ │ │ │ ├── GreenplumConnector.java │ │ │ │ ├── HiveConnector.java │ │ │ │ ├── MysqlV5Connector.java │ │ │ │ ├── MysqlV8Connector.java │ │ │ │ ├── NetezzaConnector.java │ │ │ │ ├── OracleConnector.java │ │ │ │ ├── PostgreSQLConnector.java │ │ │ │ ├── RedshiftConnector.java │ │ │ │ ├── SQLServerConnector.java │ │ │ │ ├── SnowflakeConnector.java │ │ │ │ └── TeradataConnector.java │ │ │ └── strategy │ │ │ │ ├── DbStrategy.java │ │ │ │ ├── DbStrategyFactory.java │ │ │ │ └── impl │ │ │ │ ├── AzureSQLStrategy.java │ │ │ │ ├── Db2Strategy.java │ │ │ │ ├── GreenplumStrategy.java │ │ │ │ ├── HiveStrategy.java │ │ │ │ ├── MysqlV5Strategy.java │ │ │ │ ├── MysqlV8Strategy.java │ │ │ │ ├── NetezzaStrategy.java │ │ │ │ ├── OracleStrategy.java │ │ │ │ ├── PostgreSQLStrategy.java │ │ │ │ ├── RedshiftStrategy.java │ │ │ │ ├── SnowflakeStrategy.java │ │ │ │ ├── SqlServerStrategy.java │ │ │ │ └── TeradataStrategy.java │ │ │ ├── constant │ │ │ ├── ConnectConstant.java │ │ │ ├── DDLExportOperation.java │ │ │ ├── DDLOperator.java │ │ │ ├── DbConstant.java │ │ │ ├── DbOperation.java │ │ │ ├── DbTypeConstant.java │ │ │ ├── JSONExportOperation.java │ │ │ └── SystemConstant.java │ │ │ ├── metadata │ │ │ ├── DDL.java │ │ │ ├── Metadata.java │ │ │ └── model │ │ │ │ ├── Column.java │ │ │ │ ├── DBLink.java │ │ │ │ ├── Database.java │ │ │ │ ├── MetadataItem.java │ │ │ │ ├── Query.java │ │ │ │ ├── Sequence.java │ │ │ │ ├── Synonym.java │ │ │ │ └── Table.java │ │ │ ├── operation │ │ │ ├── DbOperationFactory.java │ │ │ ├── DbOperationService.java │ │ │ └── strategy │ │ │ │ ├── DbOperationStrategyFactory.java │ │ │ │ └── json │ │ │ │ ├── AbstractJSONExport.java │ │ │ │ └── impl │ │ │ │ ├── AzureSQLJSONExport.java │ │ │ │ ├── Db2JSONExport.java │ │ │ │ ├── GreenplumJSONExport.java │ │ │ │ ├── HiveMetadataJSONExport.java │ │ │ │ ├── MySQLJSONExport.java │ │ │ │ ├── NetezzaJSONExport.java │ │ │ │ ├── OracleJSONExport.java │ │ │ │ ├── PostgreSQLJSONExport.java │ │ │ │ ├── RedshiftJSONExport.java │ │ │ │ ├── SnowflakeJSONExport.java │ │ │ │ ├── SqlServerJSONExport.java │ │ │ │ └── TeradataJSONExport.java │ │ │ └── util │ │ │ ├── ConnectUtil.java │ │ │ ├── JdbcUrlParser.java │ │ │ └── SQLFileUtil.java │ │ └── resources │ │ └── demos │ │ └── sqlenv │ │ ├── azuresql │ │ ├── database.sql │ │ ├── query.sql │ │ ├── schema.sql │ │ └── synonyms.sql │ │ ├── db2 │ │ ├── databases │ │ │ └── default-cmd.sql │ │ ├── queries-p │ │ │ └── default-cmd.sql │ │ ├── queries │ │ │ └── default-cmd.sql │ │ └── tables │ │ │ └── default-cmd.sql │ │ ├── greenplum │ │ ├── database.sql │ │ ├── query.sql │ │ └── schema.sql │ │ ├── mssql │ │ ├── database.sql │ │ ├── dblink.sql │ │ ├── query.sql │ │ ├── schema.sql │ │ └── synonyms.sql │ │ ├── mysql │ │ ├── database.sql │ │ ├── query.sql │ │ └── schema.sql │ │ ├── netezza │ │ ├── database.sql │ │ ├── query_procedure.sql │ │ ├── query_view.sql │ │ ├── schema.sql │ │ └── synonyms.sql │ │ ├── oracle │ │ ├── database.sql │ │ ├── dblink.sql │ │ ├── query.sql │ │ ├── schema.sql │ │ ├── sequences.sql │ │ └── synonyms.sql │ │ ├── postgresql │ │ ├── database.sql │ │ ├── query.sql │ │ └── schema.sql │ │ ├── redshift │ │ ├── database.sql │ │ ├── query.sql │ │ └── schema.sql │ │ ├── snowflake │ │ ├── database.sql │ │ └── schema.sql │ │ └── teradata │ │ ├── database.sql │ │ ├── query.sql │ │ ├── schema_table.sql │ │ └── schema_view.sql │ ├── dlineage │ ├── DataFlowAnalyzer.java │ ├── MANIFEST.MF │ ├── SqlflowIngester.java │ ├── buildJar.bat │ ├── buildJar.sh │ ├── changes.txt │ ├── class │ │ └── MANIFEST.MF │ ├── compile_DataFlowAnalyzer.bat │ ├── data-lineage-result.xml │ ├── readme.md │ ├── run_DataFlowAnalyzer.bat │ ├── sample │ │ └── demo.sql │ ├── sqlflow-data-lineage-model-reference.pdf │ └── sqlflow-settings.png │ ├── dlineageBasic │ ├── Dlineage.java │ ├── DlineageRelation.java │ ├── columnImpact │ │ ├── ColumnImpact.java │ │ ├── compile_columnImpact.bat │ │ └── run_columnImpact.bat │ ├── compile_dlineage.bat │ ├── metadata │ │ ├── DDLParser.java │ │ ├── DDLSchema.java │ │ ├── MetaDB.java │ │ ├── ProcedureRelationScanner.java │ │ └── ViewParser.java │ ├── model │ │ ├── ddl │ │ │ └── schema │ │ │ │ ├── column.java │ │ │ │ ├── database.java │ │ │ │ ├── foreignKey.java │ │ │ │ ├── index.java │ │ │ │ ├── indexColumn.java │ │ │ │ ├── reference.java │ │ │ │ ├── table.java │ │ │ │ ├── unique.java │ │ │ │ └── uniqueColumn.java │ │ ├── metadata │ │ │ ├── ColumnMetaData.java │ │ │ ├── MetaScanner.java │ │ │ ├── ProcedureMetaData.java │ │ │ └── TableMetaData.java │ │ ├── view │ │ │ ├── AliasModel.java │ │ │ ├── Clause.java │ │ │ ├── ColumnImpactModel.java │ │ │ ├── ColumnModel.java │ │ │ ├── FieldModel.java │ │ │ ├── ReferenceModel.java │ │ │ └── TableModel.java │ │ └── xml │ │ │ ├── columnImpactResult.java │ │ │ ├── linkTable.java │ │ │ ├── procedure.java │ │ │ ├── procedureImpactResult.java │ │ │ ├── sourceColumn.java │ │ │ ├── sourceProcedure.java │ │ │ ├── table.java │ │ │ ├── targetColumn.java │ │ │ └── targetProcedure.java │ ├── readme.md │ ├── run_Dlineage.bat │ ├── run_DlineageRelation.bat │ ├── scripts │ │ ├── mssql │ │ │ └── instawdbdw.sql │ │ ├── mysql │ │ │ └── sakila-schema.sql │ │ └── oracle │ │ │ ├── human_resources │ │ │ ├── hr_analz.sql │ │ │ ├── hr_code.sql │ │ │ ├── hr_comnt.sql │ │ │ ├── hr_cre.sql │ │ │ ├── hr_dn_c.sql │ │ │ ├── hr_dn_d.sql │ │ │ ├── hr_drop.sql │ │ │ ├── hr_idx.sql │ │ │ ├── hr_main.sql │ │ │ └── hr_popul.sql │ │ │ ├── order_entry │ │ │ ├── ccus_v3.sql │ │ │ ├── cidx_v3.sql │ │ │ ├── cmnt_v3.sql │ │ │ ├── coe_v3.sql │ │ │ ├── coe_xml.sql │ │ │ ├── cord_v3.sql │ │ │ ├── createFolders.sql │ │ │ ├── createResources.sql │ │ │ ├── createUser.sql │ │ │ ├── cwhs_v3.sql │ │ │ ├── doe_v3.sql │ │ │ ├── doe_xml.sql │ │ │ ├── loe_v3.sql │ │ │ ├── oc_comnt.sql │ │ │ ├── oc_cre.sql │ │ │ ├── oc_drop.sql │ │ │ ├── oc_main.sql │ │ │ ├── oc_popul.sql │ │ │ ├── oe_analz.sql │ │ │ ├── oe_comnt.sql │ │ │ ├── oe_cre.sql │ │ │ ├── oe_drop.sql │ │ │ ├── oe_idx.sql │ │ │ ├── oe_main.sql │ │ │ ├── oe_views.sql │ │ │ ├── pcus_v3.sql │ │ │ ├── poe_v3.sql │ │ │ ├── pord_v3.sql │ │ │ ├── pwhs_v3.sql │ │ │ ├── xdb03usg.sql │ │ │ ├── xdbConfiguration.sql │ │ │ ├── xdbSupport.sql │ │ │ └── xdbUtilities.sql │ │ │ ├── product_media │ │ │ ├── long2lob.sql │ │ │ ├── pm_analz.sql │ │ │ ├── pm_cre.sql │ │ │ ├── pm_drop.sql │ │ │ ├── pm_main.sql │ │ │ ├── pm_p_lob.sql │ │ │ └── pm_p_ord.sql │ │ │ ├── sales_history │ │ │ ├── csh_v3.sql │ │ │ ├── dsh_v3.sql │ │ │ ├── lsh_v3.sql │ │ │ ├── psh_v3.sql │ │ │ ├── sh_analz.sql │ │ │ ├── sh_comnt.sql │ │ │ ├── sh_cons.sql │ │ │ ├── sh_cre.sql │ │ │ ├── sh_cremv.sql │ │ │ ├── sh_drop.sql │ │ │ ├── sh_hiera.sql │ │ │ ├── sh_idx.sql │ │ │ ├── sh_main.sql │ │ │ ├── sh_olp_c.sql │ │ │ ├── sh_olp_d.sql │ │ │ ├── sh_pop1.sql │ │ │ ├── sh_pop2.sql │ │ │ ├── sh_pop3.sql │ │ │ └── surr_test.sql │ │ │ └── shipping │ │ │ ├── qs_adm.sql │ │ │ ├── qs_cbadm.sql │ │ │ ├── qs_cre.sql │ │ │ ├── qs_cs.sql │ │ │ ├── qs_drop.sql │ │ │ ├── qs_es.sql │ │ │ ├── qs_main.sql │ │ │ ├── qs_os.sql │ │ │ ├── qs_run.sql │ │ │ └── qs_ws.sql │ └── util │ │ ├── Entities.java │ │ ├── Objects.java │ │ ├── Pair.java │ │ ├── SQLUtil.java │ │ ├── StringEscapeUtils.java │ │ ├── XML2Model.java │ │ └── XMLUtil.java │ ├── events │ ├── ProcessSQLStatement.java │ └── processTokenList.java │ ├── expressionTraverser │ ├── compile_expressionTraverser.bat │ ├── expressionTraverser.java │ ├── readme.md │ └── run_expressionTraverser.bat │ ├── findConstants │ └── findConstants.java │ ├── formatsql │ ├── compile_formatsql.bat │ ├── formatoptions.md │ ├── formatsql.java │ ├── formatsqlInHtml.java │ ├── readme.md │ ├── run_formatsql.bat │ └── run_formatsqlInHtml.bat │ ├── getStmtTables │ ├── compile_getStmtTables.bat │ ├── getStmtTables.java │ ├── readme.md │ └── run_getStmtTables.bat │ ├── getTableJoinType │ ├── compile_getTableJoinType.bat │ ├── getTableJoinType.java │ ├── readme.md │ └── run_getTableJoinType.bat │ ├── getcrud │ ├── compile_getcrud.bat │ ├── getcrud.java │ ├── readme.md │ └── run_getcrud.bat │ ├── getsourcetoken │ ├── compile_getsourcetoken.bat │ ├── getsourcetoken.java │ ├── readme.md │ └── run_getsourcetoken.bat │ ├── getstatement │ ├── compile_getstatement.bat │ ├── getstatement.java │ ├── readme.md │ └── run_getstatement.bat │ ├── gettablecolumns │ ├── TGetTableColumn.java │ ├── build.xml │ ├── columnTableStmt.java │ ├── columnsInResultColumn.java │ ├── compile_gettablecolumns.bat │ ├── getResultColumn.java │ ├── readme.md │ ├── runGetTableColumn.java │ ├── run_columnTableStmt.bat │ ├── run_columnsInResultColumn.bat │ ├── run_getResultColumn.bat │ ├── run_runGetTableColumn.bat │ ├── run_whatClause.bat │ ├── tableColumnRename.java │ └── whatClause.java │ ├── joinConvert │ ├── JoinConverter.java │ ├── compile_joinConvert.bat │ ├── readme.md │ └── run_joinConvert.bat │ ├── joinRelationAnalyze │ ├── compile_joinRelationAnalyze.bat │ ├── joinRelationAnalyze.java │ ├── readme.md │ └── run_joinRelationAnalyze.bat │ ├── listGSPInfo │ ├── compile_listGSPInfo.bat │ ├── listGSPInfo.java │ └── run_listGSPInfo.bat │ ├── modifySelect │ ├── ModifySelect.java │ ├── compile_modifySelect.bat │ └── run_modifySelect.bat │ ├── modifysql │ ├── add2SQL.java │ ├── compile_modifysql.bat │ ├── replaceConstant.java │ ├── replaceTablename.java │ ├── run_add2SQL.bat │ ├── run_replaceConstant.bat │ └── run_replaceTablename.bat │ ├── plannerAnalyze │ ├── PlannerAnalyze.java │ ├── compile_plannerAnalyze.bat │ ├── readme.md │ └── run_plannerAnalyze.bat │ ├── readme.md │ ├── removeCondition │ ├── ExpressionChecker.java │ ├── compile_removeCondition.bat │ ├── removeCondition.java │ └── run_removeCondition.bat │ ├── removeSpecialConditions │ ├── ExpressionChecker.java │ └── RemoveCondition.java │ ├── scansql │ └── readme.md │ ├── scantable │ ├── compile_scantable.bat │ ├── readme.md │ ├── run_scantable.bat │ └── scantable.java │ ├── scriptwriter │ └── scriptwriter.java │ ├── search │ ├── compile_search.bat │ ├── readme.md │ ├── run_search.bat │ └── searchClause.java │ ├── snowflake │ └── sqlextract │ │ ├── SnowflakeSQLExtractor.java │ │ └── snowflake.js │ ├── sqldetect │ ├── AliasModel.java │ ├── CTEDetect.java │ ├── ClauseDetect.java │ ├── ColumnDetect.java │ ├── ColumnLocation.java │ ├── ColumnModel.java │ ├── DetectResult.java │ ├── ExpressionDetect.java │ ├── FieldModel.java │ ├── FunctionDetect.java │ ├── QueryModel.java │ ├── SQLDetect.java │ ├── SQLModel.java │ ├── SQLType.java │ ├── TableAction.java │ ├── TableModel.java │ ├── compile_sqldetect.bat │ └── run_sqldetect.bat │ ├── sqlenv │ └── runSQLEnv.java │ ├── sqlrefactor │ ├── compile_sqlrefactor.bat │ ├── rmdupParenthesis.java │ └── run_sqlrefactor.bat │ ├── sqltranslator │ ├── DataTypeCheckResult.java │ ├── DataTypeChecker.java │ ├── FunctionCheckResult.java │ ├── FunctionChecker.java │ ├── IdentifierCheckResult.java │ ├── IdentifierChecker.java │ ├── IdentifierRule.java │ ├── IdentifierRuleResult.java │ ├── KeywordCheckResult.java │ ├── KeywordChecker.java │ ├── MssqlDataTypeChecker.java │ ├── MssqlFunctionChecker.java │ ├── MssqlKeywordChecker.java │ ├── MysqlDataTypeChecker.java │ ├── OracleDataTypeChecker.java │ ├── OracleFunctionChecker.java │ ├── OracleKeywordChecker.java │ ├── SqlTranslator.java │ ├── compile_sqltranslator.bat │ ├── exception │ │ ├── FunctionIdentifierException.java │ │ └── SpecialIdentifierException.java │ └── run_sqltranslator.bat │ ├── traceColumn │ ├── TTraceColumn.java │ ├── compile_traceColumn.bat │ ├── runTraceColumn.java │ └── run_traceColumn.bat │ ├── tracedatalineage │ ├── Column.java │ ├── ColumnsInExpr.java │ ├── Cursor.java │ ├── Execute.java │ ├── Parameter.java │ ├── Procedure.java │ ├── SqlFileList.java │ ├── Statement.java │ ├── Table.java │ ├── TableRelation.java │ ├── TraceTarget.java │ ├── Variable.java │ ├── View.java │ ├── compile_tracedatalineage.bat │ ├── run_tracedatalineage.bat │ └── traceDataLineage.java │ ├── utils │ ├── SQLQuery.java │ ├── SQLUtil.java │ └── TJsonSQLEnv.java │ └── visitors │ ├── SearchSelect.java │ ├── compile_visitors.bat │ ├── run_searchFunction.bat │ ├── run_toXml.bat │ ├── searchCallInSP.java │ ├── searchColumnInResultColumn.java │ ├── searchDatatype.java │ ├── searchFunction.java │ ├── searchNode.java │ ├── searchSQLObject.java │ ├── searchStatement.java │ ├── searchSubquery.java │ ├── sqlschema.xsd │ ├── toXml.java │ ├── toXmlOldVersion.java │ ├── tree-view.css │ ├── tree-view.xsl │ ├── visitStarColumn.java │ └── xmlVisitor.java └── test └── java └── gudusoft └── gsqlparser ├── antiSQLInjectionTest ├── antiSQLInjectionBatchTest.java └── antiSQLInjectionTest.java ├── commonTest ├── ColumnImpactTest.java ├── FileUtil.java ├── SqlFileList.java ├── gspCommon.java ├── helloTest.java ├── metaDB.java ├── testAcceptChildren.java ├── testAggregateFunction.java ├── testAlias.java ├── testAlterTable.java ├── testAlterView.java ├── testAsCanonical.java ├── testBigline.java ├── testCTE.java ├── testCall.java ├── testCharacters.java ├── testColumnDefinition.java ├── testComment.java ├── testCommentOn.java ├── testConnect.java ├── testConstraint.java ├── testCoordinates.java ├── testCreateDatabase.java ├── testCreateFunction.java ├── testCreateIndex.java ├── testCreateSchema.java ├── testCreateSequenceStmt.java ├── testCreateSynonym.java ├── testCreateTable.java ├── testCreateTableOption.java ├── testDBVendor.java ├── testDatatype.java ├── testDeleteStmt.java ├── testDistributeBy.java ├── testDropDatabase.java ├── testDropIndex.java ├── testDropSchema.java ├── testDropTable.java ├── testEmptyInput.java ├── testExceptionClause.java ├── testExecImmeStmt.java ├── testExplain.java ├── testExprTraverse.java ├── testExpression.java ├── testFakeConstraint.java ├── testFunction.java ├── testFunctionCall.java ├── testGetCommentBeforeStmt.java ├── testGetTables.java ├── testGroupBy.java ├── testHint.java ├── testIdentifierCase.java ├── testInsertStatement.java ├── testJoins.java ├── testJoins_using_tjoinexpr.java ├── testLargeColumnList.java ├── testLargeUnion.java ├── testLateralView.java ├── testLicense.java ├── testLimitClause.java ├── testLockTable.java ├── testLongStatement.java ├── testMd5.java ├── testMerge.java ├── testMetaDB.java ├── testModifyExpr.java ├── testModifySql.java ├── testMssqlExecute.java ├── testMssqlFunction.java ├── testMssqlIf.java ├── testMssqlProcedure.java ├── testMssqlRaiserror.java ├── testMssqlTrigger.java ├── testNotModifier.java ├── testODBC.java ├── testObjectName.java ├── testObjectNameAnsi.java ├── testObjectNameLocation.java ├── testOffset.java ├── testOperator.java ├── testPLSQLCallSpec.java ├── testPartitonedBy.java ├── testPivotClause.java ├── testQualifiedVariable.java ├── testRenameTable.java ├── testResultColumn.java ├── testSequence.java ├── testSetSchema.java ├── testSpecialCharacter.java ├── testSqlserverProprietaryColumn.java ├── testStatementList.java ├── testStmtDelimiter.java ├── testSubquery.java ├── testSyntaxError.java ├── testTCreateSynonymStmt.java ├── testTCreateTableSqlStatement.java ├── testTCreateViewSqlStatement.java ├── testTDeclareVariable.java ├── testTDeleteSqlStatement.java ├── testTDropIndexSqlStatement.java ├── testTFunctionCall.java ├── testTInsertSqlStatement.java ├── testTMssqlCreateFunction.java ├── testTMssqlExecute.java ├── testTMssqlSet.java ├── testTMssqlTruncateTable.java ├── testTObjectName.java ├── testTOracleCommentOnSqlStmt.java ├── testTOracleCreateDirectoryStmt.java ├── testTOrderByItem.java ├── testTPlsqlLoopStmt.java ├── testTSampleClause.java ├── testTSelectSqlStatement.java ├── testTSourceToken.java ├── testTUpdateSqlStatement.java ├── testTableNull.java ├── testTmp.java ├── testToString.java ├── testToken.java ├── testTruncateTable.java ├── testUTF8.java ├── testUse.java ├── testVariableDeclare.java ├── testVendorBuiltInFunctionAndKeywords.java ├── testWarningMessage.java ├── testWhereClause.java ├── testXML.java └── testXmlXSD.java ├── demosTest ├── SqlTranslatorTest.java ├── analyzespTest.java ├── removeCondition │ └── testRemoveCondition.java └── traceDataLineageTest.java ├── dlineageTest ├── bigquery │ ├── testBigQuery.java │ ├── testConcatFunction.java │ ├── testCreateView.java │ ├── testExcept.java │ ├── testReplace.java │ ├── testStruct.java │ ├── testStructConstant.java │ └── testUnnest.java ├── oracle │ ├── testDBLink.java │ ├── testSchema.java │ └── testTransitions.java ├── postgresql │ └── testProcedure.java ├── readme.md ├── snowflake │ └── testStructConstant.java ├── solidatus │ ├── testDBLink.java │ └── testStarColumn.java ├── teradata │ └── testTeradata.java ├── testColumnLevelLineageFile.java ├── testMultpleSqlFiles.java ├── testSimpleSql.java └── test_IALOHN.java ├── erdiagramTest ├── testMsSQL.java ├── testMySQL.java ├── testOracle.java └── testPostgres.java ├── gettablecolumnTest ├── GetTableColumnBase.java ├── getObject.java ├── testBigQuery.java ├── testColumnResolver.java ├── testDB2.java ├── testDBObjectOfSourceToken.java ├── testDaxFunction.java ├── testDbObject.java ├── testHive.java ├── testMySQL.java ├── testNetezza.java ├── testNewTableColumn.java ├── testOracle.java ├── testPostgresql.java ├── testPresto.java ├── testRedshift.java ├── testSQLEnv.java ├── testSQLServer.java ├── testSnowflake.java ├── testSparkSQL.java ├── testStarColumn.java ├── testStarColumnInfile.java ├── testTC1.java ├── testTeradata.java ├── testTeradataGetTableColumns.java ├── testTraceColumn.java └── testUpdate.java ├── joinConvertTest └── JoinConverterTest.java ├── parserTest └── GeneralSqlParserTeradataTest.jav_ ├── removeConditionTest └── testRemoveCondition.java ├── removeSpecialConditionsTest └── testRemoveSpecialConditions.java ├── sqlFilesTest ├── parseTest.java ├── testAthenaFiles.java ├── testBigQueryFiles.java ├── testCouchbaeFiles.java ├── testDB2Files.java ├── testDatabricksFiles.java ├── testGaussDBFiles.java ├── testGreenplumFiles.java ├── testHanaFiles.java ├── testHiveFiles.java ├── testImpalaFiles.java ├── testInformixFiles.java ├── testMDXFiles.java ├── testMySQLFiles.java ├── testNetezzaFiles.java ├── testODBCFiles.java ├── testOpenedgeFiles.java ├── testOracleFiles.java ├── testPostgreSQLFiles.java ├── testPrestoFiles.java ├── testRedshiftFiles.java ├── testSOQLFiles.java ├── testSQLServerFiles.java ├── testSnowflakeFiles.java ├── testSparksqlFiles.java ├── testSybaseFiles.java ├── testTeradataFiles.java └── testVerticaFiles.java └── sqlenvTest ├── TJSONSQLEnv.java └── testJSONEnv.java /META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Archiver-Version: Plexus Archiver 3 | Built-By: 59897 4 | Created-By: Apache Maven 3.6.0 5 | Build-Jdk: 1.8.0_401 6 | 7 | -------------------------------------------------------------------------------- /connector/oracleConnector/lib/readme.md: -------------------------------------------------------------------------------- 1 | Please download and put the corresponding jdbc library here before compiling. -------------------------------------------------------------------------------- /connector/snowflakeConnector/lib/readme.md: -------------------------------------------------------------------------------- 1 | Please download and put the corresponding jdbc library here before compiling. -------------------------------------------------------------------------------- /connector/sqlServerConnector/lib/readme.md: -------------------------------------------------------------------------------- 1 | Please download and put the corresponding jdbc library here before compiling. -------------------------------------------------------------------------------- /lib/commons-logging-1.1.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/lib/commons-logging-1.1.3.jar -------------------------------------------------------------------------------- /lib/expr4j.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/lib/expr4j.jar -------------------------------------------------------------------------------- /lib/fastjson-1.2.41.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/lib/fastjson-1.2.41.jar -------------------------------------------------------------------------------- /lib/gudusoft.gsqlparser-3.0.2.5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/lib/gudusoft.gsqlparser-3.0.2.5.jar -------------------------------------------------------------------------------- /lib/jarLoader.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/lib/jarLoader.jar -------------------------------------------------------------------------------- /lib/jdbc/ojdbc-1.1.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/lib/jdbc/ojdbc-1.1.1.jar -------------------------------------------------------------------------------- /lib/jdbc/sqljdbc4-4.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/lib/jdbc/sqljdbc4-4.0.jar -------------------------------------------------------------------------------- /lib/jdk1.5/junit-4.5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/lib/jdk1.5/junit-4.5.jar -------------------------------------------------------------------------------- /lib/jdk1.5/junit.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/lib/jdk1.5/junit.jar -------------------------------------------------------------------------------- /lib/jdom.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/lib/jdom.jar -------------------------------------------------------------------------------- /lib/junrar-0.7.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/lib/junrar-0.7.jar -------------------------------------------------------------------------------- /lib/proguard/proguard.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/lib/proguard/proguard.jar -------------------------------------------------------------------------------- /lib/simple-xml-2.6.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/lib/simple-xml-2.6.2.jar -------------------------------------------------------------------------------- /lib/sqlflow-exporter.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/lib/sqlflow-exporter.jar -------------------------------------------------------------------------------- /lib/sqlflow-library.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/lib/sqlflow-library.jar -------------------------------------------------------------------------------- /src/main/java/demos/analyzeview/readme.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | Parse Teradata SQL that creates Teradata views and identify the name of the target view, 3 | all input tables/views, the target column names of the view and all the source table/view 4 | and columns for the target column. 5 | 6 | ## Usage 7 | `java Analyze_View scriptfile [/o ]` 8 | 9 | ## Related demo 10 | 11 | ## Changes 12 | - [2019-02-26, Can't work under the latest GSP java core library](https://github.com/sqlparser/gsp_demo/issues/3) 13 | - [2012-11-14, First version](https://github.com/sqlparser/wings/issues/166) 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/ESQLInjectionType.java: -------------------------------------------------------------------------------- 1 | package demos.antiSQLInjection; 2 | 3 | 4 | public enum ESQLInjectionType { 5 | syntax_error,always_true_condition,always_false_condition,comment_at_the_end_of_statement, 6 | stacking_queries,not_in_allowed_statement,union_set,piggybacked_statement 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/GContext.java: -------------------------------------------------------------------------------- 1 | package demos.antiSQLInjection; 2 | 3 | import java.util.Map; 4 | 5 | public interface GContext { 6 | 7 | void setVars(Map vars); 8 | Map getVars(); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/TSQLInjection.java: -------------------------------------------------------------------------------- 1 | package demos.antiSQLInjection; 2 | 3 | /** 4 | * This class represents a sql injection. 5 | */ 6 | public class TSQLInjection { 7 | 8 | private ESQLInjectionType type = ESQLInjectionType.syntax_error; 9 | 10 | public TSQLInjection(ESQLInjectionType pType){ 11 | this.type = pType; 12 | this.description = pType.toString(); 13 | } 14 | 15 | 16 | public ESQLInjectionType getType() { 17 | return type; 18 | } 19 | 20 | private String description = null; 21 | 22 | public String getDescription() { 23 | return description; 24 | } 25 | 26 | public void setDescription(String description) { 27 | this.description = description; 28 | } 29 | 30 | } -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/UnknownValue.java: -------------------------------------------------------------------------------- 1 | package demos.antiSQLInjection; 2 | 3 | /** 4 | * value returned when GEval can't evaluate a value from an expression. 5 | */ 6 | public class UnknownValue { 7 | public String toString(){ 8 | return "unknown value"; 9 | } 10 | } -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/lib/trail_version.txt: -------------------------------------------------------------------------------- 1 | This is the trial version of General SQL Parser Java version shipped together with this 2 | Anti SQL Injection tool, this SQL Parser can process SQL query with 2000 characters limitation. 3 | 4 | You can purchase a full version of this library at General SQL Parser official site: 5 | http://www.sqlparser.com 6 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/ExprEvaluatable.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * This program and the accompanying materials 3 | * are made available under the terms of the Common Public License v1.0 4 | * which accompanies this distribution, and is available at 5 | * http://www.eclipse.org/legal/cpl-v10.html 6 | * 7 | * Contributors: 8 | * Peter Smith 9 | *******************************************************************************/ 10 | package org.boris.expr; 11 | 12 | public abstract class ExprEvaluatable extends Expr 13 | { 14 | ExprEvaluatable(ExprType type) { 15 | super(type, true); 16 | } 17 | 18 | public boolean isVolatile() { 19 | return true; 20 | } 21 | 22 | public abstract Expr evaluate(IEvaluationContext context) 23 | throws ExprException; 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/ExprMinus.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr; 3 | 4 | public class ExprMinus extends ExprUnary 5 | { 6 | 7 | public ExprMinus( Expr lhs ) 8 | { 9 | super( lhs ); 10 | } 11 | 12 | public String toString( ) 13 | { 14 | return "-"; 15 | } 16 | 17 | public int hashCode( ) 18 | { 19 | return "-".hashCode( ); 20 | } 21 | 22 | public boolean equals( Object obj ) 23 | { 24 | return obj instanceof ExprMinus; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/ExprMissing.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * This program and the accompanying materials 3 | * are made available under the terms of the Common Public License v1.0 4 | * which accompanies this distribution, and is available at 5 | * http://www.eclipse.org/legal/cpl-v10.html 6 | * 7 | * Contributors: 8 | * Peter Smith 9 | *******************************************************************************/ 10 | package org.boris.expr; 11 | 12 | 13 | public class ExprMissing extends Expr 14 | { 15 | public static final ExprMissing MISSING = new ExprMissing(); 16 | 17 | public ExprMissing() { 18 | super(ExprType.Missing, false); 19 | } 20 | 21 | public String toString() { 22 | return ""; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/ExprPlus.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr; 3 | 4 | public class ExprPlus extends ExprUnary 5 | { 6 | 7 | public ExprPlus( Expr lhs ) 8 | { 9 | super( lhs ); 10 | } 11 | 12 | public String toString( ) 13 | { 14 | return "+"; 15 | } 16 | 17 | public int hashCode( ) 18 | { 19 | return "+".hashCode( ); 20 | } 21 | 22 | public boolean equals( Object obj ) 23 | { 24 | return obj instanceof ExprPlus; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/ExprTypes.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * This program and the accompanying materials 3 | * are made available under the terms of the Common Public License v1.0 4 | * which accompanies this distribution, and is available at 5 | * http://www.eclipse.org/legal/cpl-v10.html 6 | * 7 | * Contributors: 8 | * Peter Smith 9 | *******************************************************************************/ 10 | package org.boris.expr; 11 | 12 | public class ExprTypes 13 | { 14 | public static void assertType(Expr value, ExprType... types) 15 | throws ExprException { 16 | for (ExprType t : types) { 17 | if (t.equals(value.type)) 18 | return; 19 | } 20 | throw new ExprException("Unexpected type: " + value.type); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/ExprUnary.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr; 3 | 4 | public abstract class ExprUnary extends Expr 5 | { 6 | 7 | protected Expr lhs; 8 | 9 | ExprUnary( Expr lhs ) 10 | { 11 | super( ExprType.Unary, false ); 12 | this.lhs = lhs; 13 | } 14 | 15 | public Expr getLHS( ) 16 | { 17 | return lhs; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/IBinaryOperator.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * This program and the accompanying materials 3 | * are made available under the terms of the Common Public License v1.0 4 | * which accompanies this distribution, and is available at 5 | * http://www.eclipse.org/legal/cpl-v10.html 6 | * 7 | * Contributors: 8 | * Peter Smith 9 | *******************************************************************************/ 10 | package org.boris.expr; 11 | 12 | public interface IBinaryOperator 13 | { 14 | public Expr getLHS(); 15 | 16 | public void setLHS(Expr lhs); 17 | 18 | public Expr getRHS(); 19 | 20 | public void setRHS(Expr rhs); 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/IEvaluationContext.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * This program and the accompanying materials 3 | * are made available under the terms of the Common Public License v1.0 4 | * which accompanies this distribution, and is available at 5 | * http://www.eclipse.org/legal/cpl-v10.html 6 | * 7 | * Contributors: 8 | * Peter Smith 9 | *******************************************************************************/ 10 | package org.boris.expr; 11 | 12 | public interface IEvaluationContext 13 | { 14 | public Expr evaluateFunction(ExprFunction function) throws ExprException; 15 | 16 | public Expr evaluateVariable(ExprVariable variable) throws ExprException; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/IExprFunction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * This program and the accompanying materials 3 | * are made available under the terms of the Common Public License v1.0 4 | * which accompanies this distribution, and is available at 5 | * http://www.eclipse.org/legal/cpl-v10.html 6 | * 7 | * Contributors: 8 | * Peter Smith 9 | *******************************************************************************/ 10 | package org.boris.expr; 11 | 12 | public interface IExprFunction 13 | { 14 | Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException; 15 | 16 | boolean isVolatile(); 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ABS.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class ABS extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | return Math.abs(value); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ACOS.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class ACOS extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | return Math.acos(value); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ACOSH.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | import org.boris.expr.util.Maths; 6 | 7 | public class ACOSH extends DoubleInOutFunction 8 | { 9 | protected double evaluate(double value) throws ExprException { 10 | return Maths.acosh(value); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/AREAS.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprDouble; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.ExprVariable; 7 | import org.boris.expr.IEvaluationContext; 8 | import org.boris.expr.function.AbstractFunction; 9 | 10 | public class AREAS extends AbstractFunction 11 | { 12 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 13 | assertArgCount(args, 1); 14 | Expr e = args[0]; 15 | if (e instanceof ExprVariable) { 16 | return new ExprDouble(1); 17 | } 18 | return null; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ASIN.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class ASIN extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | return Math.asin(value); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ASINH.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | import org.boris.expr.util.Maths; 6 | 7 | public class ASINH extends DoubleInOutFunction 8 | { 9 | protected double evaluate(double value) throws ExprException { 10 | return Maths.asinh(value); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ATAN.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class ATAN extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | return Math.atan(value); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ATAN2.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprDouble; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | 9 | public class ATAN2 extends AbstractFunction 10 | { 11 | public Expr evaluate(IEvaluationContext context, Expr[] args) 12 | throws ExprException { 13 | assertArgCount(args, 2); 14 | double x = asDouble(context, args[0], true); 15 | double y = asDouble(context, args[1], true); 16 | return new ExprDouble(Math.atan2(x, y)); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ATANH.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | import org.boris.expr.util.Maths; 6 | 7 | public class ATANH extends DoubleInOutFunction 8 | { 9 | protected double evaluate(double value) throws ExprException { 10 | return Maths.atanh(value); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/AVERAGEA.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprDouble; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.function.ForEachNumberAFunction; 7 | import org.boris.expr.util.Counter; 8 | 9 | public class AVERAGEA extends ForEachNumberAFunction 10 | { 11 | protected void value(Counter counter, double value) { 12 | counter.count++; 13 | counter.value += value; 14 | } 15 | 16 | protected Expr evaluate(Counter counter) throws ExprException { 17 | return new ExprDouble(counter.value / counter.count); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/BAHTTEXT.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class BAHTTEXT extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/BIN.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr.function.excel; 3 | 4 | import org.boris.expr.Expr; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.ExprString; 7 | import org.boris.expr.IEvaluationContext; 8 | import org.boris.expr.function.AbstractFunction; 9 | 10 | public class BIN extends AbstractFunction 11 | { 12 | 13 | public Expr evaluate( IEvaluationContext context, Expr[] args ) 14 | throws ExprException 15 | { 16 | assertArgCount( args, 1 ); 17 | double number = asDouble( context, args[0], false ); 18 | return new ExprString( bin( (long) number ) ); 19 | } 20 | 21 | public String bin( long number ) 22 | { 23 | if ( number < 2 ) 24 | return "" + number; 25 | else 26 | return ( bin( (long) Math.floor( number / 2 ) ) + "" + ( number % 2 ) ); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/BITAND.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr.function.excel; 3 | 4 | import org.boris.expr.Expr; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.ExprInteger; 7 | import org.boris.expr.IEvaluationContext; 8 | import org.boris.expr.function.AbstractFunction; 9 | 10 | public class BITAND extends AbstractFunction 11 | { 12 | 13 | public Expr evaluate( IEvaluationContext context, Expr[] args ) 14 | throws ExprException 15 | { 16 | assertArgCount( args, 2 ); 17 | int x = asInteger( context, args[0], true ); 18 | int y = asInteger( context, args[1], true ); 19 | return new ExprInteger( x & y ); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/BIT_LENGTH.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr.function.excel; 3 | 4 | import org.boris.expr.Expr; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.ExprInteger; 7 | import org.boris.expr.IEvaluationContext; 8 | import org.boris.expr.function.AbstractFunction; 9 | 10 | public class BIT_LENGTH extends AbstractFunction 11 | { 12 | 13 | public Expr evaluate( IEvaluationContext context, Expr[] args ) 14 | throws ExprException 15 | { 16 | assertArgCount( args, 1 ); 17 | String string = asString( context, args[0], false ); 18 | return new ExprInteger( string.getBytes( ).length * 8 ); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/CEIL.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr.function.excel; 3 | 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.function.DoubleInOutFunction; 6 | 7 | public class CEIL extends DoubleInOutFunction 8 | { 9 | 10 | protected double evaluate( double value ) throws ExprException 11 | { 12 | return Math.ceil( value ); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/CELL.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class CELL extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/CHAR_LENGTH.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr.function.excel; 3 | 4 | import org.boris.expr.Expr; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.ExprInteger; 7 | import org.boris.expr.IEvaluationContext; 8 | import org.boris.expr.function.AbstractFunction; 9 | 10 | public class CHAR_LENGTH extends AbstractFunction 11 | { 12 | 13 | public Expr evaluate( IEvaluationContext context, Expr[] args ) 14 | throws ExprException 15 | { 16 | assertArgCount( args, 1 ); 17 | String string = asString( context, args[0], false ); 18 | return new ExprInteger( string.getBytes( ).length ); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/CHITEST.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class CHITEST extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/CORREL.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class CORREL extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/COS.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class COS extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | return Math.cos(value); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/COSH.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class COSH extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | return Math.cosh(value); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/COT.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr.function.excel; 3 | 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.function.DoubleInOutFunction; 6 | 7 | public class COT extends DoubleInOutFunction 8 | { 9 | 10 | protected double evaluate( double value ) throws ExprException 11 | { 12 | return 1 / Math.tan( value ); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/COUNTA.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.ExprInteger; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | 9 | public class COUNTA extends AbstractFunction 10 | { 11 | public Expr evaluate(IEvaluationContext context, Expr[] args) 12 | throws ExprException { 13 | assertMinArgCount(args, 1); 14 | int count = 0; 15 | for (Expr a : args) { 16 | count += COUNT.count(context, a, true); 17 | } 18 | return new ExprInteger(count); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/DATEVALUE.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class DATEVALUE extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/DAVERAGE.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.SimpleDatabaseFunction; 7 | 8 | public class DAVERAGE extends SimpleDatabaseFunction 9 | { 10 | protected Expr evaluateMatches(IEvaluationContext context, Expr[] matches) 11 | throws ExprException { 12 | return AVERAGE.average(context, matches); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/DAY.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | import org.boris.expr.util.ExcelDate; 6 | 7 | public class DAY extends DoubleInOutFunction 8 | { 9 | protected double evaluate(double value) throws ExprException { 10 | return ExcelDate.getDayOfMonth(value); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/DAYS360.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class DAYS360 extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/DCOUNT.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprDouble; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.ExprNumber; 7 | import org.boris.expr.IEvaluationContext; 8 | import org.boris.expr.function.SimpleDatabaseFunction; 9 | 10 | public class DCOUNT extends SimpleDatabaseFunction 11 | { 12 | protected Expr evaluateMatches(IEvaluationContext context, Expr[] matches) 13 | throws ExprException { 14 | int count = 0; 15 | for (Expr m : matches) { 16 | if (m instanceof ExprNumber) 17 | count++; 18 | } 19 | return new ExprDouble(count); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/DCOUNTA.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprDouble; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.SimpleDatabaseFunction; 8 | 9 | public class DCOUNTA extends SimpleDatabaseFunction 10 | { 11 | protected Expr evaluateMatches(IEvaluationContext context, Expr[] matches) 12 | throws ExprException { 13 | return new ExprDouble(matches.length); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/DEGREES.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class DEGREES extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | return value * 180 / Math.PI; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/DGET.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprError; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.SimpleDatabaseFunction; 8 | 9 | public class DGET extends SimpleDatabaseFunction 10 | { 11 | protected Expr evaluateMatches(IEvaluationContext context, Expr[] matches) 12 | throws ExprException { 13 | if (matches.length != 1) 14 | return ExprError.NUM; 15 | return matches[0]; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/DMAX.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.SimpleDatabaseFunction; 7 | 8 | public class DMAX extends SimpleDatabaseFunction 9 | { 10 | protected Expr evaluateMatches(IEvaluationContext context, Expr[] matches) 11 | throws ExprException { 12 | return MAX.max(context, matches); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/DMIN.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.SimpleDatabaseFunction; 7 | 8 | public class DMIN extends SimpleDatabaseFunction 9 | { 10 | protected Expr evaluateMatches(IEvaluationContext context, Expr[] matches) 11 | throws ExprException { 12 | return MIN.min(context, matches); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/DOLLAR.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class DOLLAR extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/DPRODUCT.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.SimpleDatabaseFunction; 7 | 8 | public class DPRODUCT extends SimpleDatabaseFunction 9 | { 10 | protected Expr evaluateMatches(IEvaluationContext context, Expr[] matches) 11 | throws ExprException { 12 | return PRODUCT.product(context, matches); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/DSTDEV.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.SimpleDatabaseFunction; 7 | 8 | public class DSTDEV extends SimpleDatabaseFunction 9 | { 10 | protected Expr evaluateMatches(IEvaluationContext context, Expr[] matches) 11 | throws ExprException { 12 | return STDEV.stdev(context, matches); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/DSTDEVP.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.SimpleDatabaseFunction; 7 | 8 | public class DSTDEVP extends SimpleDatabaseFunction 9 | { 10 | protected Expr evaluateMatches(IEvaluationContext context, Expr[] matches) 11 | throws ExprException { 12 | return STDEVP.stdevp(context, matches); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/DSUM.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.SimpleDatabaseFunction; 7 | 8 | public class DSUM extends SimpleDatabaseFunction 9 | { 10 | protected Expr evaluateMatches(IEvaluationContext context, Expr[] matches) 11 | throws ExprException { 12 | return SUM.sum(context, matches); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/DVAR.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.SimpleDatabaseFunction; 7 | 8 | public class DVAR extends SimpleDatabaseFunction 9 | { 10 | protected Expr evaluateMatches(IEvaluationContext context, Expr[] matches) 11 | throws ExprException { 12 | return STDEV.variance(context, matches, false); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/DVARP.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.SimpleDatabaseFunction; 7 | 8 | public class DVARP extends SimpleDatabaseFunction 9 | { 10 | protected Expr evaluateMatches(IEvaluationContext context, Expr[] matches) 11 | throws ExprException { 12 | return STDEV.variance(context, matches, true); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ELT.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr.function.excel; 3 | 4 | import org.boris.expr.Expr; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.ExprString; 7 | import org.boris.expr.ExprVariable; 8 | import org.boris.expr.IEvaluationContext; 9 | import org.boris.expr.function.AbstractFunction; 10 | 11 | public class ELT extends AbstractFunction 12 | { 13 | 14 | public Expr evaluate( IEvaluationContext context, Expr[] args ) 15 | throws ExprException 16 | { 17 | assertMinArgCount( args, 2 ); 18 | 19 | int index = (int) asDouble( context, args[0], true ); 20 | if ( index <= 0 || index >= args.length ) 21 | { 22 | return new ExprVariable( "NULL" ); 23 | } 24 | return new ExprString( asString( context, args[index], false ) ); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/EVEN.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class EVEN extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | double res = value % 2; 10 | if (res < 0) { 11 | return value - 2 - res; 12 | } else if (res == 0) { 13 | return value; 14 | } else { 15 | return value + 2 - res; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/EXACT.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprBoolean; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | 9 | public class EXACT extends AbstractFunction 10 | { 11 | public Expr evaluate(IEvaluationContext context, Expr[] args) 12 | throws ExprException { 13 | assertArgCount(args, 2); 14 | 15 | String str1 = asString(context, args[0], false); 16 | String str2 = asString(context, args[1], false); 17 | 18 | return str1.equals(str2) ? ExprBoolean.TRUE : ExprBoolean.FALSE; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/EXP.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class EXP extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | return Math.exp(value); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/EXPONDIST.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprDouble; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | import org.boris.expr.util.Statistics; 9 | 10 | public class EXPONDIST extends AbstractFunction 11 | { 12 | public Expr evaluate(IEvaluationContext context, Expr[] args) 13 | throws ExprException { 14 | assertArgCount(args, 3); 15 | double x = asDouble(context, args[0], true); 16 | double l = asDouble(context, args[1], true); 17 | boolean c = asBoolean(context, args[2], true); 18 | 19 | return new ExprDouble(Statistics.exponDist(x, l, c)); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/FACT.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprDouble; 5 | import org.boris.expr.ExprError; 6 | import org.boris.expr.ExprException; 7 | import org.boris.expr.IEvaluationContext; 8 | import org.boris.expr.function.AbstractFunction; 9 | import org.boris.expr.util.Statistics; 10 | 11 | public class FACT extends AbstractFunction 12 | { 13 | public Expr evaluate(IEvaluationContext context, Expr[] args) 14 | throws ExprException { 15 | assertArgCount(args, 1); 16 | double value = asDouble(context, args[0], true); 17 | if (value < 0) 18 | return ExprError.NUM; 19 | 20 | return new ExprDouble(Statistics.factorial((int) value).doubleValue()); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/FALSE.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprBoolean; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | 9 | public class FALSE extends AbstractFunction 10 | { 11 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 12 | assertArgCount(args, 0); 13 | return ExprBoolean.FALSE; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/FDIST.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class FDIST extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/FINV.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class FINV extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/FISHER.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class FISHER extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/FISHERNV.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class FISHERNV extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/FIXED.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class FIXED extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/FTEST.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class FTEST extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/FV.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class FV extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/GAMMADIST.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class GAMMADIST extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/GAMMAINV.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class GAMMAINV extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/GAMMALN.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class GAMMALN extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/GEOMEAN.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprDouble; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.function.ForEachNumberFunction; 7 | import org.boris.expr.util.Counter; 8 | 9 | public class GEOMEAN extends ForEachNumberFunction 10 | { 11 | protected void initialize(Counter counter) throws ExprException { 12 | counter.value = 1; 13 | } 14 | 15 | protected void value(Counter counter, double value) { 16 | counter.count++; 17 | counter.value *= value; 18 | } 19 | 20 | protected Expr evaluate(Counter counter) throws ExprException { 21 | return new ExprDouble(Math.pow(counter.value, 1. / counter.count)); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/GETPIVOTDATA.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class GETPIVOTDATA extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/GROWTH.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class GROWTH extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/HLOOKUP.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class HLOOKUP extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/HOUR.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | import org.boris.expr.util.ExcelDate; 6 | 7 | public class HOUR extends DoubleInOutFunction 8 | { 9 | protected double evaluate(double value) throws ExprException { 10 | return ExcelDate.getHour(value); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/HYPERLINK.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class HYPERLINK extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/HYPGEOMDIST.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class HYPGEOMDIST extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/INDEX.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class INDEX extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/INDIRECT.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class INDIRECT extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) 11 | throws ExprException { 12 | assertMinArgCount(args, 1); 13 | assertMaxArgCount(args, 2); 14 | Expr ref = evalArg(context, args[0]); 15 | 16 | return null; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/INTERCEPT.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class INTERCEPT extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/IPMT.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class IPMT extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/IRR.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class IRR extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ISBLANK.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.ExprMissing; 6 | import org.boris.expr.ExprString; 7 | import org.boris.expr.IEvaluationContext; 8 | import org.boris.expr.function.AbstractFunction; 9 | 10 | public class ISBLANK extends AbstractFunction 11 | { 12 | public Expr evaluate(IEvaluationContext context, Expr[] args) 13 | throws ExprException { 14 | assertArgCount(args, 1); 15 | Expr e = evalArg(context, args[0]); 16 | return bool(e instanceof ExprMissing || 17 | (e instanceof ExprString && "".equals(((ExprString) e).str))); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ISERR.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprError; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | 9 | public class ISERR extends AbstractFunction 10 | { 11 | public Expr evaluate(IEvaluationContext context, Expr[] args) 12 | throws ExprException { 13 | assertArgCount(args, 1); 14 | Expr e = evalArg(context, args[0]); 15 | return bool(e instanceof ExprError); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ISLOGICAL.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprBoolean; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | 9 | public class ISLOGICAL extends AbstractFunction 10 | { 11 | public Expr evaluate(IEvaluationContext context, Expr[] args) 12 | throws ExprException { 13 | assertArgCount(args, 1); 14 | Expr e = evalArg(context, args[0]); 15 | return bool(e instanceof ExprBoolean); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ISNA.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprError; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | 9 | public class ISNA extends AbstractFunction 10 | { 11 | public Expr evaluate(IEvaluationContext context, Expr[] args) 12 | throws ExprException { 13 | assertArgCount(args, 1); 14 | Expr e = evalArg(context, args[0]); 15 | return bool(ExprError.NA.equals(e)); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ISNONTEXT.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.ExprString; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | 9 | public class ISNONTEXT extends AbstractFunction 10 | { 11 | public Expr evaluate(IEvaluationContext context, Expr[] args) 12 | throws ExprException { 13 | assertArgCount(args, 1); 14 | Expr e = evalArg(context, args[0]); 15 | return bool(!(e instanceof ExprString) || 16 | "".equals(((ExprString) e).str)); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ISNUMBER.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprDouble; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.ExprInteger; 7 | import org.boris.expr.IEvaluationContext; 8 | import org.boris.expr.function.AbstractFunction; 9 | 10 | public class ISNUMBER extends AbstractFunction 11 | { 12 | public Expr evaluate(IEvaluationContext context, Expr[] args) 13 | throws ExprException { 14 | assertArgCount(args, 1); 15 | Expr e = evalArg(context, args[0]); 16 | return bool(e instanceof ExprInteger || e instanceof ExprDouble); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ISPMT.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class ISPMT extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ISREF.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.ExprVariable; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | 9 | public class ISREF extends AbstractFunction 10 | { 11 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 12 | assertArgCount(args, 1); 13 | return bool(args[0] instanceof ExprVariable); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ISTEXT.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.ExprString; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | 9 | public class ISTEXT extends AbstractFunction 10 | { 11 | public Expr evaluate(IEvaluationContext context, Expr[] args) 12 | throws ExprException { 13 | assertArgCount(args, 1); 14 | Expr e = evalArg(context, args[0]); 15 | return bool(e instanceof ExprString); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/LARGE.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class LARGE extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/LEFT.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.ExprString; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | 9 | public class LEFT extends AbstractFunction 10 | { 11 | public Expr evaluate(IEvaluationContext context, Expr[] args) 12 | throws ExprException { 13 | assertMinArgCount(args, 1); 14 | assertMaxArgCount(args, 2); 15 | String str = asString(context, args[0], false); 16 | int r = 1; 17 | if (args.length == 2) { 18 | r = asInteger(context, args[1], true); 19 | } 20 | if (r > str.length()) 21 | r = str.length(); 22 | return new ExprString(str.substring(0, r)); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/LINEST.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class LINEST extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/LN.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class LN extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | return Math.log(value); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/LOG10.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class LOG10 extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | return Math.log10(value); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/LOG2.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr.function.excel; 3 | 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.function.DoubleInOutFunction; 6 | 7 | public class LOG2 extends DoubleInOutFunction 8 | { 9 | 10 | protected double evaluate( double value ) throws ExprException 11 | { 12 | return Math.log( value ) / Math.log( 2 ); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/LOGEST.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class LOGEST extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/LOGINV.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class LOGINV extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/LOGNORMDIST.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class LOGNORMDIST extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/MATCH.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class MATCH extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/MAXA.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprDouble; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.function.ForEachNumberAFunction; 7 | import org.boris.expr.util.Counter; 8 | 9 | public class MAXA extends ForEachNumberAFunction 10 | { 11 | protected void initialize(Counter counter) throws ExprException { 12 | counter.value = -Double.MAX_VALUE; 13 | } 14 | 15 | protected void value(Counter counter, double value) { 16 | if (value > counter.value) 17 | counter.value = value; 18 | } 19 | 20 | protected Expr evaluate(Counter counter) throws ExprException { 21 | return new ExprDouble(counter.value); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/MDETERM.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class MDETERM extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/MEDIAN.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class MEDIAN extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/MINA.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprDouble; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.function.ForEachNumberAFunction; 7 | import org.boris.expr.util.Counter; 8 | 9 | public class MINA extends ForEachNumberAFunction 10 | { 11 | protected void initialize(Counter counter) throws ExprException { 12 | counter.value = Double.MAX_VALUE; 13 | } 14 | 15 | protected void value(Counter counter, double value) { 16 | if (value < counter.value) 17 | counter.value = value; 18 | } 19 | 20 | protected Expr evaluate(Counter counter) throws ExprException { 21 | return new ExprDouble(counter.value); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/MINUTE.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | import org.boris.expr.util.ExcelDate; 6 | 7 | public class MINUTE extends DoubleInOutFunction 8 | { 9 | protected double evaluate(double value) throws ExprException { 10 | return ExcelDate.getMinute(value); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/MINVERSE.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class MINVERSE extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/MIRR.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class MIRR extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/MMULT.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class MMULT extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/MODE.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class MODE extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/MONTH.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | import org.boris.expr.util.ExcelDate; 6 | 7 | public class MONTH extends DoubleInOutFunction 8 | { 9 | protected double evaluate(double value) throws ExprException { 10 | return ExcelDate.getMonth(value); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/NA.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprError; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | 9 | public class NA extends AbstractFunction 10 | { 11 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 12 | assertArgCount(args, 0); 13 | return ExprError.NA; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/NANVL.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr.function.excel; 3 | 4 | import org.boris.expr.Expr; 5 | import org.boris.expr.ExprDouble; 6 | import org.boris.expr.ExprException; 7 | import org.boris.expr.IEvaluationContext; 8 | import org.boris.expr.function.AbstractFunction; 9 | 10 | public class NANVL extends AbstractFunction 11 | { 12 | 13 | public Expr evaluate( IEvaluationContext context, Expr[] args ) 14 | throws ExprException 15 | { 16 | assertArgCount( args, 2 ); 17 | double n2; 18 | try 19 | { 20 | n2 = asDouble( context, args[0], true ); 21 | } 22 | catch ( ExprException e ) 23 | { 24 | double n1 = asDouble( context, args[1], true ); 25 | return new ExprDouble( n1 ); 26 | } 27 | return new ExprDouble( n2 ); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/NEGBINOMDIST.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class NEGBINOMDIST extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/NORMDIST.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class NORMDIST extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/NORMINV.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class NORMINV extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/NORMSDIST.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunctionErr; 5 | import org.boris.expr.util.Statistics; 6 | 7 | public class NORMSDIST extends DoubleInOutFunctionErr 8 | { 9 | protected double evaluate(double value) throws ExprException { 10 | return Statistics.normsDist(value); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/NORMSINV.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class NORMSINV extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/NOT.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprError; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.ExprNumber; 7 | import org.boris.expr.IEvaluationContext; 8 | import org.boris.expr.function.AbstractFunction; 9 | 10 | public class NOT extends AbstractFunction 11 | { 12 | public Expr evaluate(IEvaluationContext context, Expr[] args) 13 | throws ExprException { 14 | assertArgCount(args, 1); 15 | Expr a = evalArg(context, args[0]); 16 | if (a instanceof ExprNumber) { 17 | return bool(!((ExprNumber) a).booleanValue()); 18 | } 19 | return ExprError.VALUE; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/NOW.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | public class NOW extends TODAY 4 | { 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/NPER.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class NPER extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/NPV.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class NPV extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ODD.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class ODD extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | double res = (value + 1) % 2; 10 | if (res < 0) { 11 | return value - 2 - res; 12 | } else if (res == 0) { 13 | return value; 14 | } else { 15 | return value + 2 - res; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/PEARSON.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class PEARSON extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/PERCENTILE.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class PERCENTILE extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/PERCENTRANK.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class PERCENTRANK extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/PI.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprDouble; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | 9 | public class PI extends AbstractFunction 10 | { 11 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 12 | assertArgCount(args, 0); 13 | return ExprDouble.PI; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/PMT.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class PMT extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/POISSON.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class POISSON extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/POWER.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprDouble; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | 9 | public class POWER extends AbstractFunction 10 | { 11 | public Expr evaluate(IEvaluationContext context, Expr[] args) 12 | throws ExprException { 13 | assertArgCount(args, 2); 14 | double num = asDouble(context, args[0], true); 15 | double pow = asDouble(context, args[1], true); 16 | return new ExprDouble(Math.pow(num, pow)); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/PPMT.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class PPMT extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/PROB.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class PROB extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/PV.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class PV extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/QUARTILE.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class QUARTILE extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/RADIANS.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class RADIANS extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | return value * Math.PI / 180; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/RAND.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr.function.excel; 3 | 4 | import org.boris.expr.Expr; 5 | import org.boris.expr.ExprDouble; 6 | import org.boris.expr.ExprException; 7 | import org.boris.expr.IEvaluationContext; 8 | import org.boris.expr.function.AbstractFunction; 9 | 10 | public class RAND extends AbstractFunction 11 | { 12 | 13 | public Expr evaluate( IEvaluationContext context, Expr[] args ) 14 | throws ExprException 15 | { 16 | assertMinArgCount( args, 0 ); 17 | assertMaxArgCount( args, 1 ); 18 | double seed = 1; 19 | if ( args.length == 1 ) 20 | { 21 | seed = asDouble( context, args[0], true ); 22 | } 23 | return new ExprDouble( Math.random( ) * seed ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/RANK.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class RANK extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/RATE.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class RATE extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/REPLICATE.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr.function.excel; 3 | 4 | import org.boris.expr.Expr; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.ExprString; 7 | import org.boris.expr.IEvaluationContext; 8 | import org.boris.expr.function.AbstractFunction; 9 | 10 | public class REPLICATE extends AbstractFunction 11 | { 12 | 13 | public Expr evaluate( IEvaluationContext context, Expr[] args ) 14 | throws ExprException 15 | { 16 | assertArgCount( args, 2 ); 17 | String string = asString( context, args[0], false ); 18 | int number = asInteger( context, args[1], true ); 19 | StringBuffer buffer = new StringBuffer( ); 20 | for ( int i = 0; i < number; i++ ) 21 | { 22 | buffer.append( string ); 23 | } 24 | return new ExprString( buffer.toString( ) ); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/REVERSE.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr.function.excel; 3 | 4 | import org.boris.expr.Expr; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.ExprString; 7 | import org.boris.expr.IEvaluationContext; 8 | import org.boris.expr.function.AbstractFunction; 9 | 10 | public class REVERSE extends AbstractFunction 11 | { 12 | 13 | public Expr evaluate( IEvaluationContext context, Expr[] args ) 14 | throws ExprException 15 | { 16 | assertArgCount( args, 1 ); 17 | String string = asString( context, args[0], false ); 18 | return new ExprString( new StringBuffer( string ).reverse( ).toString( ) ); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ROMAN.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class ROMAN extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ROUND.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr.function.excel; 3 | 4 | import org.boris.expr.Expr; 5 | import org.boris.expr.ExprDouble; 6 | import org.boris.expr.ExprException; 7 | import org.boris.expr.IEvaluationContext; 8 | import org.boris.expr.function.AbstractFunction; 9 | import org.boris.expr.util.Maths; 10 | 11 | public class ROUND extends AbstractFunction 12 | { 13 | 14 | public Expr evaluate( IEvaluationContext context, Expr[] args ) 15 | throws ExprException 16 | { 17 | assertMinArgCount( args, 1 ); 18 | assertMaxArgCount( args, 2 ); 19 | 20 | double num = asDouble( context, args[0], true ); 21 | 22 | int dps = 0; 23 | if ( args.length == 2 ) 24 | dps = asInteger( context, args[1], true ); 25 | 26 | return new ExprDouble( Maths.round( num, dps ) ); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ROUNDDOWN.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprDouble; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | import org.boris.expr.util.Maths; 9 | 10 | public class ROUNDDOWN extends AbstractFunction 11 | { 12 | public Expr evaluate(IEvaluationContext context, Expr[] args) 13 | throws ExprException { 14 | assertArgCount(args, 2); 15 | double num = asDouble(context, args[0], true); 16 | int dps = asInteger(context, args[1], true); 17 | return new ExprDouble(Maths.roundDown(num, dps)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ROUNDUP.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprDouble; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | import org.boris.expr.util.Maths; 9 | 10 | public class ROUNDUP extends AbstractFunction 11 | { 12 | public Expr evaluate(IEvaluationContext context, Expr[] args) 13 | throws ExprException { 14 | assertArgCount(args, 2); 15 | double num = asDouble(context, args[0], true); 16 | int dps = asInteger(context, args[1], true); 17 | return new ExprDouble(Maths.roundUp(num, dps)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ROWS.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class ROWS extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) 11 | throws ExprException { 12 | assertArgCount(args, 1); 13 | return COLUMNS.columnsOrRows(context, args, false); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/RSQ.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class RSQ extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/RTD.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class RTD extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/SECOND.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | import org.boris.expr.util.ExcelDate; 6 | 7 | public class SECOND extends DoubleInOutFunction 8 | { 9 | protected double evaluate(double value) throws ExprException { 10 | return ExcelDate.getSecond(value); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/SIN.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class SIN extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | return Math.sin(value); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/SINH.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class SINH extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | return Math.sinh(value); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/SKEW.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class SKEW extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/SLN.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class SLN extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/SLOPE.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class SLOPE extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/SMALL.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class SMALL extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/SPACE.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr.function.excel; 3 | 4 | import org.boris.expr.Expr; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.ExprString; 7 | import org.boris.expr.IEvaluationContext; 8 | import org.boris.expr.function.AbstractFunction; 9 | 10 | public class SPACE extends AbstractFunction 11 | { 12 | 13 | public Expr evaluate( IEvaluationContext context, Expr[] args ) 14 | throws ExprException 15 | { 16 | assertArgCount( args, 1 ); 17 | int number = asInteger( context, args[0], true ); 18 | StringBuffer buffer = new StringBuffer( ); 19 | for ( int i = 0; i < number; i++ ) 20 | { 21 | buffer.append( " " ); 22 | } 23 | return new ExprString( buffer.toString( ) ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/SQRT.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class SQRT extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | return Math.sqrt(value); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/SQUARE.java: -------------------------------------------------------------------------------- 1 | 2 | package org.boris.expr.function.excel; 3 | 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.function.DoubleInOutFunction; 6 | 7 | public class SQUARE extends DoubleInOutFunction 8 | { 9 | 10 | protected double evaluate( double value ) throws ExprException 11 | { 12 | return Math.pow( value, 2.0 ); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/STANDARDIZE.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class STANDARDIZE extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/STDEVA.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class STDEVA extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/STDEVP.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | 7 | public class STDEVP extends STDEV 8 | { 9 | public Expr evaluate(IEvaluationContext context, Expr[] args) 10 | throws ExprException { 11 | return stdevp(context, args); 12 | } 13 | 14 | public static Expr stdevp(IEvaluationContext context, Expr[] args) 15 | throws ExprException { 16 | return stdev(context, args, true); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/STDEVPA.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class STDEVPA extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/STEYX.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class STEYX extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/SUBTOTAL.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class SUBTOTAL extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/SUMX2PY2.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | 4 | public class SUMX2PY2 extends SUMX2MY2 5 | { 6 | protected double eval(double x, double y) { 7 | return Math.pow(x, 2) + Math.pow(y, 2); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/SUMXMY2.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | 4 | public class SUMXMY2 extends SUMX2MY2 5 | { 6 | protected double eval(double x, double y) { 7 | return Math.pow(x - y, 2); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/T.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.ExprString; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | 9 | public class T extends AbstractFunction 10 | { 11 | private static final ExprString EMPTY = new ExprString(""); 12 | 13 | public Expr evaluate(IEvaluationContext context, Expr[] args) 14 | throws ExprException { 15 | assertArgCount(args, 1); 16 | Expr a = evalArg(context, args[0]); 17 | 18 | if (a instanceof ExprString) { 19 | return a; 20 | } else { 21 | return EMPTY; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/TAN.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class TAN extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | return Math.tan(value); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/TANH.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | 6 | public class TANH extends DoubleInOutFunction 7 | { 8 | protected double evaluate(double value) throws ExprException { 9 | return Math.tanh(value); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/TDIST.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class TDIST extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/TIMEVALUE.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class TIMEVALUE extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/TINV.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class TINV extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/TODAY.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import java.util.Date; 4 | 5 | import org.boris.expr.Expr; 6 | import org.boris.expr.ExprDouble; 7 | import org.boris.expr.ExprException; 8 | import org.boris.expr.IEvaluationContext; 9 | import org.boris.expr.function.AbstractFunction; 10 | import org.boris.expr.util.ExcelDate; 11 | 12 | public class TODAY extends AbstractFunction 13 | { 14 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 15 | assertArgCount(args, 0); 16 | return new ExprDouble(ExcelDate.toExcelDate(new Date().getTime())); 17 | } 18 | 19 | public boolean isVolatile() { 20 | return true; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/TREND.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class TREND extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/TRIMMEAN.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class TRIMMEAN extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/TRUE.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprBoolean; 5 | import org.boris.expr.ExprException; 6 | import org.boris.expr.IEvaluationContext; 7 | import org.boris.expr.function.AbstractFunction; 8 | 9 | public class TRUE extends AbstractFunction 10 | { 11 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 12 | assertArgCount(args, 0); 13 | return ExprBoolean.TRUE; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/TTEST.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class TTEST extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/VAR.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.function.AbstractVarianceFunction; 4 | 5 | public class VAR extends AbstractVarianceFunction 6 | { 7 | public VAR() { 8 | super(false, false); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/VARA.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.function.AbstractVarianceFunction; 4 | 5 | public class VARA extends AbstractVarianceFunction 6 | { 7 | public VARA() { 8 | super(true, false); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/VARP.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.function.AbstractVarianceFunction; 4 | 5 | public class VARP extends AbstractVarianceFunction 6 | { 7 | public VARP() { 8 | super(false, true); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/VARPA.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.function.AbstractVarianceFunction; 4 | 5 | public class VARPA extends AbstractVarianceFunction 6 | { 7 | public VARPA() { 8 | super(true, true); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/VLOOKUP.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class VLOOKUP extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/WEEKDAY.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | import org.boris.expr.util.ExcelDate; 6 | 7 | public class WEEKDAY extends DoubleInOutFunction 8 | { 9 | protected double evaluate(double value) throws ExprException { 10 | return ExcelDate.getWeekday(value); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/WEIBULL.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class WEIBULL extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/YEAR.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.ExprException; 4 | import org.boris.expr.function.DoubleInOutFunction; 5 | import org.boris.expr.util.ExcelDate; 6 | 7 | public class YEAR extends DoubleInOutFunction 8 | { 9 | protected double evaluate(double value) throws ExprException { 10 | return ExcelDate.getYear(value); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/function/excel/ZTEST.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.function.excel; 2 | 3 | import org.boris.expr.Expr; 4 | import org.boris.expr.ExprException; 5 | import org.boris.expr.IEvaluationContext; 6 | import org.boris.expr.function.AbstractFunction; 7 | 8 | public class ZTEST extends AbstractFunction 9 | { 10 | public Expr evaluate(IEvaluationContext context, Expr[] args) throws ExprException { 11 | return null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/parser/IParserVisitor.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * This program and the accompanying materials 3 | * are made available under the terms of the Common Public License v1.0 4 | * which accompanies this distribution, and is available at 5 | * http://www.eclipse.org/legal/cpl-v10.html 6 | * 7 | * Contributors: 8 | * Peter Smith 9 | *******************************************************************************/ 10 | package org.boris.expr.parser; 11 | 12 | import org.boris.expr.ExprException; 13 | import org.boris.expr.ExprFunction; 14 | import org.boris.expr.ExprVariable; 15 | 16 | public interface IParserVisitor 17 | { 18 | void annotateVariable(ExprVariable variable) throws ExprException; 19 | 20 | void annotateFunction(ExprFunction function) throws ExprException; 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/util/Counter.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * This program and the accompanying materials 3 | * are made available under the terms of the Common Public License v1.0 4 | * which accompanies this distribution, and is available at 5 | * http://www.eclipse.org/legal/cpl-v10.html 6 | * 7 | * Contributors: 8 | * Peter Smith 9 | *******************************************************************************/ 10 | package org.boris.expr.util; 11 | 12 | import org.boris.expr.Expr; 13 | 14 | public class Counter 15 | { 16 | public int count; 17 | public double value; 18 | public double value2; 19 | public double value3; 20 | public boolean doit = true; 21 | public Expr result; 22 | public int iteration; 23 | public boolean flag; 24 | public Object any; 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/util/GraphTraversalListener.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * This program and the accompanying materials 3 | * are made available under the terms of the Common Public License v1.0 4 | * which accompanies this distribution, and is available at 5 | * http://www.eclipse.org/legal/cpl-v10.html 6 | * 7 | * Contributors: 8 | * Peter Smith 9 | *******************************************************************************/ 10 | package org.boris.expr.util; 11 | 12 | public interface GraphTraversalListener 13 | { 14 | void traverse(Object node); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/util/StringUtil.java: -------------------------------------------------------------------------------- 1 | package org.boris.expr.util; 2 | 3 | 4 | public class StringUtil 5 | { 6 | public static String removeComma( String string ) 7 | { 8 | if ( string != null 9 | && string.length( ) >= 2 10 | && string.startsWith( "'" ) //$NON-NLS-1$ 11 | && string.endsWith( "'" ) ) //$NON-NLS-1$ 12 | { 13 | return string.substring( 1, string.length( ) - 1 ); 14 | } 15 | return string; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/util/ValueFormatter.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * This program and the accompanying materials 3 | * are made available under the terms of the Common Public License v1.0 4 | * which accompanies this distribution, and is available at 5 | * http://www.eclipse.org/legal/cpl-v10.html 6 | * 7 | * Contributors: 8 | * Peter Smith 9 | *******************************************************************************/ 10 | package org.boris.expr.util; 11 | 12 | public class ValueFormatter 13 | { 14 | public static String format(double value, String format) { 15 | return null; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/org/boris/expr/util/ValueParser.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * This program and the accompanying materials 3 | * are made available under the terms of the Common Public License v1.0 4 | * which accompanies this distribution, and is available at 5 | * http://www.eclipse.org/legal/cpl-v10.html 6 | * 7 | * Contributors: 8 | * Peter Smith 9 | *******************************************************************************/ 10 | package org.boris.expr.util; 11 | 12 | public class ValueParser 13 | { 14 | public static Double parse(String text) { 15 | return null; 16 | } 17 | 18 | public static Double parseDate(String text) { 19 | return null; 20 | } 21 | 22 | public static Double parseNumber(String text) { 23 | return null; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/demos/antiSQLInjection/readme.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | This demo illustrates how to use the General SQL Parser library to avoid being 3 | vulnerable to SQL injection on your ASP.NET or Java application 4 | by automatically detecting malicious SQL segment with our operational library. 5 | 6 | Please check [this page](http://www.dpriver.com/blog/anti-sql-injection-tool/) for the detailed information. 7 | 8 | You may also give a try of [the online live demo](http://sqlparser.com/livedemo_redirect.php?demo_id=sql-injection-detector) to find out how it works. 9 | 10 | ## Usage 11 | `java antiSQLInjection [/t dbvendor]` 12 | 13 | ## Related demo 14 | 15 | ## Changes 16 | -------------------------------------------------------------------------------- /src/main/java/demos/benchmark/readme.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | Check how fast this SQL parser library can process SQL in a single thread or in the multi-thread mode. 3 | 4 | ## Usage 5 | `java benchmark` 6 | -------------------------------------------------------------------------------- /src/main/java/demos/columnInWhereClause/WhereVisitor.java: -------------------------------------------------------------------------------- 1 | package demos.columnInWhereClause; 2 | 3 | 4 | import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 5 | import gudusoft.gsqlparser.nodes.TWhereClause; 6 | 7 | public class WhereVisitor extends TParseTreeVisitor { 8 | 9 | @Override 10 | public void preVisit(TWhereClause node) { 11 | super.preVisit(node); 12 | // System.out.println("Find where clause"); 13 | System.out.println("clause:"+node.getCondition().toString()); 14 | 15 | WhereCondition w = new WhereCondition(node.getCondition()); 16 | w.printColumn(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/demos/columnInWhereClause/readme.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | Decode the SQL where clause to get columns used in the where condition. 3 | 4 | ```sql 5 | Select firstname, lastname, age 6 | from Clients 7 | where State = "CA" and City = "Hollywood" 8 | ``` 9 | 10 | the output is 11 | ``` 12 | column: State 13 | Operator: = 14 | value: "CA" 15 | 16 | column: City 17 | Operator: = 18 | value: "Hollywood" 19 | ``` 20 | 21 | ## Usage 22 | `java ColumnInWhereClause` 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/lib/greenplum/greenplum_5.1.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/src/main/java/demos/dbConnect/lib/greenplum/greenplum_5.1.4.jar -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/lib/greenplum/mvn.sh: -------------------------------------------------------------------------------- 1 | mvn install:install-file -Dfile=greenplum_5.1.4.jar -DgroupId=com.greenplum -DartifactId=greenplum -Dversion=5.1.4 -Dpackaging=jar 2 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/lib/hive/mvn.sh: -------------------------------------------------------------------------------- 1 | mvn install:install-file -Dfile=org.jkiss.dbeaver.ext.hive_1.0.49.202010191702.jar -DgroupId=org.apache.hive -DartifactId=hive-jdbc -Dversion=3.1.2 -Dpackaging=jar 2 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/lib/hive/org.jkiss.dbeaver.ext.hive_1.0.49.202010191702.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/src/main/java/demos/dbConnect/lib/hive/org.jkiss.dbeaver.ext.hive_1.0.49.202010191702.jar -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/lib/ibm/db2jcc4-10.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/src/main/java/demos/dbConnect/lib/ibm/db2jcc4-10.1.jar -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/lib/microsoft/mssql-jdbc-8.2.0.jre8.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/src/main/java/demos/dbConnect/lib/microsoft/mssql-jdbc-8.2.0.jre8.jar -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/lib/microsoft/mvn.sh: -------------------------------------------------------------------------------- 1 | mvn install:install-file -Dfile=mssql-jdbc-8.2.0.jre8.jar -DgroupId=com.mssql -DartifactId=mssql -Dversion=7.4 -Dpackaging=jar 2 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/lib/net/mvn.sh: -------------------------------------------------------------------------------- 1 | mvn install:install-file -Dfile=snowflake-jdbc-3.12.9.jar -DgroupId=net.snowflake -DartifactId=snowflake -Dversion=3.12.9 -Dpackaging=jar 2 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/lib/net/snowflake-jdbc-3.12.9.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/src/main/java/demos/dbConnect/lib/net/snowflake-jdbc-3.12.9.jar -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/lib/netezza/netezza-1.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/src/main/java/demos/dbConnect/lib/netezza/netezza-1.0.jar -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/lib/ojdbc/ojdbc-1.1.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/src/main/java/demos/dbConnect/lib/ojdbc/ojdbc-1.1.1.jar -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/lib/redshift/RedshiftJDBC42-no-awssdk-1.2.53.1080.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/src/main/java/demos/dbConnect/lib/redshift/RedshiftJDBC42-no-awssdk-1.2.53.1080.jar -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/lib/redshift/mvn.sh: -------------------------------------------------------------------------------- 1 | mvn install:install-file -Dfile=RedshiftJDBC42-no-awssdk-1.2.53.1080.jar -DgroupId=RedshiftJDBC42 -DartifactId=RedshiftJDBC42 -Dversion=latest -Dpackaging=jar 2 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/lib/teradata/mvn.sh: -------------------------------------------------------------------------------- 1 | mvn install:install-file -Dfile=terajdbc4.jar -DgroupId=com.terajdbc4 -DartifactId=terajdbc4 -Dversion=latest -Dpackaging=jar 2 | 3 | mvn install:install-file -Dfile=tdgssconfig.jar -DgroupId=com.teraconfig4 -DartifactId=teraconfig4 -Dversion=latest -Dpackaging=jar -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/lib/teradata/tdgssconfig.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/src/main/java/demos/dbConnect/lib/teradata/tdgssconfig.jar -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/lib/teradata/terajdbc4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/src/main/java/demos/dbConnect/lib/teradata/terajdbc4.jar -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/TAzureSQLDataSource.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv; 2 | 3 | import gudusoft.gsqlparser.EDbVendor; 4 | 5 | public class TAzureSQLDataSource extends DbSchemaSQLDataSource { 6 | 7 | public TAzureSQLDataSource(String hostName, String port, String account, String password, String database) { 8 | super(EDbVendor.dbvazuresql, hostName, port, account, password, database); 9 | setSystemDbsSchemas("master/dbo", "master/sys", "*/INFORMATION_SCHEMA"); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/TGreenplumSQLDataSource.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv; 2 | 3 | import gudusoft.gsqlparser.EDbVendor; 4 | 5 | public class TGreenplumSQLDataSource extends DbSchemaSQLDataSource { 6 | 7 | public TGreenplumSQLDataSource(String hostName, String port, String account, String password) { 8 | super(EDbVendor.dbvgreenplum, hostName, port, account, password, "postgres"); 9 | setSystemDbsSchemas("*/information_schema", "*/pg_catalog"); 10 | } 11 | 12 | public TGreenplumSQLDataSource(String hostName, String port, String account, String password, String database) { 13 | super(EDbVendor.dbvgreenplum, hostName, port, account, password, database); 14 | setSystemDbsSchemas("*/information_schema", "*/pg_catalog"); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/TMssqlSQLDataSource.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv; 2 | 3 | import gudusoft.gsqlparser.EDbVendor; 4 | 5 | public class TMssqlSQLDataSource extends DbSchemaSQLDataSource { 6 | 7 | public TMssqlSQLDataSource(String hostName, String port, String account, String password) { 8 | super(EDbVendor.dbvmssql, hostName, port, account, password); 9 | setSystemDbsSchemas("master/dbo", "master/sys", "*/INFORMATION_SCHEMA"); 10 | } 11 | 12 | public TMssqlSQLDataSource(String hostName, String port, String account, String password, String database) { 13 | super(EDbVendor.dbvmssql, hostName, port, account, password, database); 14 | setSystemDbsSchemas("master/dbo", "master/sys", "*/INFORMATION_SCHEMA"); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/TNetezzaSQLDataSource.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv; 2 | 3 | import gudusoft.gsqlparser.EDbVendor; 4 | 5 | public class TNetezzaSQLDataSource extends DbSchemaSQLDataSource { 6 | 7 | public TNetezzaSQLDataSource(String hostName, String port, String account, String password, String database) { 8 | super(EDbVendor.dbvnetezza, hostName, port, account, password, database); 9 | setSystemDbsSchemas("SYSTEM/ADMIN"); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/TOracleSQLDataSource.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv; 2 | 3 | import gudusoft.gsqlparser.EDbVendor; 4 | 5 | public class TOracleSQLDataSource extends SchemaSQLDataSource { 6 | 7 | public TOracleSQLDataSource(String hostName, String port, String account, String password) { 8 | super(EDbVendor.dbvoracle, hostName, port, account, password, "orcl"); 9 | setSystemSchemas("SYS", "SYSTEM"); 10 | } 11 | 12 | public TOracleSQLDataSource(String hostName, String port, String account, String password, String database) { 13 | super(EDbVendor.dbvoracle, hostName, port, account, password, database); 14 | setSystemSchemas("SYS", "SYSTEM"); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/TPostgreSQLDataSource.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv; 2 | 3 | import gudusoft.gsqlparser.EDbVendor; 4 | 5 | public class TPostgreSQLDataSource extends DbSchemaSQLDataSource { 6 | 7 | public TPostgreSQLDataSource(String hostName, String port, String account, String password) { 8 | super(EDbVendor.dbvpostgresql, hostName, port, account, password, "postgres"); 9 | setSystemDbsSchemas("*/information_schema", "*/pg_catalog"); 10 | } 11 | 12 | public TPostgreSQLDataSource(String hostName, String port, String account, String password, String database) { 13 | super(EDbVendor.dbvpostgresql, hostName, port, account, password, database); 14 | setSystemDbsSchemas("*/information_schema", "*/pg_catalog"); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/TRedshiftSQLDataSource.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv; 2 | 3 | import gudusoft.gsqlparser.EDbVendor; 4 | 5 | public class TRedshiftSQLDataSource extends DbSchemaSQLDataSource { 6 | 7 | public TRedshiftSQLDataSource(String hostName, String port, String account, String password) { 8 | super(EDbVendor.dbvredshift, hostName, port, account, password, "postgres"); 9 | setSystemDbsSchemas("*/information_schema", "*/pg_catalog"); 10 | } 11 | 12 | public TRedshiftSQLDataSource(String hostName, String port, String account, String password, String database) { 13 | super(EDbVendor.dbvredshift, hostName, port, account, password, database); 14 | setSystemDbsSchemas("*/information_schema", "*/pg_catalog"); 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/TTeradataSQLDataSource.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv; 2 | 3 | import gudusoft.gsqlparser.EDbVendor; 4 | import gudusoft.gsqlparser.sqlenv.DatabaseSQLDataSource; 5 | 6 | public class TTeradataSQLDataSource extends DatabaseSQLDataSource { 7 | 8 | public TTeradataSQLDataSource(String hostName, String port, String account, String password, String database) { 9 | super(EDbVendor.dbvteradata, hostName, port, account, password, database); 10 | setSystemDatabases("DBC"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/connect/ConnectionFactory.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.connect; 2 | 3 | import demos.sqlenv.TSQLDataSource; 4 | import demos.sqlenv.connect.strategy.DbStrategyFactory; 5 | 6 | import java.sql.Connection; 7 | 8 | public class ConnectionFactory { 9 | 10 | public static Connection getConnection(TSQLDataSource datasource) throws Exception { 11 | return DbStrategyFactory.getInstance().getDbStrategy(datasource.getDbType()).getDbConnect() 12 | .toConnect(datasource); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/connect/Connector.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.connect; 2 | 3 | import demos.sqlenv.TSQLDataSource; 4 | 5 | import java.sql.Connection; 6 | 7 | public interface Connector { 8 | 9 | Connection toConnect(TSQLDataSource datasource) throws Exception; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/connect/strategy/DbStrategy.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.connect.strategy; 2 | 3 | import demos.sqlenv.connect.Connector; 4 | 5 | public interface DbStrategy { 6 | 7 | Connector getDbConnect(); 8 | 9 | } 10 | 11 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/connect/strategy/impl/AzureSQLStrategy.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.connect.strategy.impl; 2 | 3 | import demos.sqlenv.connect.Connector; 4 | import demos.sqlenv.connect.impl.AzureSQLConnector; 5 | import demos.sqlenv.connect.strategy.DbStrategy; 6 | 7 | /** 8 | * CemB 9 | */ 10 | public class AzureSQLStrategy implements DbStrategy { 11 | @Override 12 | public Connector getDbConnect() { 13 | return new AzureSQLConnector(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/connect/strategy/impl/Db2Strategy.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.connect.strategy.impl; 2 | 3 | import demos.sqlenv.connect.Connector; 4 | import demos.sqlenv.connect.impl.DB2Connector; 5 | import demos.sqlenv.connect.strategy.DbStrategy; 6 | 7 | /** 8 | * CemB 9 | */ 10 | public class Db2Strategy implements DbStrategy { 11 | @Override 12 | public Connector getDbConnect() { 13 | return new DB2Connector(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/connect/strategy/impl/GreenplumStrategy.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.connect.strategy.impl; 2 | 3 | import demos.sqlenv.connect.Connector; 4 | import demos.sqlenv.connect.impl.GreenplumConnector; 5 | import demos.sqlenv.connect.strategy.DbStrategy; 6 | 7 | public class GreenplumStrategy implements DbStrategy { 8 | @Override 9 | public Connector getDbConnect() { 10 | return new GreenplumConnector(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/connect/strategy/impl/HiveStrategy.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.connect.strategy.impl; 2 | 3 | import demos.sqlenv.connect.Connector; 4 | import demos.sqlenv.connect.impl.HiveConnector; 5 | import demos.sqlenv.connect.strategy.DbStrategy; 6 | 7 | public class HiveStrategy implements DbStrategy { 8 | @Override 9 | public Connector getDbConnect() { 10 | return new HiveConnector(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/connect/strategy/impl/MysqlV5Strategy.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.connect.strategy.impl; 2 | 3 | import demos.sqlenv.connect.Connector; 4 | import demos.sqlenv.connect.impl.MysqlV5Connector; 5 | import demos.sqlenv.connect.strategy.DbStrategy; 6 | 7 | public class MysqlV5Strategy implements DbStrategy { 8 | 9 | @Override 10 | public Connector getDbConnect() { 11 | return new MysqlV5Connector(); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/connect/strategy/impl/MysqlV8Strategy.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.connect.strategy.impl; 2 | 3 | import demos.sqlenv.connect.Connector; 4 | import demos.sqlenv.connect.impl.MysqlV8Connector; 5 | import demos.sqlenv.connect.strategy.DbStrategy; 6 | 7 | public class MysqlV8Strategy implements DbStrategy { 8 | @Override 9 | public Connector getDbConnect() { 10 | return new MysqlV8Connector(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/connect/strategy/impl/NetezzaStrategy.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.connect.strategy.impl; 2 | 3 | import demos.sqlenv.connect.Connector; 4 | import demos.sqlenv.connect.impl.NetezzaConnector; 5 | import demos.sqlenv.connect.strategy.DbStrategy; 6 | 7 | public class NetezzaStrategy implements DbStrategy { 8 | @Override 9 | public Connector getDbConnect() { 10 | return new NetezzaConnector(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/connect/strategy/impl/OracleStrategy.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.connect.strategy.impl; 2 | 3 | import demos.sqlenv.connect.Connector; 4 | import demos.sqlenv.connect.impl.OracleConnector; 5 | import demos.sqlenv.connect.strategy.DbStrategy; 6 | 7 | public class OracleStrategy implements DbStrategy { 8 | @Override 9 | public Connector getDbConnect() { 10 | return new OracleConnector(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/connect/strategy/impl/PostgreSQLStrategy.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.connect.strategy.impl; 2 | 3 | import demos.sqlenv.connect.Connector; 4 | import demos.sqlenv.connect.impl.PostgreSQLConnector; 5 | import demos.sqlenv.connect.strategy.DbStrategy; 6 | public class PostgreSQLStrategy implements DbStrategy { 7 | @Override 8 | public Connector getDbConnect() { 9 | return new PostgreSQLConnector(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/connect/strategy/impl/RedshiftStrategy.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.connect.strategy.impl; 2 | 3 | import demos.sqlenv.connect.Connector; 4 | import demos.sqlenv.connect.impl.RedshiftConnector; 5 | import demos.sqlenv.connect.strategy.DbStrategy; 6 | 7 | /** 8 | * CemB 9 | */ 10 | public class RedshiftStrategy implements DbStrategy { 11 | @Override 12 | public Connector getDbConnect() { 13 | return new RedshiftConnector(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/connect/strategy/impl/SnowflakeStrategy.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.connect.strategy.impl; 2 | 3 | import demos.sqlenv.connect.Connector; 4 | import demos.sqlenv.connect.impl.SnowflakeConnector; 5 | import demos.sqlenv.connect.strategy.DbStrategy; 6 | 7 | /** 8 | * CemB 9 | */ 10 | public class SnowflakeStrategy implements DbStrategy { 11 | @Override 12 | public Connector getDbConnect() { 13 | return new SnowflakeConnector(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/connect/strategy/impl/SqlServerStrategy.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.connect.strategy.impl; 2 | 3 | import demos.sqlenv.connect.Connector; 4 | import demos.sqlenv.connect.impl.SQLServerConnector; 5 | import demos.sqlenv.connect.strategy.DbStrategy; 6 | 7 | public class SqlServerStrategy implements DbStrategy { 8 | @Override 9 | public Connector getDbConnect() { 10 | return new SQLServerConnector(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/connect/strategy/impl/TeradataStrategy.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.connect.strategy.impl; 2 | 3 | import demos.sqlenv.connect.Connector; 4 | import demos.sqlenv.connect.impl.TeradataConnector; 5 | import demos.sqlenv.connect.strategy.DbStrategy; 6 | 7 | public class TeradataStrategy implements DbStrategy { 8 | @Override 9 | public Connector getDbConnect() { 10 | return new TeradataConnector(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/constant/DDLExportOperation.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.constant; 2 | 3 | /** 4 | * CemB 5 | */ 6 | public interface DDLExportOperation { 7 | 8 | String MySQL = "mysql2DDL"; 9 | String Oracle = "oracle2DDL"; 10 | String DB2 = "db22DDL"; 11 | String PostgreSQL = "postgresql2DDL"; 12 | String SQLServer = "mssql2DDL"; 13 | String Snowflake = "snowflake2DDL"; 14 | String Netezza = "netezza2DDL"; 15 | String Greenplum = "greenplum2DDL"; 16 | String Redshift = "redshift2DDL"; 17 | String Teradata = "teradata2DDL"; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/constant/DDLOperator.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.constant; 2 | 3 | /** 4 | * CemB 5 | */ 6 | public enum DDLOperator { 7 | drop, create; 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/constant/DbOperation.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.constant; 2 | 3 | public enum DbOperation { 4 | TODDL("2DDL"), TOJSON("2JSON"); 5 | 6 | private String operation; 7 | 8 | private DbOperation(String operation) { 9 | this.operation = operation; 10 | } 11 | 12 | public String getOperation() { 13 | return operation; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/constant/JSONExportOperation.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.constant; 2 | 3 | /** 4 | * CemB 5 | */ 6 | public interface JSONExportOperation { 7 | 8 | String MySQL = "mysql2JSON"; 9 | String Oracle = "oracle2JSON"; 10 | String DB2 = "db22JSON"; 11 | String PostgreSQL = "postgresql2JSON"; 12 | String SQLServer = "mssql2JSON"; 13 | String Snowflake = "snowflake2JSON"; 14 | String Netezza = "netezza2JSON"; 15 | String Greenplum = "greenplum2JSON"; 16 | String Redshift = "redshift2JSON"; 17 | String Teradata = "teradata2JSON"; 18 | String AzureSQL = "azuresql2JSON"; 19 | String HIVE = "hive2JSON"; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/constant/SystemConstant.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.constant; 2 | 3 | public interface SystemConstant { 4 | 5 | String name = "grabit"; 6 | String version = "v1.7.0"; 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/metadata/model/Column.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.metadata.model; 2 | 3 | public class Column { 4 | 5 | private String dataType; 6 | private String name; 7 | private String comment; 8 | 9 | public String getName() { 10 | return name; 11 | } 12 | public void setName(String name) { 13 | this.name = name; 14 | } 15 | public String getDataType() { 16 | return dataType; 17 | } 18 | public void setDataType(String dataType) { 19 | this.dataType = dataType; 20 | } 21 | public String getComment() { 22 | return comment; 23 | } 24 | public void setComment(String comment) { 25 | this.comment = comment; 26 | } 27 | 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/metadata/model/DBLink.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.metadata.model; 2 | 3 | public class DBLink { 4 | 5 | private String owner; 6 | private String name; 7 | private String userName; 8 | private String host; 9 | 10 | public String getOwner() { 11 | return owner; 12 | } 13 | 14 | public void setOwner(String owner) { 15 | this.owner = owner; 16 | } 17 | 18 | public String getName() { 19 | return name; 20 | } 21 | 22 | public void setName(String name) { 23 | this.name = name; 24 | } 25 | 26 | public String getUserName() { 27 | return userName; 28 | } 29 | 30 | public void setUserName(String userName) { 31 | this.userName = userName; 32 | } 33 | 34 | public String getHost() { 35 | return host; 36 | } 37 | 38 | public void setHost(String host) { 39 | this.host = host; 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/metadata/model/Sequence.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.metadata.model; 2 | 3 | public class Sequence { 4 | private String database; 5 | private String schema; 6 | private String name; 7 | private String incrementBy; 8 | 9 | public String getDatabase() { 10 | return database; 11 | } 12 | 13 | public void setDatabase(String database) { 14 | this.database = database; 15 | } 16 | 17 | public String getSchema() { 18 | return schema; 19 | } 20 | 21 | public void setSchema(String schema) { 22 | this.schema = schema; 23 | } 24 | 25 | public String getName() { 26 | return name; 27 | } 28 | 29 | public void setName(String name) { 30 | this.name = name; 31 | } 32 | 33 | public String getIncrementBy() { 34 | return incrementBy; 35 | } 36 | 37 | public void setIncrementBy(String incrementBy) { 38 | this.incrementBy = incrementBy; 39 | } 40 | } -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/operation/DbOperationFactory.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.operation; 2 | 3 | import demos.sqlenv.constant.DbOperation; 4 | import demos.sqlenv.operation.strategy.DbOperationStrategyFactory; 5 | 6 | public class DbOperationFactory { 7 | 8 | public static DbOperationService getDbOperationService(String dbType, DbOperation operation) { 9 | return DbOperationStrategyFactory.getInstance().getDbOperationStrategy(dbType, operation); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/java/demos/sqlenv/operation/DbOperationService.java: -------------------------------------------------------------------------------- 1 | package demos.sqlenv.operation; 2 | 3 | import demos.sqlenv.TSQLDataSource; 4 | 5 | public interface DbOperationService { 6 | 7 | T operate(TSQLDataSource datasource); 8 | 9 | } -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/azuresql/database.sql: -------------------------------------------------------------------------------- 1 | select '['+ name + ']' from sys.databases; -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/azuresql/query.sql: -------------------------------------------------------------------------------- 1 | select 2 | b.text as sourceCode, 3 | case a.type 4 | when 'V' Then 'view' 5 | when 'P' Then 'procedure' 6 | when 'TR' Then 'trigger' 7 | when 'FN' Then 'function' 8 | when 'TF' Then 'function' 9 | when 'IF' Then 'function' 10 | else a.type END as dbOjbType, 11 | '['+ a.name + ']' AS dbObjName, 12 | null as groupName, 13 | '['+ '%s' + ']' as databaseName, 14 | '['+ c.name + ']' as schemaName 15 | from 16 | sys.objects a, 17 | sys.syscomments b , 18 | sys.schemas c 19 | where 20 | a.object_id = b.id 21 | and a.schema_id = c.schema_id 22 | and a.type in ('TR', 'FN', 'P', 'TF', 'IF', 'V') -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/db2/databases/default-cmd.sql: -------------------------------------------------------------------------------- 1 | SELECT DB_NAME as databaseName FROM SYSIBMADM.LOCKS_HELD -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/db2/queries-p/default-cmd.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | NULL AS sourceCode, 3 | v.TABNAME AS viewName, 4 | NULL AS groupName, 5 | '%s' AS databaseName, 6 | v.TABSCHEMA AS schemaName 7 | FROM 8 | SYSCAT.TABLES v -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/db2/queries/default-cmd.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | v.TEXT AS sourceCode, 3 | v.VIEWNAME AS viewName, 4 | NULL AS groupName, 5 | '%s' AS databaseName, 6 | v.VIEWSCHEMA AS schemaName 7 | FROM 8 | SYSCAT.VIEWS v -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/db2/tables/default-cmd.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | '%s' as dbName, 3 | t.TABSCHEMA as schemaName, 4 | t.TABNAME as tableName, 5 | case when t.TYPE = 'V' then 'true' 6 | when t.TYPE = 'A' then 'false' 7 | else 'false' 8 | end as isView, 9 | c.COLNAME, 10 | c.TYPENAME, 11 | null as comments 12 | from 13 | syscat.tables t, 14 | syscat.columns c 15 | where 16 | t.TABNAME = c.TABNAME 17 | and t.TABSCHEMA = c.TABSCHEMA 18 | and t.TABSCHEMA not in ('SYSCAT') 19 | order by t.TABSCHEMA, t.TABNAME, c.COLNO -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/greenplum/database.sql: -------------------------------------------------------------------------------- 1 | SELECT '"'||datname||'"' FROM pg_database -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/mssql/database.sql: -------------------------------------------------------------------------------- 1 | select '['+ name + ']' from master.sys.databases; -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/mssql/dblink.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | 'unknown' as "owner", 3 | '['+ s.name + ']' as linkName, 4 | '['+ l.remote_name + ']' as userName, 5 | s.data_source as hostName 6 | FROM 7 | sys.servers s 8 | left outer join 9 | sys.linked_logins l on s.server_id = l.server_id 10 | WHERE 11 | s.is_linked = 1; 12 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/mssql/query.sql: -------------------------------------------------------------------------------- 1 | select 2 | b.definition as sourceCode, 3 | case a.type 4 | when 'V' Then 'view' 5 | when 'P' Then 'procedure' 6 | when 'TR' Then 'trigger' 7 | when 'FN' Then 'function' 8 | when 'TF' Then 'function' 9 | when 'IF' Then 'function' 10 | else a.type END as dbOjbType, 11 | '['+ a.name + ']' AS dbObjName, 12 | null as groupName, 13 | '['+ '%s' + ']' as databaseName, 14 | '['+ c.name + ']' as schemaName 15 | from 16 | [%s].sys.objects a, 17 | [%s].sys.sql_modules b , 18 | [%s].sys.schemas c 19 | where 20 | a.object_id = b.object_id 21 | and a.schema_id = c.schema_id 22 | and a.type in ('TR', 'FN', 'P', 'TF', 'IF', 'V') -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/mysql/database.sql: -------------------------------------------------------------------------------- 1 | show databases; -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/netezza/database.sql: -------------------------------------------------------------------------------- 1 | SELECT Database AS databasename FROM _v_database -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/netezza/query_procedure.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | ''||'' AS sourceCode, 3 | 'procedure'||'' AS type, 4 | '"' || v.PROCEDURESIGNATURE || '"' AS procedureName, 5 | '"' || u.GROUPNAME || '"' AS groupName, 6 | '"' || o.DATABASE || '"' AS databaseName, 7 | '"' || v.OWNER || '"' AS schemaName, 8 | v.RETURNS AS procedureReturn, 9 | v.PROCEDURESOURCE AS procedureSource 10 | FROM 11 | _V_PROCEDURE v 12 | LEFT JOIN _V_GROUP u ON 13 | u.OBJID = v.OBJID 14 | LEFT JOIN _v_objs_owned o ON 15 | o.objid = v.objid 16 | WHERE 17 | o.DATABASE = '%s'; -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/netezza/query_view.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | 'CREATE OR REPLACE VIEW '|| v.VIEWNAME || ' AS ' || v.DEFINITION AS sourceCode, 3 | 'view'||'' AS type, 4 | '"' || v.VIEWNAME || '"' AS viewName, 5 | '"' || u.GROUPNAME || '"' AS groupName, 6 | '"' || o.DATABASE || '"' AS databaseName, 7 | '"' || v.OWNER || '"' AS schemaName 8 | FROM 9 | _V_VIEW v 10 | LEFT JOIN _V_GROUP u ON 11 | u.OBJID = v.OBJID 12 | LEFT JOIN _v_objs_owned o ON 13 | o.objid = v.objid 14 | WHERE 15 | o.DATABASE = '%s'; -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/netezza/schema.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | '"' || clo.TABLE_CAT || '"' AS databaseName , 3 | '"' || clo.TABLE_SCHEM || '"' AS schemaName, 4 | '"' || clo.TABLE_NAME || '"' AS tableName , 5 | CASE 6 | WHEN t.TABLE_TYPE = 'SYSTEM VIEW' THEN 'true' 7 | WHEN t.TABLE_TYPE = 'VIEW' THEN 'true' 8 | ELSE 'false' 9 | END AS isView, 10 | '"' || clo.COLUMN_NAME || '"' AS columnName, 11 | clo.TYPE_NAME AS dataType, 12 | clo.REMARKS as comments 13 | FROM 14 | _V_JDBC_COLUMNS1 clo, 15 | _V_JDBC_TABLES2 t 16 | WHERE 17 | clo.TABLE_SCHEM = t.TABLE_SCHEM 18 | AND clo.TABLE_CAT = t.TABLE_CAT 19 | AND clo.TABLE_NAME = t.TABLE_NAME 20 | AND clo.TABLE_CAT = '%s' 21 | order by clo.TABLE_SCHEM,clo.TABLE_NAME; -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/netezza/synonyms.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | '"' || o.DATABASE || '"' AS databaseName, 3 | '"' || v.OWNER || '"' as schemaName, 4 | '"' || v.SYNONYM_NAME || '"' as name, 5 | '"' || v.REFSCHEMA || '"' AS sourceSchema, 6 | '"' || v.REFOBJNAME || '"' AS sourceName, 7 | '"' || v.REFDATABASE || '"' AS sourceDbLinkName 8 | FROM _v_synonym v 9 | LEFT JOIN _V_GROUP u ON 10 | u.OBJID = v.OBJID 11 | LEFT JOIN _v_objs_owned o ON 12 | o.objid = v.objid 13 | WHERE 14 | o.DATABASE = '%s'; -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/oracle/database.sql: -------------------------------------------------------------------------------- 1 | select '"'||username||'"' from all_users -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/oracle/dblink.sql: -------------------------------------------------------------------------------- 1 | /* IMPORTANT: If you modify this file, rename it to cmd.sql (so it won't be overwritten when you upgrade lionfish). 2 | Only cmd.sql will be used when both exist.*/ 3 | select 4 | '"'||dbl.owner||'"' as owner, 5 | '"'||dbl.db_link||'"' as linkName, 6 | '"'||dbl.username||'"' as userName, 7 | dbl.host as hostName 8 | from ALL_DB_LINKS dbl -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/oracle/sequences.sql: -------------------------------------------------------------------------------- 1 | select 2 | '"'||'%database'||'"' as databaseName, 3 | '"'||s.SEQUENCE_OWNER||'"' as schemaName, 4 | '"'||s.SEQUENCE_NAME||'"' as name, 5 | s.INCREMENT_BY as incrementBy 6 | from ALL_SEQUENCES s 7 | where 8 | s.SEQUENCE_OWNER = '%schema' 9 | and s.SEQUENCE_OWNER NOT IN ('SYS','SYSTEM') -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/oracle/synonyms.sql: -------------------------------------------------------------------------------- 1 | select 2 | '"'||'%database'||'"' as databaseName, 3 | '"'||s.OWNER||'"' as schemaName, 4 | '"'||s.SYNONYM_NAME||'"' as name, 5 | '"'||s.TABLE_OWNER||'"' as sourceSchema, 6 | '"'||s.TABLE_NAME||'"' as sourceName, 7 | case when s.DB_LINK is null then null else '"'||s.DB_LINK||'"' end as sourceDbLinkName 8 | from all_synonyms s, 9 | all_objects o 10 | where 11 | s.OWNER = '%schema' 12 | and s.table_owner = o.owner 13 | and s.table_name = o.object_name 14 | and o.object_type in 15 | ('MATERIALIZED VIEW' 16 | ,'TABLE' 17 | ,'SYNONYM' 18 | ,'VIEW') 19 | and s.OWNER NOT IN ('SYS','SYSTEM') 20 | 21 | -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/postgresql/database.sql: -------------------------------------------------------------------------------- 1 | SELECT '"'||datname||'"' FROM pg_database -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/postgresql/schema.sql: -------------------------------------------------------------------------------- 1 | select 2 | '"' || t.table_catalog || '"' as databaseName, 3 | '"' || t.table_schema || '"' as schemaName, 4 | '"' || t.table_name || '"' as tableName, 5 | case when t.table_type = 'VIEW' then 'true' 6 | when t.table_type = 'BASE TABLE' then 'false' 7 | else 'false' 8 | end as isView, 9 | '"' || c.column_name || '"' as columnName, 10 | c.data_type as dataType, 11 | null as comments 12 | from 13 | information_schema.tables t, 14 | information_schema.columns c 15 | where 16 | t.table_catalog = '%s' 17 | and t.table_catalog = c.table_catalog 18 | and t.table_schema = c.table_schema 19 | and t.table_name = c.table_name 20 | and t.table_schema not in ('pg_catalog', 'information_schema') 21 | order by t.table_catalog, t.table_schema, t.table_name, c.ordinal_position; -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/redshift/database.sql: -------------------------------------------------------------------------------- 1 | SELECT '"'||datname||'"' FROM pg_database -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/snowflake/database.sql: -------------------------------------------------------------------------------- 1 | show databases; -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/snowflake/schema.sql: -------------------------------------------------------------------------------- 1 | select 2 | '"' || t.table_catalog || '"' as databaseName, 3 | '"' || t.table_schema || '"' as schemaName, 4 | '"' || t.table_name || '"' as tableName, 5 | case when t.table_type = 'VIEW' then 'true' 6 | when t.table_type = 'BASE TABLE' then 'false' 7 | else 'false' 8 | end as isView, 9 | '"' || c.column_name || '"' as columnName, 10 | c.data_type as dataType, 11 | null as comments 12 | from 13 | "%s".information_schema.tables t, 14 | "%s".information_schema.columns c 15 | where 16 | t.table_catalog = c.table_catalog 17 | and t.table_schema = c.table_schema 18 | and t.table_name = c.table_name 19 | and upper(t.table_schema) not in ('INFORMATION_SCHEMA') 20 | order by t.table_catalog, t.table_schema, t.table_name, c.ordinal_position; -------------------------------------------------------------------------------- /src/main/java/demos/dbConnect/src/main/resources/demos/sqlenv/teradata/database.sql: -------------------------------------------------------------------------------- 1 | select DatabaseName from "DBC".Databases; -------------------------------------------------------------------------------- /src/main/java/demos/dlineage/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Class-Path: . lib/gudusoft.gsqlparser.jar lib/sqlflow-exporter.jar 3 | Main-Class: demos.dlineage.DataFlowAnalyzer 4 | 5 | -------------------------------------------------------------------------------- /src/main/java/demos/dlineage/buildJar.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cur_dir=$(pwd) 4 | 5 | src_dir=$cur_dir 6 | bin_dir=../../../../../lib 7 | class_dir=$cur_dir/class 8 | 9 | 10 | rm -rf $src_dir/sources.list 11 | find $src_dir -name "*.java" > $src_dir/sources.list 12 | cat $src_dir/sources.list 13 | 14 | mkdir $cur_dir/lib 15 | cp $bin_dir/gudusoft.gsqlparser.jar $cur_dir/lib 16 | rm -rf $class_dir 17 | rm -rf $class_dir/lib 18 | mkdir $class_dir 19 | mkdir $class_dir/lib 20 | cp $cur_dir/MANIFEST.MF $class_dir 21 | cp -r $bin_dir/gudusoft.gsqlparser.jar $class_dir/lib 22 | 23 | 24 | 25 | 26 | javac -d $class_dir -cp .:$bin_dir/gudusoft.gsqlparser.jar -g -sourcepath $src_dir @$src_dir/sources.list 27 | 28 | cd $class_dir 29 | jar -cvfm $cur_dir/data_flow_analyzer.jar MANIFEST.MF * 30 | rm -rf $class_dir 31 | -------------------------------------------------------------------------------- /src/main/java/demos/dlineage/class/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Class-Path: lib/gudusoft.gsqlparser.jar 3 | Main-Class: demos.dlineage.DataFlowAnalyzer 4 | -------------------------------------------------------------------------------- /src/main/java/demos/dlineage/sample/demo.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO deptsal 2 | (dept_no, 3 | dept_name, 4 | salary) 5 | SELECT d.deptno, 6 | d.dname, 7 | SUM(e.sal + Nvl(e.comm, 0)) AS sal 8 | FROM dept d 9 | left join (SELECT * 10 | FROM emp 11 | WHERE hiredate > DATE '1980-01-01') e 12 | ON e.deptno = d.deptno 13 | GROUP BY d.deptno, 14 | d.dname; 15 | -------------------------------------------------------------------------------- /src/main/java/demos/dlineage/sqlflow-data-lineage-model-reference.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/src/main/java/demos/dlineage/sqlflow-data-lineage-model-reference.pdf -------------------------------------------------------------------------------- /src/main/java/demos/dlineage/sqlflow-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo_java/9b505111614b18478e3855b508b182efc5ab458b/src/main/java/demos/dlineage/sqlflow-settings.png -------------------------------------------------------------------------------- /src/main/java/demos/dlineageBasic/model/ddl/schema/indexColumn.java: -------------------------------------------------------------------------------- 1 | package demos.dlineageBasic.model.ddl.schema; 2 | 3 | import org.simpleframework.xml.Attribute; 4 | import org.simpleframework.xml.Element; 5 | 6 | @Element(name="index-column") 7 | public class indexColumn { 8 | 9 | @Attribute(required = true) 10 | private String name; 11 | 12 | @Attribute(required = false) 13 | private String size; 14 | 15 | public String getName() { 16 | return name; 17 | } 18 | 19 | public void setName(String name) { 20 | this.name = name; 21 | } 22 | 23 | public String getSize() { 24 | return size; 25 | } 26 | 27 | public void setSize(String size) { 28 | this.size = size; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/demos/dlineageBasic/model/ddl/schema/reference.java: -------------------------------------------------------------------------------- 1 | package demos.dlineageBasic.model.ddl.schema; 2 | 3 | import org.simpleframework.xml.Attribute; 4 | 5 | public class reference { 6 | @Attribute(required = true) 7 | private String foreign; 8 | 9 | @Attribute(required = true) 10 | private String local; 11 | 12 | public String getForeign() { 13 | return foreign; 14 | } 15 | 16 | public void setForeign(String foreign) { 17 | this.foreign = foreign; 18 | } 19 | 20 | public String getLocal() { 21 | return local; 22 | } 23 | 24 | public void setLocal(String local) { 25 | this.local = local; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/demos/dlineageBasic/model/ddl/schema/uniqueColumn.java: -------------------------------------------------------------------------------- 1 | package demos.dlineageBasic.model.ddl.schema; 2 | 3 | import org.simpleframework.xml.Attribute; 4 | import org.simpleframework.xml.Element; 5 | 6 | @Element(name="unique-column") 7 | public class uniqueColumn { 8 | 9 | @Attribute(required = true) 10 | private String name; 11 | 12 | public String getName() { 13 | return name; 14 | } 15 | 16 | public void setName(String name) { 17 | this.name = name; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/demos/dlineageBasic/model/view/Clause.java: -------------------------------------------------------------------------------- 1 | package demos.dlineageBasic.model.view; 2 | 3 | public enum Clause { 4 | SELECT, WHERE, JOIN, ORDERBY, GROUPBY, CONNECTBY, STARTWITH, CREATEVIEW, UNDEFINE, UPDATE, MERGE; 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/demos/dlineageBasic/model/xml/columnImpactResult.java: -------------------------------------------------------------------------------- 1 | package demos.dlineageBasic.model.xml; 2 | 3 | import java.util.List; 4 | 5 | import org.simpleframework.xml.ElementList; 6 | import org.simpleframework.xml.Root; 7 | 8 | @Root(name = "columnImpactResult") 9 | public class columnImpactResult { 10 | 11 | @ElementList(entry = "targetColumn", inline = true, required = false) 12 | private List columns; 13 | 14 | @ElementList(entry = "table", inline = true, required = false) 15 | private List tables; 16 | 17 | public List getColumns() { 18 | return columns; 19 | } 20 | 21 | public void setColumns(List columns) { 22 | this.columns = columns; 23 | } 24 | 25 | public List
getTables() { 26 | return tables; 27 | } 28 | 29 | public void setTables(List
tables) { 30 | this.tables = tables; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/demos/formatsql/readme.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | Tidy and improve SQL readability with different format options. 3 | The output can be in html format as well. 4 | 5 | ```sql 6 | WITH upd AS ( 7 | UPDATE employees SET sales_count = sales_count + 1 WHERE id = 8 | (SELECT sales_person FROM accounts WHERE name = 'Acme Corporation') 9 | RETURNING * 10 | ) 11 | INSERT INTO employees_log SELECT *, current_timestamp FROM upd;"; 12 | ``` 13 | 14 | formatted SQL 15 | ```sql 16 | WITH upd 17 | AS ( UPDATE employees 18 | SET sales_count = sales_count + 1 19 | WHERE ID = (SELECT sales_person 20 | FROM accounts 21 | WHERE NAME = 'Acme Corporation') RETURNING * ) 22 | INSERT INTO employees_log 23 | SELECT *, 24 | Current_timestamp 25 | FROM upd; 26 | ``` 27 | 28 | ## Usage 29 | `java formatsql sqlfile.sql` 30 | 31 | ## [Format options](formatoptions.md) 32 | -------------------------------------------------------------------------------- /src/main/java/demos/getStmtTables/readme.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | Iterates all SQL statements in the input SQL script and list all tables. 3 | 4 | Please check [scantable demo](../scantable) for a more elegant way to iterate table and columns. 5 | 6 | To get a complete list of table and columns involved in the SQL script, please use [gettablecolumns demo](../gettablecolumns). 7 | 8 | ## Usage 9 | `java getStmtTables sqlfile.sql` 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/main/java/demos/getTableJoinType/readme.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | A simple demo to illustrate how to get table and join type from a select statement. 3 | 4 | ```sql 5 | SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate 6 | FROM Orders 7 | INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID; 8 | ``` 9 | 10 | ``` 11 | Join Type table Name 12 | --------------------------------------- 13 | Inner Join Customers 14 | ``` 15 | 16 | ## Usage 17 | `java getTableJoinType sqlfile.sql` 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/main/java/demos/getcrud/readme.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | Get how table is effected(select/delete/insert/update) in the SQL statement. 3 | 4 | ```sql 5 | UPDATE Customers 6 | SET ContactName = 'Alfred Schmidt', City= 'Frankfurt' 7 | WHERE CustomerID = 1; 8 | ``` 9 | 10 | Result: 11 | ``` 12 | CRUD: update, Table:Customers 13 | Columns: 14 | ContactName 15 | City 16 | CustomerID 17 | 18 | Summary 19 | Customers 0(s) 0(c) 0(d) 0(i) 1(u) 20 | ``` 21 | 22 | 23 | ## Usage 24 | `java getcrud sqlfile.sql` 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/main/java/demos/getsourcetoken/readme.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | The lexer takes a sequence of characters (input SQL statement) and output a sequence of tokens. 3 | This demo lists the detailed information about each token. 4 | 5 | 6 | ## Usage 7 | `java getsourcetoken sqlfile.sql` 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/main/java/demos/getstatement/readme.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | Get the SQL statement type and all the source tokens of each statement. 3 | 4 | ## Usage 5 | `java getstatement sqlfile.sql` 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/main/java/demos/joinRelationAnalyze/readme.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | Get join table,column and operator in the SQL where clause or join condition. 3 | 4 | ```sql 5 | SELECT i_acctdt, 6 | hscf.lncfno, 7 | hscf.lncfbr AS lncfbr, 8 | rcbl.loanbl AS overbl, 9 | rcbl.matudt, 10 | hscf.isdism AS inrvin, 11 | hscf.osdism AS ovrvin 12 | FROM dcam_cn_ln_hscf hscf, 13 | temp_dcag_am_cn_ln_rcbl_1 rcbl 14 | WHERE 15 | hscf.lncfno = rcbl.lncfno 16 | AND hscf.matudt > rcbl.i_acctdt; 17 | ``` 18 | 19 | the output is 20 | ``` 21 | JoinTable1 JoinColumn1 JoinTable2 JoinColumn2 JoinType JoinOperator 22 | dcam_cn_ln_hscf matudt temp_dcag_am_cn_ln_rcbl_1 i_acctdt where > 23 | dcam_cn_ln_hscf lncfno temp_dcag_am_cn_ln_rcbl_1 lncfno where = 24 | ``` 25 | 26 | ## Usage 27 | `joinRelationAnalyze [/t ]` 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/main/java/demos/scansql/readme.md: -------------------------------------------------------------------------------- 1 | scan sql 2 | 3 | ### Binary version 4 | 5 | http://ftp.gudusoft.com/dl/scansql/scanSQL_trial.zip 6 | 7 | scansql /t mssql /d path_to_directory_includes_sql_files -------------------------------------------------------------------------------- /src/main/java/demos/scantable/readme.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | Illustrates a simple way to iterates table and columns in the input SQL statement. 3 | 4 | To get a complete list of table and columns involved in the SQL script, please use [gettablecolumns demo](../gettablecolumns). 5 | 6 | ## Usage 7 | `java scantable scriptfile [/o ] [/t ]` 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/main/java/demos/search/readme.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | Search the specified parse tree node name in sql files under the directory recursively . 3 | The file name will be printed out if it include the specified parse tree node name. 4 | 5 | Please check [toXML demo](./visitors) to find out more information on how to use the visitor pattern introduced in this library. 6 | 7 | ## Usage 8 | `java searchClause parse_tree_node_name directory` 9 | 10 | 11 | Content in the test.sql: 12 | ```sql 13 | SELECT 14 | CONVERT(VARCHAR(10), GETDATE(), 104) AS ActualDate 15 | FROM SomeTable 16 | ``` 17 | 18 | run this command: 19 | 20 | `java searchClause TFunctionCall directory_include_sql_files` 21 | 22 | will return: 23 | 24 | `Find TFunctionCall in test.sql` 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/main/java/demos/sqldetect/AliasModel.java: -------------------------------------------------------------------------------- 1 | package demos.sqldetect; 2 | 3 | public class AliasModel { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/demos/sqldetect/CTEDetect.java: -------------------------------------------------------------------------------- 1 | package demos.sqldetect; 2 | 3 | import gudusoft.gsqlparser.nodes.TCTE; 4 | 5 | public class CTEDetect { 6 | 7 | public void detectCTE(QueryModel queryModel, TCTE cte) { 8 | if (cte.getSubquery() != null) { 9 | queryModel.getSqlDetect().detectSubQuery(queryModel, 10 | cte.getSubquery()); 11 | } 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/demos/sqldetect/ColumnLocation.java: -------------------------------------------------------------------------------- 1 | package demos.sqldetect; 2 | 3 | public enum ColumnLocation { 4 | SELECTLIST, WHERE, JOINCONDITION, LEFTOFSETCLAUSE, RIGHTOFSETCLAUSE, GROUPBY, ORDERY, OTHER; 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/demos/sqldetect/FieldModel.java: -------------------------------------------------------------------------------- 1 | package demos.sqldetect; 2 | 3 | import gudusoft.gsqlparser.nodes.TResultColumn; 4 | 5 | public class FieldModel { 6 | private ColumnModel refColumn; 7 | private TResultColumn model; 8 | 9 | public ColumnModel getRefColumn() { 10 | return refColumn; 11 | } 12 | 13 | public void setRefColumn(ColumnModel refColumn) { 14 | this.refColumn = refColumn; 15 | } 16 | 17 | public TResultColumn getModel() { 18 | return model; 19 | } 20 | 21 | public void setModel(TResultColumn model) { 22 | this.model = model; 23 | } 24 | 25 | public String getAlias() { 26 | if (model.getAliasClause() != null 27 | && model.getAliasClause().getAliasName() != null) { 28 | return model.getAliasClause().getAliasName().toString(); 29 | } 30 | return ""; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/demos/sqldetect/FunctionDetect.java: -------------------------------------------------------------------------------- 1 | package demos.sqldetect; 2 | 3 | import gudusoft.gsqlparser.nodes.TFunctionCall; 4 | 5 | public class FunctionDetect { 6 | 7 | public void detectFunction(QueryModel queryModel, TFunctionCall functionCall) { 8 | // TODO Auto-generated method stub 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/demos/sqldetect/SQLType.java: -------------------------------------------------------------------------------- 1 | package demos.sqldetect; 2 | 3 | public enum SQLType { 4 | SELECT, INSERT, DELETE, UPDATE, MERGE, TRUNCATE, CREATE, DROP, UDPATE, OTHER; 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/demos/sqldetect/TableAction.java: -------------------------------------------------------------------------------- 1 | package demos.sqldetect; 2 | 3 | public enum TableAction { 4 | CREATE,SELECT,UDPATE,INSERT,DELETE,MERGE,DROP,TRUNCATE, OTHER; 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/demos/sqltranslator/MssqlFunctionChecker.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.sqltranslator; 3 | 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import gudusoft.gsqlparser.nodes.TFunctionCall; 6 | 7 | public class MssqlFunctionChecker extends FunctionChecker 8 | { 9 | 10 | public static FunctionCheckResult checkFunction( TFunctionCall function, 11 | EDbVendor targetVendor ) 12 | { 13 | return null; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/demos/sqltranslator/exception/FunctionIdentifierException.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.sqltranslator.exception; 3 | 4 | public class FunctionIdentifierException extends Exception 5 | { 6 | 7 | private static final long serialVersionUID = -7454214725358065966L; 8 | 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/demos/sqltranslator/exception/SpecialIdentifierException.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.sqltranslator.exception; 3 | 4 | public class SpecialIdentifierException extends Exception 5 | { 6 | 7 | private static final long serialVersionUID = -3914857710751203476L; 8 | 9 | public SpecialIdentifierException( String message ) 10 | { 11 | super( message ); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/demos/tracedatalineage/Execute.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.tracedatalineage; 3 | 4 | import java.util.LinkedHashMap; 5 | 6 | public class Execute 7 | { 8 | 9 | private Procedure container; 10 | private Procedure target; 11 | private LinkedHashMap variables; 12 | 13 | public Procedure getContainer( ) 14 | { 15 | return container; 16 | } 17 | 18 | public Procedure getTarget( ) 19 | { 20 | return target; 21 | } 22 | 23 | public LinkedHashMap getVariables( ) 24 | { 25 | return variables; 26 | } 27 | 28 | public void setContainer( Procedure container ) 29 | { 30 | this.container = container; 31 | } 32 | 33 | public void setTarget( Procedure target ) 34 | { 35 | this.target = target; 36 | } 37 | 38 | public void setVariables( LinkedHashMap variables ) 39 | { 40 | this.variables = variables; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/demos/tracedatalineage/Parameter.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.tracedatalineage; 3 | 4 | public class Parameter extends Variable 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/demos/tracedatalineage/Statement.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.tracedatalineage; 3 | 4 | import java.util.List; 5 | 6 | public class Statement 7 | { 8 | private List tableRelations; 9 | 10 | public List getTableRelations( ) 11 | { 12 | return tableRelations; 13 | } 14 | 15 | public void setTableRelations( List tableRelations ) 16 | { 17 | this.tableRelations = tableRelations; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/demos/tracedatalineage/TableRelation.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.tracedatalineage; 3 | 4 | import java.util.Map; 5 | 6 | public class TableRelation 7 | { 8 | 9 | private Map relations; 10 | 11 | private Table table; 12 | 13 | public Map getRelations( ) 14 | { 15 | return relations; 16 | } 17 | 18 | public Table getTable( ) 19 | { 20 | return table; 21 | } 22 | 23 | public void setRelations( Map relations ) 24 | { 25 | this.relations = relations; 26 | } 27 | 28 | public void setTable( Table table ) 29 | { 30 | this.table = table; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/demos/tracedatalineage/Variable.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.tracedatalineage; 3 | 4 | public class Variable 5 | { 6 | 7 | private String name; 8 | 9 | public String getName( ) 10 | { 11 | return name; 12 | } 13 | 14 | public void setName( String name ) 15 | { 16 | this.name = name; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/demos/tracedatalineage/View.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.tracedatalineage; 3 | 4 | public class View extends Table 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/commonTest/gspCommon.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.commonTest; 2 | 3 | public class gspCommon { 4 | public static String BASE_SQL_DIR = "../gsp_java_core/gsp_sqlfiles/TestCases/"; 5 | public static String BASE_SQL_DIR_PUBLIC = BASE_SQL_DIR+"public/"; 6 | public static String BASE_SQL_DIR_PRIVATE = BASE_SQL_DIR+"private/"; 7 | public static String BASE_SQL_DIR_PUBLIC_ALLVERSIONS = BASE_SQL_DIR_PUBLIC+"allversions/"; 8 | public static String BASE_SQL_DIR_PUBLIC_JAVA = BASE_SQL_DIR_PUBLIC+"java/"; 9 | public static String BASE_SQL_DIR_PRIVATE_ALLVERSIONS = BASE_SQL_DIR_PRIVATE+"allversions/"; 10 | public static String BASE_SQL_DIR_PRIVATE_JAVA = BASE_SQL_DIR_PRIVATE+"java/"; 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/commonTest/testEmptyInput.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.commonTest; 2 | 3 | import gudusoft.gsqlparser.EDbVendor; 4 | import gudusoft.gsqlparser.TGSqlParser; 5 | import junit.framework.TestCase; 6 | 7 | public class testEmptyInput extends TestCase { 8 | 9 | public void testCollate(){ 10 | TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvteradata); 11 | sqlparser.sqltext = ""; 12 | assertTrue(sqlparser.parse() == 0); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/commonTest/testSpecialCharacter.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.commonTest; 2 | 3 | import gudusoft.gsqlparser.EDbVendor; 4 | import gudusoft.gsqlparser.TGSqlParser; 5 | import junit.framework.TestCase; 6 | 7 | public class testSpecialCharacter extends TestCase { 8 | 9 | public void test1() { 10 | TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvoracle); 11 | sqlparser.sqltext = "CREATE OR REPLACE VIEW test_view AS\n" + 12 | "Select CASE WHEN test.code_number IN ('05','09','10','11','13','14','18','19','31','34','36','37','38','55') then 'Y' else 'N' end as code_number\n" + 13 | "from test.table"; 14 | assertTrue(sqlparser.parse() == 0); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/commonTest/testTMssqlTruncateTable.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.commonTest; 2 | 3 | 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import gudusoft.gsqlparser.TGSqlParser; 6 | 7 | 8 | import gudusoft.gsqlparser.stmt.TTruncateStatement; 9 | import junit.framework.TestCase; 10 | 11 | public class testTMssqlTruncateTable extends TestCase { 12 | 13 | public void testTableName(){ 14 | 15 | TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvmssql); 16 | sqlparser.sqltext = "TRUNCATE TABLE T1"; 17 | assertTrue(sqlparser.parse() == 0); 18 | TTruncateStatement stmt = (TTruncateStatement)sqlparser.sqlstatements.get(0); 19 | assertTrue(stmt.getTableName().toString().equalsIgnoreCase("T1")); 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/commonTest/testUTF8.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.commonTest; 2 | 3 | import gudusoft.gsqlparser.EDbVendor; 4 | import gudusoft.gsqlparser.TGSqlParser; 5 | import junit.framework.TestCase; 6 | 7 | public class testUTF8 extends TestCase { 8 | 9 | public void test1(){ 10 | 11 | TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvteradata); 12 | //sqlparser.setSqlCharset("UTF-8"); 13 | sqlparser.sqlfilename = gspCommon.BASE_SQL_DIR_PUBLIC_JAVA +"teradata\\utf-8-LEFT SINGLE QUOTATION MARK.sql"; 14 | 15 | assertTrue(sqlparser.parse() == 0); 16 | 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/commonTest/testUse.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.commonTest; 2 | 3 | import gudusoft.gsqlparser.EDbVendor; 4 | import gudusoft.gsqlparser.TGSqlParser; 5 | import gudusoft.gsqlparser.stmt.TUseDatabase; 6 | import junit.framework.TestCase; 7 | 8 | public class testUse extends TestCase { 9 | 10 | public void test1(){ 11 | 12 | TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvsparksql); 13 | sqlparser.sqltext = "USE userdb;"; 14 | assertTrue(sqlparser.parse() == 0); 15 | 16 | TUseDatabase use = (TUseDatabase)sqlparser.sqlstatements.get(0); 17 | assertTrue(use.getDatabaseName().toString().equalsIgnoreCase("userdb")); 18 | 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/dlineageTest/readme.md: -------------------------------------------------------------------------------- 1 | Test cases for DataFlowAnalyzer 2 | 3 | https://github.com/sqlparser/sqlflow/tree/master/backend/application/src/test/java/com/gudusoft/gspLive/application/controller/sqlflow -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testAthenaFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testAthenaFiles extends TestCase { 8 | 9 | public void testAthena(){ 10 | parseTest.parsefiles(EDbVendor.dbvathena, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + "athena"); 11 | parseTest.parsefiles(EDbVendor.dbvathena, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + "athena"); 12 | //parsefiles(EDbVendor.dbvathena, gspCommon.BASE_SQL_DIR_PRIVATE_ALLVERSIONS +"athena"); 13 | parseTest.parsefiles(EDbVendor.dbvathena, gspCommon.BASE_SQL_DIR_PRIVATE_JAVA + "athena"); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testBigQueryFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testBigQueryFiles extends TestCase { 8 | 9 | public void testBigquery(){ 10 | parseTest.parsefiles(EDbVendor.dbvbigquery, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + "bigquery"); 11 | parseTest.parsefiles(EDbVendor.dbvbigquery, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + "bigquery"); 12 | parseTest.parsefiles(EDbVendor.dbvbigquery, gspCommon.BASE_SQL_DIR_PRIVATE_JAVA + "bigquery"); 13 | } 14 | 15 | } 16 | 17 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testCouchbaeFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.EDbVendor; 4 | import gudusoft.gsqlparser.commonTest.gspCommon; 5 | import junit.framework.TestCase; 6 | 7 | import static gudusoft.gsqlparser.sqlFilesTest.parseTest.parsefiles; 8 | 9 | public class testCouchbaeFiles extends TestCase { 10 | 11 | public void testCouchbase(){ 12 | parsefiles(EDbVendor.dbvcouchbase, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + "couchbase"); 13 | } 14 | 15 | } 16 | 17 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testDB2Files.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testDB2Files extends TestCase { 8 | public void testDB2(){ 9 | 10 | parseTest.parsefiles(EDbVendor.dbvdb2, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + "db2"); 11 | parseTest.parsefiles(EDbVendor.dbvdb2, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + "db2"); 12 | parseTest.parsefiles(EDbVendor.dbvdb2, gspCommon.BASE_SQL_DIR_PRIVATE_ALLVERSIONS + "db2"); 13 | parseTest.parsefiles(EDbVendor.dbvdb2, gspCommon.BASE_SQL_DIR_PRIVATE_JAVA + "db2"); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testDatabricksFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testDatabricksFiles extends TestCase { 8 | public void testDatabricksSql(){ 9 | parseTest.parsefiles(EDbVendor.dbvdatabricks, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + "databricks"); 10 | parseTest.parsefiles(EDbVendor.dbvdatabricks, gspCommon.BASE_SQL_DIR_PRIVATE_JAVA + "databricks"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testGaussDBFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testGaussDBFiles extends TestCase { 8 | 9 | public void testGaussDB(){ 10 | parseTest.parsefiles(EDbVendor.dbvgaussdb, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + "gaussdb"); 11 | parseTest.parsefiles(EDbVendor.dbvgaussdb, gspCommon.BASE_SQL_DIR_PRIVATE_JAVA + "gaussdb"); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testGreenplumFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testGreenplumFiles extends TestCase { 8 | public void testGreenplum(){ 9 | parseTest.parsefiles(EDbVendor.dbvgreenplum, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + "greenplum"); 10 | parseTest.parsefiles(EDbVendor.dbvgreenplum, gspCommon.BASE_SQL_DIR_PRIVATE_ALLVERSIONS + "greenplum"); 11 | parseTest.parsefiles(EDbVendor.dbvgreenplum, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + "greenplum"); 12 | parseTest.parsefiles(EDbVendor.dbvgreenplum, gspCommon.BASE_SQL_DIR_PRIVATE_JAVA + "greenplum"); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testHanaFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testHanaFiles extends TestCase { 8 | public void testHana(){ 9 | parseTest.parsefiles(EDbVendor.dbvhana, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + "hana"); 10 | parseTest.parsefiles(EDbVendor.dbvhana, gspCommon.BASE_SQL_DIR_PRIVATE +"java/hana/"); 11 | parseTest.parsefiles(EDbVendor.dbvhana, gspCommon.BASE_SQL_DIR_PUBLIC +"java/hana/"); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testHiveFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testHiveFiles extends TestCase { 8 | public void testHive(){ 9 | parseTest.parsefiles(EDbVendor.dbvhive, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + "hive"); 10 | parseTest.parsefiles(EDbVendor.dbvhive, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + "hive"); 11 | parseTest.parsefiles(EDbVendor.dbvhive, gspCommon.BASE_SQL_DIR_PRIVATE_JAVA + "hive"); 12 | parseTest.parsefiles(EDbVendor.dbvhive, gspCommon.BASE_SQL_DIR_PRIVATE_ALLVERSIONS + "hive"); 13 | 14 | } 15 | } 16 | 17 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testImpalaFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testImpalaFiles extends TestCase { 8 | public void testImpala(){ 9 | parseTest.parsefiles(EDbVendor.dbvimpala, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + "impala"); 10 | parseTest.parsefiles(EDbVendor.dbvimpala, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + "impala"); 11 | parseTest.parsefiles(EDbVendor.dbvimpala, gspCommon.BASE_SQL_DIR_PRIVATE_JAVA + "impala"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testInformixFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testInformixFiles extends TestCase { 8 | public void testInformix(){ 9 | parseTest.parsefiles(EDbVendor.dbvinformix, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + "informix"); 10 | parseTest.parsefiles(EDbVendor.dbvinformix, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + "informix"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testMDXFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.EDbVendor; 4 | import gudusoft.gsqlparser.commonTest.gspCommon; 5 | import junit.framework.TestCase; 6 | 7 | public class testMDXFiles extends TestCase { 8 | 9 | public void testMdx(){ 10 | parseTest.parsefiles(EDbVendor.dbvmdx, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + "mdx"); 11 | parseTest.parsefiles(EDbVendor.dbvmdx, gspCommon.BASE_SQL_DIR_PRIVATE +"java/mdx/passed"); 12 | } 13 | 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testNetezzaFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testNetezzaFiles extends TestCase { 8 | 9 | 10 | public void testNetezza(){ 11 | parseTest.parsefiles(EDbVendor.dbvnetezza, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + "netezza"); 12 | parseTest.parsefiles(EDbVendor.dbvnetezza, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + "netezza"); 13 | parseTest.parsefiles(EDbVendor.dbvnetezza, gspCommon.BASE_SQL_DIR_PRIVATE_JAVA + "netezza"); 14 | } 15 | 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testODBCFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.EDbVendor; 4 | import gudusoft.gsqlparser.commonTest.gspCommon; 5 | import junit.framework.TestCase; 6 | 7 | public class testODBCFiles extends TestCase { 8 | public void testODBC(){ 9 | parseTest.parsefiles(EDbVendor.dbvodbc, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS +"odbc"); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testOpenedgeFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.EDbVendor; 4 | import gudusoft.gsqlparser.commonTest.gspCommon; 5 | import junit.framework.TestCase; 6 | 7 | public class testOpenedgeFiles extends TestCase { 8 | public void testOpenedge(){ 9 | parseTest.parsefiles(EDbVendor.dbvopenedge, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS +"openedge"); 10 | parseTest.parsefiles(EDbVendor.dbvopenedge, gspCommon.BASE_SQL_DIR_PRIVATE +"java/openedge"); 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testOracleFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testOracleFiles extends TestCase { 8 | 9 | public void testOracle(){ 10 | parseTest.parsefiles(EDbVendor.dbvoracle, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS +"oracle"); 11 | parseTest.parsefiles(EDbVendor.dbvoracle, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA +"oracle"); 12 | parseTest.parsefiles(EDbVendor.dbvoracle, gspCommon.BASE_SQL_DIR_PRIVATE_ALLVERSIONS +"oracle"); 13 | parseTest.parsefiles(EDbVendor.dbvoracle, gspCommon.BASE_SQL_DIR_PRIVATE_JAVA +"oracle"); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testPostgreSQLFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testPostgreSQLFiles extends TestCase { 8 | 9 | public void testPostgresql(){ 10 | parseTest.parsefiles(EDbVendor.dbvpostgresql, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + "postgresql/verified"); 11 | parseTest.parsefiles(EDbVendor.dbvpostgresql, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + "postgresql"); 12 | parseTest.parsefiles(EDbVendor.dbvpostgresql, gspCommon.BASE_SQL_DIR_PRIVATE_JAVA + "postgresql"); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testPrestoFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.EDbVendor; 4 | import gudusoft.gsqlparser.commonTest.gspCommon; 5 | import junit.framework.TestCase; 6 | 7 | public class testPrestoFiles extends TestCase { 8 | public void testPrestosql(){ 9 | parseTest.parsefiles(EDbVendor.dbvpresto, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + "presto"); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testRedshiftFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testRedshiftFiles extends TestCase { 8 | public void testRedshift(){ 9 | parseTest.parsefiles(EDbVendor.dbvredshift, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + "redshift"); 10 | parseTest.parsefiles(EDbVendor.dbvredshift, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + "redshift"); 11 | parseTest.parsefiles(EDbVendor.dbvredshift, gspCommon.BASE_SQL_DIR_PRIVATE_ALLVERSIONS + "redshift"); 12 | parseTest.parsefiles(EDbVendor.dbvredshift, gspCommon.BASE_SQL_DIR_PRIVATE_JAVA + "redshift"); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testSOQLFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testSOQLFiles extends TestCase { 8 | public void testSoql(){ 9 | parseTest.parsefiles(EDbVendor.dbvsoql, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA +"salesforce_soql"); 10 | } 11 | } -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testSQLServerFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | import static gudusoft.gsqlparser.sqlFilesTest.parseTest.parsefiles; 8 | 9 | public class testSQLServerFiles extends TestCase { 10 | public void testSQLServer(){ 11 | String db = "mssql"; 12 | parsefiles(EDbVendor.dbvmssql, gspCommon.BASE_SQL_DIR_PRIVATE_ALLVERSIONS + db); 13 | parsefiles(EDbVendor.dbvmssql, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + db); 14 | parsefiles(EDbVendor.dbvmssql, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + db); 15 | parsefiles(EDbVendor.dbvmssql, gspCommon.BASE_SQL_DIR_PRIVATE_JAVA + db); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testSnowflakeFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testSnowflakeFiles extends TestCase { 8 | public void testSnowflake(){ 9 | parseTest.parsefiles(EDbVendor.dbvsnowflake, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + "snowflake"); 10 | parseTest.parsefiles(EDbVendor.dbvsnowflake, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + "snowflake"); 11 | parseTest.parsefiles(EDbVendor.dbvsnowflake, gspCommon.BASE_SQL_DIR_PRIVATE_ALLVERSIONS + "snowflake"); 12 | parseTest.parsefiles(EDbVendor.dbvsnowflake, gspCommon.BASE_SQL_DIR_PRIVATE_JAVA + "snowflake"); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testSparksqlFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testSparksqlFiles extends TestCase { 8 | public void testSparksql(){ 9 | parseTest.parsefiles(EDbVendor.dbvsparksql, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + "sparksql"); 10 | parseTest.parsefiles(EDbVendor.dbvsparksql, gspCommon.BASE_SQL_DIR_PRIVATE_ALLVERSIONS + "sparksql"); 11 | parseTest.parsefiles(EDbVendor.dbvsparksql, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + "sparksql"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testSybaseFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testSybaseFiles extends TestCase { 8 | public void testSybase(){ 9 | String db = "sybase"; 10 | parseTest.parsefiles(EDbVendor.dbvsybase, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + db); 11 | parseTest.parsefiles(EDbVendor.dbvsybase, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + db); 12 | parseTest.parsefiles(EDbVendor.dbvsybase, gspCommon.BASE_SQL_DIR_PRIVATE_JAVA + db); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testTeradataFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testTeradataFiles extends TestCase { 8 | public void testTeradata(){ 9 | String db = "teradata"; 10 | parseTest.parsefiles(EDbVendor.dbvteradata, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + db+"/verified"); 11 | parseTest.parsefiles(EDbVendor.dbvteradata, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + db); 12 | parseTest.parsefiles(EDbVendor.dbvteradata, gspCommon.BASE_SQL_DIR_PRIVATE_JAVA + db); 13 | parseTest.parsefiles(EDbVendor.dbvteradata, gspCommon.BASE_SQL_DIR_PRIVATE_ALLVERSIONS + db); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/test/java/gudusoft/gsqlparser/sqlFilesTest/testVerticaFiles.java: -------------------------------------------------------------------------------- 1 | package gudusoft.gsqlparser.sqlFilesTest; 2 | 3 | import gudusoft.gsqlparser.commonTest.gspCommon; 4 | import gudusoft.gsqlparser.EDbVendor; 5 | import junit.framework.TestCase; 6 | 7 | public class testVerticaFiles extends TestCase { 8 | public void testVertica(){ 9 | String db = "vertica"; 10 | parseTest.parsefiles(EDbVendor.dbvvertica, gspCommon.BASE_SQL_DIR_PUBLIC_ALLVERSIONS + db); 11 | parseTest.parsefiles(EDbVendor.dbvvertica, gspCommon.BASE_SQL_DIR_PRIVATE_JAVA + db); 12 | parseTest.parsefiles(EDbVendor.dbvvertica, gspCommon.BASE_SQL_DIR_PUBLIC_JAVA + db); 13 | } 14 | } --------------------------------------------------------------------------------