├── .gitignore ├── README.md ├── dotnet ├── lib │ ├── gudusoft.gsqlparser.dll │ └── netcore │ │ └── gudusoft.gsqlparser.dll └── src │ ├── demos │ ├── analyzesp │ │ ├── App.config │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── analyzesp.cs │ │ ├── demos.analyzesp.csproj │ │ └── demos.analyzesp.csproj.user │ ├── antiSQLInjection │ │ ├── App.config │ │ ├── ESQLInjectionType.cs │ │ ├── GContext.cs │ │ ├── GEval.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── TAntiSQLInjection.cs │ │ ├── TSQLInjection.cs │ │ ├── UnknownValue.cs │ │ ├── antiSQLInjection.cs │ │ ├── demos.antiSQLInjection.csproj │ │ ├── demos.antiSQLInjection.csproj.user │ │ └── dll │ │ │ └── Expr4CSharp.dll │ ├── build.proj │ ├── checksyntax │ │ ├── App.config │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── checksyntax.cs │ │ ├── demos.checksyntax.csproj │ │ └── demos.checksyntax.csproj.user │ ├── columnImpact │ │ ├── App.config │ │ ├── ColumnImpact.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── demos.columnImpact.csproj │ │ └── demos.columnImpact.csproj.user │ ├── convertJoin │ │ ├── App.config │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── convertJoin.cs │ │ ├── demos.convertJoin.csproj │ │ └── demos.convertJoin.csproj.user │ ├── dataFlowAnalyzer │ │ ├── App.config │ │ ├── DataFlowAnalyzer.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── dataflow │ │ │ └── model │ │ │ │ ├── AbstractRelation.cs │ │ │ │ ├── DataFlowRelation.cs │ │ │ │ ├── ImpactRelation.cs │ │ │ │ ├── ModelBindingManager.cs │ │ │ │ ├── ModelFactory.cs │ │ │ │ ├── QueryTable.cs │ │ │ │ ├── QueryTableRelationElement.cs │ │ │ │ ├── RecordSetRelation.cs │ │ │ │ ├── Relation.cs │ │ │ │ ├── RelationElement.cs │ │ │ │ ├── RelationType.cs │ │ │ │ ├── ResultColumn.cs │ │ │ │ ├── ResultColumnRelationElement.cs │ │ │ │ ├── ResultSet.cs │ │ │ │ ├── SelectResultSet.cs │ │ │ │ ├── SelectSetResultColumn.cs │ │ │ │ ├── SelectSetResultSet.cs │ │ │ │ ├── Table.cs │ │ │ │ ├── TableColumn.cs │ │ │ │ ├── TableColumnRelationElement.cs │ │ │ │ ├── TableRelationElement.cs │ │ │ │ ├── View.cs │ │ │ │ ├── ViewColumn.cs │ │ │ │ ├── ViewColumnRelationElement.cs │ │ │ │ └── xml │ │ │ │ ├── PositionUtil.cs │ │ │ │ ├── XML2Model.cs │ │ │ │ ├── column.cs │ │ │ │ ├── dataflow.cs │ │ │ │ ├── relation.cs │ │ │ │ ├── sourceColumn.cs │ │ │ │ ├── table.cs │ │ │ │ └── targetColumn.cs │ │ ├── demos.dataFlowAnalyzer.csproj │ │ └── demos.dataFlowAnalyzer.csproj.user │ ├── dlineage │ │ ├── App.config │ │ ├── Dlineage.cs │ │ ├── DlineageRelation.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── StringHelperClass.cs │ │ ├── columnImpact │ │ │ └── ColumnImpact.cs │ │ ├── demos.dlineage.csproj │ │ ├── demos.dlineage.csproj.user │ │ ├── metadata │ │ │ ├── DDLParser.cs │ │ │ ├── DDLSchema.cs │ │ │ ├── MetaDB.cs │ │ │ ├── ProcedureRelationScanner.cs │ │ │ └── ViewParser.cs │ │ ├── model │ │ │ ├── ddl │ │ │ │ └── schema │ │ │ │ │ ├── column.cs │ │ │ │ │ ├── database.cs │ │ │ │ │ ├── foreignKey.cs │ │ │ │ │ ├── index.cs │ │ │ │ │ ├── indexColumn.cs │ │ │ │ │ ├── reference.cs │ │ │ │ │ ├── table.cs │ │ │ │ │ ├── unique.cs │ │ │ │ │ └── uniqueColumn.cs │ │ │ ├── metadata │ │ │ │ ├── ColumnMetaData.cs │ │ │ │ ├── MetaScanner.cs │ │ │ │ ├── ProcedureMetaData.cs │ │ │ │ └── TableMetaData.cs │ │ │ ├── view │ │ │ │ ├── AliasModel.cs │ │ │ │ ├── Clause.cs │ │ │ │ ├── ColumnImpactModel.cs │ │ │ │ ├── ColumnModel.cs │ │ │ │ ├── FieldModel.cs │ │ │ │ ├── ReferenceModel.cs │ │ │ │ └── TableModel.cs │ │ │ └── xml │ │ │ │ ├── XML2Model.cs │ │ │ │ ├── columnImpactResult.cs │ │ │ │ ├── linkTable.cs │ │ │ │ ├── procedure.cs │ │ │ │ ├── procedureImpactResult.cs │ │ │ │ ├── sourceColumn.cs │ │ │ │ ├── sourceProcedure.cs │ │ │ │ ├── table.cs │ │ │ │ ├── targetColumn.cs │ │ │ │ └── targetProcedure.cs │ │ └── util │ │ │ └── SQLUtil.cs │ ├── dlineageCommon │ │ ├── App.config │ │ ├── DlineageCommon.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ └── AssemblyInfo.cs.bak │ │ ├── columnImpact │ │ │ └── ColumnImpact.cs │ │ ├── demos.dlineageCommon.csproj │ │ ├── metadata │ │ │ ├── DDLParser.cs │ │ │ ├── DDLSchema.cs │ │ │ ├── MetaDB.cs │ │ │ ├── ProcedureRelationScanner.cs │ │ │ └── ViewParser.cs │ │ ├── model │ │ │ ├── ddl │ │ │ │ └── schema │ │ │ │ │ ├── column.cs │ │ │ │ │ ├── database.cs │ │ │ │ │ ├── foreignKey.cs │ │ │ │ │ ├── index.cs │ │ │ │ │ ├── indexColumn.cs │ │ │ │ │ ├── reference.cs │ │ │ │ │ ├── table.cs │ │ │ │ │ ├── unique.cs │ │ │ │ │ └── uniqueColumn.cs │ │ │ ├── metadata │ │ │ │ ├── ColumnMetaData.cs │ │ │ │ ├── MetaScanner.cs │ │ │ │ ├── ProcedureMetaData.cs │ │ │ │ └── TableMetaData.cs │ │ │ ├── view │ │ │ │ ├── AliasModel.cs │ │ │ │ ├── Clause.cs │ │ │ │ ├── ColumnImpactModel.cs │ │ │ │ ├── ColumnModel.cs │ │ │ │ ├── FieldModel.cs │ │ │ │ ├── ReferenceModel.cs │ │ │ │ └── TableModel.cs │ │ │ └── xml │ │ │ │ ├── XML2Model.cs │ │ │ │ ├── columnImpactResult.cs │ │ │ │ ├── linkTable.cs │ │ │ │ ├── procedure.cs │ │ │ │ ├── procedureImpactResult.cs │ │ │ │ ├── sourceColumn.cs │ │ │ │ ├── sourceProcedure.cs │ │ │ │ ├── table.cs │ │ │ │ ├── targetColumn.cs │ │ │ │ └── targetProcedure.cs │ │ └── util │ │ │ └── SQLUtil.cs │ ├── dlineageRelation │ │ ├── App.config │ │ ├── DlineageRelation.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── demos.dlineageRelation.csproj │ │ └── demos.dlineageRelation.csproj.user │ ├── expressionTraverser │ │ ├── App.config │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── demos.expressionTraverser.csproj │ │ ├── demos.expressionTraverser.csproj.user │ │ └── expressionTraverser.cs │ ├── formatsql │ │ ├── App.config │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── demos.formatsql.csproj │ │ ├── demos.formatsql.csproj.user │ │ ├── formatsql.cs │ │ ├── output │ │ │ └── html │ │ │ │ ├── HtmlHighlightingElementRender.cs │ │ │ │ ├── HtmlOutputConfig.cs │ │ │ │ └── HtmlRenderUtil.cs │ │ └── utils │ │ │ ├── HtmlToRtfConverter.cs │ │ │ ├── htmlcssparser.cs │ │ │ ├── htmllexicalanalyzer.cs │ │ │ ├── htmlparser.cs │ │ │ ├── htmlschema.cs │ │ │ ├── htmltokentype.cs │ │ │ └── htmltoxamlconverter.cs │ ├── gettablecolumns │ │ ├── App.config │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── columnTableStmt.cs │ │ ├── columnsInResultColumn.cs │ │ ├── demos.gettablecolumns.csproj │ │ ├── demos.gettablecolumns.csproj.user │ │ ├── joinRelationAnalyze.cs │ │ ├── sample.cs │ │ └── whatClause.cs │ ├── joinRelationAnalyze │ │ ├── App.config │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── demos.joinRelationAnalyze.csproj │ │ ├── demos.joinRelationAnalyze.csproj.user │ │ └── joinRelationAnalyze.cs │ ├── lib │ │ ├── TGetTableColumn.cs │ │ ├── columnInClause.cs │ │ └── xmlVisitor.cs │ ├── listGSPInfo │ │ ├── App.config │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── demos.listGSPInfo.csproj │ ├── readme.md │ ├── removeColumn │ │ ├── App.config │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── demos.removeColumn.csproj │ │ ├── demos.removeColumn.csproj.user │ │ └── removeColumn.cs │ ├── removeCondition │ │ ├── App.config │ │ ├── ExpressionChecker.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── demos.removeCondition.csproj │ │ ├── demos.removeCondition.csproj.user │ │ └── removeCondition.cs │ ├── removevars │ │ ├── App.config │ │ ├── ExpressionChecker.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── demos.removevars.csproj │ │ └── removevars.cs │ ├── scriptWriter │ │ └── readme.md │ ├── tableColumnRename │ │ ├── App.config │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── demos.tableColumnRename.csproj │ │ ├── demos.tableColumnRename.csproj.user │ │ └── tableColumnRename.cs │ ├── util │ │ ├── Arrays.cs │ │ ├── LinkedHashMap.cs │ │ ├── LinkedHashSet.cs │ │ ├── StringUtil.cs │ │ └── common.cs │ └── visitors │ │ ├── App.config │ │ ├── Properties │ │ └── AssemblyInfo.cs │ │ ├── demo.sql.xml │ │ ├── demos.toXML.csproj │ │ ├── demos.toXML.csproj.user │ │ ├── sample.cs │ │ ├── searchFunction.cs │ │ ├── tree-view.css │ │ └── tree-view.xsl │ ├── netcore_demos │ ├── analyzesp │ │ └── analyzesp.csproj │ ├── checksyntax │ │ └── checksyntax.csproj │ ├── gettablecolumns │ │ └── gettablecolumns.csproj │ ├── joinRelationAnalyze │ │ └── joinRelationAnalyze.csproj │ ├── listGSPInfo │ │ └── listGSPInfo.csproj │ ├── loadKeywords │ │ ├── loadKeywords.cs │ │ ├── loadKeywords.csproj │ │ └── readme.md │ ├── readme.md │ ├── rmBinDir.bat │ ├── tableColumnRename │ │ └── tableColumnRename.csproj │ └── unitTests │ │ ├── readme.md │ │ └── unitTests.csproj │ ├── test │ ├── common │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── UTClientDag.cs │ │ ├── UTClientNoetix.cs │ │ ├── UTClientTosska.cs │ │ ├── UnitTestCommon.cs │ │ ├── UnitTestDB2.cs │ │ ├── UnitTestGreenplum.cs │ │ ├── UnitTestHive.cs │ │ ├── UnitTestImpala.cs │ │ ├── UnitTestInformix.cs │ │ ├── UnitTestMdx.cs │ │ ├── UnitTestMySQL.cs │ │ ├── UnitTestNetezza.cs │ │ ├── UnitTestOracle.cs │ │ ├── UnitTestPostgreSQL.cs │ │ ├── UnitTestRedshift.cs │ │ ├── UnitTestSQLServer.cs │ │ ├── UnitTestScriptWriter.cs │ │ ├── UnitTestSybase.cs │ │ ├── UnitTestTeradata.cs │ │ ├── obj │ │ │ └── Debug │ │ │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ │ │ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ │ └── test.common.csproj │ ├── formatsql │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── obj │ │ │ └── Debug │ │ │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ │ │ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ │ ├── test.formatsql.csproj │ │ ├── testAlignAliasInSelectList.cs │ │ ├── testAlignment.cs │ │ ├── testBlankLines.cs │ │ ├── testCTE.cs │ │ ├── testCapitalisation.cs │ │ ├── testCaseExpression.cs │ │ ├── testComment.cs │ │ ├── testCompactMode.cs │ │ ├── testCreateFunctionProcedure.cs │ │ ├── testCreateTable.cs │ │ ├── testDeclare.cs │ │ ├── testExecute.cs │ │ ├── testFromClause.cs │ │ ├── testFunctionCall.cs │ │ ├── testGroupByClause.cs │ │ ├── testIndentation.cs │ │ ├── testInsertList.cs │ │ ├── testIntoClause.cs │ │ ├── testLineNumber.cs │ │ ├── testOracleCreateView.cs │ │ ├── testOrderByClause.cs │ │ ├── testSelectList.cs │ │ ├── testWhereClause.cs │ │ └── testWhitespace.cs │ ├── gettablecolumns │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── obj │ │ │ └── Debug │ │ │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ │ │ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ │ ├── test.gettablecolumns.csproj │ │ ├── testGetTableColumns.cs │ │ └── testTableColumnRename.cs │ ├── scriptWriter │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── test.scriptWriter.csproj │ │ ├── testCreateNode.cs │ │ ├── testGenerator.cs │ │ ├── testModifyExpr.cs │ │ ├── testModifySql.cs │ │ └── testScriptGenerator.cs │ └── visitors │ │ ├── Properties │ │ └── AssemblyInfo.cs │ │ ├── obj │ │ └── Debug │ │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ │ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ │ ├── result.xml │ │ ├── test.visitors.csproj │ │ └── testXmlVisitor.cs │ └── tools │ ├── build.proj │ ├── getTableColumn │ ├── App.config │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── getTableColumn.cs │ └── tools.getTableColumn.csproj │ └── readme.md ├── java ├── build.xml ├── external_lib │ ├── commons-logging-1.1.3.jar │ ├── expr4j.jar │ ├── jarLoader.jar │ ├── jdk1.5 │ │ ├── jdom.jar │ │ ├── junit-4.5.jar │ │ └── junit.jar │ ├── json.jar │ ├── junrar-0.7.jar │ └── simple-xml-2.6.2.jar ├── gsp_demo.iml ├── lib │ └── gsp.jar ├── setenv │ └── setenv.bat └── src │ ├── 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 │ │ ├── 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 │ │ ├── WhereCondition.java │ │ ├── compile_columnInWhereClause.bat │ │ ├── readme.md │ │ └── run_columnInWhereClause.bat │ ├── columnMatrix │ │ ├── ColumnMatrix.java │ │ ├── compile_columnMatrix.bat │ │ ├── readme.md │ │ └── run_columnMatrix.bat │ ├── demos.iml │ ├── dlineage │ │ ├── DataFlowAnalyzer.java │ │ ├── Dlineage.java │ │ ├── DlineageRelation.java │ │ ├── columnImpact │ │ │ ├── ColumnImpact.java │ │ │ ├── compile_columnImpact.bat │ │ │ └── run_columnImpact.bat │ │ ├── compile_dlineage.bat │ │ ├── dataflow │ │ │ ├── listener │ │ │ │ └── DataFlowHandleListener.java │ │ │ └── model │ │ │ │ ├── AbstractRelation.java │ │ │ │ ├── Argument.java │ │ │ │ ├── Constant.java │ │ │ │ ├── ConstantRelationElement.java │ │ │ │ ├── CursorResultSet.java │ │ │ │ ├── DataFlowRelation.java │ │ │ │ ├── EffectType.java │ │ │ │ ├── ImpactRelation.java │ │ │ │ ├── IndirectImpactRelation.java │ │ │ │ ├── JoinRelation.java │ │ │ │ ├── ModelBindingManager.java │ │ │ │ ├── ModelFactory.java │ │ │ │ ├── Procedure.java │ │ │ │ ├── QueryTable.java │ │ │ │ ├── QueryTableRelationElement.java │ │ │ │ ├── RecordSetRelation.java │ │ │ │ ├── Relation.java │ │ │ │ ├── RelationElement.java │ │ │ │ ├── RelationType.java │ │ │ │ ├── ResultColumn.java │ │ │ │ ├── ResultColumnRelationElement.java │ │ │ │ ├── ResultSet.java │ │ │ │ ├── SelectResultSet.java │ │ │ │ ├── SelectSetResultColumn.java │ │ │ │ ├── SelectSetResultSet.java │ │ │ │ ├── Table.java │ │ │ │ ├── TableColumn.java │ │ │ │ ├── TableColumnRelationElement.java │ │ │ │ ├── TableRelationElement.java │ │ │ │ ├── View.java │ │ │ │ ├── ViewColumn.java │ │ │ │ ├── ViewColumnRelationElement.java │ │ │ │ └── xml │ │ │ │ ├── PositionUtil.java │ │ │ │ ├── argument.java │ │ │ │ ├── column.java │ │ │ │ ├── dataflow.java │ │ │ │ ├── procedure.java │ │ │ │ ├── relation.java │ │ │ │ ├── sourceColumn.java │ │ │ │ ├── table.java │ │ │ │ └── targetColumn.java │ │ ├── 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_DataFlowAnalyzer.bat │ │ ├── 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 │ ├── expressionTraverser │ │ ├── compile_expressionTraverser.bat │ │ ├── expressionTraverser.java │ │ ├── readme.md │ │ └── run_expressionTraverser.bat │ ├── findConstants │ │ └── findConstants.java │ ├── formatsql │ │ ├── compile_formatsql.bat │ │ ├── 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 │ │ ├── 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 │ ├── removeCondition │ │ ├── ExpressionChecker.java │ │ ├── compile_removeCondition.bat │ │ ├── removeCondition.java │ │ └── run_removeCondition.bat │ ├── scantable │ │ ├── compile_scantable.bat │ │ ├── readme.md │ │ ├── run_scantable.bat │ │ └── scantable.java │ ├── search │ │ ├── compile_search.bat │ │ ├── readme.md │ │ ├── run_search.bat │ │ └── searchClause.java │ ├── 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 │ ├── 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 │ │ └── SQLUtil.java │ └── visitors │ │ ├── compile_visitors.bat │ │ ├── run_searchFunction.bat │ │ ├── run_toXml.bat │ │ ├── searchFunction.java │ │ ├── toXml.java │ │ ├── toXmlOldVersion.java │ │ ├── tree-view.css │ │ ├── tree-view.xsl │ │ └── xmlVisitor.java │ └── test │ ├── FileUtil.java │ ├── SqlFileList.java │ ├── antiSQLInjection │ ├── antiSQLInjectionBatchTest.java │ └── antiSQLInjectionTest.java │ ├── couchbase │ ├── testCreateIndex.java │ ├── testExplain.java │ ├── testInfer.java │ ├── testInsert.java │ └── testUpsert.java │ ├── cversion │ └── testFileNumbers.java │ ├── dag │ ├── testBuiltInFucntion.java │ ├── testKeepKeyword.java │ └── testMultiSetOperator.java │ ├── dax │ └── testEvaluate.java │ ├── db2 │ ├── testCall.java │ ├── testCreateDatabase.java │ ├── testCreateProcedure.java │ ├── testCreateVariable.java │ ├── testLabeledDuration.java │ ├── testParameter.java │ └── testWithCheckOption.java │ ├── demos │ ├── SqlTranslatorTest.java │ ├── analyzespTest.java │ ├── removeCondition │ │ └── testRemoveCondition.java │ └── traceDataLineageTest.java │ ├── errorsql │ └── testCreateIndex.java │ ├── formatsql │ ├── formatsqlTest.java │ ├── formatsqlVerifyTest.java │ ├── testAlignAliasInSelectList.java │ ├── testAlignment.java │ ├── testBlankLines.java │ ├── testCTE.java │ ├── testCapitalisation.java │ ├── testCaseExpression.java │ ├── testComment.java │ ├── testCompactMode.java │ ├── testCreateFunctionProcedure.java │ ├── testCreateTable.java │ ├── testDeclare.java │ ├── testExecute.java │ ├── testFromClause.java │ ├── testFunctionCall.java │ ├── testGroupByClause.java │ ├── testIndentation.java │ ├── testInsertList.java │ ├── testIntoClause.java │ ├── testLineNumber.java │ ├── testOracleCreateView.java │ ├── testOrderByClause.java │ ├── testPlsql1.java │ ├── testSelectList.java │ ├── testWhereClause.java │ └── testWhitespace.java │ ├── gettablecolumn │ ├── getObject.java │ ├── testDBObjectOfSourceToken.java │ ├── testDaxFunction.java │ ├── testDbObject.java │ ├── testMySQL.java │ ├── testNewTableColumn.java │ ├── testOracle.java │ ├── testSQLServer.java │ ├── testTC1.java │ ├── testTeradata.java │ ├── testTraceColumn.java │ └── testUpdate.java │ ├── greenplum │ ├── testAlterTable.java │ ├── testCreateFunction.java │ ├── testCreateTable.java │ └── testValues.java │ ├── gspCommon.java │ ├── helloTest.java │ ├── hive │ ├── testAlias.java │ ├── testAlterTable.java │ ├── testAnalyze.java │ ├── testCTE.java │ ├── testCreateFunction.java │ ├── testCreateIndex.java │ ├── testCreateTable.java │ ├── testCreateView.java │ ├── testDescribe.java │ ├── testDropIndex.java │ ├── testExplain.java │ ├── testExportTable.java │ ├── testFieldExpression.java │ ├── testFromSelect.java │ ├── testFunction.java │ ├── testGetFullTableName.java │ ├── testHint.java │ ├── testImportTable.java │ ├── testInsert.java │ ├── testJoin.java │ ├── testLateralView.java │ ├── testLoad.java │ ├── testParse.java │ ├── testSampleClause.java │ ├── testSelect.java │ ├── testSet.java │ ├── testShow.java │ ├── testToString.java │ ├── testUnion.java │ ├── testWindowClause.java │ └── testlexer.java │ ├── informix │ ├── testAlterObject.java │ ├── testCreateProcedure.java │ ├── testDropObject.java │ ├── testOuterJoin.java │ ├── testRenameObject.java │ └── testSkip.java │ ├── interfaceDemo │ ├── testITokenHandle.java │ └── testIgnorePrompt.java │ ├── jdk1.5 │ ├── jdom.jar │ ├── junit-4.5.jar │ └── junit.jar │ ├── mdx │ ├── testAlterCube.java │ ├── testCreateMeasure.java │ ├── testCreateMember.java │ ├── testIIF.java │ ├── testMembers.java │ ├── testRawStatements.java │ ├── testTokenlizer.java │ └── testWithMeasureInSelect.java │ ├── metaDB.java │ ├── mssql │ ├── testAlterDatabase.java │ ├── testAlterTable.java │ ├── testAssignment.java │ ├── testCallTarget.java │ ├── testContainsFunction.java │ ├── testCreateIndex.java │ ├── testCreateProcedureOption.java │ ├── testCreateTrigger.java │ ├── testDatatype.java │ ├── testDeclareBlock.java │ ├── testDeclareCursor.java │ ├── testDistinct.java │ ├── testDropDBObject.java │ ├── testExecuteOption.java │ ├── testOutputClause.java │ ├── testPivot.java │ ├── testQualifiedName.java │ ├── testTableHint.java │ ├── testThrow.java │ ├── testUse.java │ └── testXMLfunction.java │ ├── mtag │ └── teradata │ │ └── sqlchecker │ │ └── parser │ │ └── GeneralSqlParserTeradataTest.jav_ │ ├── mysql │ ├── testCall.java │ ├── testComment.java │ ├── testCreateFucntion.java │ ├── testCreateTable.java │ ├── testDatatype.java │ ├── testDate.java │ ├── testDelete.java │ ├── testDescribe.java │ ├── testDropTable.java │ ├── testExecute.java │ ├── testFromTableList.java │ ├── testGetTable.java │ ├── testIdentifier.java │ ├── testIndexStorageType.java │ ├── testIndexType.java │ ├── testInsertIgnore.java │ ├── testLeftRightShift.java │ ├── testLimitClause.java │ ├── testOnDuplicateUpdate.java │ ├── testPrepareStmt.java │ ├── testQuoteInLiteral.java │ ├── testRollupModifier.java │ ├── testSPParameter.java │ ├── testSet.java │ ├── testShowIndex.java │ ├── testTimestampOnUpdate.java │ ├── testTruncateTable.java │ ├── testUpdateTargetTable.java │ └── testUseDatabase.java │ ├── netezza │ ├── testAlterTable.java │ ├── testCTEInCreateView.java │ ├── testDropSchema.java │ ├── testGenerateStatistics.java │ ├── testGroomTable.java │ ├── testMinusSetToString.java │ └── testSelectFromExternalTable.java │ ├── noetix │ └── testViewAlias.java │ ├── oracle │ ├── testAlterMaterializedView.java │ ├── testAlterTable.java │ ├── testAlterTrigger.java │ ├── testCall.java │ ├── testCallSpec.java │ ├── testCommentOn.java │ ├── testCompoundTrigger.java │ ├── testCreateFunction.java │ ├── testCreateLibrary.java │ ├── testCreateMaterializedView.java │ ├── testCreateView.java │ ├── testDatabaseLink.java │ ├── testDatatype.java │ ├── testErrorLoggingClause.java │ ├── testExecImmediate.java │ ├── testExecuteProcedure.java │ ├── testExplainPlan.java │ ├── testInExpr.java │ ├── testInsertMultiTable.java │ ├── testInvokerRights.java │ ├── testMaterializedView.java │ ├── testMergeInPlsql.java │ ├── testMethodCall.java │ ├── testNamedParameter.java │ ├── testNaturalJoin.java │ ├── testNewConstructor.java │ ├── testObjectAccess.java │ ├── testOffsetClause.java │ ├── testOracleHint.java │ ├── testPivot.java │ ├── testRestrictionClause.java │ ├── testSequence.java │ ├── testSynonym.java │ ├── testXMLFunction.java │ ├── testXMLTable.java │ └── testplsqldatatype.java │ ├── panayainc │ ├── testGroupByItemWithParenthesis.java │ ├── testLabelName.java │ ├── testOracleCustomPackage.java │ ├── testProcedureInnerStmt.java │ └── testUnionWithParenthesis.java │ ├── parseTest.java │ ├── partialParse │ └── testPartialParseCreateTable.java │ ├── postgresql │ ├── testAggregateExpressions.java │ ├── testAlterTable.java │ ├── testArrayConstructor.java │ ├── testCTE.java │ ├── testCollationExpression.java │ ├── testConstant.java │ ├── testCreateFunction.java │ ├── testCreateIndex.java │ ├── testCreateTrigger.java │ ├── testCreateView.java │ ├── testDatatype.java │ ├── testDeleteStmt.java │ ├── testDropTable.java │ ├── testFieldSelection.java │ ├── testFunctionCall.java │ ├── testJSON.java │ ├── testLimitOffset.java │ ├── testLockingClause.java │ ├── testMathematicalOperator.java │ ├── testPlpgsql_assign.java │ ├── testPlpgsql_block.java │ ├── testPlpgsql_case.java │ ├── testPlpgsql_close.java │ ├── testPlpgsql_declarestmt.java │ ├── testPlpgsql_delete.java │ ├── testPlpgsql_exception.java │ ├── testPlpgsql_execute.java │ ├── testPlpgsql_exit.java │ ├── testPlpgsql_fetch.java │ ├── testPlpgsql_forLoop.java │ ├── testPlpgsql_foreach.java │ ├── testPlpgsql_getdiag.java │ ├── testPlpgsql_if.java │ ├── testPlpgsql_insert.java │ ├── testPlpgsql_label.java │ ├── testPlpgsql_loop.java │ ├── testPlpgsql_move.java │ ├── testPlpgsql_null.java │ ├── testPlpgsql_open.java │ ├── testPlpgsql_openfor.java │ ├── testPlpgsql_raise.java │ ├── testPlpgsql_return.java │ ├── testPlpgsql_update.java │ ├── testPlpgsql_while.java │ ├── testRowConstructor.java │ ├── testSYMMETRIC.java │ ├── testStringConcate.java │ ├── testSubscript.java │ ├── testTruncate.java │ ├── testUpdateStmt.java │ ├── testValueListInFromClause.java │ ├── testWindowClause.java │ └── testWindowFunctions.java │ ├── redshift │ ├── testAlterDatabase.java │ ├── testAlterGroup.java │ ├── testAlterSchema.java │ ├── testAlterTable.java │ ├── testAlterUser.java │ ├── testAnalyze.java │ ├── testAnalyzeCompression.java │ ├── testCancel.java │ ├── testClose.java │ ├── testComment.java │ ├── testCopy.java │ ├── testCreateDatabase.java │ ├── testCreateGroup.java │ ├── testCreateSchema.java │ ├── testCreateTable.java │ ├── testCreateUser.java │ ├── testCreateView.java │ ├── testDeallocate.java │ ├── testDeclare.java │ ├── testDelete.java │ ├── testDropDatabase.java │ ├── testDropGroup.java │ ├── testDropSchema.java │ ├── testDropTable.java │ ├── testDropUser.java │ ├── testDropView.java │ ├── testExecute.java │ ├── testExplain.java │ ├── testExpression.java │ ├── testFetchFrom.java │ ├── testLock.java │ ├── testPrepare.java │ ├── testUnload.java │ └── testVaccum.java │ ├── scriptWriter │ ├── testCreateNode.java │ ├── testGenerator.java │ ├── testModifyExpr.java │ ├── testModifySql.java │ ├── testMySQL.java │ ├── testOracleDataType.java │ ├── testSQLServerDataType.java │ └── testScriptGenerator.java │ ├── snowflake │ ├── testCreateFunction.java │ ├── testDesc.java │ ├── testInsert.java │ ├── testSetStmt.java │ ├── testSubqueryFunction.java │ └── testVaraible.java │ ├── sybase │ ├── testColumnName.java │ ├── testCreateProcedure.java │ ├── testCreateTable.java │ ├── testDeleteStatistics.java │ ├── testDumpTran.java │ ├── testExecWithNoKeyword.java │ ├── testFunctionTable.java │ ├── testHint.java │ ├── testInsertBulk.java │ ├── testIsolation.java │ ├── testPartialParsing.java │ └── testWritetext.java │ ├── teradata │ ├── testAlterTableAddColumns.java │ ├── testAnalyticFunction.java │ ├── testBeginTrans.java │ ├── testCollectStatistics.java │ ├── testCreateProcedure.java │ ├── testCreateTable.java │ ├── testCreateTrigger.java │ ├── testExecuteMacro.java │ ├── testExpandOn.java │ ├── testExprType.java │ ├── testExprWithAlias.java │ ├── testFunctionINResultColumn.java │ ├── testGetTableName.java │ ├── testGive.java │ ├── testGroupBy.java │ ├── testIntervalPeriodFunction.java │ ├── testJoins.java │ ├── testLiteral.java │ ├── testLock.java │ ├── testMacro.java │ ├── testMerge.java │ ├── testNamedColumn.java │ ├── testRenameTable.java │ ├── testResultColumn.java │ ├── testSubqueryInOnCondition.java │ ├── testTeradataCaseExpression.java │ ├── testTeradataGetRawStatements.java │ ├── testTeradataLiteral.java │ ├── testTeradataOutputFormatPhrase.java │ ├── testTeradataTokenize.java │ ├── testTeradataWithClause.java │ ├── testTitle.java │ ├── testUntilChanged.java │ ├── testUpsert.java │ ├── testUsing.java │ └── testWithCheckOption.java │ ├── test │ └── ColumnImpactTest.java │ ├── testAggregateFunction.java │ ├── testAlias.java │ ├── testAlterTable.java │ ├── testAlterView.java │ ├── testBigline.java │ ├── testCTE.java │ ├── testColumnDefinition.java │ ├── testComment.java │ ├── testCommentOn.java │ ├── testConnect.java │ ├── testConstraint.java │ ├── testCreateDatabase.java │ ├── testCreateIndex.java │ ├── testCreateSchema.java │ ├── testCreateSequenceStmt.java │ ├── testCreateSynonym.java │ ├── testCreateTable.java │ ├── testDatatype.java │ ├── testDropDatabase.java │ ├── testDropSchema.java │ ├── testDropTable.java │ ├── testEmptyInput.java │ ├── testExceptionClause.java │ ├── testExecImmeStmt.java │ ├── testExplain.java │ ├── testExprTraverse.java │ ├── testExpression.java │ ├── testFakeConstraint.java │ ├── testFunction.java │ ├── testGetTables.java │ ├── testInsertStatement.java │ ├── testJoinConverter.java │ ├── testJoins.java │ ├── testLicense.java │ ├── testLimitClause.java │ ├── testLockTable.java │ ├── testLongStatement.java │ ├── testMerge.java │ ├── testMetaDB.java │ ├── testModifySql.java │ ├── testMssqlExecute.java │ ├── testMssqlFunction.java │ ├── testMssqlIf.java │ ├── testMssqlProcedure.java │ ├── testMssqlRaiserror.java │ ├── testMssqlTrigger.java │ ├── testNotModifier.java │ ├── testODBC.java │ ├── testObjectNameLocation.java │ ├── testOffset.java │ ├── testOperator.java │ ├── testPLSQLCallSpec.java │ ├── testQualifiedVariable.java │ ├── testRenameTable.java │ ├── testResultColumn.java │ ├── testSequence.java │ ├── testSetSchema.java │ ├── testSqlserverProprietaryColumn.java │ ├── testSubquery.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 │ ├── testVariableDeclare.java │ ├── testVendorBuiltInFunctionAndKeywords.java │ ├── testWhereClause.java │ ├── testXML.java │ ├── testXmlXSD.java │ ├── users │ └── testBuindQuery.java │ └── vertica │ └── testProfile.java ├── sqlflow ├── readme.md └── sqlflow_architecture.png └── sqlschema.xsd /README.md: -------------------------------------------------------------------------------- 1 | # gsp_demo 2 | Demos and testcases for General SQL Parser. 3 | 4 | This repo is archived on 2019/10/08. It is here for referenece only. 5 | 6 | GSP Java demo repo: 7 | 8 | https://github.com/sqlparser/gsp_demo_java 9 | 10 | GSP dotent demo repo: 11 | 12 | https://github.com/sqlparser/gsp_demo_dotnet 13 | -------------------------------------------------------------------------------- /dotnet/lib/gudusoft.gsqlparser.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/lib/gudusoft.gsqlparser.dll -------------------------------------------------------------------------------- /dotnet/lib/netcore/gudusoft.gsqlparser.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/lib/netcore/gudusoft.gsqlparser.dll -------------------------------------------------------------------------------- /dotnet/src/demos/analyzesp/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/analyzesp/demos.analyzesp.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | l.sql /t mssql 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/antiSQLInjection/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/antiSQLInjection/ESQLInjectionType.cs: -------------------------------------------------------------------------------- 1 | namespace gudusoft.gsqlparser.demos.antiSQLInjection 2 | { 3 | 4 | 5 | public enum ESQLInjectionType 6 | { 7 | syntax_error, 8 | always_true_condition, 9 | always_false_condition, 10 | comment_at_the_end_of_statement, 11 | stacking_queries, 12 | not_in_allowed_statement, 13 | union_set, 14 | piggybacked_statement 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /dotnet/src/demos/antiSQLInjection/GContext.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | 3 | namespace gudusoft.gsqlparser.demos.antiSQLInjection 4 | { 5 | 6 | public interface GContext 7 | { 8 | 9 | IDictionary Vars {set;get;} 10 | 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /dotnet/src/demos/antiSQLInjection/TSQLInjection.cs: -------------------------------------------------------------------------------- 1 | namespace gudusoft.gsqlparser.demos.antiSQLInjection 2 | { 3 | 4 | /// 5 | /// This class represents a sql injection. 6 | /// 7 | public class TSQLInjection 8 | { 9 | 10 | private ESQLInjectionType type = ESQLInjectionType.syntax_error; 11 | 12 | public TSQLInjection(ESQLInjectionType pType) 13 | { 14 | this.type = pType; 15 | this.description = pType.ToString(); 16 | } 17 | 18 | 19 | public virtual ESQLInjectionType Type 20 | { 21 | get 22 | { 23 | return type; 24 | } 25 | } 26 | 27 | private string description = null; 28 | 29 | public virtual string Description 30 | { 31 | get 32 | { 33 | return description; 34 | } 35 | set 36 | { 37 | this.description = value; 38 | } 39 | } 40 | 41 | 42 | } 43 | } -------------------------------------------------------------------------------- /dotnet/src/demos/antiSQLInjection/UnknownValue.cs: -------------------------------------------------------------------------------- 1 | namespace gudusoft.gsqlparser.demos.antiSQLInjection 2 | { 3 | 4 | /// 5 | /// value returned when GEval can't evaluate a value from an expression. 6 | /// 7 | public class UnknownValue 8 | { 9 | public override string ToString() 10 | { 11 | return "unknown value"; 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /dotnet/src/demos/antiSQLInjection/demos.antiSQLInjection.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | publish\ 5 | 6 | 7 | 8 | 9 | 10 | zh-CN 11 | false 12 | 13 | -------------------------------------------------------------------------------- /dotnet/src/demos/antiSQLInjection/dll/Expr4CSharp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/src/demos/antiSQLInjection/dll/Expr4CSharp.dll -------------------------------------------------------------------------------- /dotnet/src/demos/checksyntax/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/checksyntax/demos.checksyntax.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | publish\ 5 | 6 | 7 | 8 | 9 | 10 | zh-CN 11 | false 12 | 13 | -------------------------------------------------------------------------------- /dotnet/src/demos/columnImpact/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/columnImpact/demos.columnImpact.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | ShowAllFiles 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/convertJoin/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/convertJoin/demos.convertJoin.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | ProjectFiles 5 | 6 | 7 | /f C:\1.txt /s /t mssql 8 | 9 | -------------------------------------------------------------------------------- /dotnet/src/demos/dataFlowAnalyzer/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/dataFlowAnalyzer/dataflow/model/DataFlowRelation.cs: -------------------------------------------------------------------------------- 1 | namespace gudusoft.gsqlparser.demos.dlineage.dataflow.model 2 | { 3 | 4 | 5 | public class DataFlowRelation : AbstractRelation 6 | { 7 | 8 | public override RelationType RelationType 9 | { 10 | get 11 | { 12 | return RelationType.dataflow; 13 | } 14 | } 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dataFlowAnalyzer/dataflow/model/ImpactRelation.cs: -------------------------------------------------------------------------------- 1 | namespace gudusoft.gsqlparser.demos.dlineage.dataflow.model 2 | { 3 | 4 | public class ImpactRelation : AbstractRelation 5 | { 6 | 7 | public override RelationType RelationType 8 | { 9 | get 10 | { 11 | return RelationType.impact; 12 | } 13 | } 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dataFlowAnalyzer/dataflow/model/RecordSetRelation.cs: -------------------------------------------------------------------------------- 1 | namespace gudusoft.gsqlparser.demos.dlineage.dataflow.model 2 | { 3 | 4 | public class RecordSetRelation : AbstractRelation 5 | { 6 | 7 | private string aggregateFunction; 8 | 9 | public virtual string AggregateFunction 10 | { 11 | get 12 | { 13 | return aggregateFunction; 14 | } 15 | set 16 | { 17 | this.aggregateFunction = value; 18 | } 19 | } 20 | 21 | 22 | public override RelationType RelationType 23 | { 24 | get 25 | { 26 | return RelationType.dataflow_recordset; 27 | } 28 | } 29 | 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dataFlowAnalyzer/dataflow/model/Relation.cs: -------------------------------------------------------------------------------- 1 | namespace gudusoft.gsqlparser.demos.dlineage.dataflow.model 2 | { 3 | 4 | public interface Relation 5 | { 6 | RelationElement Target {get;} 7 | 8 | RelationElement[] Sources {get;} 9 | 10 | RelationType RelationType {get;} 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dataFlowAnalyzer/dataflow/model/RelationElement.cs: -------------------------------------------------------------------------------- 1 | namespace gudusoft.gsqlparser.demos.dlineage.dataflow.model 2 | { 3 | 4 | public interface RelationElement 5 | { 6 | 7 | object Element {get;} 8 | } 9 | 10 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dataFlowAnalyzer/dataflow/model/RelationType.cs: -------------------------------------------------------------------------------- 1 | namespace gudusoft.gsqlparser.demos.dlineage.dataflow.model 2 | { 3 | 4 | public enum RelationType 5 | { 6 | dataflow, 7 | dataflow_recordset, 8 | impact 9 | } 10 | 11 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dataFlowAnalyzer/dataflow/model/xml/dataflow.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace gudusoft.gsqlparser.demos.dlineage.dataflow.model.xml 4 | { 5 | using System.Xml.Serialization; 6 | 7 | public class dataflow 8 | { 9 | [XmlElement("relation")] 10 | public relation[] relations { get; set; } 11 | 12 | [XmlElement("table")] 13 | public table[] tables { get; set; } 14 | 15 | [XmlElement("view")] 16 | public table[] views { get; set; } 17 | 18 | [XmlElement("resultset")] 19 | public table[] resultsets { get; set; } 20 | 21 | } 22 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dataFlowAnalyzer/dataflow/model/xml/relation.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace gudusoft.gsqlparser.demos.dlineage.dataflow.model.xml 4 | { 5 | using System.Xml.Serialization; 6 | 7 | public class relation 8 | { 9 | 10 | [XmlAttribute] 11 | public string id { get; set; } 12 | 13 | [XmlAttribute] 14 | public string type { get; set; } 15 | 16 | [XmlAttribute("target")] 17 | public targetColumn target { get; set; } 18 | 19 | [XmlAttribute("source")] 20 | public sourceColumn[] sources { get; set; } 21 | 22 | 23 | public virtual bool isDataFlow 24 | { 25 | get 26 | { 27 | return "dataflow".Equals(type); 28 | } 29 | } 30 | 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dataFlowAnalyzer/dataflow/model/xml/targetColumn.cs: -------------------------------------------------------------------------------- 1 | namespace gudusoft.gsqlparser.demos.dlineage.dataflow.model.xml 2 | { 3 | using System.Xml.Serialization; 4 | public class targetColumn 5 | { 6 | 7 | [XmlAttribute] 8 | public string coordinate { get; set; } 9 | 10 | [XmlAttribute] 11 | public string column { get; set; } 12 | 13 | [XmlAttribute] 14 | public string id { get; set; } 15 | 16 | [XmlAttribute] 17 | public string parent_id { get; set; } 18 | 19 | [XmlAttribute] 20 | public string parent_name { get; set; } 21 | 22 | [XmlAttribute] 23 | public string function { get; set; } 24 | 25 | 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dataFlowAnalyzer/demos.dataFlowAnalyzer.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | ShowAllFiles 5 | 6 | 7 | /f c:\prg\tmp\demo.sql /t mssql 8 | 9 | -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/demos.dlineage.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | ShowAllFiles 5 | 6 | 7 | /f c:\prg\tmp\demo.sql /t mssql 8 | 9 | -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/model/ddl/schema/database.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Xml.Serialization; 3 | 4 | namespace demos.dlineage.model.ddl.schema 5 | { 6 | 7 | [XmlRoot("database")] 8 | public class database 9 | { 10 | [XmlAttribute] 11 | public string name { get; set; } 12 | 13 | [XmlElement("table")] 14 | public table[] tables { get; set; } 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/model/ddl/schema/foreignKey.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace demos.dlineage.model.ddl.schema 4 | { 5 | using System.Xml.Serialization; 6 | 7 | public class foreignKey 8 | { 9 | [XmlAttribute] 10 | public string name { get; set; } 11 | 12 | [XmlAttribute] 13 | public string foreignTable { get; set; } 14 | 15 | [XmlAttribute] 16 | public string onDelete { get; set; } 17 | 18 | [XmlAttribute] 19 | public string onUpdate { get; set; } 20 | 21 | [XmlElement("reference")] 22 | public reference[] references { get; set; } 23 | 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/model/ddl/schema/index.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace demos.dlineage.model.ddl.schema 4 | { 5 | using System.Xml.Serialization; 6 | 7 | public class index 8 | { 9 | 10 | [XmlAttribute] 11 | public string name { get; set; } 12 | 13 | [XmlElement("index-column")] 14 | public indexColumn[] indexColumns { get; set; } 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/model/ddl/schema/indexColumn.cs: -------------------------------------------------------------------------------- 1 | namespace demos.dlineage.model.ddl.schema 2 | { 3 | using System.Xml.Serialization; 4 | 5 | public class indexColumn 6 | { 7 | [XmlAttribute] 8 | public string name { get; set; } 9 | 10 | [XmlAttribute] 11 | public string size { get; set; } 12 | 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/model/ddl/schema/reference.cs: -------------------------------------------------------------------------------- 1 | namespace demos.dlineage.model.ddl.schema 2 | { 3 | using System.Xml.Serialization; 4 | 5 | public class reference 6 | { 7 | [XmlAttribute] 8 | public string foreign { get; set; } 9 | 10 | [XmlAttribute] 11 | public string local { get; set; } 12 | 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/model/ddl/schema/unique.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace demos.dlineage.model.ddl.schema 4 | { 5 | using System.Xml.Serialization; 6 | 7 | public class unique 8 | { 9 | [XmlAttribute] 10 | public string name { get; set; } 11 | 12 | [XmlElement("unique-column")] 13 | public uniqueColumn[] uniqueColumns { get; set; } 14 | 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/model/ddl/schema/uniqueColumn.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Serialization; 2 | 3 | namespace demos.dlineage.model.ddl.schema 4 | { 5 | public class uniqueColumn 6 | { 7 | [XmlAttribute] 8 | public string name { get; set; } 9 | 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/model/view/Clause.cs: -------------------------------------------------------------------------------- 1 | namespace demos.dlineage.model.view 2 | { 3 | 4 | public enum Clause 5 | { 6 | SELECT, 7 | WHERE, 8 | JOIN, 9 | ORDERBY, 10 | GROUPBY, 11 | CONNECTBY, 12 | STARTWITH, 13 | CREATEVIEW, 14 | UNDEFINE, 15 | UPDATE, 16 | MERGE 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/model/xml/XML2Model.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Xml.Serialization; 4 | 5 | namespace demos.dlineage.model.xml 6 | { 7 | 8 | public class XML2Model 9 | { 10 | 11 | public static columnImpactResult loadXML(string xml) 12 | { 13 | XmlSerializer serializer = new XmlSerializer(typeof(columnImpactResult)); 14 | try 15 | { 16 | StringReader sr = new StringReader(xml); 17 | columnImpactResult result = (columnImpactResult)serializer.Deserialize(sr); 18 | sr.Close(); 19 | return result; 20 | } 21 | catch (Exception e) 22 | { 23 | Console.WriteLine(e.ToString()); 24 | Console.Write(e.StackTrace); 25 | return null; 26 | } 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/model/xml/columnImpactResult.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace demos.dlineage.model.xml 4 | { 5 | using System; 6 | using System.Xml.Serialization; 7 | 8 | [XmlRoot("columnImpactResult")] 9 | public class columnImpactResult 10 | { 11 | [XmlElement("targetColumn")] 12 | public targetColumn[] columns { get; set; } 13 | 14 | [XmlElement("table")] 15 | public table[] tables { get; set; } 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/model/xml/linkTable.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Serialization; 2 | 3 | namespace demos.dlineage.model.xml 4 | { 5 | 6 | public class linkTable 7 | { 8 | 9 | [XmlAttribute] 10 | public string coordinate { get; set; } 11 | 12 | [XmlAttribute] 13 | public string name { get; set; } 14 | 15 | [XmlAttribute] 16 | public string tableName { get; set; } 17 | 18 | [XmlAttribute] 19 | public string tableOwner { get; set; } 20 | 21 | [XmlAttribute] 22 | public string highlightInfos { get; set; } 23 | 24 | [XmlAttribute] 25 | public string type { get; set; } 26 | 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/model/xml/procedure.cs: -------------------------------------------------------------------------------- 1 | namespace demos.dlineage.model.xml 2 | { 3 | using System.Xml.Serialization; 4 | 5 | public class procedure 6 | { 7 | [XmlAttribute] 8 | public string owner { get; set; } 9 | 10 | [XmlAttribute] 11 | public string name { get; set; } 12 | 13 | [XmlAttribute] 14 | public string highlightInfo { get; set; } 15 | 16 | [XmlAttribute] 17 | public string coordinate { get; set; } 18 | 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/model/xml/procedureImpactResult.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Xml.Serialization; 3 | 4 | namespace demos.dlineage.model.xml 5 | { 6 | [XmlRoot("procedureImpactResult")] 7 | public class procedureImpactResult 8 | { 9 | 10 | [XmlElement("targetProcedure")] 11 | public targetProcedure[] targetProcedures { get; set; } 12 | 13 | [XmlElement("procedure")] 14 | public procedure[] procedures { get; set; } 15 | 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/model/xml/sourceColumn.cs: -------------------------------------------------------------------------------- 1 | namespace demos.dlineage.model.xml 2 | { 3 | using System.Xml.Serialization; 4 | 5 | public class sourceColumn 6 | { 7 | 8 | [XmlAttribute] 9 | public string coordinate { get; set; } 10 | 11 | [XmlAttribute] 12 | public string name { get; set; } 13 | 14 | [XmlAttribute] 15 | public string clause { get; set; } 16 | 17 | [XmlAttribute] 18 | public string tableName { get; set; } 19 | 20 | [XmlAttribute] 21 | public string tableOwner { get; set; } 22 | 23 | [XmlAttribute] 24 | public string highlightInfos { get; set; } 25 | 26 | [XmlAttribute] 27 | public string orphan { get; set; } 28 | 29 | } 30 | 31 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/model/xml/sourceProcedure.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Serialization; 2 | 3 | namespace demos.dlineage.model.xml 4 | { 5 | public class sourceProcedure 6 | { 7 | [XmlAttribute] 8 | public string owner { get; set; } 9 | 10 | [XmlAttribute] 11 | public string name { get; set; } 12 | 13 | [XmlAttribute] 14 | public string highlightInfo { get; set; } 15 | 16 | [XmlAttribute] 17 | public string coordinate { get; set; } 18 | 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/model/xml/table.cs: -------------------------------------------------------------------------------- 1 | namespace demos.dlineage.model.xml 2 | { 3 | using System; 4 | using System.Xml.Serialization; 5 | public class table 6 | { 7 | [XmlAttribute] 8 | public string owner { get; set; } 9 | 10 | [XmlAttribute] 11 | public string name { get; set; } 12 | 13 | [XmlAttribute] 14 | public string highlightInfo { get; set; } 15 | 16 | [XmlAttribute] 17 | public string coordinate { get; set; } 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineage/model/xml/targetProcedure.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace demos.dlineage.model.xml 4 | { 5 | 6 | using System.Xml.Serialization; 7 | 8 | public class targetProcedure 9 | { 10 | 11 | [XmlAttribute] 12 | public string owner { get; set; } 13 | 14 | [XmlAttribute] 15 | public string name { get; set; } 16 | 17 | [XmlAttribute] 18 | public string highlightInfo { get; set; } 19 | 20 | [XmlAttribute] 21 | public string coordinate { get; set; } 22 | 23 | [XmlElement("sourceProcedure")] 24 | public sourceProcedure[] sourceProcedures { get; set; } 25 | } 26 | 27 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/model/ddl/schema/database.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Xml.Serialization; 3 | 4 | namespace gudusoft.gsqlparser.demos.dlineage.model.ddl.schema 5 | { 6 | 7 | [XmlRoot("database")] 8 | public class database 9 | { 10 | [XmlAttribute] 11 | public string name { get; set; } 12 | 13 | [XmlElement("table")] 14 | public table[] tables { get; set; } 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/model/ddl/schema/foreignKey.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace gudusoft.gsqlparser.demos.dlineage.model.ddl.schema 4 | { 5 | using System.Xml.Serialization; 6 | 7 | public class foreignKey 8 | { 9 | [XmlAttribute] 10 | public string name { get; set; } 11 | 12 | [XmlAttribute] 13 | public string foreignTable { get; set; } 14 | 15 | [XmlAttribute] 16 | public string onDelete { get; set; } 17 | 18 | [XmlAttribute] 19 | public string onUpdate { get; set; } 20 | 21 | [XmlElement("reference")] 22 | public reference[] references { get; set; } 23 | 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/model/ddl/schema/index.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace gudusoft.gsqlparser.demos.dlineage.model.ddl.schema 4 | { 5 | using System.Xml.Serialization; 6 | 7 | public class index 8 | { 9 | 10 | [XmlAttribute] 11 | public string name { get; set; } 12 | 13 | [XmlElement("index-column")] 14 | public indexColumn[] indexColumns { get; set; } 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/model/ddl/schema/indexColumn.cs: -------------------------------------------------------------------------------- 1 | namespace gudusoft.gsqlparser.demos.dlineage.model.ddl.schema 2 | { 3 | using System.Xml.Serialization; 4 | 5 | public class indexColumn 6 | { 7 | [XmlAttribute] 8 | public string name { get; set; } 9 | 10 | [XmlAttribute] 11 | public string size { get; set; } 12 | 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/model/ddl/schema/reference.cs: -------------------------------------------------------------------------------- 1 | namespace gudusoft.gsqlparser.demos.dlineage.model.ddl.schema 2 | { 3 | using System.Xml.Serialization; 4 | 5 | public class reference 6 | { 7 | [XmlAttribute] 8 | public string foreign { get; set; } 9 | 10 | [XmlAttribute] 11 | public string local { get; set; } 12 | 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/model/ddl/schema/unique.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace gudusoft.gsqlparser.demos.dlineage.model.ddl.schema 4 | { 5 | using System.Xml.Serialization; 6 | 7 | public class unique 8 | { 9 | [XmlAttribute] 10 | public string name { get; set; } 11 | 12 | [XmlElement("unique-column")] 13 | public uniqueColumn[] uniqueColumns { get; set; } 14 | 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/model/ddl/schema/uniqueColumn.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Serialization; 2 | 3 | namespace gudusoft.gsqlparser.demos.dlineage.model.ddl.schema 4 | { 5 | public class uniqueColumn 6 | { 7 | [XmlAttribute] 8 | public string name { get; set; } 9 | 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/model/view/Clause.cs: -------------------------------------------------------------------------------- 1 | namespace gudusoft.gsqlparser.demos.dlineage.model.view 2 | { 3 | 4 | public enum Clause 5 | { 6 | SELECT, 7 | WHERE, 8 | JOIN, 9 | ORDERBY, 10 | GROUPBY, 11 | CONNECTBY, 12 | STARTWITH, 13 | CREATEVIEW, 14 | UNDEFINE, 15 | UPDATE, 16 | MERGE 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/model/xml/XML2Model.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Xml.Serialization; 4 | 5 | namespace gudusoft.gsqlparser.demos.dlineage.model.xml 6 | { 7 | 8 | public class XML2Model 9 | { 10 | 11 | public static columnImpactResult loadXML(string xml) 12 | { 13 | XmlSerializer serializer = new XmlSerializer(typeof(columnImpactResult)); 14 | try 15 | { 16 | StringReader sr = new StringReader(xml); 17 | columnImpactResult result = (columnImpactResult)serializer.Deserialize(sr); 18 | sr.Close(); 19 | return result; 20 | } 21 | catch (Exception e) 22 | { 23 | Console.WriteLine(e.ToString()); 24 | Console.Write(e.StackTrace); 25 | return null; 26 | } 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/model/xml/columnImpactResult.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace gudusoft.gsqlparser.demos.dlineage.model.xml 4 | { 5 | using System; 6 | using System.Xml.Serialization; 7 | 8 | [XmlRoot("columnImpactResult")] 9 | public class columnImpactResult 10 | { 11 | [XmlElement("targetColumn")] 12 | public targetColumn[] columns { get; set; } 13 | 14 | [XmlElement("table")] 15 | public table[] tables { get; set; } 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/model/xml/linkTable.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Serialization; 2 | 3 | namespace gudusoft.gsqlparser.demos.dlineage.model.xml 4 | { 5 | 6 | public class linkTable 7 | { 8 | 9 | [XmlAttribute] 10 | public string coordinate { get; set; } 11 | 12 | [XmlAttribute] 13 | public string name { get; set; } 14 | 15 | [XmlAttribute] 16 | public string tableName { get; set; } 17 | 18 | [XmlAttribute] 19 | public string tableOwner { get; set; } 20 | 21 | [XmlAttribute] 22 | public string highlightInfos { get; set; } 23 | 24 | [XmlAttribute] 25 | public string type { get; set; } 26 | 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/model/xml/procedure.cs: -------------------------------------------------------------------------------- 1 | namespace gudusoft.gsqlparser.demos.dlineage.model.xml 2 | { 3 | using System.Xml.Serialization; 4 | 5 | public class procedure 6 | { 7 | [XmlAttribute] 8 | public string owner { get; set; } 9 | 10 | [XmlAttribute] 11 | public string name { get; set; } 12 | 13 | [XmlAttribute] 14 | public string highlightInfo { get; set; } 15 | 16 | [XmlAttribute] 17 | public string coordinate { get; set; } 18 | 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/model/xml/procedureImpactResult.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Xml.Serialization; 3 | 4 | namespace gudusoft.gsqlparser.demos.dlineage.model.xml 5 | { 6 | [XmlRoot("procedureImpactResult")] 7 | public class procedureImpactResult 8 | { 9 | 10 | [XmlElement("targetProcedure")] 11 | public targetProcedure[] targetProcedures { get; set; } 12 | 13 | [XmlElement("procedure")] 14 | public procedure[] procedures { get; set; } 15 | 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/model/xml/sourceColumn.cs: -------------------------------------------------------------------------------- 1 | namespace gudusoft.gsqlparser.demos.dlineage.model.xml 2 | { 3 | using System.Xml.Serialization; 4 | 5 | public class sourceColumn 6 | { 7 | 8 | [XmlAttribute] 9 | public string coordinate { get; set; } 10 | 11 | [XmlAttribute] 12 | public string name { get; set; } 13 | 14 | [XmlAttribute] 15 | public string clause { get; set; } 16 | 17 | [XmlAttribute] 18 | public string tableName { get; set; } 19 | 20 | [XmlAttribute] 21 | public string tableOwner { get; set; } 22 | 23 | [XmlAttribute] 24 | public string highlightInfos { get; set; } 25 | 26 | [XmlAttribute] 27 | public string orphan { get; set; } 28 | 29 | } 30 | 31 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/model/xml/sourceProcedure.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Serialization; 2 | 3 | namespace gudusoft.gsqlparser.demos.dlineage.model.xml 4 | { 5 | public class sourceProcedure 6 | { 7 | [XmlAttribute] 8 | public string owner { get; set; } 9 | 10 | [XmlAttribute] 11 | public string name { get; set; } 12 | 13 | [XmlAttribute] 14 | public string highlightInfo { get; set; } 15 | 16 | [XmlAttribute] 17 | public string coordinate { get; set; } 18 | 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/model/xml/table.cs: -------------------------------------------------------------------------------- 1 | namespace gudusoft.gsqlparser.demos.dlineage.model.xml 2 | { 3 | using System; 4 | using System.Xml.Serialization; 5 | public class table 6 | { 7 | [XmlAttribute] 8 | public string owner { get; set; } 9 | 10 | [XmlAttribute] 11 | public string name { get; set; } 12 | 13 | [XmlAttribute] 14 | public string highlightInfo { get; set; } 15 | 16 | [XmlAttribute] 17 | public string coordinate { get; set; } 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageCommon/model/xml/targetProcedure.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace gudusoft.gsqlparser.demos.dlineage.model.xml 4 | { 5 | 6 | using System.Xml.Serialization; 7 | 8 | public class targetProcedure 9 | { 10 | 11 | [XmlAttribute] 12 | public string owner { get; set; } 13 | 14 | [XmlAttribute] 15 | public string name { get; set; } 16 | 17 | [XmlAttribute] 18 | public string highlightInfo { get; set; } 19 | 20 | [XmlAttribute] 21 | public string coordinate { get; set; } 22 | 23 | [XmlElement("sourceProcedure")] 24 | public sourceProcedure[] sourceProcedures { get; set; } 25 | } 26 | 27 | } -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageRelation/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/dlineageRelation/demos.dlineageRelation.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | ShowAllFiles 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/expressionTraverser/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/expressionTraverser/demos.expressionTraverser.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | ShowAllFiles 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/formatsql/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/formatsql/demos.formatsql.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | publish\ 5 | 6 | 7 | 8 | 9 | 10 | zh-CN 11 | false 12 | ProjectFiles 13 | 14 | 15 | /f c:\prg\tmp\demo.sql /t oracle 16 | 17 | -------------------------------------------------------------------------------- /dotnet/src/demos/formatsql/utils/htmltokentype.cs: -------------------------------------------------------------------------------- 1 | namespace gudusoft.gsqlparser.demos.formatsql.util 2 | { 3 | /// 4 | /// types of lexical tokens for html-to-xaml converter 5 | /// 6 | internal enum HtmlTokenType 7 | { 8 | OpeningTagStart, 9 | ClosingTagStart, 10 | TagEnd, 11 | EmptyTagEnd, 12 | EqualSign, 13 | Name, 14 | Atom, // any attribute value not in quotes 15 | Text, //text content when accepting text 16 | Comment, 17 | EOF, 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /dotnet/src/demos/gettablecolumns/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/gettablecolumns/demos.gettablecolumns.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | publish\ 5 | 6 | 7 | 8 | 9 | 10 | zh-CN 11 | false 12 | 13 | 14 | /f c:\prg\tmp\demo.sql /t mssql 15 | 16 | -------------------------------------------------------------------------------- /dotnet/src/demos/joinRelationAnalyze/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/joinRelationAnalyze/demos.joinRelationAnalyze.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | ShowAllFiles 5 | 6 | 7 | /f c:\prg\tmp\demo.sql /t sybase 8 | 9 | -------------------------------------------------------------------------------- /dotnet/src/demos/listGSPInfo/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/readme.md: -------------------------------------------------------------------------------- 1 | ### Demos for General SQL Parser .NET version 2 | 3 | 4 | run msbuild to build all demos. 5 | 6 | Please check readme file under each demo directory for more information. -------------------------------------------------------------------------------- /dotnet/src/demos/removeColumn/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/removeColumn/demos.removeColumn.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | ShowAllFiles 5 | 6 | 7 | table1.col1,table1.col2 /f C:\1.txt 8 | 9 | -------------------------------------------------------------------------------- /dotnet/src/demos/removeCondition/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/removeCondition/demos.removeCondition.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | ShowAllFiles 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /dotnet/src/demos/removevars/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/scriptWriter/readme.md: -------------------------------------------------------------------------------- 1 | Please check code here for the scriptWriter demo: 2 | [scriptWriter](../../test/scriptWriter) -------------------------------------------------------------------------------- /dotnet/src/demos/tableColumnRename/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/tableColumnRename/demos.tableColumnRename.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | publish\ 5 | 6 | 7 | 8 | 9 | 10 | zh-CN 11 | false 12 | 13 | -------------------------------------------------------------------------------- /dotnet/src/demos/visitors/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/demos/visitors/demos.toXML.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | publish\ 5 | 6 | 7 | 8 | 9 | 10 | zh-CN 11 | false 12 | 13 | 14 | /f c:\prg\tmp\demo.sql /t oracle 15 | 16 | -------------------------------------------------------------------------------- /dotnet/src/netcore_demos/loadKeywords/readme.md: -------------------------------------------------------------------------------- 1 | ## build the demo using the local release version 2 | 3 | dotnet build /p:pkgSource=localRelease 4 | dotnet run --no-build -------------------------------------------------------------------------------- /dotnet/src/netcore_demos/readme.md: -------------------------------------------------------------------------------- 1 | The netcore demo is share the same source code of .NET framework version 2 | located under ..\demos directory with the same project name. 3 | 4 | Only the project file of the netcore demo is located under each project. 5 | 6 | # Build and run the demo 7 | * Enter one of the demo directory, such as checksyntax 8 | * run `dotnet restore` to restore all of the required files if necessary. 9 | * run `dotnet msbuild` to build the project. 10 | * run `dotnet run` to the program. 11 | 12 | 13 | pass argument `/t mysql` to application: 14 | `dotnet run -- /t mysql` -------------------------------------------------------------------------------- /dotnet/src/netcore_demos/unitTests/readme.md: -------------------------------------------------------------------------------- 1 | ## run test under this directory 2 | 3 | dotnet build /p:pkgSource=localRelease 4 | dotnet test --no-build -------------------------------------------------------------------------------- /dotnet/src/test/common/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/src/test/common/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /dotnet/src/test/common/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/src/test/common/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /dotnet/src/test/common/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/src/test/common/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /dotnet/src/test/common/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/src/test/common/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /dotnet/src/test/formatsql/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/src/test/formatsql/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /dotnet/src/test/formatsql/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/src/test/formatsql/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /dotnet/src/test/formatsql/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/src/test/formatsql/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /dotnet/src/test/formatsql/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/src/test/formatsql/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /dotnet/src/test/gettablecolumns/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/src/test/gettablecolumns/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /dotnet/src/test/gettablecolumns/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/src/test/gettablecolumns/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /dotnet/src/test/gettablecolumns/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/src/test/gettablecolumns/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /dotnet/src/test/gettablecolumns/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/src/test/gettablecolumns/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /dotnet/src/test/visitors/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/src/test/visitors/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /dotnet/src/test/visitors/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/src/test/visitors/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /dotnet/src/test/visitors/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/src/test/visitors/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /dotnet/src/test/visitors/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/dotnet/src/test/visitors/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /dotnet/src/tools/build.proj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /dotnet/src/tools/getTableColumn/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dotnet/src/tools/readme.md: -------------------------------------------------------------------------------- 1 | customized getTableColumn tool 2 | 3 | package name is: gudusoft.gsqlparser.tools -------------------------------------------------------------------------------- /java/external_lib/commons-logging-1.1.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/java/external_lib/commons-logging-1.1.3.jar -------------------------------------------------------------------------------- /java/external_lib/expr4j.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/java/external_lib/expr4j.jar -------------------------------------------------------------------------------- /java/external_lib/jarLoader.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/java/external_lib/jarLoader.jar -------------------------------------------------------------------------------- /java/external_lib/jdk1.5/jdom.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/java/external_lib/jdk1.5/jdom.jar -------------------------------------------------------------------------------- /java/external_lib/jdk1.5/junit-4.5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/java/external_lib/jdk1.5/junit-4.5.jar -------------------------------------------------------------------------------- /java/external_lib/jdk1.5/junit.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/java/external_lib/jdk1.5/junit.jar -------------------------------------------------------------------------------- /java/external_lib/json.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/java/external_lib/json.jar -------------------------------------------------------------------------------- /java/external_lib/junrar-0.7.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/java/external_lib/junrar-0.7.jar -------------------------------------------------------------------------------- /java/external_lib/simple-xml-2.6.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/java/external_lib/simple-xml-2.6.2.jar -------------------------------------------------------------------------------- /java/lib/gsp.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sqlparser/gsp_demo/6831e3608389745ae9371d28ba289785b1630e96/java/lib/gsp.jar -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | } -------------------------------------------------------------------------------- /java/src/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 | } -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/demos/checksyntax/readme.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | Checking the SQL syntax without connecting to a database server using the General 3 | SQL Parser library. 4 | 5 | ## Usage 6 | `java checksyntax [/f ] [/d ] [/t ]` 7 | 8 | Only SQL filename ended with .sql extentsion will be processed. 9 | 10 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/demos/dlineage/dataflow/model/DataFlowRelation.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.dlineage.dataflow.model; 3 | 4 | 5 | public class DataFlowRelation extends AbstractRelation { 6 | 7 | @Override 8 | public RelationType getRelationType() { 9 | return RelationType.fdd; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /java/src/demos/dlineage/dataflow/model/EffectType.java: -------------------------------------------------------------------------------- 1 | package demos.dlineage.dataflow.model; 2 | 3 | 4 | public enum EffectType { 5 | select, insert, update, merge_update, merge_insert, create_view, create_table, merge 6 | } 7 | -------------------------------------------------------------------------------- /java/src/demos/dlineage/dataflow/model/ImpactRelation.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.dlineage.dataflow.model; 3 | 4 | public class ImpactRelation extends AbstractRelation { 5 | 6 | @Override 7 | public RelationType getRelationType() { 8 | return RelationType.frd; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /java/src/demos/dlineage/dataflow/model/IndirectImpactRelation.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.dlineage.dataflow.model; 3 | 4 | public class IndirectImpactRelation extends AbstractRelation { 5 | 6 | @Override 7 | public RelationType getRelationType() { 8 | return RelationType.fddi; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /java/src/demos/dlineage/dataflow/model/RecordSetRelation.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.dlineage.dataflow.model; 3 | 4 | public class RecordSetRelation extends AbstractRelation { 5 | 6 | private String aggregateFunction; 7 | 8 | public String getAggregateFunction() { 9 | return aggregateFunction; 10 | } 11 | 12 | public void setAggregateFunction(String aggregateFunction) { 13 | this.aggregateFunction = aggregateFunction; 14 | } 15 | 16 | @Override 17 | public RelationType getRelationType() { 18 | return RelationType.fdr; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /java/src/demos/dlineage/dataflow/model/Relation.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.dlineage.dataflow.model; 3 | 4 | public interface Relation { 5 | 6 | RelationElement getTarget(); 7 | 8 | RelationElement[] getSources(); 9 | 10 | RelationType getRelationType(); 11 | 12 | EffectType getEffectType(); 13 | } 14 | -------------------------------------------------------------------------------- /java/src/demos/dlineage/dataflow/model/RelationElement.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.dlineage.dataflow.model; 3 | 4 | public interface RelationElement { 5 | 6 | public T getElement(); 7 | } 8 | -------------------------------------------------------------------------------- /java/src/demos/dlineage/dataflow/model/RelationType.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.dlineage.dataflow.model; 3 | 4 | public enum RelationType { 5 | fdd, fddi, fdr, frd, join 6 | } 7 | -------------------------------------------------------------------------------- /java/src/demos/dlineage/dataflow/model/SelectResultSet.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.dlineage.dataflow.model; 3 | 4 | import gudusoft.gsqlparser.nodes.TResultColumnList; 5 | import gudusoft.gsqlparser.stmt.TSelectSqlStatement; 6 | 7 | public class SelectResultSet extends ResultSet { 8 | 9 | private TSelectSqlStatement selectObject; 10 | 11 | public SelectResultSet(TSelectSqlStatement select, boolean isTarget) { 12 | super(select.getResultColumnList(), isTarget); 13 | this.selectObject = select; 14 | } 15 | 16 | public TResultColumnList getResultColumnObject() { 17 | return selectObject.getResultColumnList(); 18 | } 19 | 20 | public TSelectSqlStatement getSelectStmt() { 21 | return selectObject; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /java/src/demos/dlineage/model/ddl/schema/indexColumn.java: -------------------------------------------------------------------------------- 1 | package demos.dlineage.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 | -------------------------------------------------------------------------------- /java/src/demos/dlineage/model/ddl/schema/reference.java: -------------------------------------------------------------------------------- 1 | package demos.dlineage.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 | -------------------------------------------------------------------------------- /java/src/demos/dlineage/model/ddl/schema/uniqueColumn.java: -------------------------------------------------------------------------------- 1 | package demos.dlineage.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 | -------------------------------------------------------------------------------- /java/src/demos/dlineage/model/view/Clause.java: -------------------------------------------------------------------------------- 1 | package demos.dlineage.model.view; 2 | 3 | public enum Clause { 4 | SELECT, WHERE, JOIN, ORDERBY, GROUPBY, CONNECTBY, STARTWITH, CREATEVIEW, UNDEFINE, UPDATE, MERGE; 5 | } 6 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/demos/gettablecolumns/readme.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | Get all table and columns involved in the input SQL script, tells how table is effected such as select/insert/delete/update, 3 | the clause where the column located such as select list. join condition, shows the datatype if a column is defined in create table 4 | statement. 5 | 6 | For more detailed information about how this tools works, please check [this article](http://support.sqlparser.com/tutorials/gsp-demo-get-table-column/). 7 | 8 | ## Usage 9 | `java runGetTableColumn [/f ] [/t ] [/]` 10 | 11 | 12 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/demos/sqldetect/AliasModel.java: -------------------------------------------------------------------------------- 1 | package demos.sqldetect; 2 | 3 | public class AliasModel { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/demos/sqldetect/ColumnLocation.java: -------------------------------------------------------------------------------- 1 | package demos.sqldetect; 2 | 3 | public enum ColumnLocation { 4 | SELECTLIST, WHERE, JOINCONDITION, LEFTOFSETCLAUSE, RIGHTOFSETCLAUSE, GROUPBY, ORDERY, OTHER; 5 | } 6 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/demos/tracedatalineage/Parameter.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.tracedatalineage; 3 | 4 | public class Parameter extends Variable 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/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 | -------------------------------------------------------------------------------- /java/src/demos/tracedatalineage/View.java: -------------------------------------------------------------------------------- 1 | 2 | package demos.tracedatalineage; 3 | 4 | public class View extends Table 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /java/src/test/cversion/testFileNumbers.java: -------------------------------------------------------------------------------- 1 | package test.cversion; 2 | /* 3 | * Date: 12-2-20 4 | */ 5 | 6 | import junit.framework.TestCase; 7 | import test.*; 8 | 9 | public class testFileNumbers extends TestCase { 10 | 11 | public void test0(){ 12 | String oracledir = "c:\\prg\\gsqlparser\\Test\\TestCases\\oracle"; 13 | SqlFileList sqlfiles = new SqlFileList(oracledir,true); 14 | //System.out.print(sqlfiles.sqlfiles.size()); 15 | for(int i=0;i