├── .github ├── PULL_REQUEST_TEMPLATE.md ├── draft-release-notes-config.yml └── workflows │ ├── codeql-analysis.yml │ ├── draft-release-notes-workflow.yml │ ├── sql-cli-release-workflow.yml │ ├── sql-cli-test-and-build-workflow.yml │ ├── sql-jdbc-push-jdbc-maven.yml │ ├── sql-jdbc-release-workflow.yml │ ├── sql-jdbc-test-and-build-workflow.yml │ ├── sql-odbc-main.yml │ ├── sql-odbc-release-workflow.yml │ ├── sql-odbc-rename-and-release-workflow.yml │ ├── sql-release-workflow.yml │ ├── sql-test-and-build-workflow.yml │ ├── sql-workbench-release-workflow.yml │ └── sql-workbench-test-and-build-workflow.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── CONTRIBUTORS.md ├── LICENSE.txt ├── NOTICE ├── README.md ├── THIRD-PARTY ├── bi-connectors ├── PowerBIConnector │ ├── Diagnostics.pqm │ ├── OdbcConstants.pqm │ ├── OdfeSqlOdbcPBIConnector.mproj │ ├── OdfeSqlOdbcPBIConnector.pq │ ├── OdfeSqlOdbcPBIConnector.query.pq │ ├── OdfeSqlOdbcPBIConnector16.png │ ├── OdfeSqlOdbcPBIConnector20.png │ ├── OdfeSqlOdbcPBIConnector24.png │ ├── OdfeSqlOdbcPBIConnector32.png │ ├── OdfeSqlOdbcPBIConnector40.png │ ├── OdfeSqlOdbcPBIConnector48.png │ ├── OdfeSqlOdbcPBIConnector64.png │ ├── OdfeSqlOdbcPBIConnector80.png │ ├── PBIDSExamples │ │ └── odfesqlodbc_import.pbids │ ├── bin │ │ └── Release │ │ │ └── OdfeSqlOdbcPBIConnector.mez │ └── resources.resx └── TableauConnector │ ├── odfe_sql_odbc │ ├── README.md │ ├── connection-dialog.tcd │ ├── connectionBuilder.js │ ├── connectionResolver.tdr │ ├── dialect.tdd │ ├── manifest.xml │ └── odfe_sql_odbc.taco │ └── odfe_sql_odbc_dev │ ├── README.md │ ├── connection-dialog.tcd │ ├── connectionBuilder.js │ ├── connectionResolver.tdr │ ├── dialect.tdd │ ├── manifest.xml │ └── odfe_sql_odbc_dev.taco ├── build-tools └── sqlplugin-coverage.gradle ├── build.gradle ├── common ├── build.gradle ├── lombok.config └── src │ └── main │ └── java │ └── com │ └── amazon │ └── opendistroforelasticsearch │ └── sql │ └── common │ ├── antlr │ ├── CaseInsensitiveCharStream.java │ ├── SyntaxAnalysisErrorListener.java │ └── SyntaxCheckException.java │ ├── response │ └── ResponseListener.java │ ├── setting │ └── Settings.java │ └── utils │ ├── LogUtils.java │ └── StringUtils.java ├── config └── checkstyle │ ├── checkstyle.xml │ ├── google_checks.xml │ └── suppressions.xml ├── core ├── build.gradle ├── lombok.config └── src │ ├── main │ └── java │ │ └── com │ │ └── amazon │ │ └── opendistroforelasticsearch │ │ └── sql │ │ ├── analysis │ │ ├── AnalysisContext.java │ │ ├── Analyzer.java │ │ ├── ExpressionAnalyzer.java │ │ ├── ExpressionReferenceOptimizer.java │ │ ├── NamedExpressionAnalyzer.java │ │ ├── QualifierAnalyzer.java │ │ ├── SelectExpressionAnalyzer.java │ │ ├── TypeEnvironment.java │ │ ├── WindowExpressionAnalyzer.java │ │ └── symbol │ │ │ ├── Namespace.java │ │ │ ├── Symbol.java │ │ │ └── SymbolTable.java │ │ ├── ast │ │ ├── AbstractNodeVisitor.java │ │ ├── Node.java │ │ ├── dsl │ │ │ └── AstDSL.java │ │ ├── expression │ │ │ ├── AggregateFunction.java │ │ │ ├── Alias.java │ │ │ ├── AllFields.java │ │ │ ├── And.java │ │ │ ├── Argument.java │ │ │ ├── AttributeList.java │ │ │ ├── Case.java │ │ │ ├── Cast.java │ │ │ ├── Compare.java │ │ │ ├── DataType.java │ │ │ ├── EqualTo.java │ │ │ ├── Field.java │ │ │ ├── Function.java │ │ │ ├── In.java │ │ │ ├── Interval.java │ │ │ ├── IntervalUnit.java │ │ │ ├── Let.java │ │ │ ├── Literal.java │ │ │ ├── Map.java │ │ │ ├── Not.java │ │ │ ├── Or.java │ │ │ ├── QualifiedName.java │ │ │ ├── UnresolvedArgument.java │ │ │ ├── UnresolvedAttribute.java │ │ │ ├── UnresolvedExpression.java │ │ │ ├── When.java │ │ │ ├── WindowFunction.java │ │ │ └── Xor.java │ │ └── tree │ │ │ ├── Aggregation.java │ │ │ ├── Dedupe.java │ │ │ ├── Eval.java │ │ │ ├── Filter.java │ │ │ ├── Head.java │ │ │ ├── Limit.java │ │ │ ├── Project.java │ │ │ ├── RareTopN.java │ │ │ ├── Relation.java │ │ │ ├── RelationSubquery.java │ │ │ ├── Rename.java │ │ │ ├── Sort.java │ │ │ ├── UnresolvedPlan.java │ │ │ └── Values.java │ │ ├── data │ │ ├── model │ │ │ ├── AbstractExprNumberValue.java │ │ │ ├── AbstractExprValue.java │ │ │ ├── ExprBooleanValue.java │ │ │ ├── ExprByteValue.java │ │ │ ├── ExprCollectionValue.java │ │ │ ├── ExprDateValue.java │ │ │ ├── ExprDatetimeValue.java │ │ │ ├── ExprDoubleValue.java │ │ │ ├── ExprFloatValue.java │ │ │ ├── ExprIntegerValue.java │ │ │ ├── ExprIntervalValue.java │ │ │ ├── ExprLongValue.java │ │ │ ├── ExprMissingValue.java │ │ │ ├── ExprNullValue.java │ │ │ ├── ExprShortValue.java │ │ │ ├── ExprStringValue.java │ │ │ ├── ExprTimeValue.java │ │ │ ├── ExprTimestampValue.java │ │ │ ├── ExprTupleValue.java │ │ │ ├── ExprValue.java │ │ │ └── ExprValueUtils.java │ │ ├── type │ │ │ ├── ExprCoreType.java │ │ │ ├── ExprType.java │ │ │ └── WideningTypeRule.java │ │ └── utils │ │ │ ├── ExprValueOrdering.java │ │ │ ├── NaturalExprValueOrdering.java │ │ │ ├── NullsFirstExprValueOrdering.java │ │ │ ├── NullsLastExprValueOrdering.java │ │ │ └── ReverseExprValueOrdering.java │ │ ├── exception │ │ ├── ExpressionEvaluationException.java │ │ ├── QueryEngineException.java │ │ └── SemanticCheckException.java │ │ ├── executor │ │ ├── ExecutionEngine.java │ │ └── Explain.java │ │ ├── expression │ │ ├── DSL.java │ │ ├── Expression.java │ │ ├── ExpressionNodeVisitor.java │ │ ├── FunctionExpression.java │ │ ├── LiteralExpression.java │ │ ├── NamedExpression.java │ │ ├── ReferenceExpression.java │ │ ├── aggregation │ │ │ ├── AggregationState.java │ │ │ ├── Aggregator.java │ │ │ ├── AggregatorFunction.java │ │ │ ├── AvgAggregator.java │ │ │ ├── CountAggregator.java │ │ │ ├── MaxAggregator.java │ │ │ ├── MinAggregator.java │ │ │ ├── NamedAggregator.java │ │ │ └── SumAggregator.java │ │ ├── conditional │ │ │ └── cases │ │ │ │ ├── CaseClause.java │ │ │ │ └── WhenClause.java │ │ ├── config │ │ │ └── ExpressionConfig.java │ │ ├── datetime │ │ │ ├── CalendarLookup.java │ │ │ ├── DateTimeFormatterUtil.java │ │ │ ├── DateTimeFunction.java │ │ │ └── IntervalClause.java │ │ ├── env │ │ │ └── Environment.java │ │ ├── function │ │ │ ├── BuiltinFunctionName.java │ │ │ ├── BuiltinFunctionRepository.java │ │ │ ├── FunctionBuilder.java │ │ │ ├── FunctionDSL.java │ │ │ ├── FunctionImplementation.java │ │ │ ├── FunctionName.java │ │ │ ├── FunctionResolver.java │ │ │ ├── FunctionSignature.java │ │ │ ├── SerializableBiFunction.java │ │ │ ├── SerializableFunction.java │ │ │ ├── SerializableNoArgFunction.java │ │ │ └── SerializableTriFunction.java │ │ ├── operator │ │ │ ├── arthmetic │ │ │ │ ├── ArithmeticFunction.java │ │ │ │ └── MathematicalFunction.java │ │ │ ├── convert │ │ │ │ └── TypeCastOperator.java │ │ │ └── predicate │ │ │ │ ├── BinaryPredicateOperator.java │ │ │ │ └── UnaryPredicateOperator.java │ │ ├── text │ │ │ └── TextFunction.java │ │ └── window │ │ │ ├── WindowDefinition.java │ │ │ ├── WindowFunctionExpression.java │ │ │ ├── WindowFunctions.java │ │ │ ├── aggregation │ │ │ └── AggregateWindowFunction.java │ │ │ ├── frame │ │ │ ├── CurrentRowWindowFrame.java │ │ │ ├── PeerRowsWindowFrame.java │ │ │ └── WindowFrame.java │ │ │ └── ranking │ │ │ ├── DenseRankFunction.java │ │ │ ├── RankFunction.java │ │ │ ├── RankingWindowFunction.java │ │ │ └── RowNumberFunction.java │ │ ├── monitor │ │ ├── AlwaysHealthyMonitor.java │ │ └── ResourceMonitor.java │ │ ├── planner │ │ ├── DefaultImplementor.java │ │ ├── PlanNode.java │ │ ├── Planner.java │ │ ├── logical │ │ │ ├── LogicalAggregation.java │ │ │ ├── LogicalDedupe.java │ │ │ ├── LogicalEval.java │ │ │ ├── LogicalFilter.java │ │ │ ├── LogicalLimit.java │ │ │ ├── LogicalPlan.java │ │ │ ├── LogicalPlanDSL.java │ │ │ ├── LogicalPlanNodeVisitor.java │ │ │ ├── LogicalProject.java │ │ │ ├── LogicalRareTopN.java │ │ │ ├── LogicalRelation.java │ │ │ ├── LogicalRemove.java │ │ │ ├── LogicalRename.java │ │ │ ├── LogicalSort.java │ │ │ ├── LogicalValues.java │ │ │ └── LogicalWindow.java │ │ ├── optimizer │ │ │ ├── LogicalPlanOptimizer.java │ │ │ ├── Rule.java │ │ │ ├── pattern │ │ │ │ └── Patterns.java │ │ │ └── rule │ │ │ │ ├── MergeFilterAndFilter.java │ │ │ │ └── PushFilterUnderSort.java │ │ └── physical │ │ │ ├── AggregationOperator.java │ │ │ ├── DedupeOperator.java │ │ │ ├── EvalOperator.java │ │ │ ├── FilterOperator.java │ │ │ ├── LimitOperator.java │ │ │ ├── PhysicalPlan.java │ │ │ ├── PhysicalPlanDSL.java │ │ │ ├── PhysicalPlanNodeVisitor.java │ │ │ ├── ProjectOperator.java │ │ │ ├── RareTopNOperator.java │ │ │ ├── RemoveOperator.java │ │ │ ├── RenameOperator.java │ │ │ ├── SortOperator.java │ │ │ ├── ValuesOperator.java │ │ │ └── WindowOperator.java │ │ ├── storage │ │ ├── StorageEngine.java │ │ ├── Table.java │ │ ├── TableScanOperator.java │ │ └── bindingtuple │ │ │ ├── BindingTuple.java │ │ │ └── LazyBindingTuple.java │ │ └── utils │ │ ├── ExpressionUtils.java │ │ ├── OperatorUtils.java │ │ └── SystemIndexUtils.java │ └── test │ └── java │ └── com │ └── amazon │ └── opendistroforelasticsearch │ └── sql │ ├── analysis │ ├── AnalysisContextTest.java │ ├── AnalyzerTest.java │ ├── AnalyzerTestBase.java │ ├── ExpressionAnalyzerTest.java │ ├── ExpressionReferenceOptimizerTest.java │ ├── NamedExpressionAnalyzerTest.java │ ├── QualifierAnalyzerTest.java │ ├── SelectAnalyzeTest.java │ ├── SelectExpressionAnalyzerTest.java │ ├── TypeEnvironmentTest.java │ ├── WindowExpressionAnalyzerTest.java │ └── symbol │ │ └── SymbolTableTest.java │ ├── ast │ ├── expression │ │ ├── CastTest.java │ │ └── QualifiedNameTest.java │ └── tree │ │ └── RelationTest.java │ ├── config │ └── TestConfig.java │ ├── data │ ├── model │ │ ├── DateTimeValueTest.java │ │ ├── ExprBooleanValueTest.java │ │ ├── ExprCollectionValueTest.java │ │ ├── ExprIntervalValueTest.java │ │ ├── ExprMissingValueTest.java │ │ ├── ExprNullValueTest.java │ │ ├── ExprNumberValueTest.java │ │ ├── ExprTupleValueTest.java │ │ ├── ExprValueCompareTest.java │ │ └── ExprValueUtilsTest.java │ ├── type │ │ └── ExprTypeTest.java │ └── utils │ │ ├── ExprValueOrderingTest.java │ │ ├── NullsFirstExprValueOrderingTest.java │ │ ├── NullsLastExprValueOrderingTest.java │ │ └── ReverseExprValueOrderingTest.java │ ├── executor │ └── ExplainTest.java │ ├── expression │ ├── ExpressionNodeVisitorTest.java │ ├── ExpressionTestBase.java │ ├── NamedExpressionTest.java │ ├── ReferenceExpressionTest.java │ ├── aggregation │ │ ├── AggregationTest.java │ │ ├── AvgAggregatorTest.java │ │ ├── CountAggregatorTest.java │ │ ├── MaxAggregatorTest.java │ │ ├── MinAggregatorTest.java │ │ └── SumAggregatorTest.java │ ├── conditional │ │ ├── ConditionalFunctionTest.java │ │ └── cases │ │ │ ├── CaseClauseTest.java │ │ │ └── WhenClauseTest.java │ ├── datetime │ │ ├── DateTimeFunctionTest.java │ │ └── IntervalClauseTest.java │ ├── function │ │ ├── BuiltinFunctionNameTest.java │ │ ├── BuiltinFunctionRepositoryTest.java │ │ ├── FunctionResolverTest.java │ │ ├── FunctionSignatureTest.java │ │ └── WideningTypeRuleTest.java │ ├── operator │ │ ├── arthmetic │ │ │ ├── ArithmeticFunctionTest.java │ │ │ ├── MathematicalFunctionTest.java │ │ │ └── UnaryFunctionTest.java │ │ ├── convert │ │ │ └── TypeCastOperatorTest.java │ │ └── predicate │ │ │ ├── BinaryPredicateOperatorTest.java │ │ │ └── UnaryPredicateOperatorTest.java │ ├── text │ │ └── TextFunctionTest.java │ └── window │ │ ├── CurrentRowWindowFrameTest.java │ │ ├── aggregation │ │ └── AggregateWindowFunctionTest.java │ │ ├── frame │ │ └── PeerRowsWindowFrameTest.java │ │ └── ranking │ │ └── RankingWindowFunctionTest.java │ ├── monitor │ └── AlwaysHealthyMonitorTest.java │ ├── planner │ ├── DefaultImplementorTest.java │ ├── PlannerTest.java │ ├── logical │ │ ├── LogicalDedupeTest.java │ │ ├── LogicalEvalTest.java │ │ ├── LogicalPlanNodeVisitorTest.java │ │ ├── LogicalRelationTest.java │ │ └── LogicalSortTest.java │ ├── optimizer │ │ ├── LogicalPlanOptimizerTest.java │ │ └── pattern │ │ │ └── PatternsTest.java │ └── physical │ │ ├── AggregationOperatorTest.java │ │ ├── DedupeOperatorTest.java │ │ ├── EvalOperatorTest.java │ │ ├── FilterOperatorTest.java │ │ ├── LimitOperatorTest.java │ │ ├── PhysicalPlanNodeVisitorTest.java │ │ ├── PhysicalPlanTestBase.java │ │ ├── ProjectOperatorTest.java │ │ ├── RareTopNOperatorTest.java │ │ ├── RemoveOperatorTest.java │ │ ├── RenameOperatorTest.java │ │ ├── SortOperatorTest.java │ │ ├── ValuesOperatorTest.java │ │ └── WindowOperatorTest.java │ ├── storage │ ├── TableScanOperatorTest.java │ └── bindingtuple │ │ └── BindingTupleTest.java │ └── utils │ ├── ComparisonUtil.java │ ├── MatcherUtils.java │ └── SystemIndexUtilsTest.java ├── docs ├── attributions.md ├── category.json ├── dev │ ├── AggregateWindowFunction.md │ ├── Architecture.md │ ├── Doctest.md │ ├── NewSQLEngine.md │ ├── Pagination.md │ ├── SemanticAnalysis.md │ ├── SubQuery.md │ ├── Testing.md │ └── img │ │ ├── aggregate-window-functions.png │ │ ├── architecture-journey.png │ │ ├── architecture-overview.png │ │ ├── cursor-initial-request-flow.jpg │ │ ├── cursor-subsequent-request-flow.png │ │ ├── doctest-gradle-project-structure.png │ │ ├── doctest-workflow.png │ │ ├── equi-join-approach-1.png │ │ ├── equi-join-approach-2.png │ │ ├── equi-join-approach-3.png │ │ ├── high-level-cursor-design.jpg │ │ ├── how-semantic-analysis-works.png │ │ ├── how-types-synthesized.png │ │ ├── how-we-do-comparison-test.png │ │ ├── test-framework-components.png │ │ ├── the-workflow-of-comparison-test.png │ │ └── what-semantic-context-looks-like.png ├── developing.rst ├── experiment │ └── ppl │ │ ├── RFC_ Pipe Processing Language.pdf │ │ ├── admin │ │ ├── monitoring.rst │ │ └── settings.rst │ │ ├── cmd │ │ ├── dedup.rst │ │ ├── eval.rst │ │ ├── fields.rst │ │ ├── head.rst │ │ ├── rare.rst │ │ ├── rename.rst │ │ ├── search.rst │ │ ├── sort.rst │ │ ├── stats.rst │ │ ├── syntax.rst │ │ ├── top.rst │ │ └── where.rst │ │ ├── functions │ │ ├── condition.rst │ │ ├── datetime.rst │ │ ├── math.rst │ │ └── string.rst │ │ ├── general │ │ ├── datatypes.rst │ │ └── identifiers.rst │ │ ├── index.rst │ │ ├── interfaces │ │ ├── endpoint.rst │ │ └── protocol.rst │ │ └── limitations │ │ └── limitations.rst ├── presentations │ └── 20201116-sql-demo.md └── user │ ├── admin │ ├── monitoring.rst │ └── settings.rst │ ├── beyond │ ├── fulltext.rst │ └── partiql.rst │ ├── dml │ └── delete.rst │ ├── dql │ ├── aggregations.rst │ ├── basics.rst │ ├── complex.rst │ ├── expressions.rst │ ├── functions.rst │ ├── metadata.rst │ ├── newsql.rst │ ├── troubleshooting.rst │ └── window.rst │ ├── general │ ├── comments.rst │ ├── datatypes.rst │ ├── identifiers.rst │ └── values.rst │ ├── img │ └── rdd │ │ ├── expression.png │ │ ├── expressionAtom.png │ │ ├── fromClause.png │ │ ├── joinPart.png │ │ ├── predicate.png │ │ ├── querySpecification.png │ │ ├── selectElement.png │ │ ├── selectElements.png │ │ ├── showFilter.png │ │ ├── showStatement.png │ │ ├── singleDeleteStatement.png │ │ ├── tableName.png │ │ └── tableSource.png │ ├── index.rst │ ├── interfaces │ ├── endpoint.rst │ └── protocol.rst │ ├── limitations │ └── limitations.rst │ └── optimization │ └── optimization.rst ├── doctest ├── bin │ └── test-docs ├── bootstrap.sh ├── build.gradle ├── requirements.txt ├── test_data │ ├── accounts.json │ └── people.json ├── test_docs.py └── test_mapping │ └── people.json ├── elasticsearch ├── build.gradle ├── lombok.config └── src │ ├── main │ └── java │ │ └── com │ │ └── amazon │ │ └── opendistroforelasticsearch │ │ └── sql │ │ └── elasticsearch │ │ ├── client │ │ ├── ElasticsearchClient.java │ │ ├── ElasticsearchNodeClient.java │ │ └── ElasticsearchRestClient.java │ │ ├── data │ │ ├── type │ │ │ └── ElasticsearchDataType.java │ │ ├── utils │ │ │ ├── Content.java │ │ │ ├── ElasticsearchJsonContent.java │ │ │ └── ObjectContent.java │ │ └── value │ │ │ ├── ElasticsearchDateFormatters.java │ │ │ ├── ElasticsearchExprBinaryValue.java │ │ │ ├── ElasticsearchExprGeoPointValue.java │ │ │ ├── ElasticsearchExprIpValue.java │ │ │ ├── ElasticsearchExprTextKeywordValue.java │ │ │ ├── ElasticsearchExprTextValue.java │ │ │ └── ElasticsearchExprValueFactory.java │ │ ├── executor │ │ ├── ElasticsearchExecutionEngine.java │ │ └── protector │ │ │ ├── ElasticsearchExecutionProtector.java │ │ │ ├── ExecutionProtector.java │ │ │ ├── NoopExecutionProtector.java │ │ │ └── ResourceMonitorPlan.java │ │ ├── mapping │ │ └── IndexMapping.java │ │ ├── monitor │ │ ├── ElasticsearchMemoryHealthy.java │ │ └── ElasticsearchResourceMonitor.java │ │ ├── planner │ │ └── logical │ │ │ ├── ElasticsearchLogicalIndexAgg.java │ │ │ ├── ElasticsearchLogicalIndexScan.java │ │ │ ├── ElasticsearchLogicalPlanOptimizerFactory.java │ │ │ └── rule │ │ │ ├── MergeAggAndIndexScan.java │ │ │ ├── MergeAggAndRelation.java │ │ │ ├── MergeFilterAndRelation.java │ │ │ ├── MergeLimitAndIndexScan.java │ │ │ ├── MergeLimitAndRelation.java │ │ │ ├── MergeSortAndIndexAgg.java │ │ │ ├── MergeSortAndIndexScan.java │ │ │ ├── MergeSortAndRelation.java │ │ │ ├── OptimizationRuleUtils.java │ │ │ ├── PushProjectAndIndexScan.java │ │ │ └── PushProjectAndRelation.java │ │ ├── request │ │ ├── ElasticsearchQueryRequest.java │ │ ├── ElasticsearchRequest.java │ │ ├── ElasticsearchScrollRequest.java │ │ └── system │ │ │ ├── ElasticsearchCatIndicesRequest.java │ │ │ ├── ElasticsearchDescribeIndexRequest.java │ │ │ └── ElasticsearchSystemRequest.java │ │ ├── response │ │ ├── ElasticsearchAggregationResponseParser.java │ │ ├── ElasticsearchResponse.java │ │ └── error │ │ │ ├── ElasticsearchErrorMessage.java │ │ │ ├── ErrorMessage.java │ │ │ └── ErrorMessageFactory.java │ │ ├── security │ │ └── SecurityAccess.java │ │ ├── setting │ │ └── ElasticsearchSettings.java │ │ └── storage │ │ ├── ElasticsearchIndex.java │ │ ├── ElasticsearchIndexScan.java │ │ ├── ElasticsearchStorageEngine.java │ │ ├── script │ │ ├── ExpressionScriptEngine.java │ │ ├── ScriptUtils.java │ │ ├── aggregation │ │ │ ├── AggregationQueryBuilder.java │ │ │ ├── ExpressionAggregationScript.java │ │ │ ├── ExpressionAggregationScriptFactory.java │ │ │ ├── ExpressionAggregationScriptLeafFactory.java │ │ │ └── dsl │ │ │ │ ├── AggregationBuilderHelper.java │ │ │ │ ├── BucketAggregationBuilder.java │ │ │ │ └── MetricAggregationBuilder.java │ │ ├── core │ │ │ └── ExpressionScript.java │ │ ├── filter │ │ │ ├── ExpressionFilterScript.java │ │ │ ├── ExpressionFilterScriptFactory.java │ │ │ ├── ExpressionFilterScriptLeafFactory.java │ │ │ ├── FilterQueryBuilder.java │ │ │ └── lucene │ │ │ │ ├── LuceneQuery.java │ │ │ │ ├── RangeQuery.java │ │ │ │ ├── TermQuery.java │ │ │ │ └── WildcardQuery.java │ │ └── sort │ │ │ └── SortQueryBuilder.java │ │ ├── serialization │ │ ├── DefaultExpressionSerializer.java │ │ └── ExpressionSerializer.java │ │ └── system │ │ ├── ElasticsearchSystemIndex.java │ │ ├── ElasticsearchSystemIndexScan.java │ │ └── ElasticsearchSystemIndexSchema.java │ └── test │ ├── java │ └── com │ │ └── amazon │ │ └── opendistroforelasticsearch │ │ └── sql │ │ └── elasticsearch │ │ ├── client │ │ ├── ElasticsearchNodeClientTest.java │ │ └── ElasticsearchRestClientTest.java │ │ ├── data │ │ ├── type │ │ │ └── ElasticsearchDataTypeTest.java │ │ └── value │ │ │ ├── ElasticsearchExprBinaryValueTest.java │ │ │ ├── ElasticsearchExprGeoPointValueTest.java │ │ │ ├── ElasticsearchExprIpValueTest.java │ │ │ ├── ElasticsearchExprTextKeywordValueTest.java │ │ │ ├── ElasticsearchExprTextValueTest.java │ │ │ └── ElasticsearchExprValueFactoryTest.java │ │ ├── executor │ │ ├── ElasticsearchExecutionEngineTest.java │ │ ├── ElasticsearchExecutionProtectorTest.java │ │ ├── ResourceMonitorPlanTest.java │ │ └── protector │ │ │ └── NoopExecutionProtectorTest.java │ │ ├── mapping │ │ └── IndexMappingTest.java │ │ ├── monitor │ │ ├── ElasticsearchMemoryHealthyTest.java │ │ └── ElasticsearchResourceMonitorTest.java │ │ ├── planner │ │ └── logical │ │ │ ├── ElasticsearchLogicOptimizerTest.java │ │ │ └── ElasticsearchLogicalIndexScanTest.java │ │ ├── request │ │ ├── ElasticsearchQueryRequestTest.java │ │ ├── ElasticsearchScrollRequestTest.java │ │ └── system │ │ │ ├── ElasticsearchCatIndicesRequestTest.java │ │ │ └── ElasticsearchDescribeIndexRequestTest.java │ │ ├── response │ │ ├── AggregationResponseUtils.java │ │ ├── ElasticsearchAggregationResponseParserTest.java │ │ ├── ElasticsearchResponseTest.java │ │ └── error │ │ │ ├── ElasticsearchErrorMessageTest.java │ │ │ ├── ErrorMessageFactoryTest.java │ │ │ └── ErrorMessageTest.java │ │ ├── setting │ │ └── ElasticsearchSettingsTest.java │ │ ├── storage │ │ ├── ElasticsearchDefaultImplementorTest.java │ │ ├── ElasticsearchIndexScanTest.java │ │ ├── ElasticsearchIndexTest.java │ │ ├── ElasticsearchStorageEngineTest.java │ │ ├── script │ │ │ ├── ExpressionScriptEngineTest.java │ │ │ ├── aggregation │ │ │ │ ├── AggregationQueryBuilderTest.java │ │ │ │ ├── ExpressionAggregationScriptFactoryTest.java │ │ │ │ ├── ExpressionAggregationScriptTest.java │ │ │ │ ├── GroupSortOrderTest.java │ │ │ │ └── dsl │ │ │ │ │ ├── BucketAggregationBuilderTest.java │ │ │ │ │ └── MetricAggregationBuilderTest.java │ │ │ ├── filter │ │ │ │ ├── ExpressionFilterScriptFactoryTest.java │ │ │ │ ├── ExpressionFilterScriptTest.java │ │ │ │ ├── FilterQueryBuilderTest.java │ │ │ │ └── lucene │ │ │ │ │ ├── LuceneQueryTest.java │ │ │ │ │ └── RangeQueryTest.java │ │ │ └── sort │ │ │ │ └── SortQueryBuilderTest.java │ │ ├── serialization │ │ │ └── DefaultExpressionSerializerTest.java │ │ └── system │ │ │ ├── ElasticsearchSystemIndexScanTest.java │ │ │ └── ElasticsearchSystemIndexTest.java │ │ └── utils │ │ └── Utils.java │ └── resources │ ├── mappings │ └── accounts.json │ └── mockito-extensions │ └── org.mockito.plugins.MockMaker ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── integ-test ├── build.gradle ├── lombok.config └── src │ └── test │ ├── java │ └── com │ │ └── amazon │ │ └── opendistroforelasticsearch │ │ └── sql │ │ ├── correctness │ │ ├── CorrectnessIT.java │ │ ├── TestConfig.java │ │ ├── report │ │ │ ├── ErrorTestCase.java │ │ │ ├── FailedTestCase.java │ │ │ ├── SuccessTestCase.java │ │ │ ├── TestCaseReport.java │ │ │ ├── TestReport.java │ │ │ └── TestSummary.java │ │ ├── runner │ │ │ ├── ComparisonTest.java │ │ │ ├── connection │ │ │ │ ├── DBConnection.java │ │ │ │ ├── ESConnection.java │ │ │ │ └── JDBCConnection.java │ │ │ └── resultset │ │ │ │ ├── DBResult.java │ │ │ │ ├── Row.java │ │ │ │ └── Type.java │ │ ├── tests │ │ │ ├── ComparisonTestTest.java │ │ │ ├── DBResultTest.java │ │ │ ├── ESConnectionTest.java │ │ │ ├── JDBCConnectionTest.java │ │ │ ├── RowTest.java │ │ │ ├── TestConfigTest.java │ │ │ ├── TestDataSetTest.java │ │ │ ├── TestQuerySetTest.java │ │ │ ├── TestReportTest.java │ │ │ └── UnitTests.java │ │ └── testset │ │ │ ├── TestDataSet.java │ │ │ └── TestQuerySet.java │ │ ├── doctest │ │ ├── admin │ │ │ ├── MonitoringIT.java │ │ │ └── PluginSettingIT.java │ │ ├── beyond │ │ │ ├── FullTextIT.java │ │ │ └── PartiQLIT.java │ │ ├── core │ │ │ ├── DocTest.java │ │ │ ├── Template.java │ │ │ ├── TestData.java │ │ │ ├── annotation │ │ │ │ ├── DocTestConfig.java │ │ │ │ └── Section.java │ │ │ ├── builder │ │ │ │ ├── Body.java │ │ │ │ ├── DocBuilder.java │ │ │ │ ├── Example.java │ │ │ │ ├── Formats.java │ │ │ │ ├── ListItems.java │ │ │ │ └── Requests.java │ │ │ ├── markup │ │ │ │ ├── Document.java │ │ │ │ └── RstDocument.java │ │ │ ├── request │ │ │ │ ├── SqlRequest.java │ │ │ │ └── SqlRequestFormat.java │ │ │ ├── response │ │ │ │ ├── DataTable.java │ │ │ │ ├── SqlResponse.java │ │ │ │ └── SqlResponseFormat.java │ │ │ └── test │ │ │ │ ├── DataTableTest.java │ │ │ │ ├── DocBuilderTest.java │ │ │ │ ├── DocTestTests.java │ │ │ │ ├── RstDocumentTest.java │ │ │ │ ├── SqlRequestFormatTest.java │ │ │ │ ├── SqlRequestTest.java │ │ │ │ ├── SqlResponseFormatTest.java │ │ │ │ └── SqlResponseTest.java │ │ ├── dml │ │ │ └── DeleteIT.java │ │ ├── dql │ │ │ ├── BasicQueryIT.java │ │ │ ├── ComplexQueryIT.java │ │ │ ├── MetaDataQueryIT.java │ │ │ └── SQLFunctionsIT.java │ │ └── interfaces │ │ │ ├── EndpointIT.java │ │ │ └── ProtocolIT.java │ │ ├── legacy │ │ ├── AggregationExpressionIT.java │ │ ├── AggregationIT.java │ │ ├── CsvFormatResponseIT.java │ │ ├── CursorIT.java │ │ ├── CustomExternalTestCluster.java │ │ ├── DateFormatIT.java │ │ ├── DateFunctionsIT.java │ │ ├── DeleteIT.java │ │ ├── ExplainIT.java │ │ ├── GetEndpointQueryIT.java │ │ ├── HashJoinIT.java │ │ ├── HavingIT.java │ │ ├── JSONRequestIT.java │ │ ├── JdbcTestIT.java │ │ ├── JoinAliasWriterRuleIT.java │ │ ├── JoinIT.java │ │ ├── MathFunctionsIT.java │ │ ├── MetaDataQueriesIT.java │ │ ├── MethodQueryIT.java │ │ ├── MetricsIT.java │ │ ├── MultiQueryIT.java │ │ ├── NestedFieldQueryIT.java │ │ ├── ODFERestTestCase.java │ │ ├── ObjectFieldSelectIT.java │ │ ├── OrderIT.java │ │ ├── OrdinalAliasRewriterIT.java │ │ ├── PluginIT.java │ │ ├── PreparedStatementIT.java │ │ ├── PrettyFormatResponseIT.java │ │ ├── PrettyFormatterIT.java │ │ ├── QueryAnalysisIT.java │ │ ├── QueryFunctionsIT.java │ │ ├── QueryIT.java │ │ ├── RestIntegTestCase.java │ │ ├── SQLFunctionsIT.java │ │ ├── SQLIntegTestCase.java │ │ ├── ShowIT.java │ │ ├── SourceFieldIT.java │ │ ├── SubqueryIT.java │ │ ├── TermQueryExplainIT.java │ │ ├── TestUtils.java │ │ ├── TestsConstants.java │ │ └── TypeInformationIT.java │ │ ├── ppl │ │ ├── CsvFormatIT.java │ │ ├── DataTypeIT.java │ │ ├── DateTimeFunctionIT.java │ │ ├── DedupCommandIT.java │ │ ├── ExplainIT.java │ │ ├── FieldsCommandIT.java │ │ ├── HeadCommandIT.java │ │ ├── MathematicalFunctionIT.java │ │ ├── MetricsIT.java │ │ ├── ObjectFieldOperateIT.java │ │ ├── OperatorIT.java │ │ ├── PPLIntegTestCase.java │ │ ├── PPLPluginIT.java │ │ ├── QueryAnalysisIT.java │ │ ├── RareCommandIT.java │ │ ├── RenameCommandIT.java │ │ ├── ResourceMonitorIT.java │ │ ├── SearchCommandIT.java │ │ ├── SettingsIT.java │ │ ├── SortCommandIT.java │ │ ├── StandaloneIT.java │ │ ├── StatsCommandIT.java │ │ ├── TextCommandIT.java │ │ ├── TopCommandIT.java │ │ └── WhereCommandIT.java │ │ ├── sql │ │ ├── AdminIT.java │ │ ├── ConditionalIT.java │ │ ├── CorrectnessTestBase.java │ │ ├── CsvFormatIT.java │ │ ├── DateTimeFunctionIT.java │ │ ├── ExpressionIT.java │ │ ├── IdentifierIT.java │ │ ├── JdbcFormatIT.java │ │ ├── MathematicalFunctionIT.java │ │ ├── MetricsIT.java │ │ ├── NullLiteralIT.java │ │ ├── PreparedStatementIT.java │ │ ├── QueryValidationIT.java │ │ ├── RawFormatIT.java │ │ ├── SQLCorrectnessIT.java │ │ ├── TextFunctionIT.java │ │ └── WindowFunctionIT.java │ │ └── util │ │ ├── MatcherUtils.java │ │ └── TestUtils.java │ └── resources │ ├── .bank.json │ ├── accounts.json │ ├── accounts_temp.json │ ├── bank.json │ ├── bank_csv_sanitize.json │ ├── bank_for_unquote_test.json │ ├── bank_raw_sanitize.json │ ├── bank_two.json │ ├── bank_with_null_values.json │ ├── correctness │ ├── bugfixes │ │ ├── 123.txt │ │ ├── 234.txt │ │ ├── 237.txt │ │ ├── 242.txt │ │ ├── 277.txt │ │ ├── 280.txt │ │ ├── 288.txt │ │ ├── 368.txt │ │ ├── 373.txt │ │ ├── 375.txt │ │ ├── 430.txt │ │ ├── 441.txt │ │ ├── 521.txt │ │ ├── 582.txt │ │ ├── 674.txt │ │ ├── 690.txt │ │ ├── 717.txt │ │ ├── 765.txt │ │ ├── 852.txt │ │ ├── 877.txt │ │ ├── 899.txt │ │ ├── 901.txt │ │ └── 916.txt │ ├── expressions │ │ ├── arithmetics.txt │ │ ├── cast.txt │ │ ├── conditionals.txt │ │ ├── date_and_time_functions.txt │ │ ├── literals.txt │ │ ├── mathematical_functions.txt │ │ ├── predicates.txt │ │ └── text_functions.txt │ ├── kibana_sample_data_ecommerce.csv │ ├── kibana_sample_data_ecommerce.json │ ├── kibana_sample_data_flights.csv │ ├── kibana_sample_data_flights.json │ ├── queries │ │ ├── aggregation.txt │ │ ├── filter.txt │ │ ├── groupby.txt │ │ ├── joins.txt │ │ ├── orderby.txt │ │ ├── select.txt │ │ ├── subquries.txt │ │ └── window.txt │ ├── sanity_integration_tests.txt │ ├── tableau_integration_tests.txt │ ├── test_data_test.csv │ └── test_data_test.json │ ├── datatypes.json │ ├── datatypes_numeric.json │ ├── dates.json │ ├── datetime.json │ ├── deep_nested_index_data.json │ ├── doctest │ ├── mappings │ │ ├── accounts.json │ │ └── employees_nested.json │ ├── templates │ │ ├── admin │ │ │ ├── monitoring.rst │ │ │ └── settings.rst │ │ ├── beyond │ │ │ ├── fulltext.rst │ │ │ └── partiql.rst │ │ ├── dml │ │ │ └── delete.rst │ │ ├── dql │ │ │ ├── basics.rst │ │ │ ├── complex.rst │ │ │ ├── functions.rst │ │ │ └── metadata.rst │ │ └── interfaces │ │ │ ├── endpoint.rst │ │ │ └── protocol.rst │ └── testdata │ │ ├── accounts.json │ │ └── employees_nested.json │ ├── dogs.json │ ├── dogs2.json │ ├── dogs3.json │ ├── dogsubquery.json │ ├── elasticsearch.yml │ ├── employee_nested.json │ ├── expectedOutput │ ├── aggregation_query_explain.json │ ├── between_query.json │ ├── delete_explain.json │ ├── explainIT_format_not_pretty.json │ ├── explainIT_format_pretty.json │ ├── multi_match_query.json │ ├── nested_loop_join_explain.json │ ├── ppl │ │ ├── explain_filter_agg_push.json │ │ ├── explain_filter_push.json │ │ ├── explain_output.json │ │ └── explain_sort_push.json │ ├── script_value.json │ ├── search_explain.json │ ├── search_explain_filter.json │ ├── search_spatial_explain.json │ ├── sql │ │ └── explain_show.json │ ├── term_join_where │ └── term_union_where │ ├── game_of_thrones_complex.json │ ├── indexDefinitions │ ├── account_index_mapping.json │ ├── bank_index_mapping.json │ ├── bank_with_null_values_index_mapping.json │ ├── datatypes_index_mapping.json │ ├── datatypes_numeric_index_mapping.json │ ├── date_index_mapping.json │ ├── date_time_index_mapping.json │ ├── deep_nested_index_mapping.json │ ├── dog2_index_mapping.json │ ├── dog3_index_mapping.json │ ├── dog_index_mapping.json │ ├── employee_nested_type_index_mapping.json │ ├── game_of_thrones_index_mapping.json │ ├── join_type_index_mapping.json │ ├── location_index_mapping.json │ ├── nested_simple_index_mapping.json │ ├── nested_type_index_mapping.json │ ├── odbc_index_mapping.json │ ├── order_index_mapping.json │ ├── people2_index_mapping.json │ ├── phrase_index_mapping.json │ ├── string_index_mapping.json │ └── weblogs_index_mapping.json │ ├── join_objects.json │ ├── locations.json │ ├── locations2.json │ ├── nested_objects.json │ ├── nested_objects_quotes_in_values.json │ ├── nested_simple.json │ ├── odbc-date-formats.json │ ├── online.json │ ├── order.json │ ├── people2.json │ ├── peoples.json │ ├── phrases.json │ ├── strings.json │ ├── systems.json │ └── weblogs.json ├── legacy ├── build.gradle ├── lombok.config └── src │ ├── assembly │ └── zip.xml │ ├── main │ ├── antlr │ │ ├── OpenDistroSqlLexer.g4 │ │ └── OpenDistroSqlParser.g4 │ ├── java │ │ └── com │ │ │ └── amazon │ │ │ └── opendistroforelasticsearch │ │ │ └── sql │ │ │ └── legacy │ │ │ ├── antlr │ │ │ ├── OpenDistroSqlAnalyzer.java │ │ │ ├── SimilarSymbols.java │ │ │ ├── SqlAnalysisConfig.java │ │ │ ├── SqlAnalysisException.java │ │ │ ├── semantic │ │ │ │ ├── SemanticAnalysisException.java │ │ │ │ ├── scope │ │ │ │ │ ├── Environment.java │ │ │ │ │ ├── Namespace.java │ │ │ │ │ ├── SemanticContext.java │ │ │ │ │ ├── Symbol.java │ │ │ │ │ ├── SymbolTable.java │ │ │ │ │ └── TypeSupplier.java │ │ │ │ ├── types │ │ │ │ │ ├── Type.java │ │ │ │ │ ├── TypeExpression.java │ │ │ │ │ ├── base │ │ │ │ │ │ ├── BaseType.java │ │ │ │ │ │ ├── ESDataType.java │ │ │ │ │ │ └── ESIndex.java │ │ │ │ │ ├── function │ │ │ │ │ │ ├── AggregateFunction.java │ │ │ │ │ │ ├── ESScalarFunction.java │ │ │ │ │ │ └── ScalarFunction.java │ │ │ │ │ ├── operator │ │ │ │ │ │ ├── ComparisonOperator.java │ │ │ │ │ │ ├── JoinOperator.java │ │ │ │ │ │ └── SetOperator.java │ │ │ │ │ └── special │ │ │ │ │ │ ├── Generic.java │ │ │ │ │ │ └── Product.java │ │ │ │ └── visitor │ │ │ │ │ ├── ESMappingLoader.java │ │ │ │ │ ├── SemanticAnalyzer.java │ │ │ │ │ └── TypeChecker.java │ │ │ ├── syntax │ │ │ │ ├── CaseInsensitiveCharStream.java │ │ │ │ ├── SyntaxAnalysisErrorListener.java │ │ │ │ └── SyntaxAnalysisException.java │ │ │ └── visitor │ │ │ │ ├── AntlrSqlParseTreeVisitor.java │ │ │ │ ├── EarlyExitAnalysisException.java │ │ │ │ ├── GenericSqlParseTreeVisitor.java │ │ │ │ ├── Reducible.java │ │ │ │ └── UnsupportedSemanticVerifier.java │ │ │ ├── cursor │ │ │ ├── Cursor.java │ │ │ ├── CursorType.java │ │ │ ├── DefaultCursor.java │ │ │ └── NullCursor.java │ │ │ ├── domain │ │ │ ├── ColumnTypeProvider.java │ │ │ ├── Condition.java │ │ │ ├── Delete.java │ │ │ ├── Field.java │ │ │ ├── From.java │ │ │ ├── Having.java │ │ │ ├── IndexStatement.java │ │ │ ├── JoinSelect.java │ │ │ ├── KVValue.java │ │ │ ├── MethodField.java │ │ │ ├── Order.java │ │ │ ├── Paramer.java │ │ │ ├── Query.java │ │ │ ├── QueryActionRequest.java │ │ │ ├── QueryStatement.java │ │ │ ├── ScriptMethodField.java │ │ │ ├── SearchResult.java │ │ │ ├── Select.java │ │ │ ├── TableOnJoinSelect.java │ │ │ ├── Where.java │ │ │ ├── bucketpath │ │ │ │ ├── BucketPath.java │ │ │ │ └── Path.java │ │ │ └── hints │ │ │ │ ├── Hint.java │ │ │ │ ├── HintFactory.java │ │ │ │ └── HintType.java │ │ │ ├── esdomain │ │ │ ├── ESClient.java │ │ │ ├── LocalClusterState.java │ │ │ └── mapping │ │ │ │ ├── FieldMapping.java │ │ │ │ ├── FieldMappings.java │ │ │ │ ├── IndexMappings.java │ │ │ │ ├── Mappings.java │ │ │ │ └── TypeMappings.java │ │ │ ├── exception │ │ │ ├── SQLFeatureDisabledException.java │ │ │ ├── SqlFeatureNotImplementedException.java │ │ │ └── SqlParseException.java │ │ │ ├── executor │ │ │ ├── ActionRequestRestExecutorFactory.java │ │ │ ├── AsyncRestExecutor.java │ │ │ ├── ElasticDefaultRestExecutor.java │ │ │ ├── ElasticHitsExecutor.java │ │ │ ├── ElasticResultHandler.java │ │ │ ├── Format.java │ │ │ ├── GetIndexRequestRestListener.java │ │ │ ├── QueryActionElasticExecutor.java │ │ │ ├── RestExecutor.java │ │ │ ├── adapter │ │ │ │ ├── QueryPlanQueryAction.java │ │ │ │ └── QueryPlanRequestBuilder.java │ │ │ ├── csv │ │ │ │ ├── CSVResult.java │ │ │ │ ├── CSVResultRestExecutor.java │ │ │ │ ├── CSVResultsExtractor.java │ │ │ │ └── CsvExtractorException.java │ │ │ ├── cursor │ │ │ │ ├── CursorActionRequestRestExecutorFactory.java │ │ │ │ ├── CursorAsyncRestExecutor.java │ │ │ │ ├── CursorCloseExecutor.java │ │ │ │ ├── CursorRestExecutor.java │ │ │ │ └── CursorResultExecutor.java │ │ │ ├── format │ │ │ │ ├── BindingTupleResultSet.java │ │ │ │ ├── DataRows.java │ │ │ │ ├── DateFieldFormatter.java │ │ │ │ ├── DateFormat.java │ │ │ │ ├── DeleteResultSet.java │ │ │ │ ├── DescribeResultSet.java │ │ │ │ ├── ElasticsearchErrorMessage.java │ │ │ │ ├── ErrorMessage.java │ │ │ │ ├── ErrorMessageFactory.java │ │ │ │ ├── PrettyFormatRestExecutor.java │ │ │ │ ├── Protocol.java │ │ │ │ ├── ResultSet.java │ │ │ │ ├── Schema.java │ │ │ │ ├── SelectResultSet.java │ │ │ │ └── ShowResultSet.java │ │ │ ├── join │ │ │ │ ├── ElasticJoinExecutor.java │ │ │ │ ├── ElasticUtils.java │ │ │ │ ├── HashJoinComparisonStructure.java │ │ │ │ ├── HashJoinElasticExecutor.java │ │ │ │ ├── MetaSearchResult.java │ │ │ │ ├── NestedLoopsElasticExecutor.java │ │ │ │ ├── QueryPlanElasticExecutor.java │ │ │ │ └── SearchHitsResult.java │ │ │ └── multi │ │ │ │ ├── ComperableHitResult.java │ │ │ │ ├── MinusExecutor.java │ │ │ │ ├── MinusOneFieldAndOptimizationResult.java │ │ │ │ ├── MultiRequestExecutorFactory.java │ │ │ │ └── UnionExecutor.java │ │ │ ├── expression │ │ │ ├── core │ │ │ │ ├── Expression.java │ │ │ │ ├── ExpressionFactory.java │ │ │ │ ├── builder │ │ │ │ │ ├── ArithmeticFunctionFactory.java │ │ │ │ │ ├── BinaryExpressionBuilder.java │ │ │ │ │ ├── ExpressionBuilder.java │ │ │ │ │ └── UnaryExpressionBuilder.java │ │ │ │ └── operator │ │ │ │ │ ├── BinaryScalarOperator.java │ │ │ │ │ ├── DoubleBinaryScalarOperator.java │ │ │ │ │ ├── DoubleUnaryScalarOperator.java │ │ │ │ │ ├── ScalarOperation.java │ │ │ │ │ ├── ScalarOperator.java │ │ │ │ │ └── UnaryScalarOperator.java │ │ │ ├── domain │ │ │ │ └── BindingTuple.java │ │ │ └── model │ │ │ │ ├── ExprBooleanValue.java │ │ │ │ ├── ExprCollectionValue.java │ │ │ │ ├── ExprDoubleValue.java │ │ │ │ ├── ExprFloatValue.java │ │ │ │ ├── ExprIntegerValue.java │ │ │ │ ├── ExprLongValue.java │ │ │ │ ├── ExprMissingValue.java │ │ │ │ ├── ExprStringValue.java │ │ │ │ ├── ExprTupleValue.java │ │ │ │ ├── ExprValue.java │ │ │ │ ├── ExprValueFactory.java │ │ │ │ └── ExprValueUtils.java │ │ │ ├── metrics │ │ │ ├── BasicCounter.java │ │ │ ├── Counter.java │ │ │ ├── GaugeMetric.java │ │ │ ├── Metric.java │ │ │ ├── MetricFactory.java │ │ │ ├── MetricName.java │ │ │ ├── Metrics.java │ │ │ ├── NumericMetric.java │ │ │ └── RollingCounter.java │ │ │ ├── parser │ │ │ ├── CaseWhenParser.java │ │ │ ├── ChildrenType.java │ │ │ ├── ElasticLexer.java │ │ │ ├── ElasticSqlExprParser.java │ │ │ ├── ElasticSqlSelectParser.java │ │ │ ├── FieldMaker.java │ │ │ ├── HavingParser.java │ │ │ ├── NestedType.java │ │ │ ├── SQLOdbcExpr.java │ │ │ ├── SQLParensIdentifierExpr.java │ │ │ ├── ScriptFilter.java │ │ │ ├── SelectParser.java │ │ │ ├── SqlParser.java │ │ │ ├── SubQueryExpression.java │ │ │ ├── SubQueryParser.java │ │ │ └── WhereParser.java │ │ │ ├── plugin │ │ │ ├── ElasticsearchSQLPluginConfig.java │ │ │ ├── RestSQLQueryAction.java │ │ │ ├── RestSqlAction.java │ │ │ ├── RestSqlSettingsAction.java │ │ │ ├── RestSqlStatsAction.java │ │ │ ├── SearchDao.java │ │ │ └── SqlSettings.java │ │ │ ├── query │ │ │ ├── AggregationQueryAction.java │ │ │ ├── DefaultQueryAction.java │ │ │ ├── DeleteQueryAction.java │ │ │ ├── DescribeQueryAction.java │ │ │ ├── ESActionFactory.java │ │ │ ├── QueryAction.java │ │ │ ├── ShowQueryAction.java │ │ │ ├── SqlElasticDeleteByQueryRequestBuilder.java │ │ │ ├── SqlElasticRequestBuilder.java │ │ │ ├── SqlElasticSearchRequestBuilder.java │ │ │ ├── join │ │ │ │ ├── BackOffRetryStrategy.java │ │ │ │ ├── ESHashJoinQueryAction.java │ │ │ │ ├── ESJoinQueryAction.java │ │ │ │ ├── ESJoinQueryActionFactory.java │ │ │ │ ├── ESNestedLoopsQueryAction.java │ │ │ │ ├── HashJoinElasticRequestBuilder.java │ │ │ │ ├── JoinRequestBuilder.java │ │ │ │ ├── NestedLoopsElasticRequestBuilder.java │ │ │ │ └── TableInJoinRequestBuilder.java │ │ │ ├── maker │ │ │ │ ├── AggMaker.java │ │ │ │ ├── Maker.java │ │ │ │ └── QueryMaker.java │ │ │ ├── multi │ │ │ │ ├── ESMultiQueryActionFactory.java │ │ │ │ ├── MultiQueryAction.java │ │ │ │ ├── MultiQueryRequestBuilder.java │ │ │ │ └── MultiQuerySelect.java │ │ │ └── planner │ │ │ │ ├── HashJoinQueryPlanRequestBuilder.java │ │ │ │ ├── converter │ │ │ │ ├── SQLAggregationParser.java │ │ │ │ ├── SQLExprToExpressionConverter.java │ │ │ │ └── SQLToOperatorConverter.java │ │ │ │ ├── core │ │ │ │ ├── BindingTupleQueryPlanner.java │ │ │ │ ├── ColumnNode.java │ │ │ │ ├── Config.java │ │ │ │ ├── ExecuteParams.java │ │ │ │ ├── Plan.java │ │ │ │ ├── PlanNode.java │ │ │ │ ├── QueryParams.java │ │ │ │ └── QueryPlanner.java │ │ │ │ ├── explain │ │ │ │ ├── Explanation.java │ │ │ │ ├── ExplanationFormat.java │ │ │ │ └── JsonExplanationFormat.java │ │ │ │ ├── logical │ │ │ │ ├── LogicalOperator.java │ │ │ │ ├── LogicalPlan.java │ │ │ │ ├── LogicalPlanVisitor.java │ │ │ │ ├── node │ │ │ │ │ ├── Filter.java │ │ │ │ │ ├── Group.java │ │ │ │ │ ├── Join.java │ │ │ │ │ ├── Project.java │ │ │ │ │ ├── Sort.java │ │ │ │ │ ├── TableScan.java │ │ │ │ │ └── Top.java │ │ │ │ └── rule │ │ │ │ │ ├── ProjectionPushDown.java │ │ │ │ │ └── SelectionPushDown.java │ │ │ │ ├── physical │ │ │ │ ├── PhysicalOperator.java │ │ │ │ ├── PhysicalPlan.java │ │ │ │ ├── Row.java │ │ │ │ ├── estimation │ │ │ │ │ ├── Cost.java │ │ │ │ │ └── Estimation.java │ │ │ │ └── node │ │ │ │ │ ├── BatchPhysicalOperator.java │ │ │ │ │ ├── join │ │ │ │ │ ├── BlockHashJoin.java │ │ │ │ │ ├── CombinedRow.java │ │ │ │ │ ├── DefaultHashTable.java │ │ │ │ │ ├── HashTable.java │ │ │ │ │ ├── HashTableGroup.java │ │ │ │ │ ├── JoinAlgorithm.java │ │ │ │ │ └── ListHashTable.java │ │ │ │ │ ├── project │ │ │ │ │ └── PhysicalProject.java │ │ │ │ │ ├── scroll │ │ │ │ │ ├── BindingTupleRow.java │ │ │ │ │ ├── PhysicalScroll.java │ │ │ │ │ ├── Scroll.java │ │ │ │ │ ├── SearchAggregationResponseHelper.java │ │ │ │ │ └── SearchHitRow.java │ │ │ │ │ └── sort │ │ │ │ │ └── QuickSort.java │ │ │ │ └── resource │ │ │ │ ├── ResourceManager.java │ │ │ │ ├── Stats.java │ │ │ │ ├── blocksize │ │ │ │ ├── AdaptiveBlockSize.java │ │ │ │ └── BlockSize.java │ │ │ │ └── monitor │ │ │ │ ├── Monitor.java │ │ │ │ └── TotalMemoryMonitor.java │ │ │ ├── request │ │ │ ├── PreparedStatementRequest.java │ │ │ ├── SqlRequest.java │ │ │ ├── SqlRequestFactory.java │ │ │ └── SqlRequestParam.java │ │ │ ├── rewriter │ │ │ ├── RewriteRule.java │ │ │ ├── RewriteRuleExecutor.java │ │ │ ├── alias │ │ │ │ ├── Identifier.java │ │ │ │ ├── Table.java │ │ │ │ └── TableAliasPrefixRemoveRule.java │ │ │ ├── identifier │ │ │ │ ├── AnonymizeSensitiveDataRule.java │ │ │ │ └── UnquoteIdentifierRule.java │ │ │ ├── join │ │ │ │ └── JoinRewriteRule.java │ │ │ ├── matchtoterm │ │ │ │ ├── TermFieldRewriter.java │ │ │ │ ├── TermFieldScope.java │ │ │ │ └── VerificationException.java │ │ │ ├── nestedfield │ │ │ │ ├── From.java │ │ │ │ ├── Identifier.java │ │ │ │ ├── NestedFieldProjection.java │ │ │ │ ├── NestedFieldRewriter.java │ │ │ │ ├── SQLClause.java │ │ │ │ ├── Scope.java │ │ │ │ ├── Select.java │ │ │ │ └── Where.java │ │ │ ├── ordinal │ │ │ │ └── OrdinalRewriterRule.java │ │ │ ├── parent │ │ │ │ ├── SQLExprParentSetter.java │ │ │ │ └── SQLExprParentSetterRule.java │ │ │ └── subquery │ │ │ │ ├── NestedQueryContext.java │ │ │ │ ├── RewriterContext.java │ │ │ │ ├── SubQueryRewriteRule.java │ │ │ │ ├── SubQueryRewriter.java │ │ │ │ ├── rewriter │ │ │ │ ├── InRewriter.java │ │ │ │ ├── NestedExistsRewriter.java │ │ │ │ ├── Rewriter.java │ │ │ │ ├── RewriterFactory.java │ │ │ │ └── SubqueryAliasRewriter.java │ │ │ │ └── utils │ │ │ │ └── FindSubQuery.java │ │ │ ├── spatial │ │ │ ├── BoundingBoxFilterParams.java │ │ │ ├── CellFilterParams.java │ │ │ ├── DistanceFilterParams.java │ │ │ ├── Point.java │ │ │ ├── PolygonFilterParams.java │ │ │ ├── RangeDistanceFilterParams.java │ │ │ ├── SpatialParamsFactory.java │ │ │ └── WktToGeoJsonConverter.java │ │ │ └── utils │ │ │ ├── JsonPrettyFormatter.java │ │ │ ├── LogUtils.java │ │ │ ├── QueryDataAnonymizer.java │ │ │ ├── SQLFunctions.java │ │ │ ├── StringUtils.java │ │ │ └── Util.java │ └── resources │ │ ├── es-plugin.properties │ │ └── plugin-descriptor.properties │ └── test │ ├── java │ └── com │ │ └── amazon │ │ └── opendistroforelasticsearch │ │ └── sql │ │ └── legacy │ │ ├── antlr │ │ ├── SymbolSimilarityTest.java │ │ ├── SyntaxAnalysisTest.java │ │ ├── semantic │ │ │ ├── SemanticAnalyzerAggregateFunctionTest.java │ │ │ ├── SemanticAnalyzerBasicTest.java │ │ │ ├── SemanticAnalyzerConfigTest.java │ │ │ ├── SemanticAnalyzerConstantTest.java │ │ │ ├── SemanticAnalyzerESScalarFunctionTest.java │ │ │ ├── SemanticAnalyzerFieldTypeTest.java │ │ │ ├── SemanticAnalyzerFromClauseTest.java │ │ │ ├── SemanticAnalyzerIdentifierTest.java │ │ │ ├── SemanticAnalyzerMultiQueryTest.java │ │ │ ├── SemanticAnalyzerOperatorTest.java │ │ │ ├── SemanticAnalyzerScalarFunctionTest.java │ │ │ ├── SemanticAnalyzerSubqueryTest.java │ │ │ ├── SemanticAnalyzerTestBase.java │ │ │ ├── SemanticAnalyzerTests.java │ │ │ ├── scope │ │ │ │ ├── EnvironmentTest.java │ │ │ │ ├── SemanticContextTest.java │ │ │ │ ├── SymbolTableTest.java │ │ │ │ └── TypeSupplierTest.java │ │ │ └── types │ │ │ │ ├── BaseTypeTest.java │ │ │ │ ├── GenericTypeTest.java │ │ │ │ ├── ProductTypeTest.java │ │ │ │ └── TypeExpressionTest.java │ │ └── visitor │ │ │ └── AntlrSqlParseTreeVisitorTest.java │ │ ├── esdomain │ │ └── mapping │ │ │ ├── FieldMappingTest.java │ │ │ └── FieldMappingsTest.java │ │ ├── executor │ │ ├── AsyncRestExecutorTest.java │ │ ├── csv │ │ │ └── CSVResultTest.java │ │ └── format │ │ │ ├── DateFieldFormatterTest.java │ │ │ └── ResultSetTest.java │ │ ├── plugin │ │ └── RestSQLQueryActionTest.java │ │ ├── rewriter │ │ └── alias │ │ │ ├── IdentifierTest.java │ │ │ ├── TableAliasPrefixRemoveRuleTest.java │ │ │ └── TableTest.java │ │ ├── unittest │ │ ├── AggregationOptionTest.java │ │ ├── DateFormatTest.java │ │ ├── DateFunctionsTest.java │ │ ├── ESClientTest.java │ │ ├── ErrorMessageFactoryTest.java │ │ ├── FormatTest.java │ │ ├── HavingTest.java │ │ ├── JSONRequestTest.java │ │ ├── LocalClusterStateTest.java │ │ ├── MathFunctionsTest.java │ │ ├── NestedFieldProjectionTest.java │ │ ├── NestedFieldRewriterTest.java │ │ ├── PreparedStatementRequestTest.java │ │ ├── QueryFunctionsTest.java │ │ ├── SqlRequestFactoryTest.java │ │ ├── SqlRequestParamTest.java │ │ ├── StringOperatorsTest.java │ │ ├── WhereWithBoolConditionTest.java │ │ ├── cursor │ │ │ └── DefaultCursorTest.java │ │ ├── domain │ │ │ └── ColumnTypeProviderTest.java │ │ ├── executor │ │ │ ├── DeleteResultSetTest.java │ │ │ ├── format │ │ │ │ ├── BindingTupleResultSetTest.java │ │ │ │ └── CSVResultsExtractorTest.java │ │ │ └── join │ │ │ │ └── ElasticUtilsTest.java │ │ ├── expression │ │ │ ├── core │ │ │ │ ├── BinaryExpressionTest.java │ │ │ │ ├── CompoundExpressionTest.java │ │ │ │ ├── ExpressionTest.java │ │ │ │ ├── RefExpressionTest.java │ │ │ │ └── UnaryExpressionTest.java │ │ │ └── model │ │ │ │ └── ExprValueUtilsTest.java │ │ ├── metrics │ │ │ ├── BasicCounterTest.java │ │ │ ├── GaugeMetricTest.java │ │ │ ├── MetricsTest.java │ │ │ ├── NumericMetricTest.java │ │ │ └── RollingCounterTest.java │ │ ├── parser │ │ │ ├── BucketPathTest.java │ │ │ ├── FieldMakerTest.java │ │ │ ├── SqlParserTest.java │ │ │ └── SubQueryParserTest.java │ │ ├── planner │ │ │ ├── BindingTupleQueryPlannerExecuteTest.java │ │ │ ├── ESActionFactoryTest.java │ │ │ ├── QueryPlannerBatchTest.java │ │ │ ├── QueryPlannerConfigTest.java │ │ │ ├── QueryPlannerExecuteTest.java │ │ │ ├── QueryPlannerExplainTest.java │ │ │ ├── QueryPlannerMonitorTest.java │ │ │ ├── QueryPlannerTest.java │ │ │ ├── converter │ │ │ │ ├── SQLAggregationParserTest.java │ │ │ │ ├── SQLExprToExpressionConverterTest.java │ │ │ │ └── SQLToOperatorConverterTest.java │ │ │ └── physical │ │ │ │ └── SearchAggregationResponseHelperTest.java │ │ ├── query │ │ │ └── DefaultQueryActionTest.java │ │ ├── rewriter │ │ │ ├── RewriteRuleExecutorTest.java │ │ │ ├── identifier │ │ │ │ └── UnquoteIdentifierRuleTest.java │ │ │ ├── inline │ │ │ │ └── AliasInliningTests.java │ │ │ ├── ordinal │ │ │ │ └── OrdinalRewriterRuleTest.java │ │ │ ├── parent │ │ │ │ ├── SQLExprParentSetterRuleTest.java │ │ │ │ └── SQLExprParentSetterTest.java │ │ │ ├── subquery │ │ │ │ ├── ExistsSubQueryRewriterTest.java │ │ │ │ ├── InSubqueryRewriterTest.java │ │ │ │ ├── NestedQueryContextTest.java │ │ │ │ ├── SubQueryRewriteRuleTest.java │ │ │ │ ├── SubQueryRewriterTestBase.java │ │ │ │ ├── rewriter │ │ │ │ │ └── SubqueryAliasRewriterTest.java │ │ │ │ └── utils │ │ │ │ │ └── FindSubQueryTest.java │ │ │ └── term │ │ │ │ └── TermFieldRewriterTest.java │ │ ├── spatial │ │ │ └── WktToGeoJsonConverterTest.java │ │ └── utils │ │ │ ├── BackticksUnquoterTest.java │ │ │ ├── LogUtilsTest.java │ │ │ ├── PrettyFormatterTest.java │ │ │ ├── QueryDataAnonymizerTest.java │ │ │ ├── SQLFunctionsTest.java │ │ │ ├── StringUtilsTest.java │ │ │ └── UtilTest.java │ │ └── util │ │ ├── AggregationUtils.java │ │ ├── CheckScriptContents.java │ │ ├── HasFieldWithValue.java │ │ ├── MatcherUtils.java │ │ ├── MultipleIndexClusterUtils.java │ │ ├── SqlExplainUtils.java │ │ ├── SqlParserUtils.java │ │ ├── TestUtils.java │ │ └── TestsConstants.java │ └── resources │ ├── expectedOutput │ ├── aggregation_query_explain.json │ ├── delete_explain.json │ ├── explain_format_pretty.json │ ├── json_filter_explain.json │ ├── search_explain.json │ └── select_where_true.json │ ├── explain_format_oneline.json │ └── mappings │ ├── field_mappings.json │ └── semantics.json ├── lombok.config ├── plugin ├── build.gradle └── src │ └── main │ ├── java │ └── com │ │ └── amazon │ │ └── opendistroforelasticsearch │ │ └── sql │ │ └── plugin │ │ ├── SQLPlugin.java │ │ ├── request │ │ └── PPLQueryRequestFactory.java │ │ └── rest │ │ ├── ElasticsearchPluginConfig.java │ │ ├── RestPPLQueryAction.java │ │ └── RestPPLStatsAction.java │ └── plugin-metadata │ └── plugin-security.policy ├── ppl ├── build.gradle ├── lombok.config └── src │ ├── main │ ├── antlr │ │ ├── OpenDistroPPLLexer.g4 │ │ └── OpenDistroPPLParser.g4 │ └── java │ │ └── com │ │ └── amazon │ │ └── opendistroforelasticsearch │ │ └── sql │ │ └── ppl │ │ ├── PPLService.java │ │ ├── antlr │ │ └── PPLSyntaxParser.java │ │ ├── config │ │ └── PPLServiceConfig.java │ │ ├── domain │ │ ├── PPLQueryRequest.java │ │ └── PPLQueryResponse.java │ │ ├── parser │ │ ├── AstBuilder.java │ │ └── AstExpressionBuilder.java │ │ └── utils │ │ ├── ArgumentFactory.java │ │ ├── PPLQueryDataAnonymizer.java │ │ └── UnresolvedPlanHelper.java │ └── test │ └── java │ └── com │ └── amazon │ └── opendistroforelasticsearch │ └── sql │ └── ppl │ ├── PPLServiceTest.java │ ├── antlr │ └── PPLSyntaxParserTest.java │ ├── config │ └── PPLServiceConfigTest.java │ ├── domain │ ├── PPLQueryRequestTest.java │ └── PPLQueryResponseTest.java │ ├── parser │ ├── AstBuilderTest.java │ └── AstExpressionBuilderTest.java │ └── utils │ ├── ArgumentFactoryTest.java │ ├── PPLQueryDataAnonymizerTest.java │ └── UnresolvedPlanHelperTest.java ├── protocol ├── build.gradle ├── lombok.config └── src │ ├── main │ └── java │ │ └── com │ │ └── amazon │ │ └── opendistroforelasticsearch │ │ └── sql │ │ └── protocol │ │ └── response │ │ ├── QueryResult.java │ │ └── format │ │ ├── CsvResponseFormatter.java │ │ ├── ErrorFormatter.java │ │ ├── FlatResponseFormatter.java │ │ ├── Format.java │ │ ├── JdbcResponseFormatter.java │ │ ├── JsonResponseFormatter.java │ │ ├── RawResponseFormatter.java │ │ ├── ResponseFormatter.java │ │ └── SimpleJsonResponseFormatter.java │ └── test │ └── java │ └── com │ └── amazon │ └── opendistroforelasticsearch │ └── sql │ └── protocol │ └── response │ ├── QueryResultTest.java │ └── format │ ├── CsvResponseFormatterTest.java │ ├── FormatTest.java │ ├── JdbcResponseFormatterTest.java │ ├── RawResponseFormatterTest.java │ └── SimpleJsonResponseFormatterTest.java ├── release-notes ├── opendistro-for-elasticsearch-sql.release-notes-0.7.0.0.md ├── opendistro-for-elasticsearch-sql.release-notes-0.8.0.0.md ├── opendistro-for-elasticsearch-sql.release-notes-0.9.0.0.md ├── opendistro-for-elasticsearch-sql.release-notes-1.0.0.0.md ├── opendistro-for-elasticsearch-sql.release-notes-1.1.0.0.md ├── opendistro-for-elasticsearch-sql.release-notes-1.10.1.0.md ├── opendistro-for-elasticsearch-sql.release-notes-1.10.1.1.md ├── opendistro-for-elasticsearch-sql.release-notes-1.11.0.0.md ├── opendistro-for-elasticsearch-sql.release-notes-1.12.0.0.md ├── opendistro-for-elasticsearch-sql.release-notes-1.13.0.0.md ├── opendistro-for-elasticsearch-sql.release-notes-1.2.0.0.md ├── opendistro-for-elasticsearch-sql.release-notes-1.2.1.0.md ├── opendistro-for-elasticsearch-sql.release-notes-1.3.0.0.md ├── opendistro-for-elasticsearch-sql.release-notes-1.4.0.0.md ├── opendistro-for-elasticsearch-sql.release-notes-1.6.0.0.md ├── opendistro-for-elasticsearch-sql.release-notes-1.7.0.0.md ├── opendistro-for-elasticsearch-sql.release-notes-1.8.0.0.md ├── opendistro-for-elasticsearch-sql.release-notes-1.9.0.0.md └── opendistro-for-elasticsearch-sql.release-notes-1.9.0.1.md ├── settings.gradle ├── sql-cli ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── CONTRIBUTORS.md ├── LICENSE.TXT ├── NOTICE ├── README.md ├── THIRD-PARTY ├── development_guide.md ├── release-notes │ ├── odfe-sql-cli.release-notes-1.7.0.0.md │ ├── odfe-sql-cli.release-notes-1.8.0.0.md │ └── odfe-sql-cli.release-notes-1.9.0.0.md ├── requirements-dev.txt ├── screenshots │ └── usage.gif ├── setup.py ├── src │ └── odfe_sql_cli │ │ ├── __init__.py │ │ ├── conf │ │ ├── __init__.py │ │ └── clirc │ │ ├── config.py │ │ ├── esbuffer.py │ │ ├── esconnection.py │ │ ├── esliterals │ │ ├── __init__.py │ │ └── esliterals.json │ │ ├── esstyle.py │ │ ├── formatter.py │ │ ├── main.py │ │ ├── odfesql_cli.py │ │ └── utils.py ├── tests │ ├── __init__.py │ ├── conftest.py │ ├── pytest.ini │ ├── test_config.py │ ├── test_data │ │ └── accounts.json │ ├── test_esconnection.py │ ├── test_formatter.py │ ├── test_main.py │ ├── test_odfesql_cli.py │ ├── test_plan.md │ └── utils.py └── tox.ini ├── sql-jdbc ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── NOTICE ├── README.md ├── THIRD-PARTY ├── build.gradle ├── docs │ ├── img │ │ ├── tableau_connection.PNG │ │ ├── tableau_database.PNG │ │ └── tableau_graph.PNG │ └── tableau.md ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── release-notes │ ├── opendistro-elasticsearch-jdbc.release-notes-1.7.0.0.md │ ├── opendistro-elasticsearch-jdbc.release-notes-1.8.0.0.md │ ├── opendistro-elasticsearch-jdbc.release-notes-1.9.0.0.md │ └── opendistro-elasticsearch-jdbc.release-notes.md ├── settings.gradle └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── amazon │ │ │ └── opendistroforelasticsearch │ │ │ └── jdbc │ │ │ ├── ConnectionImpl.java │ │ │ ├── DatabaseMetaDataImpl.java │ │ │ ├── Driver.java │ │ │ ├── ElasticsearchConnection.java │ │ │ ├── ElasticsearchDataSource.java │ │ │ ├── ElasticsearchVersion.java │ │ │ ├── PreparedStatementImpl.java │ │ │ ├── ResultSetImpl.java │ │ │ ├── ResultSetMetaDataImpl.java │ │ │ ├── StatementImpl.java │ │ │ ├── auth │ │ │ └── AuthenticationType.java │ │ │ ├── config │ │ │ ├── AuthConnectionProperty.java │ │ │ ├── AwsCredentialsProviderProperty.java │ │ │ ├── BoolConnectionProperty.java │ │ │ ├── ConnectionConfig.java │ │ │ ├── ConnectionProperty.java │ │ │ ├── ConnectionPropertyException.java │ │ │ ├── FetchSizeProperty.java │ │ │ ├── HostConnectionProperty.java │ │ │ ├── HostnameVerificationConnectionProperty.java │ │ │ ├── IntConnectionProperty.java │ │ │ ├── KeyStoreLocationConnectionProperty.java │ │ │ ├── KeyStorePasswordConnectionProperty.java │ │ │ ├── KeyStoreTypeConnectionProperty.java │ │ │ ├── LogLevelConnectionProperty.java │ │ │ ├── LogOutputConnectionProperty.java │ │ │ ├── LoginTimeoutConnectionProperty.java │ │ │ ├── PasswordConnectionProperty.java │ │ │ ├── PathConnectionProperty.java │ │ │ ├── PortConnectionProperty.java │ │ │ ├── RegionConnectionProperty.java │ │ │ ├── RequestCompressionConnectionProperty.java │ │ │ ├── StringConnectionProperty.java │ │ │ ├── TrustSelfSignedConnectionProperty.java │ │ │ ├── TrustStoreLocationConnectionProperty.java │ │ │ ├── TrustStorePasswordConnectionProperty.java │ │ │ ├── TrustStoreTypeConnectionProperty.java │ │ │ ├── UseSSLConnectionProperty.java │ │ │ └── UserConnectionProperty.java │ │ │ ├── internal │ │ │ ├── JdbcWrapper.java │ │ │ ├── Version.java │ │ │ ├── exceptions │ │ │ │ └── ObjectClosedException.java │ │ │ ├── results │ │ │ │ ├── ColumnMetaData.java │ │ │ │ ├── Cursor.java │ │ │ │ ├── Row.java │ │ │ │ └── Schema.java │ │ │ └── util │ │ │ │ ├── AwsHostNameUtil.java │ │ │ │ ├── JavaUtil.java │ │ │ │ ├── SqlParser.java │ │ │ │ └── UrlParser.java │ │ │ ├── logging │ │ │ ├── FilePrintWriterLogger.java │ │ │ ├── Layout.java │ │ │ ├── LogLevel.java │ │ │ ├── Logger.java │ │ │ ├── LoggerFactory.java │ │ │ ├── LoggingSource.java │ │ │ ├── NoOpLogger.java │ │ │ ├── PrintWriterLogger.java │ │ │ └── StandardLayout.java │ │ │ ├── protocol │ │ │ ├── ClusterMetadata.java │ │ │ ├── ColumnDescriptor.java │ │ │ ├── ConnectionResponse.java │ │ │ ├── JdbcDateTimeFormatter.java │ │ │ ├── JdbcQueryParam.java │ │ │ ├── JdbcQueryRequest.java │ │ │ ├── Parameter.java │ │ │ ├── Protocol.java │ │ │ ├── ProtocolFactory.java │ │ │ ├── QueryRequest.java │ │ │ ├── QueryResponse.java │ │ │ ├── RequestError.java │ │ │ ├── exceptions │ │ │ │ ├── InternalServerErrorException.java │ │ │ │ ├── MalformedResponseException.java │ │ │ │ └── ResponseException.java │ │ │ └── http │ │ │ │ ├── HttpException.java │ │ │ │ ├── HttpResponseHandler.java │ │ │ │ ├── JdbcCursorQueryRequest.java │ │ │ │ ├── JsonClusterMetadata.java │ │ │ │ ├── JsonConnectionResponse.java │ │ │ │ ├── JsonCursorHttpProtocol.java │ │ │ │ ├── JsonCursorHttpProtocolFactory.java │ │ │ │ ├── JsonCursorQueryRequest.java │ │ │ │ ├── JsonElasticsearchVersion.java │ │ │ │ ├── JsonHttpProtocol.java │ │ │ │ ├── JsonHttpProtocolFactory.java │ │ │ │ ├── JsonHttpResponseHandler.java │ │ │ │ ├── JsonQueryRequest.java │ │ │ │ └── JsonQueryResponse.java │ │ │ ├── transport │ │ │ ├── Transport.java │ │ │ ├── TransportException.java │ │ │ ├── TransportFactory.java │ │ │ └── http │ │ │ │ ├── ApacheHttpClientConnectionFactory.java │ │ │ │ ├── ApacheHttpTransport.java │ │ │ │ ├── ApacheHttpTransportFactory.java │ │ │ │ ├── HttpParam.java │ │ │ │ ├── HttpTransport.java │ │ │ │ ├── JclLoggerAdapter.java │ │ │ │ ├── LoggingInputStream.java │ │ │ │ ├── LoggingManagedHttpClientConnection.java │ │ │ │ ├── LoggingOutputStream.java │ │ │ │ └── auth │ │ │ │ └── aws │ │ │ │ └── AWSRequestSigningApacheInterceptor.java │ │ │ └── types │ │ │ ├── BaseTypeConverter.java │ │ │ ├── BinaryType.java │ │ │ ├── BooleanType.java │ │ │ ├── ByteType.java │ │ │ ├── DateType.java │ │ │ ├── DoubleType.java │ │ │ ├── ElasticsearchType.java │ │ │ ├── FloatType.java │ │ │ ├── IntegerType.java │ │ │ ├── LongType.java │ │ │ ├── NumberType.java │ │ │ ├── ShortType.java │ │ │ ├── StringType.java │ │ │ ├── TimeType.java │ │ │ ├── TimestampType.java │ │ │ ├── TypeConverter.java │ │ │ ├── TypeConverters.java │ │ │ ├── TypeHelper.java │ │ │ └── UnrecognizedElasticsearchTypeException.java │ └── resources │ │ └── META-INF │ │ └── services │ │ └── java.sql.Driver │ └── test │ ├── java │ └── com │ │ └── amazon │ │ └── opendistroforelasticsearch │ │ └── jdbc │ │ ├── ConnectionTests.java │ │ ├── CursorTests.java │ │ ├── DataSourceTests.java │ │ ├── DatabaseMetaDataTests.java │ │ ├── DriverTests.java │ │ ├── PreparedStatementTests.java │ │ ├── ResultSetMetaDataTests.java │ │ ├── ResultSetTests.java │ │ ├── SSLClientAuthTests.java │ │ ├── SSLConnectionTests.java │ │ ├── SSLHostnameVerificationTests.java │ │ ├── StatementTests.java │ │ ├── config │ │ └── ConnectionConfigTests.java │ │ ├── internal │ │ └── util │ │ │ ├── AwsHostnameUtilTests.java │ │ │ ├── SqlParserTests.java │ │ │ └── UrlParserTests.java │ │ ├── protocol │ │ ├── JsonHttpProtocolTests.java │ │ └── http │ │ │ └── JsonCursorQueryRequestTests.java │ │ ├── test │ │ ├── KeyValuePairs.java │ │ ├── PerClassWireMockServerExtension.java │ │ ├── PerTestWireMockServerExtension.java │ │ ├── TLSServer.java │ │ ├── TestResources.java │ │ ├── UTCTimeZoneTestExtension.java │ │ ├── WireMockServerHelpers.java │ │ └── mocks │ │ │ ├── MockCloseableHttpResponseBuilder.java │ │ │ ├── MockES.java │ │ │ ├── MockHttpTransport.java │ │ │ ├── MockResultSet.java │ │ │ ├── MockResultSetMetaData.java │ │ │ ├── MockResultSetRows.java │ │ │ └── QueryMock.java │ │ ├── transport │ │ └── http │ │ │ └── auth │ │ │ └── aws │ │ │ └── AWSRequestSigningApacheInterceptorTests.java │ │ └── types │ │ ├── BinaryTypeTests.java │ │ ├── ByteTypeTests.java │ │ ├── DateTypeTests.java │ │ ├── FloatTypeTest.java │ │ ├── IntegerTypeTests.java │ │ ├── KeywordTypeTests.java │ │ ├── LongTypeTests.java │ │ ├── ShortTypeTests.java │ │ ├── TimeTypeTest.java │ │ ├── TimestampTypeTests.java │ │ └── TypesTests.java │ └── resources │ └── mock │ ├── jks │ ├── keystore_with_client_key.jks │ ├── keystore_with_non_localhost_server_key.jks │ ├── keystore_with_server_key.jks │ ├── truststore_with_client_cert.jks │ └── truststore_with_server_cert.jks │ └── protocol │ └── json │ ├── cursor │ ├── queryresponse_accounts_00.json │ ├── queryresponse_accounts_01.json │ ├── queryresponse_accounts_02.json │ └── queryresponse_accounts_03.json │ ├── nyctaxis_queryrequest.json │ ├── queryresponse_internal_server_error.json │ ├── queryresponse_nullablefields.json │ ├── queryresponse_nyctaxis.json │ ├── queryresponse_sonested.json │ └── queryresponse_with_alias_nyctaxis.json ├── sql-odbc ├── .clang-format ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.txt ├── README.md ├── THIRD-PARTY ├── aws_sdk_cpp_setup.sh ├── build_mac_debug64.sh ├── build_mac_release64.sh ├── build_win_debug32.ps1 ├── build_win_debug64.ps1 ├── build_win_release32.ps1 ├── build_win_release64.ps1 ├── docs │ ├── dev │ │ ├── BUILD_INSTRUCTIONS.md │ │ ├── Pagination.md │ │ ├── datasets │ │ │ └── kibana_sample_data_types.md │ │ ├── example_config_files │ │ │ ├── elasticsearch.yml │ │ │ ├── example_tdc_file.tdc │ │ │ └── kibana.yml │ │ ├── img │ │ │ ├── async_result_retrieval.png │ │ │ └── data_flow.png │ │ ├── run_tests.md │ │ ├── sequence_diagrams │ │ │ ├── SQLDriverConnect.png │ │ │ ├── SQLDriverConnect.txt │ │ │ ├── SQLExecDirect.png │ │ │ └── SQLExecDirect.txt │ │ └── sign_installers.md │ ├── test │ │ ├── data_connection_wizard.md │ │ ├── excel_connection.md │ │ ├── exporting_csv_files.md │ │ ├── img │ │ │ ├── data_connection_wizard_dsn.png │ │ │ ├── data_connection_wizard_enable.png │ │ │ ├── data_connection_wizard_load_data.png │ │ │ ├── data_connection_wizard_save_connection_file.png │ │ │ ├── data_connection_wizard_select.png │ │ │ ├── data_connection_wizard_select_dsn.png │ │ │ ├── data_connection_wizard_select_worksheet.png │ │ │ ├── data_connection_wizard_table_list.png │ │ │ ├── export_loaded_data.png │ │ │ ├── export_multiple_sheets.png │ │ │ ├── export_save_as_csv.png │ │ │ ├── from_odbc_advanced_options.png │ │ │ ├── from_odbc_advanced_options_auth.png │ │ │ ├── from_odbc_advanced_options_load_data.png │ │ │ ├── from_odbc_auth.png │ │ │ ├── from_odbc_dsn.png │ │ │ ├── from_odbc_loaded_data.png │ │ │ ├── from_odbc_table_list.png │ │ │ ├── microsoft_query_add_tables.png │ │ │ ├── microsoft_query_disable_use_the_query_wizard_option.png │ │ │ ├── microsoft_query_import_data.png │ │ │ ├── microsoft_query_loaded_data.png │ │ │ ├── microsoft_query_select_colums.png │ │ │ ├── microsoft_query_select_tables.png │ │ │ ├── microsoft_query_table_options.png │ │ │ ├── odbc_data_source.png │ │ │ ├── query_wizard_choose_coulms.png │ │ │ ├── query_wizard_enable_use_the_query_wizard_option.png │ │ │ ├── query_wizard_error_popup.png │ │ │ ├── query_wizard_filter_data.png │ │ │ ├── query_wizard_finish.png │ │ │ ├── query_wizard_import_data.png │ │ │ ├── query_wizard_loaded_data.png │ │ │ ├── query_wizard_select_tables.png │ │ │ ├── query_wizard_sort_order.png │ │ │ ├── query_wizard_table_options.png │ │ │ ├── refresh_add_datarow.png │ │ │ ├── refresh_data_preview.png │ │ │ ├── refresh_load_data.png │ │ │ ├── refresh_updated_data.png │ │ │ └── select_microsoft_query.png │ │ ├── microsoft_excel_manual_test_plan.xlsx │ │ ├── microsoft_query_connection.md │ │ ├── odbc_data_source_connection.md │ │ ├── power_bi_manual_test_plan.xlsx │ │ ├── query_wizard_connection.md │ │ └── refresh_data.md │ └── user │ │ ├── configuration_options.md │ │ ├── img │ │ ├── driver_default_config.png │ │ ├── dsn_default_config.png │ │ ├── excel_advanced_option.png │ │ ├── excel_auth.png │ │ ├── excel_credentials.png │ │ ├── excel_data_load.png │ │ ├── excel_data_preview.png │ │ ├── excel_data_preview_error.png │ │ ├── excel_data_preview_mac.png │ │ ├── excel_export.png │ │ ├── excel_export_csv.png │ │ ├── excel_iodbc_auth.png │ │ ├── excel_iodbc_dsn.png │ │ ├── excel_iodbc_test_dsn.png │ │ ├── excel_load_data.png │ │ ├── excel_refresh.png │ │ ├── excel_refresh_mac.png │ │ ├── excel_select_database.png │ │ ├── excel_select_dsn.png │ │ ├── excel_select_dsn_mac.png │ │ ├── excel_select_odbc.png │ │ ├── excel_select_worksheet.png │ │ ├── excel_table_list.png │ │ ├── pbi_auth.png │ │ ├── pbi_connection_string_options.png │ │ ├── pbi_custom_dsn_auth.png │ │ ├── pbi_data_preview.png │ │ ├── pbi_default_dsn_auth.png │ │ ├── pbi_disable_parallel_loading_tables.png │ │ ├── pbi_error_conn.png │ │ ├── pbi_error_driver_not_installed.png │ │ ├── pbi_gateway_connector_path.png │ │ ├── pbi_gateway_connectors.png │ │ ├── pbi_gateway_status.png │ │ ├── pbi_publish_report.png │ │ ├── pbi_publish_status.png │ │ ├── pbi_query.png │ │ ├── pbi_query_result.png │ │ ├── pbi_select_connector.png │ │ ├── pbi_select_custom_dsn.png │ │ ├── pbi_select_dsn.png │ │ ├── pbi_select_workspace.png │ │ ├── pbi_service_cluster_setting.png │ │ ├── pbi_service_data_source.png │ │ ├── pbi_service_data_source_success.png │ │ ├── pbi_service_dataset_gateway.png │ │ ├── pbi_service_dataset_refresh.png │ │ ├── pbi_service_dataset_refresh_history.png │ │ ├── pbi_service_edit_reoprt.png │ │ ├── pbi_service_modified_report.png │ │ ├── pbi_service_setting.png │ │ ├── pbi_simple_graph.png │ │ ├── pbi_third_party_warning.png │ │ ├── tableau_columns_list.png │ │ ├── tableau_data_preview.png │ │ ├── tableau_dialog.png │ │ ├── tableau_download_taco.png │ │ ├── tableau_graph.png │ │ ├── tableau_select_connector.png │ │ ├── tableau_select_table.png │ │ ├── tableau_table_list.png │ │ ├── test_dsn_configure.png │ │ ├── test_dsn_success.png │ │ ├── win_configure_dsn.png │ │ ├── win_configure_dsn_values.png │ │ ├── win_odbc_data_sources.png │ │ ├── win_system_dsn.png │ │ ├── win_test_dsn.png │ │ ├── win_user_dsn.png │ │ ├── win_user_dsn_configure_options.png │ │ ├── win_user_dsn_list.png │ │ └── win_user_dsn_select_driver.png │ │ ├── mac_configure_dsn.md │ │ ├── microsoft_excel_support.md │ │ ├── microsoft_excel_support_mac.md │ │ ├── power_bi_service_support.md │ │ ├── power_bi_support.md │ │ ├── tableau_support.md │ │ └── windows_configure_dsn.md ├── libraries │ ├── VisualLeakDetector │ │ ├── COPYING.txt │ │ ├── bin │ │ │ ├── Microsoft.DTfW.DHL.manifest │ │ │ ├── dbghelp.dll │ │ │ └── vld_x86.dll │ │ ├── bin64 │ │ │ ├── Microsoft.DTfW.DHL.manifest │ │ │ ├── dbghelp.dll │ │ │ └── vld_x64.dll │ │ ├── include │ │ │ ├── vld.h │ │ │ └── vld_def.h │ │ ├── lib │ │ │ └── vld.lib │ │ └── lib64 │ │ │ └── vld.lib │ ├── rabbit │ │ ├── LICENSE │ │ ├── README │ │ └── include │ │ │ └── rabbit.hpp │ └── rapidjson │ │ ├── include │ │ └── rapidjson │ │ │ ├── allocators.h │ │ │ ├── document.h │ │ │ ├── encodedstream.h │ │ │ ├── encodings.h │ │ │ ├── error │ │ │ ├── en.h │ │ │ └── error.h │ │ │ ├── filereadstream.h │ │ │ ├── filewritestream.h │ │ │ ├── fwd.h │ │ │ ├── internal │ │ │ ├── biginteger.h │ │ │ ├── diyfp.h │ │ │ ├── dtoa.h │ │ │ ├── ieee754.h │ │ │ ├── itoa.h │ │ │ ├── meta.h │ │ │ ├── pow10.h │ │ │ ├── regex.h │ │ │ ├── stack.h │ │ │ ├── strfunc.h │ │ │ ├── strtod.h │ │ │ └── swap.h │ │ │ ├── istreamwrapper.h │ │ │ ├── memorybuffer.h │ │ │ ├── memorystream.h │ │ │ ├── msinttypes │ │ │ ├── inttypes.h │ │ │ └── stdint.h │ │ │ ├── ostreamwrapper.h │ │ │ ├── pointer.h │ │ │ ├── prettywriter.h │ │ │ ├── rapidjson.h │ │ │ ├── reader.h │ │ │ ├── schema.h │ │ │ ├── stream.h │ │ │ ├── stringbuffer.h │ │ │ └── writer.h │ │ └── license.txt ├── opendistro-elasticsearch-odbc.release-notes.md ├── release-notes │ ├── sql-odbc.release-notes-1.7.0.0.md │ ├── sql-odbc.release-notes-1.8.0.0.md │ └── sql-odbc.release-notes-1.9.0.0.md ├── run_cppcheck.bat ├── run_cppcheck.sh ├── run_test_runner.bat ├── run_test_runner.sh ├── scripts │ ├── build_aws-sdk-cpp.ps1 │ ├── build_driver.ps1 │ ├── build_installer.ps1 │ ├── build_windows.ps1 │ └── prepare_ci_output.ps1 └── src │ ├── CMakeLists.txt │ ├── DSNInstaller │ ├── CMakeLists.txt │ └── dsn_installer.cpp │ ├── IntegrationTests │ ├── CMakeLists.txt │ ├── ITODBCAwsAuth │ │ ├── CMakeLists.txt │ │ ├── pch.cpp │ │ ├── pch.h │ │ ├── test_aws_auth_dsn.reg │ │ ├── test_odbc.ini │ │ ├── test_odbc_aws_auth.cpp │ │ └── test_odbcinst.ini │ ├── ITODBCCatalog │ │ ├── CMakeLists.txt │ │ ├── packages.config │ │ ├── pch.cpp │ │ ├── pch.h │ │ └── test_odbc_catalog.cpp │ ├── ITODBCConnection │ │ ├── CMakeLists.txt │ │ ├── packages.config │ │ ├── pch.cpp │ │ ├── pch.h │ │ ├── test_dsn.reg │ │ ├── test_odbc.ini │ │ ├── test_odbc_connection.cpp │ │ └── test_odbcinst.ini │ ├── ITODBCDescriptors │ │ ├── CMakeLists.txt │ │ ├── packages.config │ │ ├── pch.cpp │ │ ├── pch.h │ │ └── test_odbc_descriptors.cpp │ ├── ITODBCExecution │ │ ├── CMakeLists.txt │ │ ├── pch.cpp │ │ ├── pch.h │ │ └── test_odbc_execution.cpp │ ├── ITODBCHelper │ │ ├── CMakeLists.txt │ │ ├── it_odbc_helper.cpp │ │ └── it_odbc_helper.h │ ├── ITODBCInfo │ │ ├── CMakeLists.txt │ │ ├── packages.config │ │ ├── pch.cpp │ │ ├── pch.h │ │ └── test_odbc_info.cpp │ ├── ITODBCPagination │ │ ├── CMakeLists.txt │ │ ├── packages.config │ │ ├── pch.cpp │ │ ├── pch.h │ │ └── test_odbc_pagination.cpp │ ├── ITODBCResults │ │ ├── CMakeLists.txt │ │ ├── packages.config │ │ ├── pch.cpp │ │ ├── pch.h │ │ └── test_odbc_results.cpp │ └── ITODBCTableauQueries │ │ ├── CMakeLists.txt │ │ ├── packages.config │ │ ├── pch.cpp │ │ ├── pch.h │ │ ├── queries_all.txt │ │ └── test_odbc_tableau_queries.cpp │ ├── PerformanceTests │ ├── CMakeLists.txt │ ├── PTODBCExecution │ │ ├── CMakeLists.txt │ │ └── performance_odbc_execution.cpp │ ├── PTODBCInfo │ │ ├── CMakeLists.txt │ │ ├── packages.config │ │ ├── pch.cpp │ │ ├── pch.h │ │ └── performance_odbc_info.cpp │ └── PTODBCResults │ │ ├── CMakeLists.txt │ │ ├── packages.config │ │ ├── pch.cpp │ │ ├── pch.h │ │ └── performance_odbc_results.cpp │ ├── TestRunner │ ├── mako_template.html │ ├── test_exclude_list.txt │ └── test_runner.py │ ├── UnitTests │ ├── CMakeLists.txt │ ├── GoogleTest.LICENSE │ ├── UTAwsSdkCpp │ │ ├── CMakeLists.txt │ │ ├── packages.config │ │ ├── pch.cpp │ │ ├── pch.h │ │ └── test_aws_sdk_cpp.cpp │ ├── UTConn │ │ ├── CMakeLists.txt │ │ ├── packages.config │ │ ├── pch.cpp │ │ ├── pch.h │ │ ├── test_conn.cpp │ │ └── test_query_execution.cpp │ ├── UTCriticalSection │ │ ├── CMakeLists.txt │ │ ├── packages.config │ │ ├── pch.cpp │ │ ├── pch.h │ │ └── test_critical_section.cpp │ ├── UTHelper │ │ ├── CMakeLists.txt │ │ ├── unit_test_helper.cpp │ │ └── unit_test_helper.h │ └── UTRabbit │ │ ├── CMakeLists.txt │ │ ├── packages.config │ │ ├── pch.cpp │ │ ├── pch.h │ │ └── test_rabbit.cpp │ ├── autoconf.h.in │ ├── gtest │ ├── googletest-download.cmake │ └── googletest.cmake │ ├── installer │ ├── CMakeLists.txt │ ├── Resources │ │ ├── README.txt │ │ ├── Welcome.txt │ │ ├── background.bmp │ │ ├── background_darkaqua.bmp │ │ └── odfe_sql_odbc.tdc │ ├── banner.bmp │ ├── dialog.bmp │ ├── icon.ico │ ├── patch.xml │ ├── postinstall │ └── remove-odfe-dsn.sh │ ├── modules │ └── code-coverage.cmake │ ├── odfeenlist │ ├── CMakeLists.txt │ ├── elasticenlist.h │ └── msdtc_enlist.cpp │ └── odfesqlodbc │ ├── CMakeLists.txt │ ├── LICENSE.txt │ ├── bind.c │ ├── bind.h │ ├── catfunc.h │ ├── columninfo.c │ ├── columninfo.h │ ├── connection.c │ ├── convert.c │ ├── convert.h │ ├── descriptor.c │ ├── descriptor.h │ ├── dlg_specific.c │ ├── dlg_specific.h │ ├── dlg_wingui.c │ ├── drvconn.c │ ├── drvconn.h │ ├── environ.c │ ├── environ.h │ ├── es_api30.c │ ├── es_apifunc.h │ ├── es_communication.cpp │ ├── es_communication.h │ ├── es_connection.cpp │ ├── es_connection.h │ ├── es_driver_connect.cpp │ ├── es_driver_connect.h │ ├── es_helper.cpp │ ├── es_helper.h │ ├── es_info.cpp │ ├── es_info.h │ ├── es_odbc.c │ ├── es_odbc.h │ ├── es_odbc.rc │ ├── es_parse_result.cpp │ ├── es_parse_result.h │ ├── es_result_queue.cpp │ ├── es_result_queue.h │ ├── es_semaphore.cpp │ ├── es_semaphore.h │ ├── es_statement.cpp │ ├── es_statement.h │ ├── es_types.c │ ├── es_types.h │ ├── es_utility.cpp │ ├── es_utility.h │ ├── execute.c │ ├── info.c │ ├── loadlib.c │ ├── loadlib.h │ ├── misc.c │ ├── misc.h │ ├── multibyte.c │ ├── multibyte.h │ ├── mylog.c │ ├── mylog.h │ ├── odbcapi.c │ ├── odbcapi30.c │ ├── odbcapi30w.c │ ├── odbcapiw.c │ ├── options.c │ ├── parse.c │ ├── qresult.c │ ├── qresult.h │ ├── resource.h │ ├── results.c │ ├── setup.c │ ├── statement.c │ ├── statement.h │ ├── tuple.c │ ├── tuple.h │ ├── unicode_support.h │ ├── version.h │ ├── win_setup.h │ └── win_unicode.c ├── sql ├── build.gradle ├── lombok.config └── src │ ├── main │ ├── antlr │ │ ├── OpenDistroSQLIdentifierParser.g4 │ │ ├── OpenDistroSQLLexer.g4 │ │ └── OpenDistroSQLParser.g4 │ └── java │ │ └── com │ │ └── amazon │ │ └── opendistroforelasticsearch │ │ └── sql │ │ └── sql │ │ ├── SQLService.java │ │ ├── antlr │ │ └── SQLSyntaxParser.java │ │ ├── config │ │ └── SQLServiceConfig.java │ │ ├── domain │ │ └── SQLQueryRequest.java │ │ └── parser │ │ ├── AstAggregationBuilder.java │ │ ├── AstBuilder.java │ │ ├── AstExpressionBuilder.java │ │ ├── AstHavingFilterBuilder.java │ │ ├── AstSortBuilder.java │ │ ├── ParserUtils.java │ │ └── context │ │ ├── ParsingContext.java │ │ └── QuerySpecification.java │ └── test │ └── java │ └── com │ └── amazon │ └── opendistroforelasticsearch │ └── sql │ └── sql │ ├── SQLServiceTest.java │ ├── antlr │ └── SQLSyntaxParserTest.java │ ├── config │ └── SQLServiceConfigTest.java │ ├── domain │ └── SQLQueryRequestTest.java │ └── parser │ ├── AstAggregationBuilderTest.java │ ├── AstBuilderTest.java │ ├── AstExpressionBuilderTest.java │ ├── AstHavingFilterBuilderTest.java │ ├── AstQualifiedNameBuilderTest.java │ ├── AstSortBuilderTest.java │ └── context │ └── QuerySpecificationTest.java └── workbench ├── .cypress ├── integration │ └── ui.spec.js ├── plugins │ └── index.js ├── support │ ├── commands.js │ └── index.js └── utils │ └── constants.js ├── .gitignore ├── .kibana-plugin-helpers.json ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── CONTRIBUTORS.md ├── LICENSE.TXT ├── NOTICE ├── README.md ├── THIRD-PARTY ├── babel.config.js ├── common └── index.ts ├── cypress.json ├── kibana.json ├── package.json ├── public ├── ace-themes │ └── sql_console.js ├── app.scss ├── application.tsx ├── components │ ├── Header │ │ ├── Header.test.tsx │ │ ├── Header.tsx │ │ └── __snapshots__ │ │ │ └── Header.test.tsx.snap │ ├── Main │ │ ├── __snapshots__ │ │ │ └── main.test.tsx.snap │ │ ├── index.ts │ │ ├── main.test.tsx │ │ └── main.tsx │ ├── PPLPage │ │ ├── PPLPage.test.tsx │ │ ├── PPLPage.tsx │ │ └── __snapshots__ │ │ │ └── PPLPage.test.tsx.snap │ ├── QueryLanguageSwitch │ │ ├── Switch.test.tsx │ │ ├── Switch.tsx │ │ └── __snapshots__ │ │ │ └── Switch.test.tsx.snap │ ├── QueryResults │ │ ├── QueryResults.test.tsx │ │ ├── QueryResults.tsx │ │ ├── QueryResultsBody.test.tsx │ │ ├── QueryResultsBody.tsx │ │ └── __snapshots__ │ │ │ ├── QueryResults.test.tsx.snap │ │ │ └── QueryResultsBody.test.tsx.snap │ ├── SQLPage │ │ ├── SQLPage.test.tsx │ │ ├── SQLPage.tsx │ │ └── __snapshots__ │ │ │ └── SQLPage.test.tsx.snap │ └── app.tsx ├── icons │ ├── minus.svg │ ├── plus.svg │ └── sql.svg ├── index.scss ├── index.ts ├── less │ └── main.less ├── plugin.ts ├── types.ts └── utils │ ├── PanelWrapper.tsx │ ├── constants.ts │ └── utils.ts ├── release-notes ├── sql-workbench.release-notes-1.7.0.0.md ├── sql-workbench.release-notes-1.8.0.0.md ├── sql-workbench.release-notes-1.9.0.0.md ├── sql-workbench.release-notes-1.9.0.1.md └── sql-workbench.release-notes-1.9.0.2.md ├── server ├── clusters │ ├── index.js │ └── sql │ │ ├── createSqlCluster.js │ │ └── sqlPlugin.js ├── index.ts ├── plugin.ts ├── routes │ ├── index.ts │ ├── query.ts │ └── translate.ts ├── services │ ├── QueryService.ts │ ├── TranslateService.ts │ └── utils │ │ └── constants.ts ├── types.ts └── utils │ └── constants.ts ├── test ├── jest.config.js ├── mocks │ ├── browserServicesMock.ts │ ├── httpClientMock.ts │ ├── index.ts │ ├── mockData.ts │ └── styleMock.ts ├── polyfills.ts ├── polyfills │ └── mutationObserver.js ├── setup.jest.ts └── setupTests.ts ├── tsconfig.json ├── tslint.yaml ├── webpack.config.js └── yarn.lock /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | *Issue #, if available:* 2 | 3 | *Description of changes:* 4 | 5 | 6 | By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license. -------------------------------------------------------------------------------- /.github/workflows/draft-release-notes-workflow.yml: -------------------------------------------------------------------------------- 1 | name: Release Drafter 2 | 3 | on: 4 | push: 5 | branches: 6 | - develop 7 | 8 | jobs: 9 | update_release_draft: 10 | name: Update draft release notes 11 | runs-on: ubuntu-latest 12 | steps: 13 | # Drafts your next Release notes as Pull Requests are merged into "develop" 14 | - name: Update draft release notes 15 | uses: release-drafter/release-drafter@v5 16 | with: 17 | config-name: draft-release-notes-config.yml 18 | tag: (None) 19 | version: 1.13.0.0 20 | env: 21 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 22 | -------------------------------------------------------------------------------- /.github/workflows/sql-jdbc-test-and-build-workflow.yml: -------------------------------------------------------------------------------- 1 | name: SQL JDBC Java CI 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | build: 7 | 8 | runs-on: ubuntu-latest 9 | defaults: 10 | run: 11 | working-directory: sql-jdbc 12 | 13 | steps: 14 | - uses: actions/checkout@v1 15 | 16 | - name: Set up JDK 1.14 17 | uses: actions/setup-java@v1 18 | with: 19 | java-version: 1.14 20 | 21 | - name: Build with Gradle 22 | run: ./gradlew build 23 | 24 | - name: Create Artifact Path 25 | run: | 26 | mkdir -p sql-jdbc-builds 27 | cp ./build/libs/*.jar sql-jdbc-builds 28 | 29 | - name: Upload Artifacts 30 | uses: actions/upload-artifact@v1 31 | with: 32 | name: sql-jdbc 33 | path: sql-jdbc/sql-jdbc-builds 34 | -------------------------------------------------------------------------------- /.github/workflows/sql-test-and-build-workflow.yml: -------------------------------------------------------------------------------- 1 | name: SQL Java CI 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | build: 7 | 8 | runs-on: ubuntu-latest 9 | 10 | steps: 11 | - uses: actions/checkout@v1 12 | 13 | - name: Set up JDK 1.14 14 | uses: actions/setup-java@v1 15 | with: 16 | java-version: 1.14 17 | 18 | - name: Build with Gradle 19 | run: ./gradlew build assemble 20 | 21 | - name: Create Artifact Path 22 | run: | 23 | mkdir -p opendistro-sql-builds 24 | cp -r ./plugin/build/distributions/*.zip opendistro-sql-builds/ 25 | 26 | - name: Upload Artifacts 27 | uses: actions/upload-artifact@v1 28 | with: 29 | name: opendistro-sql 30 | path: opendistro-sql-builds 31 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | .settings/ 3 | # Mobile Tools for Java (J2ME) 4 | .mtj.tmp/ 5 | 6 | # Package Files # 7 | *.war 8 | *.ear 9 | .classpath 10 | .project 11 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 12 | hs_err_pid* 13 | /bin/ 14 | /target/ 15 | log/ 16 | elasticsearch-sql.iml 17 | src/_site/vendor/codemirror/mode/jinja2/.goutputstream-* 18 | src/_site/node_modules 19 | src/site-server/node_modules 20 | *~ 21 | .local-* 22 | /out/ 23 | .gradle/ 24 | build/ 25 | gen/ 26 | *.tokens 27 | 28 | # various IDE files 29 | .vscode 30 | .idea 31 | .history 32 | 33 | # git mergetool artifact 34 | *.orig 35 | gen 36 | *.tokens 37 | 38 | # Python 39 | */.venv 40 | */__pycache__ 41 | *.iml 42 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ## Code of Conduct 2 | This project has adopted an [Open Source Code of Conduct](https://opendistro.github.io/for-elasticsearch/codeofconduct.html). 3 | -------------------------------------------------------------------------------- /CONTRIBUTORS.md: -------------------------------------------------------------------------------- 1 | Contributors in order of last name: 2 | 3 | Qi Chen 4 | 5 | David Cui 6 | 7 | Chen Dai 8 | 9 | Andrew Etter 10 | 11 | Eli Fisher 12 | 13 | Andy Galkin 14 | 15 | Peng Huo 16 | 17 | Abbas Hussain 18 | 19 | Anirudh Jadhav 20 | 21 | Jinsoo 22 | 23 | Jianfei Li 24 | 25 | Xin Liu 26 | 27 | Carl Meadows 28 | 29 | Arsen Mkrtchyan 30 | 31 | Mohammad Qureshi 32 | 33 | Rishabh Singh 34 | 35 | Zhongnan Su 36 | 37 | Jordan Wilson 38 | 39 | Henri Yandell 40 | 41 | Allen Yin 42 | 43 | Chloe Zhang 44 | 45 | Jing Zhang 46 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | Open Distribution for Elasticsearch SQL 2 | Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | 4 | This project is based on the Apache 2.0-licensed elasticsearch-sql project (https://github.com/NLPchina/elasticsearch-sql): 5 | 6 | Copyright 2014 omershelef 7 | Copyright 2015-2016 Eliran 8 | Copyright 2015 jheimbouch 9 | Copyright 2016 allwefantasy 10 | Copyright 2016 Razma Tazz 11 | Copyright 2017 leonlu 12 | -------------------------------------------------------------------------------- /bi-connectors/PowerBIConnector/OdfeSqlOdbcPBIConnector16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/bi-connectors/PowerBIConnector/OdfeSqlOdbcPBIConnector16.png -------------------------------------------------------------------------------- /bi-connectors/PowerBIConnector/OdfeSqlOdbcPBIConnector20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/bi-connectors/PowerBIConnector/OdfeSqlOdbcPBIConnector20.png -------------------------------------------------------------------------------- /bi-connectors/PowerBIConnector/OdfeSqlOdbcPBIConnector24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/bi-connectors/PowerBIConnector/OdfeSqlOdbcPBIConnector24.png -------------------------------------------------------------------------------- /bi-connectors/PowerBIConnector/OdfeSqlOdbcPBIConnector32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/bi-connectors/PowerBIConnector/OdfeSqlOdbcPBIConnector32.png -------------------------------------------------------------------------------- /bi-connectors/PowerBIConnector/OdfeSqlOdbcPBIConnector40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/bi-connectors/PowerBIConnector/OdfeSqlOdbcPBIConnector40.png -------------------------------------------------------------------------------- /bi-connectors/PowerBIConnector/OdfeSqlOdbcPBIConnector48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/bi-connectors/PowerBIConnector/OdfeSqlOdbcPBIConnector48.png -------------------------------------------------------------------------------- /bi-connectors/PowerBIConnector/OdfeSqlOdbcPBIConnector64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/bi-connectors/PowerBIConnector/OdfeSqlOdbcPBIConnector64.png -------------------------------------------------------------------------------- /bi-connectors/PowerBIConnector/OdfeSqlOdbcPBIConnector80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/bi-connectors/PowerBIConnector/OdfeSqlOdbcPBIConnector80.png -------------------------------------------------------------------------------- /bi-connectors/PowerBIConnector/PBIDSExamples/odfesqlodbc_import.pbids: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1", 3 | "connections": [ 4 | { 5 | "details": { 6 | "protocol": "odfesqlodbc", 7 | "address": { 8 | "server": "localhost:9200" 9 | } 10 | }, 11 | "mode": "Import" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /bi-connectors/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/bi-connectors/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez -------------------------------------------------------------------------------- /bi-connectors/TableauConnector/odfe_sql_odbc/README.md: -------------------------------------------------------------------------------- 1 | ## odfe_sql_odbc 2 | 3 | The connector files in `odfe_sql_odbc` can be used to connect to elasticsearch server in Tableau. 4 | 5 | * These connector files remove and modify a set of unsupported functions and operations. 6 | * It includes set of capabilities to customize and tune connector behavior 7 | 8 | To use this connector with Tableau, [Package the connector](https://tableau.github.io/connector-plugin-sdk/docs/package-sign) and [Run Packaged Connector (TACO file)](https://tableau.github.io/connector-plugin-sdk/docs/run-taco) -------------------------------------------------------------------------------- /bi-connectors/TableauConnector/odfe_sql_odbc/connection-dialog.tcd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /bi-connectors/TableauConnector/odfe_sql_odbc/odfe_sql_odbc.taco: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/bi-connectors/TableauConnector/odfe_sql_odbc/odfe_sql_odbc.taco -------------------------------------------------------------------------------- /bi-connectors/TableauConnector/odfe_sql_odbc_dev/README.md: -------------------------------------------------------------------------------- 1 | ## odfe_sql_odbc_dev 2 | 3 | The connector files in `odfe_sql_odbc_dev` can be used for development purposes. 4 | 5 | * Use this connector while running tdvt tests to identify the areas for improving query support. 6 | * These connector files do not remove or modify any dialect function. 7 | * It includes minimum set of capabilities required to connect to data source. 8 | 9 | To use this connector with Tableau, follow instructions at [Run Your "Under Development" Connector](https://tableau.github.io/connector-plugin-sdk/docs/share) 10 | 11 | To test this connector with TDVT, follow instructions at [Test with TDVT Suite](https://tableau.github.io/connector-plugin-sdk/docs/tdvt) -------------------------------------------------------------------------------- /bi-connectors/TableauConnector/odfe_sql_odbc_dev/connection-dialog.tcd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /bi-connectors/TableauConnector/odfe_sql_odbc_dev/dialect.tdd: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /bi-connectors/TableauConnector/odfe_sql_odbc_dev/odfe_sql_odbc_dev.taco: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/bi-connectors/TableauConnector/odfe_sql_odbc_dev/odfe_sql_odbc_dev.taco -------------------------------------------------------------------------------- /common/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | id "io.freefair.lombok" 4 | } 5 | 6 | repositories { 7 | mavenCentral() 8 | } 9 | 10 | dependencies { 11 | compile "org.antlr:antlr4-runtime:4.7.1" 12 | // https://github.com/google/guava/wiki/CVE-2018-10237 13 | compile group: 'com.google.guava', name: 'guava', version: '29.0-jre' 14 | compile group: 'org.apache.logging.log4j', name: 'log4j-core', version:'2.11.1' 15 | 16 | testCompile group: 'junit', name: 'junit', version: '4.12' 17 | } 18 | -------------------------------------------------------------------------------- /common/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | -------------------------------------------------------------------------------- /config/checkstyle/suppressions.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /core/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | lombok.addLombokGeneratedAnnotation = true 4 | -------------------------------------------------------------------------------- /core/src/test/java/com/amazon/opendistroforelasticsearch/sql/expression/operator/arthmetic/UnaryFunctionTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/core/src/test/java/com/amazon/opendistroforelasticsearch/sql/expression/operator/arthmetic/UnaryFunctionTest.java -------------------------------------------------------------------------------- /docs/dev/img/aggregate-window-functions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/dev/img/aggregate-window-functions.png -------------------------------------------------------------------------------- /docs/dev/img/architecture-journey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/dev/img/architecture-journey.png -------------------------------------------------------------------------------- /docs/dev/img/architecture-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/dev/img/architecture-overview.png -------------------------------------------------------------------------------- /docs/dev/img/cursor-initial-request-flow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/dev/img/cursor-initial-request-flow.jpg -------------------------------------------------------------------------------- /docs/dev/img/cursor-subsequent-request-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/dev/img/cursor-subsequent-request-flow.png -------------------------------------------------------------------------------- /docs/dev/img/doctest-gradle-project-structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/dev/img/doctest-gradle-project-structure.png -------------------------------------------------------------------------------- /docs/dev/img/doctest-workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/dev/img/doctest-workflow.png -------------------------------------------------------------------------------- /docs/dev/img/equi-join-approach-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/dev/img/equi-join-approach-1.png -------------------------------------------------------------------------------- /docs/dev/img/equi-join-approach-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/dev/img/equi-join-approach-2.png -------------------------------------------------------------------------------- /docs/dev/img/equi-join-approach-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/dev/img/equi-join-approach-3.png -------------------------------------------------------------------------------- /docs/dev/img/high-level-cursor-design.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/dev/img/high-level-cursor-design.jpg -------------------------------------------------------------------------------- /docs/dev/img/how-semantic-analysis-works.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/dev/img/how-semantic-analysis-works.png -------------------------------------------------------------------------------- /docs/dev/img/how-types-synthesized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/dev/img/how-types-synthesized.png -------------------------------------------------------------------------------- /docs/dev/img/how-we-do-comparison-test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/dev/img/how-we-do-comparison-test.png -------------------------------------------------------------------------------- /docs/dev/img/test-framework-components.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/dev/img/test-framework-components.png -------------------------------------------------------------------------------- /docs/dev/img/the-workflow-of-comparison-test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/dev/img/the-workflow-of-comparison-test.png -------------------------------------------------------------------------------- /docs/dev/img/what-semantic-context-looks-like.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/dev/img/what-semantic-context-looks-like.png -------------------------------------------------------------------------------- /docs/experiment/ppl/RFC_ Pipe Processing Language.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/experiment/ppl/RFC_ Pipe Processing Language.pdf -------------------------------------------------------------------------------- /docs/experiment/ppl/cmd/syntax.rst: -------------------------------------------------------------------------------- 1 | ============= 2 | Syntax 3 | ============= 4 | 5 | .. rubric:: Table of contents 6 | 7 | .. contents:: 8 | :local: 9 | :depth: 2 10 | 11 | Command Order 12 | ============= 13 | The PPL query started with ``search`` command to reference a table search from. All the following command could be in any order. In the following example, ``search`` command refer the accounts index as the source, then using fields and where command to do the further processing. 14 | 15 | .. code-block:: 16 | 17 | search source=accounts 18 | | where age > 18 19 | | fields firstname, lastname 20 | 21 | 22 | Required arguments 23 | ================== 24 | Required arguments are shown in angle brackets < >. 25 | 26 | 27 | Optional arguments 28 | ================== 29 | Optional arguments are enclosed in square brackets [ ]. 30 | 31 | -------------------------------------------------------------------------------- /docs/experiment/ppl/limitations/limitations.rst: -------------------------------------------------------------------------------- 1 | 2 | =========== 3 | Limitations 4 | =========== 5 | 6 | .. rubric:: Table of contents 7 | 8 | .. contents:: 9 | :local: 10 | :depth: 2 11 | 12 | 13 | Introduction 14 | ============ 15 | 16 | In this doc, the restrictions and limitations of PPL is covered as follows. 17 | 18 | Limitations on Fields 19 | ===================== 20 | 21 | We are not supporting use `alias field type `_ as identifier. It will throw exception ``can't resolve Symbol``. 22 | -------------------------------------------------------------------------------- /docs/user/img/rdd/expression.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/user/img/rdd/expression.png -------------------------------------------------------------------------------- /docs/user/img/rdd/expressionAtom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/user/img/rdd/expressionAtom.png -------------------------------------------------------------------------------- /docs/user/img/rdd/fromClause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/user/img/rdd/fromClause.png -------------------------------------------------------------------------------- /docs/user/img/rdd/joinPart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/user/img/rdd/joinPart.png -------------------------------------------------------------------------------- /docs/user/img/rdd/predicate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/user/img/rdd/predicate.png -------------------------------------------------------------------------------- /docs/user/img/rdd/querySpecification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/user/img/rdd/querySpecification.png -------------------------------------------------------------------------------- /docs/user/img/rdd/selectElement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/user/img/rdd/selectElement.png -------------------------------------------------------------------------------- /docs/user/img/rdd/selectElements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/user/img/rdd/selectElements.png -------------------------------------------------------------------------------- /docs/user/img/rdd/showFilter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/user/img/rdd/showFilter.png -------------------------------------------------------------------------------- /docs/user/img/rdd/showStatement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/user/img/rdd/showStatement.png -------------------------------------------------------------------------------- /docs/user/img/rdd/singleDeleteStatement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/user/img/rdd/singleDeleteStatement.png -------------------------------------------------------------------------------- /docs/user/img/rdd/tableName.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/user/img/rdd/tableName.png -------------------------------------------------------------------------------- /docs/user/img/rdd/tableSource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/docs/user/img/rdd/tableSource.png -------------------------------------------------------------------------------- /doctest/bin/test-docs: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 3 | $DIR/../.venv/bin/python -X faulthandler -m unittest -v --failfast test_docs 4 | -------------------------------------------------------------------------------- /doctest/bootstrap.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | DIR=$(dirname "$0") 4 | 5 | if hash python3.7 2> /dev/null; then 6 | PYTHON=python3.7 7 | elif hash python3 2> /dev/null; then 8 | # fallback to python3 in case there is no python3.7 alias; should be 3.7 9 | PYTHON=python3 10 | else 11 | echo 'python3.7 required' 12 | exit 1 13 | fi 14 | 15 | $PYTHON -m venv $DIR/.venv 16 | if [ ! -f $DIR/.venv/bin/pip ]; then 17 | wget https://bootstrap.pypa.io/get-pip.py 18 | $DIR/.venv/bin/python get-pip.py 19 | rm -f get-pip.py 20 | fi 21 | 22 | $DIR/.venv/bin/pip install -U pip setuptools wheel 23 | $DIR/.venv/bin/pip install -r $DIR/requirements.txt 24 | $DIR/.venv/bin/pip install -e ../sql-cli 25 | -------------------------------------------------------------------------------- /doctest/requirements.txt: -------------------------------------------------------------------------------- 1 | zc.customdoctests==1.0.1 2 | # Add odfe-sql-cli once we have it on official PyPI -------------------------------------------------------------------------------- /doctest/test_data/accounts.json: -------------------------------------------------------------------------------- 1 | {"account_number":1,"balance":39225,"firstname":"Amber","lastname":"Duke","age":32,"gender":"M","address":"880 Holmes Lane","employer":"Pyrami","email":"amberduke@pyrami.com","city":"Brogan","state":"IL"} 2 | {"account_number":6,"balance":5686,"firstname":"Hattie","lastname":"Bond","age":36,"gender":"M","address":"671 Bristol Street","employer":"Netagy","email":"hattiebond@netagy.com","city":"Dante","state":"TN"} 3 | {"account_number":13,"balance":32838,"firstname":"Nanette","lastname":"Bates","age":28,"gender":"F","address":"789 Madison Street","employer":"Quility","city":"Nogal","state":"VA"} 4 | {"account_number":18,"balance":4180,"firstname":"Dale","lastname":"Adams","age":33,"gender":"M","address":"467 Hutchinson Court","employer":null,"email":"daleadams@boink.com","city":"Orick","state":"MD"} 5 | -------------------------------------------------------------------------------- /doctest/test_data/people.json: -------------------------------------------------------------------------------- 1 | {"city": {"name": "Seattle", "location": {"latitude": 10.5}}, "accounts": [{"id": 1}, {"id": 2}], "projects": [{"name": "AWS Redshift Spectrum querying"}, {"name": "AWS Redshift security"}, {"name": "AWS Aurora security"}] } 2 | -------------------------------------------------------------------------------- /doctest/test_mapping/people.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "city": { 5 | "properties": { 6 | "name": { 7 | "type": "keyword" 8 | }, 9 | "location": { 10 | "properties": { 11 | "latitude": { 12 | "type": "double" 13 | } 14 | } 15 | } 16 | } 17 | }, 18 | "account": { 19 | "properties": { 20 | "id": { 21 | "type": "keyword" 22 | } 23 | } 24 | }, 25 | "projects": { 26 | "type": "nested", 27 | "properties": { 28 | "name": { 29 | "type": "keyword" 30 | } 31 | } 32 | } 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /elasticsearch/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | lombok.addLombokGeneratedAnnotation = true 4 | -------------------------------------------------------------------------------- /elasticsearch/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker: -------------------------------------------------------------------------------- 1 | mock-maker-inline -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"). 5 | # You may not use this file except in compliance with the License. 6 | # A copy of the License is located at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # or in the "license" file accompanying this file. This file is distributed 11 | # on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12 | # express or implied. See the License for the specific language governing 13 | # permissions and limitations under the License. 14 | # 15 | 16 | version=1.13.2 17 | org.gradle.jvmargs=-Duser.language=en -Duser.country=US 18 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"). 5 | # You may not use this file except in compliance with the License. 6 | # A copy of the License is located at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # or in the "license" file accompanying this file. This file is distributed 11 | # on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12 | # express or implied. See the License for the specific language governing 13 | # permissions and limitations under the License. 14 | # 15 | 16 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip 17 | distributionBase=GRADLE_USER_HOME 18 | distributionPath=wrapper/dists 19 | zipStorePath=wrapper/dists 20 | zipStoreBase=GRADLE_USER_HOME 21 | -------------------------------------------------------------------------------- /integ-test/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/.bank.json: -------------------------------------------------------------------------------- 1 | {"index": {"_id": "1"}} 2 | {"account_number": 12345, "education": "PhD", "salary": 10000} 3 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/123.txt: -------------------------------------------------------------------------------- 1 | SELECT Origin FROM kibana_sample_data_flights ORDER BY LOWER(Origin) 2 | SELECT Origin FROM kibana_sample_data_flights ORDER BY LOWER(Origin) DESC 3 | SELECT Origin FROM kibana_sample_data_flights ORDER BY SUBSTRING(Origin, 3, 3) 4 | SELECT Origin FROM kibana_sample_data_flights ORDER BY SUBSTRING(Origin, 3, 3) DESC 5 | SELECT Origin, FlightNum FROM kibana_sample_data_flights ORDER BY SUBSTRING(Origin, 3, 3), LOWER(FlightNum) 6 | SELECT AVG(FlightTimeMin) FROM kibana_sample_data_flights ORDER BY SUM(FlightTimeMin) 7 | SELECT OriginWeather, AVG(FlightTimeMin) FROM kibana_sample_data_flights GROUP BY OriginWeather ORDER BY SUM(FlightTimeMin) 8 | SELECT FlightDelay, MIN(FlightTimeMin) FROM kibana_sample_data_flights GROUP BY FlightDelay ORDER BY MAX(FlightTimeMin) 9 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/234.txt: -------------------------------------------------------------------------------- 1 | SELECT FlightNum FROM kibana_sample_data_flights where (AvgTicketPrice + 100) <= 1000 2 | SELECT FlightNum FROM kibana_sample_data_flights where ROUND(FlightTimeMin) > ABS(FlightDelayMin) -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/237.txt: -------------------------------------------------------------------------------- 1 | SELECT ((Origin = 'Munich Airport') AND (Dest = 'Venice Marco Polo Airport')) AS Calculation_462181953506873347 FROM kibana_sample_data_flights 2 | SELECT ((Origin = 'Munich Airport') OR (Origin = 'Itami Airport')) AS Calculation_462181953506873347 FROM kibana_sample_data_flights 3 | SELECT NOT (Origin = 'Munich Airport') AS Calculation_462181953506873347 FROM kibana_sample_data_flights -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/242.txt: -------------------------------------------------------------------------------- 1 | SELECT flights.`FlightNum` FROM kibana_sample_data_flights AS flights WHERE flights.`AvgTicketPrice` <= 500 2 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/280.txt: -------------------------------------------------------------------------------- 1 | SELECT SUM(AvgTicketPrice - 10) FROM kibana_sample_data_flights 2 | SELECT SUM(ABS(AvgTicketPrice * -2)) FROM kibana_sample_data_flights 3 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/288.txt: -------------------------------------------------------------------------------- 1 | SELECT avg(log(AvgTicketPrice)) FROM kibana_sample_data_flights GROUP BY DestCountry 2 | SELECT avg(log(AvgTicketPrice)) FROM kibana_sample_data_flights GROUP BY DestCountry, dayOfWeek 3 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/368.txt: -------------------------------------------------------------------------------- 1 | SELECT Origin FROM kibana_sample_data_flights WHERE Origin LIKE 'London Hea%' 2 | SELECT Origin FROM kibana_sample_data_flights WHERE Origin LIKE '%International%' -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/373.txt: -------------------------------------------------------------------------------- 1 | SELECT Abs(dayOfWeek) FROM kibana_sample_data_flights GROUP BY abS(dayOfWeek) 2 | SELECT abs(dayOfWeek) FROM kibana_sample_data_flights GROUP BY ABS(dayOfWeek) 3 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/375.txt: -------------------------------------------------------------------------------- 1 | SELECT flights.TEMP1 AS a, flights.TEMP2 AS b FROM (SELECT COUNT(*) AS TEMP1, SUM(AvgTicketPrice) AS TEMP2 FROM kibana_sample_data_flights) flights 2 | SELECT flights.origin AS a FROM (SELECT Origin AS origin, AvgTicketPrice AS price FROM kibana_sample_data_flights GROUP BY origin, price) flights -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/430.txt: -------------------------------------------------------------------------------- 1 | SELECT Origin, SUM(AvgTicketPrice) FROM kibana_sample_data_flights GROUP BY Origin 2 | SELECT Dest, AVG(FlightTimeMin) FROM kibana_sample_data_flights GROUP BY Dest 3 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/441.txt: -------------------------------------------------------------------------------- 1 | SELECT customer_id, count(*) AS label_value FROM kibana_sample_data_ecommerce GROUP BY customer_id ORDER BY customer_id LIMIT 10 OFFSET 2 2 | SELECT Origin FROM kibana_sample_data_flights GROUP BY Origin ORDER BY Origin LIMIT 5, 10 -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/521.txt: -------------------------------------------------------------------------------- 1 | SELECT timestamp FROM kibana_sample_data_flights GROUP BY timestamp -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/582.txt: -------------------------------------------------------------------------------- 1 | SELECT DISTINCT CASE WHEN Carrier = 'ES-Air' Then FlightDelayMin END AS delay FROM kibana_sample_data_flights 2 | SELECT DISTINCT CASE WHEN FlightDelay = true Then Carrier END AS name FROM kibana_sample_data_flights 3 | SELECT DISTINCT CASE WHEN FlightDelay = true Then Carrier WHEN FlightDelay = false THEN NULL END AS name FROM kibana_sample_data_flights 4 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/674.txt: -------------------------------------------------------------------------------- 1 | SELECT OriginCountry, OriginCityName FROM kibana_sample_data_flights GROUP BY OriginCountry, OriginCityName ORDER BY OriginCityName DESC 2 | SELECT FlightDelay, OriginCountry, OriginCityName FROM kibana_sample_data_flights GROUP BY FlightDelay, OriginCountry, OriginCityName ORDER BY OriginCityName DESC, OriginCountry 3 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/690.txt: -------------------------------------------------------------------------------- 1 | SELECT FlightNum, Origin FROM kibana_sample_data_flights WHERE NULL IS NULL 2 | SELECT FlightNum, Origin FROM kibana_sample_data_flights WHERE NULL IS NOT NULL 3 | SELECT FlightNum, Origin FROM kibana_sample_data_flights WHERE NULL IS NULL AND NULL IS NULL 4 | SELECT FlightNum, Origin FROM kibana_sample_data_flights WHERE NULL IS NULL OR NULL IS NULL 5 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/717.txt: -------------------------------------------------------------------------------- 1 | SELECT FlightDelay FROM kibana_sample_data_flights GROUP BY FlightDelay 2 | SELECT FlightDelay, Cancelled FROM kibana_sample_data_flights GROUP BY FlightDelay, Cancelled 3 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/765.txt: -------------------------------------------------------------------------------- 1 | SELECT Carrier AS c, COUNT(*) AS count FROM kibana_sample_data_flights GROUP BY Carrier ORDER BY Carrier -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/852.txt: -------------------------------------------------------------------------------- 1 | SELECT AvgTicketPrice FROM kibana_sample_data_flights ORDER BY AvgTicketPrice DESC 2 | SELECT AvgTicketPrice FROM kibana_sample_data_flights ORDER BY AvgTicketPrice desc 3 | SELECT AvgTicketPrice FROM kibana_sample_data_flights ORDER BY AvgTicketPrice DeSc 4 | SELECT AvgTicketPrice FROM kibana_sample_data_flights ORDER BY AvgTicketPrice ASC 5 | SELECT AvgTicketPrice FROM kibana_sample_data_flights ORDER BY AvgTicketPrice asc 6 | SELECT AvgTicketPrice FROM kibana_sample_data_flights ORDER BY AvgTicketPrice AsC -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/899.txt: -------------------------------------------------------------------------------- 1 | SELECT 'hello' FROM kibana_sample_data_flights HAVING (COUNT(1) > 0) 2 | SELECT UPPER('hello') AS `literal` FROM kibana_sample_data_flights HAVING (COUNT(1) > 0) 3 | SELECT UPPER(UPPER('hello')) AS `literal` FROM kibana_sample_data_flights HAVING (COUNT(1) > 0) 4 | SELECT SUBSTRING(CONCAT(UPPER('hello'), 'world'), 1, 6) AS `literal` FROM kibana_sample_data_flights HAVING (COUNT(1) > 0) 5 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/901.txt: -------------------------------------------------------------------------------- 1 | SELECT * FROM (SELECT Origin, Dest, AvgTicketPrice FROM kibana_sample_data_flights) AS flights 2 | SELECT * FROM (SELECT Origin AS origin FROM kibana_sample_data_flights) AS flights 3 | SELECT * FROM (SELECT * FROM (SELECT Origin FROM kibana_sample_data_flights) AS flights) AS f 4 | SELECT Origin FROM (SELECT * FROM kibana_sample_data_flights) AS flights -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/bugfixes/916.txt: -------------------------------------------------------------------------------- 1 | SELECT COUNT(timestamp) FROM kibana_sample_data_flights 2 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/expressions/arithmetics.txt: -------------------------------------------------------------------------------- 1 | 1 + 2 2 | -1.0 + 1.234 3 | 10 - 5 4 | 1.2 - 3 5 | 5 * -6 6 | -1 * 2.0 7 | 1 / 2 8 | -4 / 2.0 9 | 5 % 2 10 | -5 % 2 11 | 0 % 2 12 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/expressions/cast.txt: -------------------------------------------------------------------------------- 1 | cast('1' as int) as castInt 2 | cast(1 as int) as castInt 3 | cast(true as int) as castInt 4 | cast(false as int) as castInt 5 | cast('1' as integer) as castInteger 6 | cast(2 as integer) as castInteger 7 | cast(3.4 as integer) as castInteger 8 | cast(true as integer) as castInteger 9 | cast(false as integer) as castInteger 10 | cast('1' as double) as castDouble 11 | cast(1 as double) as castDouble 12 | cast(true as double) as castDouble 13 | cast(false as double) as castDouble 14 | cast('2012-08-07 01:01:01' as timestamp) as castTimestamp 15 | cast('2012-08-07' as date) as castDate 16 | cast('01:01:01' as time) as castTime 17 | cast('true' as boolean) as castBool 18 | cast(1 as boolean) as castBool 19 | cast(cast(1 as string) as int) castCombine 20 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/expressions/date_and_time_functions.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/integ-test/src/test/resources/correctness/expressions/date_and_time_functions.txt -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/expressions/literals.txt: -------------------------------------------------------------------------------- 1 | null 2 | NULL 3 | 1 4 | true 5 | -4.567 6 | -123,false 7 | 'ODFE' 8 | 2147483647 9 | -2147483648 10 | 2147483648 11 | -2147483649 12 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/expressions/predicates.txt: -------------------------------------------------------------------------------- 1 | true AND true AS bool 2 | false AND true AS bool 3 | false OR false AS bool 4 | true or false AS bool 5 | NOT true AS bool 6 | NOT false AS bool 7 | NOT (true AND false) AS bool -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/expressions/text_functions.txt: -------------------------------------------------------------------------------- 1 | RIGHT('Hello World', 5) as column -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/queries/aggregation.txt: -------------------------------------------------------------------------------- 1 | SELECT COUNT(AvgTicketPrice) FROM kibana_sample_data_flights 2 | SELECT count(timestamp) from kibana_sample_data_flights 3 | SELECT AVG(AvgTicketPrice) FROM kibana_sample_data_flights 4 | SELECT SUM(AvgTicketPrice) FROM kibana_sample_data_flights 5 | SELECT MAX(AvgTicketPrice) FROM kibana_sample_data_flights 6 | SELECT MAX(timestamp) FROM kibana_sample_data_flights 7 | SELECT MIN(AvgTicketPrice) FROM kibana_sample_data_flights 8 | SELECT MIN(timestamp) FROM kibana_sample_data_flights -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/queries/filter.txt: -------------------------------------------------------------------------------- 1 | SELECT AVG(AvgTicketPrice) FILTER(WHERE Carrier = 'Kibana Airlines') AS filtered FROM kibana_sample_data_flights 2 | SELECT AVG(AvgTicketPrice) FILTER(WHERE Carrier = 'Kibana Airlines') AS filtered FROM kibana_sample_data_flights GROUP BY Origin ORDER BY Origin 3 | SELECT AVG(AvgTicketPrice + 1) FILTER(WHERE Carrier = 'Kibana Airlines') AS filtered FROM kibana_sample_data_flights 4 | SELECT AVG(AvgTicketPrice) FILTER(WHERE Carrier = 'Kibana Airlines') / 2 AS filtered FROM kibana_sample_data_flights 5 | SELECT AVG(AvgTicketPrice) FILTER(WHERE ABS(AvgTicketPrice) < 10000) AS filtered FROM kibana_sample_data_flights 6 | SELECT AVG(AvgTicketPrice) AS unfiltered, AVG(AvgTicketPrice) FILTER(WHERE Carrier = 'Kibana Airlines') AS filtered1, AVG(AvgTicketPrice) FILTER(WHERE Carrier = 'ES-Air') AS filtered2 FROM kibana_sample_data_flights WHERE DestWeather = 'Sunny' -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/queries/joins.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/integ-test/src/test/resources/correctness/queries/joins.txt -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/test_data_test.csv: -------------------------------------------------------------------------------- 1 | AvgTicketPrice,Cancelled,Carrier,dayOfWeek,timestamp 2 | 1000,true,Delta,1,123 3 | 2000,false,Southwest,2,456 -------------------------------------------------------------------------------- /integ-test/src/test/resources/correctness/test_data_test.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "AvgTicketPrice": { 5 | "type": "float" 6 | }, 7 | "Cancelled": { 8 | "type": "boolean" 9 | }, 10 | "Carrier": { 11 | "type": "keyword" 12 | }, 13 | "dayOfWeek": { 14 | "type": "integer" 15 | }, 16 | "timestamp": { 17 | "type": "date" 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/datatypes.json: -------------------------------------------------------------------------------- 1 | {"index":{"_id":"1"}} 2 | {"boolean_value": true, "keyword_value": "keyword", "text_value": "text", "binary_value": "U29tZSBiaW5hcnkgYmxvYg==", "date_value": "2020-10-13 13:00:00", "ip_value": "127.0.0.0.1", "object_value": {"first": "Dale", "last": "Dale"}, "nested_value": [{"first" : "John", "last" : "Smith"}, {"first" : "Alice", "last" : "White"}} 3 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/datatypes_numeric.json: -------------------------------------------------------------------------------- 1 | {"index":{"_id":"1"}} 2 | {"long_number": 1, "integer_number": 2, "short_number": 3, "byte_number": 4, "double_number": 5.1, "float_number": 6.2, "half_float_number": 7.3, "scaled_float_number": 8.4} 3 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/dates.json: -------------------------------------------------------------------------------- 1 | {"index":{}} 2 | {"date_keyword": "2014-08-19T07:09:13.434Z"} 3 | {"index":{}} 4 | {"date_keyword": "2019-09-25T02:04:13.469Z"} 5 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/datetime.json: -------------------------------------------------------------------------------- 1 | {"index":{"_id":"1"}} 2 | {"login_time":"2015-01-01"} 3 | {"index":{"_id":"2"}} 4 | {"login_time":"2015-01-01T12:10:30Z"} 5 | {"index":{"_id":"3"}} 6 | {"login_time":"1585882955"} 7 | {"index":{"_id":"4"}} 8 | {"login_time":"2020-04-08T11:10:30+05:00"} 9 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/deep_nested_index_data.json: -------------------------------------------------------------------------------- 1 | {"index":{"_id":"1"}} 2 | {"city": {"name": "Seattle", "location": {"latitude": 10.5}}, "accounts": [{"id": 1}, {"id": 2}], "projects": [{"name": "AWS Redshift Spectrum querying"}, {"name": "AWS Redshift security"}, {"name": "AWS Aurora security"}] } 3 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/doctest/templates/admin/monitoring.rst: -------------------------------------------------------------------------------- 1 | .. highlight:: sh 2 | 3 | ================= 4 | Plugin Monitoring 5 | ================= 6 | 7 | .. rubric:: Table of contents 8 | 9 | .. contents:: 10 | :local: 11 | :depth: 1 12 | 13 | 14 | Introduction 15 | ============ 16 | 17 | By a stats endpoint, you are able to collect metrics for the plugin within the interval. Note that only node level statistics collecting is implemented for now. In other words, you only get the metrics for the node you're accessing. Cluster level statistics have yet to be implemented. 18 | 19 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/doctest/templates/admin/settings.rst: -------------------------------------------------------------------------------- 1 | .. highlight:: sh 2 | 3 | =============== 4 | Plugin Settings 5 | =============== 6 | 7 | .. rubric:: Table of contents 8 | 9 | .. contents:: 10 | :local: 11 | :depth: 1 12 | 13 | 14 | Introduction 15 | ============ 16 | 17 | When Elasticsearch bootstraps, SQL plugin will register a few settings in Elasticsearch cluster settings. Most of the settings are able to change dynamically so you can control the behavior of SQL plugin without need to bounce your cluster. 18 | 19 | 20 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/doctest/templates/beyond/fulltext.rst: -------------------------------------------------------------------------------- 1 | 2 | ================ 3 | Full-text Search 4 | ================ 5 | 6 | .. rubric:: Table of contents 7 | 8 | .. contents:: 9 | :local: 10 | :depth: 2 11 | 12 | Introduction 13 | ============ 14 | 15 | Full-text search is for searching a single stored document which is distinguished from regular search based on original texts in database. It tries to match search criteria by examining all of the words in each document. In Elasticsearch, full-text queries provided enables you to search text fields analyzed during indexing. 16 | 17 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/doctest/templates/beyond/partiql.rst: -------------------------------------------------------------------------------- 1 | 2 | ====================== 3 | PartiQL (JSON) Support 4 | ====================== 5 | 6 | .. rubric:: Table of contents 7 | 8 | .. contents:: 9 | :local: 10 | :depth: 2 11 | 12 | Introduction 13 | ============ 14 | 15 | PartiQL is a SQL-compatible query language that makes it easy and efficient to query semi-structured and nested data regardless of data format. For now our implementation is only partially compatible with PartiQL specification and more support will be provided in future. 16 | 17 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/doctest/templates/dml/delete.rst: -------------------------------------------------------------------------------- 1 | 2 | ================ 3 | DELETE Statement 4 | ================ 5 | 6 | .. rubric:: Table of contents 7 | 8 | .. contents:: 9 | :local: 10 | :depth: 2 11 | 12 | 13 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/doctest/templates/dql/complex.rst: -------------------------------------------------------------------------------- 1 | 2 | =============== 3 | Complex Queries 4 | =============== 5 | 6 | .. rubric:: Table of contents 7 | 8 | .. contents:: 9 | :local: 10 | :depth: 2 11 | 12 | Besides simple SFW queries (SELECT-FROM-WHERE), there is also support for complex queries such as Subquery, ``JOIN``, ``UNION`` and ``MINUS``. For these queries, more than one Elasticsearch index and DSL query is involved. You can check out how they are performed behind the scene by our explain API. 13 | 14 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/doctest/templates/dql/metadata.rst: -------------------------------------------------------------------------------- 1 | 2 | ================ 3 | Metadata Queries 4 | ================ 5 | 6 | .. rubric:: Table of contents 7 | 8 | .. contents:: 9 | :local: 10 | :depth: 1 11 | 12 | 13 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/doctest/templates/interfaces/endpoint.rst: -------------------------------------------------------------------------------- 1 | .. highlight:: sh 2 | 3 | ======== 4 | Endpoint 5 | ======== 6 | 7 | .. rubric:: Table of contents 8 | 9 | .. contents:: 10 | :local: 11 | :depth: 1 12 | 13 | 14 | Introduction 15 | ============ 16 | 17 | To send query request to SQL plugin, you can either use a request parameter in HTTP GET or request body by HTTP POST request. POST request is recommended because it doesn't have length limitation and allows for other parameters passed to plugin for other functionality such as prepared statement. And also the explain endpoint is used very often for query translation and troubleshooting. 18 | 19 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/doctest/templates/interfaces/protocol.rst: -------------------------------------------------------------------------------- 1 | .. highlight:: sh 2 | 3 | ======== 4 | Protocol 5 | ======== 6 | 7 | .. rubric:: Table of contents 8 | 9 | .. contents:: 10 | :local: 11 | :depth: 1 12 | 13 | 14 | Introduction 15 | ============ 16 | 17 | For the protocol, SQL plugin provides multiple response formats for different purposes while the request format is same for all. Among them JDBC format is widely used because it provides schema information and more functionality such as pagination. Besides JDBC driver, various clients can benefit from the detailed and well formatted response. 18 | 19 | 20 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/doctest/testdata/employees_nested.json: -------------------------------------------------------------------------------- 1 | {"index":{"_id":"1"}} 2 | {"id":3,"name":"Bob Smith","title":null,"projects":[{"name":"AWS Redshift Spectrum querying","started_year":1990},{"name":"AWS Redshift security","started_year":1999},{"name":"AWS Aurora security","started_year":2015}]} 3 | {"index":{"_id":"2"}} 4 | {"id":4,"name":"Susan Smith","title":"Dev Mgr","projects":[]} 5 | {"index":{"_id":"3"}} 6 | {"id":6,"name":"Jane Smith","title":"Software Eng 2","projects":[{"name":"AWS Redshift security","started_year":1998},{"name":"AWS Hello security","started_year":2015,"address":[{"city":"Dallas","state":"TX"}]}]} 7 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/dogs.json: -------------------------------------------------------------------------------- 1 | {"index":{"_id":"1"}} 2 | {"dog_name":"rex","holdersName":"Daenerys","age":2} 3 | {"index":{"_id":"6"}} 4 | {"dog_name":"snoopy","holdersName":"Hattie","age":4} 5 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/dogs2.json: -------------------------------------------------------------------------------- 1 | {"index":{"_id":"1"}} 2 | {"dog_name":"rex","holdersName":"Daenerys","age":2} 3 | {"index":{"_id":"6"}} 4 | {"dog_name":"snoopy","holdersName":"Hattie","age":4} 5 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/dogs3.json: -------------------------------------------------------------------------------- 1 | {"index":{"_id":"1"}} 2 | {"dog_name":"nelly","holdersName":"Bill","age":2, "color": "grey"} 3 | {"index":{"_id":"6"}} 4 | {"dog_name":"snoopy","holdersName":"Hattie","age":4, "color": "white"} 5 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/dogsubquery.json: -------------------------------------------------------------------------------- 1 | {"index":{"_id":"1"}} 2 | {"dog_name":"rex","holdersName":"Daenerys","age":2} 3 | {"index":{"_id":"6"}} 4 | {"dog_name":"snoopy","holdersName":"Hattie","age":4} 5 | {"index":{"_id":"7"}} 6 | {"dog_name":"babala","holdersName":"Michael","age":5} 7 | {"index":{"_id":"8"}} 8 | {"dog_name":"gogo","holdersName":"Gabrielle","age":6} 9 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/elasticsearch.yml: -------------------------------------------------------------------------------- 1 | script.max_compilations_rate: 100/1m 2 | path.data: /var/lib/elasticsearch 3 | path.logs: /var/log/elasticsearch 4 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/expectedOutput/between_query.json: -------------------------------------------------------------------------------- 1 | { 2 | "from" : 0, 3 | "size" : 200, 4 | "_source" : { 5 | "includes" : [ 6 | "account_number" 7 | ], 8 | "excludes" : [ ] 9 | }, 10 | "script_fields" : { 11 | "test" : { 12 | "script" : { 13 | "source" : "if((doc['balance'].value >= 100 && doc['balance'].value <=200)){'aaa'} else {doc['balance'].value}", 14 | "lang" : "painless" 15 | }, 16 | "ignore_failure" : false 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /integ-test/src/test/resources/expectedOutput/explainIT_format_not_pretty.json: -------------------------------------------------------------------------------- 1 | {"from":0,"size":200,"_source":{"includes":["firstname"],"excludes":[]}} 2 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/expectedOutput/explainIT_format_pretty.json: -------------------------------------------------------------------------------- 1 | { 2 | "from" : 0, 3 | "size" : 200, 4 | "_source" : { 5 | "includes" : [ 6 | "firstname" 7 | ], 8 | "excludes" : [ ] 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/expectedOutput/ppl/explain_sort_push.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "name": "ProjectOperator", 4 | "description": { 5 | "fields": "[age]" 6 | }, 7 | "children": [ 8 | { 9 | "name": "ElasticsearchIndexScan", 10 | "description": { 11 | "request": "ElasticsearchQueryRequest(indexName\u003delasticsearch-sql_test_index_account, sourceBuilder\u003d{\"from\":0,\"size\":10000,\"timeout\":\"1m\",\"query\":{\"range\":{\"age\":{\"from\":30,\"to\":null,\"include_lower\":false,\"include_upper\":true,\"boost\":1.0}}},\"_source\":{\"includes\":[\"age\"],\"excludes\":[]},\"sort\":[{\"age\":{\"order\":\"asc\",\"missing\":\"_first\"}}]}, searchDone\u003dfalse)" 12 | }, 13 | "children": [] 14 | } 15 | ] 16 | } 17 | } -------------------------------------------------------------------------------- /integ-test/src/test/resources/expectedOutput/script_value.json: -------------------------------------------------------------------------------- 1 | { 2 | "from" : 0, 3 | "size" : 200, 4 | "_source" : { 5 | "includes" : [ 6 | "account_number" 7 | ], 8 | "excludes" : [ ] 9 | }, 10 | "script_fields" : { 11 | "test" : { 12 | "script" : { 13 | "source" : "if((doc['gender'].empty)){'aaa'} else {doc['gender'].value}", 14 | "lang" : "painless" 15 | }, 16 | "ignore_failure" : false 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /integ-test/src/test/resources/expectedOutput/sql/explain_show.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "name": "ProjectOperator", 4 | "description": { 5 | "fields": "[TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE, REMARKS, TYPE_CAT, TYPE_SCHEM, TYPE_NAME, SELF_REFERENCING_COL_NAME, REF_GENERATION]" 6 | }, 7 | "children": [ 8 | { 9 | "name": "FilterOperator", 10 | "description": { 11 | "conditions": "like(TABLE_NAME, \"%\")" 12 | }, 13 | "children": [ 14 | { 15 | "name": "ElasticsearchSystemIndexScan", 16 | "description": { 17 | "request": "ElasticsearchCatIndicesRequest{}" 18 | }, 19 | "children": [] 20 | } 21 | ] 22 | } 23 | ] 24 | } 25 | } -------------------------------------------------------------------------------- /integ-test/src/test/resources/indexDefinitions/bank_with_null_values_index_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "account_number": { 5 | "type": "long" 6 | }, 7 | "address": { 8 | "type": "text" 9 | }, 10 | "age": { 11 | "type": "integer" 12 | }, 13 | "balance": { 14 | "type": "long" 15 | }, 16 | "gender": { 17 | "type": "text" 18 | }, 19 | "firstname": { 20 | "type": "text" 21 | }, 22 | "lastname": { 23 | "type": "keyword" 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/indexDefinitions/datatypes_index_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "boolean_value": { 5 | "type": "boolean" 6 | }, 7 | "keyword_value": { 8 | "type": "keyword" 9 | }, 10 | "text_value": { 11 | "type": "text" 12 | }, 13 | "binary_value": { 14 | "type": "binary" 15 | }, 16 | "date_value": { 17 | "type": "date" 18 | }, 19 | "ip_value": { 20 | "type": "ip" 21 | }, 22 | "object_value": { 23 | "properties": { 24 | "first": { 25 | "type": "text" 26 | }, 27 | "last": { 28 | "type": "text" 29 | } 30 | } 31 | }, 32 | "nested_value": { 33 | "type": "nested" 34 | } 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /integ-test/src/test/resources/indexDefinitions/datatypes_numeric_index_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "long_number":{ 5 | "type": "long" 6 | }, 7 | "integer_number": { 8 | "type": "integer" 9 | }, 10 | "short_number": { 11 | "type": "short" 12 | }, 13 | "byte_number": { 14 | "type": "byte" 15 | }, 16 | "double_number": { 17 | "type": "double" 18 | }, 19 | "float_number": { 20 | "type": "float" 21 | }, 22 | "half_float_number": { 23 | "type": "half_float" 24 | }, 25 | "scaled_float_number": { 26 | "type": "scaled_float", 27 | "scaling_factor": 100 28 | } 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /integ-test/src/test/resources/indexDefinitions/date_index_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "date_keyword": { 5 | "type": "keyword", 6 | "ignore_above": 256 7 | } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/indexDefinitions/date_time_index_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "birthday": { 5 | "type": "date" 6 | } 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/indexDefinitions/deep_nested_index_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "city": { 5 | "properties": { 6 | "name": { 7 | "type": "keyword" 8 | }, 9 | "location": { 10 | "properties": { 11 | "latitude": { 12 | "type": "double" 13 | } 14 | } 15 | } 16 | } 17 | }, 18 | "account": { 19 | "properties": { 20 | "id": { 21 | "type": "keyword" 22 | } 23 | } 24 | }, 25 | "projects": { 26 | "type": "nested", 27 | "properties": { 28 | "name": { 29 | "type": "keyword" 30 | } 31 | } 32 | } 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /integ-test/src/test/resources/indexDefinitions/dog2_index_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "dog_name": { 5 | "type": "text", 6 | "fielddata": true 7 | }, 8 | "holdersName": { 9 | "type": "keyword" 10 | } 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/indexDefinitions/dog3_index_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "holdersName": { 5 | "type": "keyword" 6 | }, 7 | "color": { 8 | "type": "text" 9 | } 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/indexDefinitions/dog_index_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "dog_name": { 5 | "type": "text", 6 | "fielddata": true 7 | } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/indexDefinitions/join_type_index_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "join_field": { 5 | "type": "join", 6 | "relations": { 7 | "parentType": "childrenType" 8 | } 9 | }, 10 | "parentTile": { 11 | "index": "true", 12 | "type": "keyword" 13 | }, 14 | "dayOfWeek": { 15 | "type": "long" 16 | }, 17 | "author": { 18 | "index": "true", 19 | "type": "keyword" 20 | }, 21 | "info": { 22 | "index": "true", 23 | "type": "keyword" 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/indexDefinitions/location_index_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "place": { 5 | "type": "geo_shape" 6 | }, 7 | "center": { 8 | "type": "geo_point" 9 | }, 10 | "description": { 11 | "type": "text" 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/indexDefinitions/odbc_index_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "odbc_time": { 5 | "type": "date", 6 | "format": "'{ts' ''yyyy-MM-dd HH:mm:ss.SSS'''}'" 7 | }, 8 | "docCount": { 9 | "type": "text" 10 | } 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/indexDefinitions/order_index_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "id": { 5 | "type": "long" 6 | }, 7 | "name": { 8 | "type": "text", 9 | "fields": { 10 | "keyword": { 11 | "type": "keyword", 12 | "ignore_above": 256 13 | } 14 | } 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/indexDefinitions/people2_index_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "firstname": { 5 | "type": "keyword" 6 | } 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/indexDefinitions/phrase_index_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "phrase": { 5 | "type": "text", 6 | "store": true 7 | } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/indexDefinitions/string_index_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "name": { 5 | "type": "text", 6 | "fielddata": true 7 | } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/indexDefinitions/weblogs_index_mapping.json: -------------------------------------------------------------------------------- 1 | { 2 | "mappings": { 3 | "properties": { 4 | "host": { 5 | "type": "ip" 6 | }, 7 | "method": { 8 | "type": "text" 9 | }, 10 | "url": { 11 | "type": "text" 12 | }, 13 | "response": { 14 | "type": "text" 15 | }, 16 | "bytes": { 17 | "type": "text" 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/locations.json: -------------------------------------------------------------------------------- 1 | {"index":{"_id":"1"}} 2 | {"description":"square","place":{"type": "Polygon","coordinates": [[ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],[100.0, 1.0], [100.0, 0.0]]]},"center":{"lat": 0.5, "lon": 100.5 }} 3 | {"index":{"_id":"2"}} 4 | {"description":"bigSquare","place":{"type": "Polygon","coordinates": [[ [100.0, 0.0], [110.0, 0.0], [110.0, 10.0],[100.0, 10.0], [100.0, 0.0]]]},"center":{"lat": 5.0, "lon": 105.0 }} 5 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/locations2.json: -------------------------------------------------------------------------------- 1 | {"index":{"_id":"1"}} 2 | {"description":"square","place":{"type": "Polygon","coordinates": [[ [115.0, 112.0], [116.0, 112.0], [116.0, 113.0],[115.0, 113.0], [115.0, 112.0]]]},"center":{"lat": 0.5, "lon": 100.5 }} 3 | {"index":{"_id":"2"}} 4 | {"description":"squareRelated","place":{"type": "Polygon","coordinates": [[ [100.0, 0.0], [110.0, 0.0], [110.0, 10.0],[100.0, 10.0], [100.0, 0.0]]]},"center":{"lat": 5.0, "lon": 105.0 }} 5 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/nested_objects.json: -------------------------------------------------------------------------------- 1 | {"index":{"_id":"1"}} 2 | {"message":{"info":"a","author":"e","dayOfWeek":1},"comment":{"data":"ab","likes":3},"myNum":1,"someField":"b"} 3 | {"index":{"_id":"2"}} 4 | {"message":{"info":"b","author":"f","dayOfWeek":2},"comment":{"data":"aa","likes":2},"myNum":2,"someField":"a"} 5 | {"index":{"_id":"3"}} 6 | {"message":{"info":"c","author":"g","dayOfWeek":1},"comment":{"data":"aa","likes":3},"myNum":3,"someField":"a"} 7 | {"index":{"_id":"4"}} 8 | {"message":[{"info":"c","author":"h","dayOfWeek":4},{"info":"a","author":"i","dayOfWeek":5}],"comment":{"data":"ab","likes":1},"myNum":4,"someField":"b"} 9 | {"index":{"_id":"5"}} 10 | {"message": [{"info":"zz","author":"zz","dayOfWeek":6}],"comment":{"data":["aa","bb"],"likes":10},"myNum":[3,4],"someField":"a"} 11 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/nested_objects_quotes_in_values.json: -------------------------------------------------------------------------------- 1 | {"index":{"_id":"7"}} 2 | {"message":[{"info":"zz", "author":"z\"z", "dayOfWeek":6}], "comment":{"data":["aa","bb"], "likes":10}, "myNum":[3,4], "someField":"a"} 3 | {"index":{"_id":"8"}} 4 | {"message":[{"info":"rr", "author":"this \"value\" contains quotes", "dayOfWeek":3}], "comment":{"data":["asdf","sdfg"], "likes":56}, "myNum":[1,2,4], "someField":"ert"} 5 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/nested_simple.json: -------------------------------------------------------------------------------- 1 | {"index":{"_id":"1"}} 2 | {"name":"abbas","age":24,"address":[{"city":"New york city","state":"NY"},{"city":"bellevue","state":"WA"},{"city":"seattle","state":"WA"},{"city":"chicago","state":"IL"}]} 3 | {"index":{"_id":"2"}} 4 | {"name":"chen","age":32,"address":[{"city":"Miami","state":"Florida"},{"city":"los angeles","state":"CA"}]} 5 | {"index":{"_id":"3"}} 6 | {"name":"peng","age":26,"address":[{"city":"san diego","state":"CA"},{"city":"austin","state":"TX"}]} 7 | {"index":{"_id":"4"}} 8 | {"name":"andy","age":19,"id":4,"address":[{"city":"houston","state":"TX"}]} 9 | {"index":{"_id":"5"}} 10 | {"name":"david","age":25,"address":[{"city":"raleigh","state":"NC"},{"city":"charlotte","state":"SC"}]} 11 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/odbc-date-formats.json: -------------------------------------------------------------------------------- 1 | {"index":{}} 2 | {"odbc_time":"{ts '2015-03-16 13:27:33.953'}", "docCount":"1"} 3 | {"index":{}} 4 | {"odbc_time":"{ts '2015-03-15 13:27:33.953'}", "docCount":"2"} 5 | {"index":{}} 6 | {"odbc_time":"{ts '2015-03-14 13:27:33.953'}", "docCount":"3"} 7 | {"index":{}} 8 | {"odbc_time":"{ts '2015-03-13 13:27:33.954'}", "docCount":"4"} 9 | {"index":{}} 10 | {"odbc_time":"{ts '2015-03-12 13:27:33.954'}", "docCount":"5"} 11 | {"index":{}} 12 | {"odbc_time":"{ts '2015-03-11 13:27:33.955'}", "docCount":"6"} 13 | {"index":{}} 14 | {"odbc_time":"{ts '2015-03-10 13:27:33.955'}", "docCount":"7"} 15 | {"index":{}} 16 | {"odbc_time":"{ts '2015-03-09 13:27:33.955'}", "docCount":"8"} 17 | {"index":{}} 18 | {"odbc_time":"{ts '2015-03-08 13:27:33.956'}", "docCount":"9"} 19 | {"index":{}} 20 | {"odbc_time":"{ts '2015-03-07 13:27:33.956'}", "docCount":"10"} 21 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/order.json: -------------------------------------------------------------------------------- 1 | {"index":{"_id":"1"}} 2 | {"id" : 1 , "name" : "b"} 3 | {"index":{"_id":"2"}} 4 | {"id" : 3 , "name" : "a"} 5 | {"index":{"_id":"3"}} 6 | {"id" : 2 , "name" : "d"} 7 | {"index":{"_id":"4"}} 8 | {"id" : 4 } 9 | {"index":{"_id":"5"}} 10 | {"name" : "c"} 11 | {"index":{"_id":"6"}} 12 | {"id" : 5 , "name" : "f"} 13 | {"index":{"_id":"7"}} 14 | {"id" : null , "name" : "e"} 15 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/phrases.json: -------------------------------------------------------------------------------- 1 | {"index":{}} 2 | {"phrase": "quick fox"} 3 | {"index":{}} 4 | {"phrase": "quick fox here", "insert_time2":"2014-08-19T07:09:13.434Z" } 5 | {"index":{}} 6 | {"phrase": "brown fox"} 7 | {"index":{}} 8 | {"phrase": "fox brown", "insert_time2":"2014-08-19T07:09:13.434Z"} 9 | {"index":{}} 10 | {"phrase": "my test", "test field": 5} 11 | {"index":{}} 12 | {"phrase": "my test 2", "test field": 7} 13 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/strings.json: -------------------------------------------------------------------------------- 1 | {"index":{"_id":"1"}} 2 | {"name" : "hello"} 3 | {"index":{"_id":"2"}} 4 | {"name" : "world"} 5 | {"index":{"_id":"3"}} 6 | {"name" : "helloworld"} 7 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/systems.json: -------------------------------------------------------------------------------- 1 | {"index":{"_id":"1"}} 2 | {"system_name":"A","pk":1} 3 | {"index":{"_id":"2"}} 4 | {"system_name":"A","pk":2} 5 | {"index":{"_id":"3"}} 6 | {"system_name":"A","pk":3} 7 | {"index":{"_id":"4"}} 8 | {"system_name":"B","pk":1} 9 | {"index":{"_id":"5"}} 10 | {"system_name":"B","pk":2} 11 | {"index":{"_id":"6"}} 12 | {"system_name":"C","pk":1,"letter":"e"} 13 | {"index":{"_id":"7"}} 14 | {"system_name":"C","pk":1,"letter":"d"} 15 | {"index":{"_id":"8"}} 16 | {"system_name":"C","pk":2,"letter":"c"} 17 | {"index":{"_id":"9"}} 18 | {"system_name":"D","pk":1,"letter":"d"} 19 | {"index":{"_id":"10"}} 20 | {"system_name":"D","pk":2,"letter":"c"} 21 | {"index":{"_id":"11"}} 22 | {"system_name":"E","myId":1,"myLetter":"d"} 23 | {"index":{"_id":"12"}} 24 | {"system_name":"E","myId":2,"myLetter":"c"} 25 | -------------------------------------------------------------------------------- /integ-test/src/test/resources/weblogs.json: -------------------------------------------------------------------------------- 1 | {"index":{}} 2 | {"host": "199.72.81.55", "method": "GET", "url": "/history/apollo/", "response": "200", "bytes": "6245"} 3 | {"index":{}} 4 | {"host": "199.120.110.21", "method": "GET", "url": "/shuttle/missions/sts-73/mission-sts-73.html", "response": "200", "bytes": "4085"} 5 | {"index":{}} 6 | {"host": "205.212.115.106", "method": "GET", "url": "/shuttle/countdown/countdown.html", "response": "200", "bytes": "3985"} 7 | -------------------------------------------------------------------------------- /legacy/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | -------------------------------------------------------------------------------- /legacy/src/main/resources/es-plugin.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"). 5 | # You may not use this file except in compliance with the License. 6 | # A copy of the License is located at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # or in the "license" file accompanying this file. This file is distributed 11 | # on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12 | # express or implied. See the License for the specific language governing 13 | # permissions and limitations under the License. 14 | # 15 | 16 | plugin=com.amazon.opendistroforelasticsearch.sql.legacy.plugin.SqlPlug 17 | version=${project.version} -------------------------------------------------------------------------------- /legacy/src/test/resources/expectedOutput/explain_format_pretty.json: -------------------------------------------------------------------------------- 1 | { 2 | "from" : 0, 3 | "size" : 200, 4 | "_source" : { 5 | "includes" : [ 6 | "firstname" 7 | ], 8 | "excludes" : [ ] 9 | } 10 | } -------------------------------------------------------------------------------- /legacy/src/test/resources/expectedOutput/select_where_true.json: -------------------------------------------------------------------------------- 1 | { 2 | "from": 0, 3 | "size": 200, 4 | "query": { 5 | "bool": { 6 | "filter": [ 7 | { 8 | "bool": { 9 | "must": [ 10 | { 11 | "term": { 12 | "male": { 13 | "value": true, 14 | "boost": 1.0 15 | } 16 | } 17 | } 18 | ], 19 | "adjust_pure_negative": true, 20 | "boost": 1.0 21 | } 22 | } 23 | ], 24 | "adjust_pure_negative": true, 25 | "boost": 1.0 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /legacy/src/test/resources/explain_format_oneline.json: -------------------------------------------------------------------------------- 1 | {"from" : 0, "size" : 200, "_source" : {"includes" : ["firstname"], "excludes" : [ ]}} -------------------------------------------------------------------------------- /lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | lombok.addLombokGeneratedAnnotation = true 4 | -------------------------------------------------------------------------------- /ppl/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | lombok.addLombokGeneratedAnnotation = true 4 | -------------------------------------------------------------------------------- /ppl/src/main/java/com/amazon/opendistroforelasticsearch/sql/ppl/domain/PPLQueryResponse.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"). 5 | * You may not use this file except in compliance with the License. 6 | * A copy of the License is located at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * or in the "license" file accompanying this file. This file is distributed 11 | * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12 | * express or implied. See the License for the specific language governing 13 | * permissions and limitations under the License. 14 | */ 15 | 16 | package com.amazon.opendistroforelasticsearch.sql.ppl.domain; 17 | 18 | public class PPLQueryResponse { 19 | } 20 | -------------------------------------------------------------------------------- /protocol/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | lombok.addLombokGeneratedAnnotation = true 4 | -------------------------------------------------------------------------------- /release-notes/opendistro-for-elasticsearch-sql.release-notes-0.8.0.0.md: -------------------------------------------------------------------------------- 1 | ## 2019-04-02, Version 0.8.0 2 | 3 | ### Notable Changes 4 | 5 | * Feature [#12](https://github.com/opendistro-for-elasticsearch/sql/issues/12): Add support for Elasticsearch 6.6.2 6 | * Bug fix [#9](https://github.com/opendistro-for-elasticsearch/sql/issues/9): Fix issue for query by index pattern in JDBC driver. 7 | * Bug fix [#10](https://github.com/opendistro-for-elasticsearch/sql/issues/10): Return friendly error message instead of NPE for illegal query and other exception cases. 8 | -------------------------------------------------------------------------------- /release-notes/opendistro-for-elasticsearch-sql.release-notes-0.9.0.0.md: -------------------------------------------------------------------------------- 1 | ## 2019-04-19, Version 0.9.0 2 | 3 | ### Notable Changes 4 | 5 | * Feature [#29](https://github.com/opendistro-for-elasticsearch/sql/issues/29): Add support for Elasticsearch 6.7.1 6 | * Migration [#17](https://github.com/opendistro-for-elasticsearch/sql/issues/17): Migrate legacy integration tests in Maven to ES test in Gradle. 7 | -------------------------------------------------------------------------------- /release-notes/opendistro-for-elasticsearch-sql.release-notes-1.0.0.0.md: -------------------------------------------------------------------------------- 1 | ## 2019-06-10, Version 1.0.0 2 | 3 | ### Notable Changes 4 | 5 | * Feature [#47](https://github.com/opendistro-for-elasticsearch/sql/issues/47): Support for Elasticsearch 7.0.1. 6 | * Feature [#56](https://github.com/opendistro-for-elasticsearch/sql/issues/56): Adding coverage report. 7 | * Feature [#65](https://github.com/opendistro-for-elasticsearch/sql/issues/65): Support for enabling/disabling SQL feature. 8 | 9 | * BugFix [#44](https://github.com/opendistro-for-elasticsearch/sql/issues/44): Fixing the order of fields in csv output 10 | * BugFix [#68](https://github.com/opendistro-for-elasticsearch/sql/issues/68): Support number field 11 | * BugFix [#37](https://github.com/opendistro-for-elasticsearch/sql/issues/37): Fix for PERCENTILES query result in csv output 12 | -------------------------------------------------------------------------------- /release-notes/opendistro-for-elasticsearch-sql.release-notes-1.1.0.0.md: -------------------------------------------------------------------------------- 1 | ## 2019-06-21, Version 1.1.0 2 | 3 | ### Notable Changes 4 | 5 | * Feature [#90](https://github.com/opendistro-for-elasticsearch/sql/issues/90): Elasticsearch 7.1.1 compatibility 6 | * Migration [#17](https://github.com/opendistro-for-elasticsearch/sql/issues/17): Finished integ test migration and deprecated Maven build. 7 | * Enhancement [#34](https://github.com/opendistro-for-elasticsearch/sql/issues/34): Detached request ID from SqlRequest object. 8 | 9 | * BugFix [#46](https://github.com/opendistro-for-elasticsearch/sql/issues/46): Multi-index queries require identical mappings for indices. 10 | * BugFix [#92](https://github.com/opendistro-for-elasticsearch/sql/issues/92): Improper handling of SELECT statement 11 | * BugFix [#93](https://github.com/opendistro-for-elasticsearch/sql/issues/93): Blank query causes IndexOutOfBoundsException 12 | -------------------------------------------------------------------------------- /release-notes/opendistro-for-elasticsearch-sql.release-notes-1.10.1.1.md: -------------------------------------------------------------------------------- 1 | ## 2020-09-28 Version 1.10.1.1 2 | 3 | ### Infrastructure 4 | * Support security plugin ([#760](https://github.com/opendistro-for-elasticsearch/sql/pull/760)) 5 | * Bump to ODFE 1.10.1.1 for integration test fixes ([#759](https://github.com/opendistro-for-elasticsearch/sql/pull/759)) 6 | * Bug Fix, Clean all the indices, included hidden indices ([#758](https://github.com/opendistro-for-elasticsearch/sql/pull/758)) 7 | -------------------------------------------------------------------------------- /release-notes/opendistro-for-elasticsearch-sql.release-notes-1.2.0.0.md: -------------------------------------------------------------------------------- 1 | ## 2019-07-23, Version 1.2.0 2 | 3 | ### Notable changes 4 | 5 | * Feature [#125](https://github.com/opendistro-for-elasticsearch/sql/issues/125): Elasticsearch 7.2.0 compatibility 6 | * Feature [#103](https://github.com/opendistro-for-elasticsearch/sql/issues/103): Sort on custom script based functions 7 | 8 | * BugFix [#104](https://github.com/opendistro-for-elasticsearch/sql/issues/104): GROUP BY and ORDER BY for custom script based functions 9 | generated wrong DSL 10 | * BugFix [#95](https://github.com/opendistro-for-elasticsearch/sql/issues/95): NPE thrown when selecting all in query with nested fields involved 11 | * BugFix [#108](https://github.com/opendistro-for-elasticsearch/sql/issues/108): Custom script based functions weren't supported in JDBC 12 | 13 | and other minor bugfixes 14 | -------------------------------------------------------------------------------- /release-notes/opendistro-for-elasticsearch-sql.release-notes-1.2.1.0.md: -------------------------------------------------------------------------------- 1 | ## 2019-10-15, Version 1.2.1 2 | 3 | ### Notable changes 4 | 5 | * Feature [#202](https://github.com/opendistro-for-elasticsearch/sql/issues/202): Elasticsearch 7.2.1 compatibility 6 | -------------------------------------------------------------------------------- /release-notes/opendistro-for-elasticsearch-sql.release-notes-1.8.0.0.md: -------------------------------------------------------------------------------- 1 | ## 2020-05-18 Version 1.8.0.0 2 | 3 | ### Features 4 | #### Elasticsearch Compatibility 5 | * Feature [#467](https://github.com/opendistro-for-elasticsearch/sql/issues/467): Elasticsearch 7.7.0 compatibility 6 | 7 | ### Enhancements 8 | #### SQL Features 9 | * Enhancement [#470](https://github.com/opendistro-for-elasticsearch/sql/pull/470): Add the field type conflict check in semantic check (issue: [#348](https://github.com/opendistro-for-elasticsearch/sql/issues/348)) 10 | 11 | ### Bugfixes 12 | * Bugfix [#462](https://github.com/opendistro-for-elasticsearch/sql/pull/462): Correct the column when SELECT function as field (issue: [#461](https://github.com/opendistro-for-elasticsearch/sql/issues/461)) 13 | -------------------------------------------------------------------------------- /sql-cli/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ## Code of Conduct 2 | This project has adopted an [Open Source Code of Conduct](https://opendistro.github.io/for-elasticsearch/codeofconduct.html). 3 | -------------------------------------------------------------------------------- /sql-cli/CONTRIBUTORS.md: -------------------------------------------------------------------------------- 1 | Contributors in order of last name: 2 | 3 | Abbas Hussain 4 | 5 | Zhongnan Su 6 | 7 | Chloe Zhang 8 | 9 | Anirudh Jadhav 10 | 11 | Alolita Sharma 12 | -------------------------------------------------------------------------------- /sql-cli/NOTICE: -------------------------------------------------------------------------------- 1 | Open Distro for Elasticsearch SQL CLI 2 | Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. -------------------------------------------------------------------------------- /sql-cli/release-notes/odfe-sql-cli.release-notes-1.8.0.0.md: -------------------------------------------------------------------------------- 1 | ## 2020-05-18 Version 1.8.0.0 2 | 3 | ### Features 4 | #### Elasticsearch and ODFE SQL Plugin Compatibility 5 | * Feature [#41](https://github.com/opendistro-for-elasticsearch/sql-cli/pull/41): Elasticsearch 7.7.0 and ODFE SQL Plugin 1.8.0 compatibility (issue: [#40](https://github.com/opendistro-for-elasticsearch/sql-cli/issues/40)) 6 | -------------------------------------------------------------------------------- /sql-cli/release-notes/odfe-sql-cli.release-notes-1.9.0.0.md: -------------------------------------------------------------------------------- 1 | ## 2020-06-24 Version 1.9.0.0 (Current) 2 | 3 | ### Features 4 | #### Elasticsearch and ODFE SQL Plugin Compatibility 5 | * Feature [#55](https://github.com/opendistro-for-elasticsearch/sql-cli/pull/55): Elasticsearch 7.8.0 and ODFE SQL Plugin 1.9.0 compatibility 6 | (issue: [#54](https://github.com/opendistro-for-elasticsearch/sql-cli/issues/54)) 7 | 8 | #### Documentation 9 | * Feature [#48](https://github.com/opendistro-for-elasticsearch/sql-cli/pull/48): Added README badges 10 | 11 | ### Enhancements 12 | * Enhancement [#45](https://github.com/opendistro-for-elasticsearch/sql-cli/pull/45): Update project layout for better module import 13 | (issue: [#43](https://github.com/opendistro-for-elasticsearch/sql-cli/issues/43)) 14 | -------------------------------------------------------------------------------- /sql-cli/requirements-dev.txt: -------------------------------------------------------------------------------- 1 | pytest==4.6.3 2 | mock==3.0.5 3 | pexpect==3.3 4 | twine==1.13.0 5 | tox>=1.9.2 -------------------------------------------------------------------------------- /sql-cli/screenshots/usage.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-cli/screenshots/usage.gif -------------------------------------------------------------------------------- /sql-cli/src/odfe_sql_cli/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"). 5 | You may not use this file except in compliance with the License. 6 | A copy of the License is located at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | or in the "license" file accompanying this file. This file is distributed 11 | on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12 | express or implied. See the License for the specific language governing 13 | permissions and limitations under the License. 14 | """ 15 | __version__ = "1.13.0.0" 16 | -------------------------------------------------------------------------------- /sql-cli/src/odfe_sql_cli/conf/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-cli/src/odfe_sql_cli/conf/__init__.py -------------------------------------------------------------------------------- /sql-cli/src/odfe_sql_cli/esliterals/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-cli/src/odfe_sql_cli/esliterals/__init__.py -------------------------------------------------------------------------------- /sql-cli/src/odfe_sql_cli/utils.py: -------------------------------------------------------------------------------- 1 | """ 2 | Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"). 5 | You may not use this file except in compliance with the License. 6 | A copy of the License is located at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | or in the "license" file accompanying this file. This file is distributed 11 | on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12 | express or implied. See the License for the specific language governing 13 | permissions and limitations under the License. 14 | """ 15 | import sys 16 | 17 | from collections import namedtuple 18 | 19 | OutputSettings = namedtuple("OutputSettings", "table_format is_vertical max_width style_output missingval") 20 | 21 | OutputSettings.__new__.__defaults__ = (None, False, sys.maxsize, None, "null") 22 | -------------------------------------------------------------------------------- /sql-cli/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-cli/tests/__init__.py -------------------------------------------------------------------------------- /sql-cli/tests/pytest.ini: -------------------------------------------------------------------------------- 1 | [pytest] 2 | addopts=--capture=sys --showlocals -------------------------------------------------------------------------------- /sql-cli/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | envlist = py38 3 | [testenv] 4 | deps = pytest==4.6.3 5 | mock==3.0.5 6 | pexpect==3.3 7 | commands = pytest -------------------------------------------------------------------------------- /sql-jdbc/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle/ 2 | .idea/ 3 | build/ 4 | .DS_Store 5 | out/ 6 | *.iml -------------------------------------------------------------------------------- /sql-jdbc/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ## Code of Conduct 2 | This project has adopted an [Open Source Code of Conduct](https://opendistro.github.io/for-elasticsearch/codeofconduct.html). 3 | -------------------------------------------------------------------------------- /sql-jdbc/NOTICE: -------------------------------------------------------------------------------- 1 | Open Distro for Elasticsearch JDBC 2 | Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | -------------------------------------------------------------------------------- /sql-jdbc/docs/img/tableau_connection.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-jdbc/docs/img/tableau_connection.PNG -------------------------------------------------------------------------------- /sql-jdbc/docs/img/tableau_database.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-jdbc/docs/img/tableau_database.PNG -------------------------------------------------------------------------------- /sql-jdbc/docs/img/tableau_graph.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-jdbc/docs/img/tableau_graph.PNG -------------------------------------------------------------------------------- /sql-jdbc/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-jdbc/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /sql-jdbc/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionSha256Sum=b7aedd369a26b177147bcb715f8b1fc4fe32b0a6ade0d7fd8ee5ed0c6f731f2c 4 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /sql-jdbc/release-notes/opendistro-elasticsearch-jdbc.release-notes-1.7.0.0.md: -------------------------------------------------------------------------------- 1 | ## 2020-05-07, Version 1.7.0.0 2 | ### Changes 3 | * Feature [#76](https://github.com/opendistro-for-elasticsearch/sql-jdbc/pull/76): Cursor integration. (issue: [#74](https://github.com/opendistro-for-elasticsearch/sql-jdbc/issues/74)) 4 | -------------------------------------------------------------------------------- /sql-jdbc/release-notes/opendistro-elasticsearch-jdbc.release-notes-1.8.0.0.md: -------------------------------------------------------------------------------- 1 | ## 2020-05-18, Version 1.8.0.0 2 | ### Maintenance 3 | * [Adds workflow to upload jar to Maven](https://github.com/opendistro-for-elasticsearch/sql-jdbc/pull/81): 4 | -------------------------------------------------------------------------------- /sql-jdbc/release-notes/opendistro-elasticsearch-jdbc.release-notes-1.9.0.0.md: -------------------------------------------------------------------------------- 1 | ## 2020-06-23, Version 1.9.0.0 (Current) 2 | ### Features 3 | * Feature [#87](https://github.com/opendistro-for-elasticsearch/sql-jdbc/pull/87): Elasticsearch 7.8.0 compatibility 4 | (issue: [#86](https://github.com/opendistro-for-elasticsearch/sql-jdbc/issues/86)) 5 | -------------------------------------------------------------------------------- /sql-jdbc/settings.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright <2019> Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"). 5 | * You may not use this file except in compliance with the License. 6 | * A copy of the License is located at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * or in the "license" file accompanying this file. This file is distributed 11 | * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12 | * express or implied. See the License for the specific language governing 13 | * permissions and limitations under the License. 14 | * 15 | */ 16 | 17 | rootProject.name = 'opendistro-sql-jdbc' 18 | -------------------------------------------------------------------------------- /sql-jdbc/src/main/java/com/amazon/opendistroforelasticsearch/jdbc/config/FetchSizeProperty.java: -------------------------------------------------------------------------------- 1 | package com.amazon.opendistroforelasticsearch.jdbc.config; 2 | 3 | public class FetchSizeProperty extends IntConnectionProperty { 4 | 5 | public static final String KEY = "fetchSize"; 6 | 7 | public FetchSizeProperty() { 8 | super(KEY); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /sql-jdbc/src/main/java/com/amazon/opendistroforelasticsearch/jdbc/logging/Layout.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright <2019> Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"). 5 | * You may not use this file except in compliance with the License. 6 | * A copy of the License is located at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * or in the "license" file accompanying this file. This file is distributed 11 | * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12 | * express or implied. See the License for the specific language governing 13 | * permissions and limitations under the License. 14 | * 15 | */ 16 | 17 | package com.amazon.opendistroforelasticsearch.jdbc.logging; 18 | 19 | public interface Layout { 20 | String formatLogEntry(LogLevel severity, String message); 21 | } 22 | -------------------------------------------------------------------------------- /sql-jdbc/src/main/resources/META-INF/services/java.sql.Driver: -------------------------------------------------------------------------------- 1 | com.amazon.opendistroforelasticsearch.jdbc.Driver -------------------------------------------------------------------------------- /sql-jdbc/src/test/resources/mock/jks/keystore_with_client_key.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-jdbc/src/test/resources/mock/jks/keystore_with_client_key.jks -------------------------------------------------------------------------------- /sql-jdbc/src/test/resources/mock/jks/keystore_with_non_localhost_server_key.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-jdbc/src/test/resources/mock/jks/keystore_with_non_localhost_server_key.jks -------------------------------------------------------------------------------- /sql-jdbc/src/test/resources/mock/jks/keystore_with_server_key.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-jdbc/src/test/resources/mock/jks/keystore_with_server_key.jks -------------------------------------------------------------------------------- /sql-jdbc/src/test/resources/mock/jks/truststore_with_client_cert.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-jdbc/src/test/resources/mock/jks/truststore_with_client_cert.jks -------------------------------------------------------------------------------- /sql-jdbc/src/test/resources/mock/jks/truststore_with_server_cert.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-jdbc/src/test/resources/mock/jks/truststore_with_server_cert.jks -------------------------------------------------------------------------------- /sql-jdbc/src/test/resources/mock/protocol/json/cursor/queryresponse_accounts_00.json: -------------------------------------------------------------------------------- 1 | { 2 | "schema": [ 3 | { 4 | "name": "firstname", 5 | "type": "text" 6 | }, 7 | { 8 | "name": "age", 9 | "type": "long" 10 | } 11 | ], 12 | "cursor": "abcde_1", 13 | "total": 20, 14 | "datarows": [ 15 | [ 16 | "Amber", 17 | 32 18 | ], 19 | [ 20 | "Hattie", 21 | 36 22 | ], 23 | [ 24 | "Nanette", 25 | 28 26 | ] 27 | ], 28 | "size": 3, 29 | "status": 200 30 | } -------------------------------------------------------------------------------- /sql-jdbc/src/test/resources/mock/protocol/json/cursor/queryresponse_accounts_01.json: -------------------------------------------------------------------------------- 1 | { 2 | "cursor": "abcde_2", 3 | "datarows": [ 4 | [ 5 | "Dale", 6 | 33 7 | ], 8 | [ 9 | "Elinor", 10 | 36 11 | ], 12 | [ 13 | "Virginia", 14 | 39 15 | ] 16 | ] 17 | } -------------------------------------------------------------------------------- /sql-jdbc/src/test/resources/mock/protocol/json/cursor/queryresponse_accounts_02.json: -------------------------------------------------------------------------------- 1 | { 2 | "cursor": "abcde_3", 3 | "datarows": [ 4 | [ 5 | "Dillard", 6 | 34 7 | ], 8 | [ 9 | "Mcgee", 10 | 39 11 | ], 12 | [ 13 | "Aurelia", 14 | 37 15 | ] 16 | ] 17 | } -------------------------------------------------------------------------------- /sql-jdbc/src/test/resources/mock/protocol/json/cursor/queryresponse_accounts_03.json: -------------------------------------------------------------------------------- 1 | { 2 | "datarows": [ 3 | [ 4 | "Fulton", 5 | 23 6 | ], 7 | [ 8 | "Burton", 9 | 31 10 | ], 11 | [ 12 | "Josie", 13 | 32 14 | ] 15 | ] 16 | } -------------------------------------------------------------------------------- /sql-jdbc/src/test/resources/mock/protocol/json/nyctaxis_queryrequest.json: -------------------------------------------------------------------------------- 1 | { 2 | "query": "select pickup_datetime, trip_type, passenger_count, fare_amount, extra, vendor_id from nyc_taxis LIMIT 5" 3 | } -------------------------------------------------------------------------------- /sql-jdbc/src/test/resources/mock/protocol/json/queryresponse_internal_server_error.json: -------------------------------------------------------------------------------- 1 | { 2 | "error": { 3 | "reason": "error reason", 4 | "details": "java.lang.NullPointerException\n\tat org.elasticsearch.plugin.nlpcn.Schema.getTypeFromMetaData(Schema.java:156)\n\tat org.elasticsearch.plugin.nlpcn.Schema.populateColumns(Schema.java:146)\n\tat java.base/java.lang.Thread.run(Thread.java:844)\n", 5 | "type": "java.lang.NullPointerException" 6 | }, 7 | "status": 500 8 | } -------------------------------------------------------------------------------- /sql-odbc/.clang-format: -------------------------------------------------------------------------------- 1 | # Common settings 2 | BasedOnStyle: Google 3 | AllowShortFunctionsOnASingleLine: None 4 | AllowShortIfStatementsOnASingleLine: 'false' 5 | AllowShortLoopsOnASingleLine: 'false' 6 | BreakBeforeBinaryOperators: NonAssignment 7 | IndentWidth: '4' 8 | SpaceBeforeParens: ControlStatements 9 | SpaceInEmptyParentheses: 'false' 10 | SpacesInAngles: 'true' 11 | SpacesInParentheses: 'false' 12 | SpacesInSquareBrackets: 'false' 13 | TabWidth: '4' 14 | UseTab: 'false' 15 | 16 | # See https://zed0.co.uk/clang-format-configurator/ for generating this file. -------------------------------------------------------------------------------- /sql-odbc/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ## Code of Conduct 2 | 3 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). 4 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact 5 | opensource-codeofconduct@amazon.com with any additional questions or comments. 6 | -------------------------------------------------------------------------------- /sql-odbc/aws_sdk_cpp_setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd src 4 | git clone -b "1.7.329" "https://github.com/aws/aws-sdk-cpp.git" 5 | cd .. 6 | -------------------------------------------------------------------------------- /sql-odbc/build_mac_debug64.sh: -------------------------------------------------------------------------------- 1 | # Build AWS SDK 2 | # $BITNESS=64 3 | 4 | cd src 5 | git clone -b "1.7.329" "https://github.com/aws/aws-sdk-cpp.git" 6 | cd .. 7 | 8 | PREFIX_PATH=$(pwd) 9 | mkdir cmake-build64 10 | cd cmake-build64 11 | cmake ../src -DCMAKE_INSTALL_PREFIX=${PREFIX_PATH}/AWSSDK/ -DCMAKE_BUILD_TYPE=Debug -DBUILD_ONLY="core" -DCUSTOM_MEMORY_MANAGEMENT="OFF" -DENABLE_RTTI="OFF" -DENABLE_TESTING="OFF" 12 | cd .. 13 | 14 | cmake --build cmake-build64 -- -j 4 15 | -------------------------------------------------------------------------------- /sql-odbc/build_mac_release64.sh: -------------------------------------------------------------------------------- 1 | # Build AWS SDK 2 | # $BITNESS=64 3 | 4 | cd src 5 | git clone -b "1.7.329" "https://github.com/aws/aws-sdk-cpp.git" 6 | cd .. 7 | 8 | PREFIX_PATH=$(pwd) 9 | mkdir cmake-build64 10 | cd cmake-build64 11 | cmake ../src -DCMAKE_INSTALL_PREFIX=${PREFIX_PATH}/AWSSDK/ -DCMAKE_BUILD_TYPE=Release -DBUILD_ONLY="core" -DCUSTOM_MEMORY_MANAGEMENT="OFF" -DENABLE_RTTI="OFF" -DENABLE_TESTING="OFF" 12 | cd .. 13 | 14 | cmake --build cmake-build64 -- -j 4 15 | -------------------------------------------------------------------------------- /sql-odbc/build_win_debug32.ps1: -------------------------------------------------------------------------------- 1 | $WORKING_DIR = (Get-Location).Path 2 | .\scripts\build_windows.ps1 $WORKING_DIR Debug 32 3 | -------------------------------------------------------------------------------- /sql-odbc/build_win_debug64.ps1: -------------------------------------------------------------------------------- 1 | $WORKING_DIR = (Get-Location).Path 2 | .\scripts\build_windows.ps1 $WORKING_DIR Debug 64 3 | -------------------------------------------------------------------------------- /sql-odbc/build_win_release32.ps1: -------------------------------------------------------------------------------- 1 | $WORKING_DIR = (Get-Location).Path 2 | .\scripts\build_windows.ps1 $WORKING_DIR Release 32 3 | -------------------------------------------------------------------------------- /sql-odbc/build_win_release64.ps1: -------------------------------------------------------------------------------- 1 | $WORKING_DIR = (Get-Location).Path 2 | .\scripts\build_windows.ps1 $WORKING_DIR Release 64 3 | -------------------------------------------------------------------------------- /sql-odbc/docs/dev/example_config_files/elasticsearch.yml: -------------------------------------------------------------------------------- 1 | xpack.security.http.ssl.enabled: true 2 | xpack.security.http.ssl.client_authentication: none 3 | xpack.security.http.ssl.key_passphrase: password_if_applicable 4 | xpack.security.http.ssl.certificate: certificate.pem 5 | xpack.security.http.ssl.key: key.pem -------------------------------------------------------------------------------- /sql-odbc/docs/dev/example_config_files/example_tdc_file.tdc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /sql-odbc/docs/dev/example_config_files/kibana.yml: -------------------------------------------------------------------------------- 1 | # The URLs of the Elasticsearch instances to use for all your queries. 2 | elasticsearch.hosts: ["https://localhost:9200"] 3 | 4 | elasticsearch.ssl.verificationMode: none 5 | 6 | server.ssl.enabled: true 7 | server.ssl.certificate: /certificate.pem 8 | server.ssl.key: /key.pem 9 | server.ssl.clientAuthentication: none 10 | -------------------------------------------------------------------------------- /sql-odbc/docs/dev/img/async_result_retrieval.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/dev/img/async_result_retrieval.png -------------------------------------------------------------------------------- /sql-odbc/docs/dev/img/data_flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/dev/img/data_flow.png -------------------------------------------------------------------------------- /sql-odbc/docs/dev/sequence_diagrams/SQLDriverConnect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/dev/sequence_diagrams/SQLDriverConnect.png -------------------------------------------------------------------------------- /sql-odbc/docs/dev/sequence_diagrams/SQLDriverConnect.txt: -------------------------------------------------------------------------------- 1 | ODBCTest->psqlodbc Driver:SQLDriverConnect or SQLConnect 2 | psqlodbc Driver->libes (C interface):DB Parameters 3 | libes (C interface)->Connection Factory:ESConn 4 | Connection Factory->ESConn:Initialize ESConn 5 | ESConn->libes (C interface):ESConn object 6 | libes (C interface)->ESConn:DB Parameters 7 | ESConn->libes (C interface):DB Parameters Validation Result 8 | libes (C interface)->ESConn:Connect to DB 9 | database ElasticSearch 10 | ESConn->ElasticSearch:Get 11 | ElasticSearch->ESConn:data 12 | ESConn->libes (C interface):DB Connection Result 13 | libes (C interface)->psqlodbc Driver:ESConn object with DB Connection 14 | psqlodbc Driver->ODBCTest:SQL Code Result -------------------------------------------------------------------------------- /sql-odbc/docs/dev/sequence_diagrams/SQLExecDirect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/dev/sequence_diagrams/SQLExecDirect.png -------------------------------------------------------------------------------- /sql-odbc/docs/dev/sequence_diagrams/SQLExecDirect.txt: -------------------------------------------------------------------------------- 1 | Title SQLExecDirect Sequence Diagram 2 | ODBCTest->psqlodbc Driver:SQLExecDirect 3 | psqlodbc Driver->libes (C interface):Query 4 | libes (C interface)->libes (C interface):Active Connection 5 | libes (C interface)->ESConn:Connection, Query 6 | ESConn->ESConn:Connection, Query validation 7 | database ElasticSearch 8 | ESConn->ElasticSearch:Post 9 | ElasticSearch->ESConn:Data 10 | ESConn->libes (C interface):Data 11 | libes (C interface)->psqlodbc Driver:Data 12 | psqlodbc Driver->ODBCTest:Query Execution Status -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/data_connection_wizard_dsn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/data_connection_wizard_dsn.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/data_connection_wizard_enable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/data_connection_wizard_enable.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/data_connection_wizard_load_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/data_connection_wizard_load_data.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/data_connection_wizard_save_connection_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/data_connection_wizard_save_connection_file.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/data_connection_wizard_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/data_connection_wizard_select.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/data_connection_wizard_select_dsn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/data_connection_wizard_select_dsn.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/data_connection_wizard_select_worksheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/data_connection_wizard_select_worksheet.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/data_connection_wizard_table_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/data_connection_wizard_table_list.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/export_loaded_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/export_loaded_data.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/export_multiple_sheets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/export_multiple_sheets.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/export_save_as_csv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/export_save_as_csv.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/from_odbc_advanced_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/from_odbc_advanced_options.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/from_odbc_advanced_options_auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/from_odbc_advanced_options_auth.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/from_odbc_advanced_options_load_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/from_odbc_advanced_options_load_data.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/from_odbc_auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/from_odbc_auth.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/from_odbc_dsn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/from_odbc_dsn.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/from_odbc_loaded_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/from_odbc_loaded_data.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/from_odbc_table_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/from_odbc_table_list.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/microsoft_query_add_tables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/microsoft_query_add_tables.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/microsoft_query_disable_use_the_query_wizard_option.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/microsoft_query_disable_use_the_query_wizard_option.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/microsoft_query_import_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/microsoft_query_import_data.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/microsoft_query_loaded_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/microsoft_query_loaded_data.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/microsoft_query_select_colums.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/microsoft_query_select_colums.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/microsoft_query_select_tables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/microsoft_query_select_tables.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/microsoft_query_table_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/microsoft_query_table_options.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/odbc_data_source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/odbc_data_source.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/query_wizard_choose_coulms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/query_wizard_choose_coulms.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/query_wizard_enable_use_the_query_wizard_option.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/query_wizard_enable_use_the_query_wizard_option.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/query_wizard_error_popup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/query_wizard_error_popup.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/query_wizard_filter_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/query_wizard_filter_data.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/query_wizard_finish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/query_wizard_finish.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/query_wizard_import_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/query_wizard_import_data.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/query_wizard_loaded_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/query_wizard_loaded_data.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/query_wizard_select_tables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/query_wizard_select_tables.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/query_wizard_sort_order.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/query_wizard_sort_order.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/query_wizard_table_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/query_wizard_table_options.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/refresh_add_datarow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/refresh_add_datarow.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/refresh_data_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/refresh_data_preview.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/refresh_load_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/refresh_load_data.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/refresh_updated_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/refresh_updated_data.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/img/select_microsoft_query.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/img/select_microsoft_query.png -------------------------------------------------------------------------------- /sql-odbc/docs/test/microsoft_excel_manual_test_plan.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/microsoft_excel_manual_test_plan.xlsx -------------------------------------------------------------------------------- /sql-odbc/docs/test/power_bi_manual_test_plan.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/test/power_bi_manual_test_plan.xlsx -------------------------------------------------------------------------------- /sql-odbc/docs/test/refresh_data.md: -------------------------------------------------------------------------------- 1 | ## Refresh the loaded data 2 | 3 | * Load data from Open Distro For Elasticsearch by any using any [connection mode](excel_connection.md). 4 | 5 | For this example, [ODBC](odbc_data_source_connection.md) connection is used with the table `sample_data_for_excel` which has 3 datarows as shown in picture. 6 | 7 | 8 | 9 | 10 | 11 | * Add a datarow in the table `sample_data_for_excel` using kibana. 12 | 13 | 14 | 15 | * Click on **Data** > **Refresh All** > **Refresh**. 16 | 17 | 18 | 19 | * Verify the data is updated. -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/driver_default_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/driver_default_config.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/dsn_default_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/dsn_default_config.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_advanced_option.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_advanced_option.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_auth.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_credentials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_credentials.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_data_load.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_data_load.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_data_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_data_preview.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_data_preview_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_data_preview_error.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_data_preview_mac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_data_preview_mac.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_export.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_export_csv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_export_csv.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_iodbc_auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_iodbc_auth.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_iodbc_dsn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_iodbc_dsn.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_iodbc_test_dsn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_iodbc_test_dsn.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_load_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_load_data.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_refresh.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_refresh_mac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_refresh_mac.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_select_database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_select_database.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_select_dsn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_select_dsn.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_select_dsn_mac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_select_dsn_mac.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_select_odbc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_select_odbc.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_select_worksheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_select_worksheet.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/excel_table_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/excel_table_list.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_auth.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_connection_string_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_connection_string_options.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_custom_dsn_auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_custom_dsn_auth.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_data_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_data_preview.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_default_dsn_auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_default_dsn_auth.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_disable_parallel_loading_tables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_disable_parallel_loading_tables.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_error_conn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_error_conn.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_error_driver_not_installed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_error_driver_not_installed.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_gateway_connector_path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_gateway_connector_path.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_gateway_connectors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_gateway_connectors.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_gateway_status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_gateway_status.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_publish_report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_publish_report.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_publish_status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_publish_status.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_query.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_query.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_query_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_query_result.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_select_connector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_select_connector.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_select_custom_dsn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_select_custom_dsn.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_select_dsn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_select_dsn.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_select_workspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_select_workspace.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_service_cluster_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_service_cluster_setting.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_service_data_source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_service_data_source.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_service_data_source_success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_service_data_source_success.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_service_dataset_gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_service_dataset_gateway.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_service_dataset_refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_service_dataset_refresh.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_service_dataset_refresh_history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_service_dataset_refresh_history.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_service_edit_reoprt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_service_edit_reoprt.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_service_modified_report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_service_modified_report.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_service_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_service_setting.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_simple_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_simple_graph.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/pbi_third_party_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/pbi_third_party_warning.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/tableau_columns_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/tableau_columns_list.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/tableau_data_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/tableau_data_preview.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/tableau_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/tableau_dialog.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/tableau_download_taco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/tableau_download_taco.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/tableau_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/tableau_graph.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/tableau_select_connector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/tableau_select_connector.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/tableau_select_table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/tableau_select_table.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/tableau_table_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/tableau_table_list.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/test_dsn_configure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/test_dsn_configure.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/test_dsn_success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/test_dsn_success.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/win_configure_dsn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/win_configure_dsn.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/win_configure_dsn_values.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/win_configure_dsn_values.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/win_odbc_data_sources.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/win_odbc_data_sources.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/win_system_dsn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/win_system_dsn.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/win_test_dsn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/win_test_dsn.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/win_user_dsn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/win_user_dsn.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/win_user_dsn_configure_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/win_user_dsn_configure_options.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/win_user_dsn_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/win_user_dsn_list.png -------------------------------------------------------------------------------- /sql-odbc/docs/user/img/win_user_dsn_select_driver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/docs/user/img/win_user_dsn_select_driver.png -------------------------------------------------------------------------------- /sql-odbc/libraries/VisualLeakDetector/bin/Microsoft.DTfW.DHL.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /sql-odbc/libraries/VisualLeakDetector/bin/dbghelp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/libraries/VisualLeakDetector/bin/dbghelp.dll -------------------------------------------------------------------------------- /sql-odbc/libraries/VisualLeakDetector/bin/vld_x86.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/libraries/VisualLeakDetector/bin/vld_x86.dll -------------------------------------------------------------------------------- /sql-odbc/libraries/VisualLeakDetector/bin64/Microsoft.DTfW.DHL.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /sql-odbc/libraries/VisualLeakDetector/bin64/dbghelp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/libraries/VisualLeakDetector/bin64/dbghelp.dll -------------------------------------------------------------------------------- /sql-odbc/libraries/VisualLeakDetector/bin64/vld_x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/libraries/VisualLeakDetector/bin64/vld_x64.dll -------------------------------------------------------------------------------- /sql-odbc/libraries/VisualLeakDetector/lib/vld.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/libraries/VisualLeakDetector/lib/vld.lib -------------------------------------------------------------------------------- /sql-odbc/libraries/VisualLeakDetector/lib64/vld.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/libraries/VisualLeakDetector/lib64/vld.lib -------------------------------------------------------------------------------- /sql-odbc/libraries/rabbit/README: -------------------------------------------------------------------------------- 1 | Downloaded on November 18th, 2019 @ 9:40 am 2 | Master branch 3 | https://github.com/mashiro/rabbit/tree/master 4 | 5 | - lyndonb@bitquilltech.com -------------------------------------------------------------------------------- /sql-odbc/opendistro-elasticsearch-odbc.release-notes.md: -------------------------------------------------------------------------------- 1 | ## 2020-05-05, Version 1.7 2 | 3 | ### Notable Changes 4 | 5 | This is the first release of OpenDistro For ELasticsearch ODBC driver. 6 | 7 | OpenDistro ODBC provides a driver for ODBC connectivity for OpenDistro SQL plugin. The driver has been developed from scratch and offers the following features in this initial release: 8 | 9 | * ODBC API implementation as per ODBC 3.51 specifications 10 | * Support for MacOS and Windows installers 11 | * Support for HTTP BASIC and AWS SIGV4 authentication mechanisms 12 | * Full support for Elasticsearch Datatypes: BOOLEAN, BYTE, SHORT, INTEGER, LONG, HALF_FLOAT, FLOAT, DOUBLE, SCALED_FLOAT, KEYWORD, TEXT 13 | 14 | -------------------------------------------------------------------------------- /sql-odbc/release-notes/sql-odbc.release-notes-1.8.0.0.md: -------------------------------------------------------------------------------- 1 | ## 2020-05-18, Version 1.8 2 | 3 | ### Features 4 | 5 | * Feature[#81](https://github.com/opendistro-for-elasticsearch/sql-odbc/pull/82): Add Tableau connector source files 6 | 7 | ### Documentation 8 | 9 | * [Add supported OS version in README.md](https://github.com/opendistro-for-elasticsearch/sql-odbc/pull/88) 10 | -------------------------------------------------------------------------------- /sql-odbc/run_cppcheck.bat: -------------------------------------------------------------------------------- 1 | :: --force: force checks all define combinations (default max is 12) 2 | :: --suppress=objectIndex: seemingly false-positive (TODO: investigate this further) 3 | :: -iaws-sdk-cpp: avoid checking AWS C++ SDK source files in our repo 4 | cppcheck.exe --force --suppress=objectIndex -iaws-sdk-cpp .\src\ 2> cppcheck-results.log 5 | -------------------------------------------------------------------------------- /sql-odbc/run_cppcheck.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | RESULTS_FILE=cppcheck-results.log 4 | 5 | # --force: force checks all define combinations (default max is 12) 6 | # -iaws-sdk-cpp: avoid checking AWS C++ SDK source files in our repo 7 | # -UWIN32: do not check WIN32-defined codepaths; this would throw errors on Mac 8 | cppcheck --force -iaws-sdk-cpp -UWIN32 ./src 2> ${RESULTS_FILE} 9 | 10 | if [ -s ${RESULTS_FILE} ]; then 11 | echo "!! Cppcheck errors found! Check ${RESULTS_FILE} for details." 12 | exit 1 13 | else 14 | echo "No Cppcheck errors found." 15 | fi -------------------------------------------------------------------------------- /sql-odbc/run_test_runner.bat: -------------------------------------------------------------------------------- 1 | set PROJECT_DIR=%CD% 2 | set TEST_RUNNER_DIR=%PROJECT_DIR%\src\TestRunner 3 | set WORKING_DIR=%PROJECT_DIR%\build\Debug64\odbc\bin\Debug 4 | 5 | cd %WORKING_DIR% 6 | 7 | py -m pip install mako 8 | 9 | py %TEST_RUNNER_DIR%\test_runner.py -i %TEST_RUNNER_DIR%\mako_template.html -o test_output.html -e %TEST_RUNNER_DIR%\test_exclude_list.txt 10 | 11 | set ERROR_CODE=%ERRORLEVEL% 12 | 13 | cd %PROJECT_DIR% 14 | 15 | echo %ERROR_CODE% 16 | 17 | EXIT /b %ERROR_CODE% 18 | -------------------------------------------------------------------------------- /sql-odbc/run_test_runner.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | PROJECT_DIR=$(pwd) 4 | TEST_RUNNER_DIR=${PROJECT_DIR}/src/TestRunner 5 | WORKING_DIR=${PROJECT_DIR}/bin64 6 | 7 | cd ${WORKING_DIR} 8 | 9 | pip3 install mako 10 | 11 | python3 ${TEST_RUNNER_DIR}/test_runner.py -i ${TEST_RUNNER_DIR}/mako_template.html -o ${PROJECT_DIR}/test_output.html -e ${TEST_RUNNER_DIR}/test_exclude_list.txt 12 | 13 | ERROR_CODE=$? 14 | 15 | cd .. 16 | 17 | exit ${ERROR_CODE} 18 | -------------------------------------------------------------------------------- /sql-odbc/scripts/build_driver.ps1: -------------------------------------------------------------------------------- 1 | $CONFIGURATION = $args[0] 2 | $WIN_ARCH = $args[1] 3 | $SRC_DIR = $args[2] 4 | $BUILD_DIR = $args[3] 5 | $INSTALL_DIR = $args[4] 6 | 7 | cmake -S $SRC_DIR ` 8 | -B $BUILD_DIR ` 9 | -A $WIN_ARCH ` 10 | -D CMAKE_BUILD_TYPE=$CONFIGURATION ` 11 | -D CMAKE_INSTALL_PREFIX=$INSTALL_DIR ` 12 | -D BUILD_WITH_TESTS=ON 13 | 14 | # # Build Project 15 | cmake --build $BUILD_DIR --config $CONFIGURATION --parallel 4 16 | -------------------------------------------------------------------------------- /sql-odbc/scripts/build_installer.ps1: -------------------------------------------------------------------------------- 1 | $CONFIGURATION = $args[0] 2 | $WIN_ARCH = $args[1] 3 | $SRC_DIR = $args[2] 4 | $BUILD_DIR = $args[3] 5 | $INSTALL_DIR = $args[4] 6 | 7 | Write-Host $args 8 | 9 | cmake -S $SRC_DIR ` 10 | -B $BUILD_DIR ` 11 | -A $WIN_ARCH ` 12 | -D CMAKE_BUILD_TYPE=$CONFIGURATION ` 13 | -D CMAKE_INSTALL_PREFIX=$INSTALL_DIR ` 14 | -D BUILD_WITH_TESTS=OFF 15 | 16 | # # Build Project 17 | msbuild $BUILD_DIR\PACKAGE.vcxproj -m -p:Configuration=Release 18 | -------------------------------------------------------------------------------- /sql-odbc/src/DSNInstaller/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(dsn_installer) 2 | 3 | set(SOURCE_FILES dsn_installer.cpp) 4 | 5 | add_executable(dsn_installer ${SOURCE_FILES}) 6 | 7 | target_link_libraries(dsn_installer iodbcinst) 8 | target_compile_definitions(dsn_installer PUBLIC _UNICODE UNICODE) 9 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCAwsAuth/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(itodbc_aws_auth) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES test_odbc_aws_auth.cpp) 5 | include_directories( ${UT_HELPER} 6 | ${IT_HELPER} 7 | ${ODFEODBC_SRC} 8 | ${VLD_SRC} 9 | ${AWSSDK_INCLUDE_DIR} 10 | ) 11 | 12 | # Generate executable 13 | add_executable(itodbc_aws_auth ${SOURCE_FILES}) 14 | 15 | # Library dependencies 16 | target_link_libraries(itodbc_aws_auth odfesqlodbc itodbc_helper ut_helper gtest_main aws-cpp-sdk-core) 17 | target_compile_definitions(itodbc_aws_auth PUBLIC _UNICODE UNICODE) 18 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCAwsAuth/pch.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // pch.cpp 3 | // Include the standard header and generate the precompiled header. 4 | // 5 | 6 | #include "pch.h" 7 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCAwsAuth/pch.h: -------------------------------------------------------------------------------- 1 | // 2 | // pch.h 3 | // Header for standard system include files. 4 | // 5 | 6 | #pragma once 7 | 8 | #include "gtest/gtest.h" 9 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCAwsAuth/test_aws_auth_dsn.reg: -------------------------------------------------------------------------------- 1 | Windows Registry Editor Version 5.00 2 | 3 | [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers] 4 | "ElasticsearchODBC"="Installed" 5 | 6 | [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ElasticsearchODBC] 7 | "Driver"="\\bin64\\Release\\odfesqlodbc.dll" 8 | "Setup"="\\bin64\\Release\\odfesqlodbc.dll" 9 | 10 | [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources] 11 | "test_aws_auth_dsn"="ElasticsearchODBC" 12 | 13 | [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\test_aws_auth_dsn] 14 | "host"="https://search-sept-cdg-david-test-domain-gouok3seqeupz64smuvfxyddui.eu-west-3.es.amazonaws.com" 15 | "auth"="AWS_SIGV4" 16 | "region"="eu-west-3" 17 | "useSSL"="0" 18 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCAwsAuth/test_odbc.ini: -------------------------------------------------------------------------------- 1 | [ODBC Data Sources] 2 | test_aws_auth_dsn = ElasticsearchODBC 3 | 4 | [test_aws_auth_dsn] 5 | host = https://search-sept-cdg-david-test-domain-gouok3seqeupz64smuvfxyddui.eu-west-3.es.amazonaws.com 6 | auth = AWS_SIGV4 7 | region = eu-west-3 8 | useSSL = 0 -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCAwsAuth/test_odbcinst.ini: -------------------------------------------------------------------------------- 1 | [ODBC Drivers] 2 | ElasticsearchODBC = Installed 3 | 4 | [ElasticsearchODBC] 5 | Driver = /lib64/libodfesqlodbc.dylib 6 | Setup = /lib64/libodfesqlodbc.dylib -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCCatalog/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(itodbc_catalog) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES test_odbc_catalog.cpp) 5 | include_directories( ${UT_HELPER} 6 | ${IT_HELPER} 7 | ${ODFEODBC_SRC} 8 | ${VLD_SRC} ) 9 | 10 | # Generate executable 11 | add_executable(itodbc_catalog ${SOURCE_FILES}) 12 | 13 | # Library dependencies 14 | target_code_coverage(itodbc_catalog PUBLIC AUTO ALL) 15 | target_link_libraries(itodbc_catalog odfesqlodbc itodbc_helper ut_helper gtest_main) 16 | target_compile_definitions(itodbc_catalog PUBLIC _UNICODE UNICODE) 17 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCCatalog/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCCatalog/pch.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // pch.cpp 3 | // Include the standard header and generate the precompiled header. 4 | // 5 | 6 | #include "pch.h" 7 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCCatalog/pch.h: -------------------------------------------------------------------------------- 1 | // 2 | // pch.h 3 | // Header for standard system include files. 4 | // 5 | 6 | #pragma once 7 | 8 | #include "gtest/gtest.h" 9 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCConnection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(itodbc_connection) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES test_odbc_connection.cpp) 5 | include_directories( ${UT_HELPER} 6 | ${IT_HELPER} 7 | ${ODFEODBC_SRC} 8 | ${VLD_SRC} ) 9 | 10 | # Generate executable 11 | add_executable(itodbc_connection ${SOURCE_FILES}) 12 | 13 | # Library dependencies 14 | target_code_coverage(itodbc_connection PUBLIC AUTO ALL) 15 | target_link_libraries(itodbc_connection odfesqlodbc itodbc_helper ut_helper gtest_main) 16 | target_compile_definitions(itodbc_connection PUBLIC _UNICODE UNICODE) 17 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCConnection/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCConnection/pch.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // pch.cpp 3 | // Include the standard header and generate the precompiled header. 4 | // 5 | 6 | #include "pch.h" 7 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCConnection/pch.h: -------------------------------------------------------------------------------- 1 | // 2 | // pch.h 3 | // Header for standard system include files. 4 | // 5 | 6 | #pragma once 7 | 8 | #include "gtest/gtest.h" 9 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCConnection/test_dsn.reg: -------------------------------------------------------------------------------- 1 | Windows Registry Editor Version 5.00 2 | 3 | [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers] 4 | "ElasticsearchODBC"="Installed" 5 | 6 | [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ElasticsearchODBC] 7 | "Driver"="\\bin64\\Release\\odfesqlodbc.dll" 8 | "Setup"="\\bin64\\Release\\odfesqlodbc.dll" 9 | 10 | [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources] 11 | "test_dsn"="ElasticsearchODBC" 12 | 13 | [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\test_dsn] 14 | "host"="localhost" 15 | "port"="9200" 16 | "user"="admin" 17 | "password"="admin" 18 | "auth"="BASIC" 19 | "useSSL"="0" 20 | "responseTimeout"="10" 21 | 22 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCConnection/test_odbc.ini: -------------------------------------------------------------------------------- 1 | [ODBC Data Sources] 2 | test_dsn = ElasticsearchODBC 3 | 4 | [test_dsn] 5 | host = localhost 6 | port = 9200 7 | user = admin 8 | password = admin 9 | auth = BASIC 10 | useSSL = 0 11 | responseTimeout = 10 -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCConnection/test_odbcinst.ini: -------------------------------------------------------------------------------- 1 | [ODBC Drivers] 2 | ElasticsearchODBC = Installed 3 | 4 | [ElasticsearchODBC] 5 | Driver = /lib64/libodfesqlodbc.dylib 6 | Setup = /lib64/libodfesqlodbc.dylib -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCDescriptors/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(itodbc_descriptors) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES test_odbc_descriptors.cpp) 5 | include_directories( ${UT_HELPER} 6 | ${IT_HELPER} 7 | ${ODFEODBC_SRC} 8 | ${VLD_SRC} ) 9 | 10 | # Generate executable 11 | add_executable(itodbc_descriptors ${SOURCE_FILES}) 12 | 13 | # Library dependencies 14 | target_code_coverage(itodbc_descriptors PUBLIC AUTO ALL) 15 | target_link_libraries(itodbc_descriptors odfesqlodbc itodbc_helper ut_helper gtest_main) 16 | target_compile_definitions(itodbc_descriptors PUBLIC _UNICODE UNICODE) 17 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCDescriptors/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCDescriptors/pch.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // pch.cpp 3 | // Include the standard header and generate the precompiled header. 4 | // 5 | 6 | #include "pch.h" 7 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCDescriptors/pch.h: -------------------------------------------------------------------------------- 1 | // 2 | // pch.h 3 | // Header for standard system include files. 4 | // 5 | 6 | #pragma once 7 | 8 | #include "gtest/gtest.h" 9 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCExecution/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(itodbc_execution) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES test_odbc_execution.cpp) 5 | include_directories( ${UT_HELPER} 6 | ${IT_HELPER} 7 | ${ODFEODBC_SRC} 8 | ${VLD_SRC} ) 9 | 10 | # Generate executable 11 | add_executable(itodbc_execution ${SOURCE_FILES}) 12 | 13 | # Library dependencies 14 | target_link_libraries(itodbc_execution odfesqlodbc itodbc_helper ut_helper gtest_main) 15 | target_compile_definitions(itodbc_execution PUBLIC _UNICODE UNICODE) 16 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCExecution/pch.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // pch.cpp 3 | // Include the standard header and generate the precompiled header. 4 | // 5 | 6 | #include "pch.h" 7 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCExecution/pch.h: -------------------------------------------------------------------------------- 1 | // 2 | // pch.h 3 | // Header for standard system include files. 4 | // 5 | 6 | #pragma once 7 | 8 | #include "gtest/gtest.h" 9 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCHelper/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(itodbc_helper) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES it_odbc_helper.cpp) 5 | set(HEADER_FILES it_odbc_helper.h) 6 | include_directories( 7 | ${UT_HELPER} 8 | ${ODFEODBC_SRC} 9 | ${VLD_SRC} 10 | ) 11 | 12 | # Generate dll (SHARED) 13 | add_library(itodbc_helper SHARED ${SOURCE_FILES} ${HEADER_FILES}) 14 | 15 | # Library dependencies 16 | target_link_libraries(itodbc_helper odfesqlodbc ut_helper gtest_main) 17 | target_compile_definitions(itodbc_helper PUBLIC _UNICODE UNICODE) 18 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCInfo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(itodbc_info) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES test_odbc_info.cpp) 5 | include_directories( ${UT_HELPER} 6 | ${IT_HELPER} 7 | ${ODFEODBC_SRC} 8 | ${VLD_SRC} ) 9 | 10 | # Generate executable 11 | add_executable(itodbc_info ${SOURCE_FILES}) 12 | 13 | # Library dependencies 14 | target_code_coverage(itodbc_info PUBLIC AUTO ALL) 15 | target_link_libraries(itodbc_info odfesqlodbc itodbc_helper ut_helper gtest_main) 16 | target_compile_definitions(itodbc_info PUBLIC _UNICODE UNICODE) 17 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCInfo/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCInfo/pch.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // pch.cpp 3 | // Include the standard header and generate the precompiled header. 4 | // 5 | 6 | #include "pch.h" 7 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCInfo/pch.h: -------------------------------------------------------------------------------- 1 | // 2 | // pch.h 3 | // Header for standard system include files. 4 | // 5 | 6 | #pragma once 7 | 8 | #include "gtest/gtest.h" 9 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCPagination/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(itodbc_pagination) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES test_odbc_pagination.cpp) 5 | include_directories( ${UT_HELPER} 6 | ${IT_HELPER} 7 | ${ODFEODBC_SRC} 8 | ${VLD_SRC} ) 9 | 10 | # Generate executable 11 | add_executable(itodbc_pagination ${SOURCE_FILES}) 12 | 13 | # Library dependencies 14 | target_code_coverage(itodbc_pagination PUBLIC AUTO ALL) 15 | target_link_libraries(itodbc_pagination odfesqlodbc itodbc_helper ut_helper gtest_main) 16 | target_compile_definitions(itodbc_pagination PUBLIC _UNICODE UNICODE) 17 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCPagination/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCPagination/pch.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // pch.cpp 3 | // Include the standard header and generate the precompiled header. 4 | // 5 | 6 | #include "pch.h" 7 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCPagination/pch.h: -------------------------------------------------------------------------------- 1 | // 2 | // pch.h 3 | // Header for standard system include files. 4 | // 5 | 6 | #pragma once 7 | 8 | #include "gtest/gtest.h" 9 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCResults/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(itodbc_results) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES test_odbc_results.cpp) 5 | include_directories( ${UT_HELPER} 6 | ${IT_HELPER} 7 | ${ODFEODBC_SRC} 8 | ${VLD_SRC} ) 9 | 10 | # Generate executable 11 | add_executable(itodbc_results ${SOURCE_FILES}) 12 | 13 | # Library dependencies 14 | target_code_coverage(itodbc_results PUBLIC AUTO ALL) 15 | target_link_libraries(itodbc_results odfesqlodbc itodbc_helper ut_helper gtest_main) 16 | target_compile_definitions(itodbc_results PUBLIC _UNICODE UNICODE) 17 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCResults/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCResults/pch.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // pch.cpp 3 | // Include the standard header and generate the precompiled header. 4 | // 5 | 6 | #include "pch.h" 7 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCResults/pch.h: -------------------------------------------------------------------------------- 1 | // 2 | // pch.h 3 | // Header for standard system include files. 4 | // 5 | 6 | #pragma once 7 | 8 | #include "gtest/gtest.h" 9 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCTableauQueries/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(itodbc_tableau_queries) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES test_odbc_tableau_queries.cpp) 5 | include_directories( ${UT_HELPER} 6 | ${IT_HELPER} 7 | ${ODFEODBC_SRC} 8 | ${VLD_SRC} ) 9 | 10 | # Generate executable 11 | add_executable(itodbc_tableau_queries ${SOURCE_FILES}) 12 | 13 | # Library dependencies 14 | target_code_coverage(itodbc_tableau_queries PUBLIC AUTO ALL) 15 | target_link_libraries(itodbc_tableau_queries odfesqlodbc itodbc_helper ut_helper gtest_main) 16 | target_compile_definitions(itodbc_tableau_queries PUBLIC _UNICODE UNICODE) 17 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCTableauQueries/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCTableauQueries/pch.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // pch.cpp 3 | // Include the standard header and generate the precompiled header. 4 | // 5 | 6 | #include "pch.h" 7 | -------------------------------------------------------------------------------- /sql-odbc/src/IntegrationTests/ITODBCTableauQueries/pch.h: -------------------------------------------------------------------------------- 1 | // 2 | // pch.h 3 | // Header for standard system include files. 4 | // 5 | 6 | #pragma once 7 | 8 | #include "gtest/gtest.h" 9 | -------------------------------------------------------------------------------- /sql-odbc/src/PerformanceTests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(performance_tests) 2 | 3 | set(RESULTS_PTESTS "${CMAKE_CURRENT_SOURCE_DIR}/PTODBCResults") 4 | set(INFO_PTESTS "${CMAKE_CURRENT_SOURCE_DIR}/PTODBCInfo") 5 | set(EXECUTION_PTESTS "${CMAKE_CURRENT_SOURCE_DIR}/PTODBCExecution") 6 | 7 | # Projects to build 8 | add_subdirectory(${RESULTS_PTESTS}) 9 | add_subdirectory(${INFO_PTESTS}) 10 | add_subdirectory(${EXECUTION_PTESTS}) 11 | -------------------------------------------------------------------------------- /sql-odbc/src/PerformanceTests/PTODBCExecution/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(performance_execution) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES performance_odbc_execution.cpp) 5 | include_directories(${ODFEODBC_SRC}) 6 | 7 | # Generate executable 8 | add_executable(performance_execution ${SOURCE_FILES}) 9 | 10 | # Library dependencies 11 | target_link_libraries(performance_execution odfesqlodbc) 12 | target_compile_definitions(performance_execution PUBLIC _UNICODE UNICODE) 13 | -------------------------------------------------------------------------------- /sql-odbc/src/PerformanceTests/PTODBCInfo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(performance_info) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES performance_odbc_info.cpp) 5 | include_directories( ${UT_HELPER} 6 | ${IT_HELPER} 7 | ${ODFEODBC_SRC} 8 | ${VLD_SRC} 9 | ${RABBIT_SRC} 10 | ${RAPIDJSON_SRC}) 11 | 12 | # Generate executable 13 | add_executable(performance_info ${SOURCE_FILES}) 14 | 15 | # Library dependencies 16 | target_link_libraries(performance_info odfesqlodbc itodbc_helper ut_helper gtest_main) 17 | target_compile_definitions(performance_info PUBLIC _UNICODE UNICODE) 18 | -------------------------------------------------------------------------------- /sql-odbc/src/PerformanceTests/PTODBCInfo/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /sql-odbc/src/PerformanceTests/PTODBCInfo/pch.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // pch.cpp 3 | // Include the standard header and generate the precompiled header. 4 | // 5 | 6 | #include "pch.h" 7 | -------------------------------------------------------------------------------- /sql-odbc/src/PerformanceTests/PTODBCInfo/pch.h: -------------------------------------------------------------------------------- 1 | // 2 | // pch.h 3 | // Header for standard system include files. 4 | // 5 | 6 | #pragma once 7 | 8 | #include "gtest/gtest.h" 9 | -------------------------------------------------------------------------------- /sql-odbc/src/PerformanceTests/PTODBCResults/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(performance_results) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES performance_odbc_results.cpp) 5 | include_directories( ${UT_HELPER} 6 | ${IT_HELPER} 7 | ${ODFEODBC_SRC} 8 | ${VLD_SRC} ) 9 | 10 | # Generate executable 11 | add_executable(performance_results ${SOURCE_FILES}) 12 | 13 | # Library dependencies 14 | target_link_libraries(performance_results odfesqlodbc itodbc_helper ut_helper gtest_main) 15 | target_compile_definitions(performance_results PUBLIC _UNICODE UNICODE) 16 | -------------------------------------------------------------------------------- /sql-odbc/src/PerformanceTests/PTODBCResults/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /sql-odbc/src/PerformanceTests/PTODBCResults/pch.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // pch.cpp 3 | // Include the standard header and generate the precompiled header. 4 | // 5 | 6 | #include "pch.h" 7 | -------------------------------------------------------------------------------- /sql-odbc/src/PerformanceTests/PTODBCResults/pch.h: -------------------------------------------------------------------------------- 1 | // 2 | // pch.h 3 | // Header for standard system include files. 4 | // 5 | 6 | #pragma once 7 | 8 | #include "gtest/gtest.h" 9 | -------------------------------------------------------------------------------- /sql-odbc/src/TestRunner/test_exclude_list.txt: -------------------------------------------------------------------------------- 1 | ut_aws_sdk_cpp 2 | itodbc_aws_auth -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(unit_tests) 2 | 3 | set(HELPER_UTEST "${CMAKE_CURRENT_SOURCE_DIR}/UTHelper") 4 | set(CONN_UTEST "${CMAKE_CURRENT_SOURCE_DIR}/UTConn") 5 | set(RABBIT_UTEST "${CMAKE_CURRENT_SOURCE_DIR}/UTRabbit") 6 | set(CRITICALSECTION_UTEST "${CMAKE_CURRENT_SOURCE_DIR}/UTCriticalSection") 7 | set(AWSSDKCPP_UTEST "${CMAKE_CURRENT_SOURCE_DIR}/UTAwsSdkCpp") 8 | 9 | # Projects to build 10 | add_subdirectory(${HELPER_UTEST}) 11 | add_subdirectory(${CONN_UTEST}) 12 | add_subdirectory(${RABBIT_UTEST}) 13 | add_subdirectory(${CRITICALSECTION_UTEST}) 14 | add_subdirectory(${AWSSDKCPP_UTEST}) 15 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTAwsSdkCpp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(ut_aws_sdk_cpp) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES test_aws_sdk_cpp.cpp) 5 | include_directories( ${UT_HELPER} 6 | ${AWSSDK_INCLUDE_DIR} 7 | ${VLD_SRC}) 8 | 9 | # Generate executable 10 | add_executable(ut_aws_sdk_cpp ${SOURCE_FILES}) 11 | 12 | # Library dependencies 13 | target_link_libraries(ut_aws_sdk_cpp ut_helper gtest_main aws-cpp-sdk-core ${VLD}) 14 | target_compile_definitions(ut_aws_sdk_cpp PUBLIC _UNICODE UNICODE) 15 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTAwsSdkCpp/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTAwsSdkCpp/pch.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // pch.cpp 3 | // Include the standard header and generate the precompiled header. 4 | // 5 | 6 | #include "pch.h" 7 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTAwsSdkCpp/pch.h: -------------------------------------------------------------------------------- 1 | // 2 | // pch.h 3 | // Header for standard system include files. 4 | // 5 | 6 | #pragma once 7 | 8 | #include "gtest/gtest.h" 9 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTConn/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(ut_conn) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES test_conn.cpp test_query_execution.cpp) 5 | include_directories( ${UT_HELPER} 6 | ${ODFEODBC_SRC} 7 | ${RAPIDJSON_SRC} 8 | ${RABBIT_SRC} 9 | ${LIBCURL_SRC} 10 | ${VLD_SRC} ) 11 | 12 | # Generate executable 13 | add_executable(ut_conn ${SOURCE_FILES}) 14 | 15 | # Library dependencies 16 | target_link_libraries(ut_conn odfesqlodbc ut_helper gtest_main) 17 | target_compile_definitions(ut_conn PUBLIC _UNICODE UNICODE) 18 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTConn/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTConn/pch.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // pch.cpp 3 | // Include the standard header and generate the precompiled header. 4 | // 5 | 6 | #include "pch.h" 7 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTConn/pch.h: -------------------------------------------------------------------------------- 1 | // 2 | // pch.h 3 | // Header for standard system include files. 4 | // 5 | 6 | #pragma once 7 | 8 | #include "gtest/gtest.h" 9 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTCriticalSection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(ut_critical_section) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES test_critical_section.cpp) 5 | include_directories( ${UT_HELPER} 6 | ${ODFEODBC_SRC} 7 | ${RAPIDJSON_SRC} 8 | ${VLD_SRC} 9 | ${RABBIT_SRC} ) 10 | 11 | # Generate executable 12 | add_executable(ut_critical_section ${SOURCE_FILES}) 13 | 14 | # Library dependencies 15 | target_link_libraries(ut_critical_section odfesqlodbc ut_helper gtest_main) 16 | target_compile_definitions(ut_critical_section PUBLIC _UNICODE UNICODE) 17 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTCriticalSection/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTCriticalSection/pch.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // pch.cpp 3 | // Include the standard header and generate the precompiled header. 4 | // 5 | 6 | #include "pch.h" 7 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTCriticalSection/pch.h: -------------------------------------------------------------------------------- 1 | // 2 | // pch.h 3 | // Header for standard system include files. 4 | // 5 | 6 | #pragma once 7 | 8 | #include "gtest/gtest.h" 9 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTHelper/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(ut_helper) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES unit_test_helper.cpp) 5 | set(HEADER_FILES unit_test_helper.h) 6 | include_directories(${ODFEODBC_SRC} ${VLD_SRC}) 7 | 8 | # Generate dll (SHARED) 9 | add_library(ut_helper SHARED ${SOURCE_FILES} ${HEADER_FILES}) 10 | 11 | if (WIN32 AND BITNESS EQUAL 64) 12 | find_library( VLD 13 | vld 14 | HINTS "${LIBRARY_DIRECTORY}/VisualLeakDetector/lib64" 15 | ) 16 | target_link_libraries(ut_helper ${VLD}) 17 | elseif (WIN32 AND BITNESS EQUAL 32) 18 | find_library( VLD 19 | vld 20 | HINTS "${LIBRARY_DIRECTORY}/VisualLeakDetector/lib" 21 | ) 22 | target_link_libraries(ut_helper ${VLD}) 23 | endif() 24 | 25 | # Library dependencies 26 | target_link_libraries(ut_helper odfesqlodbc gtest_main) 27 | target_compile_definitions(ut_helper PUBLIC _UNICODE UNICODE) 28 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTHelper/unit_test_helper.cpp: -------------------------------------------------------------------------------- 1 | #include "unit_test_helper.h" 2 | 3 | #include 4 | #include 5 | 6 | void WriteFileIfSpecified(char** begin, char** end, const std::string& option, 7 | std::string& output) { 8 | char** itr = std::find(begin, end, option); 9 | if (itr != end && ++itr != end) { 10 | std::ofstream out_file(*itr); 11 | if (out_file.good()) 12 | out_file << output; 13 | } 14 | return; 15 | } 16 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTHelper/unit_test_helper.h: -------------------------------------------------------------------------------- 1 | #ifndef UNIT_TEST_HELPER 2 | #define UNIT_TEST_HELPER 3 | 4 | #if defined(WIN32) || defined (WIN64) 5 | #ifdef _DEBUG 6 | #define VLD_FORCE_ENABLE 1 7 | #include 8 | #endif 9 | #endif 10 | 11 | #include 12 | #ifdef USE_SSL 13 | const bool use_ssl = true; 14 | #else 15 | const bool use_ssl = false; 16 | #endif 17 | 18 | void WriteFileIfSpecified(char** begin, char** end, const std::string& option, 19 | std::string& output); 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTRabbit/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(ut_rabbit) 2 | 3 | # Source, headers, and include dirs 4 | set(SOURCE_FILES test_rabbit.cpp) 5 | include_directories( ${UT_HELPER} 6 | ${RAPIDJSON_SRC} 7 | ${RABBIT_SRC} 8 | ${VLD_SRC} ) 9 | 10 | # Generate executable 11 | add_executable(ut_rabbit ${SOURCE_FILES}) 12 | 13 | target_link_libraries(ut_rabbit ut_helper gtest_main ${VLD}) 14 | target_compile_definitions(ut_rabbit PUBLIC _UNICODE UNICODE) 15 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTRabbit/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTRabbit/pch.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // pch.cpp 3 | // Include the standard header and generate the precompiled header. 4 | // 5 | 6 | #include "pch.h" 7 | -------------------------------------------------------------------------------- /sql-odbc/src/UnitTests/UTRabbit/pch.h: -------------------------------------------------------------------------------- 1 | // 2 | // pch.h 3 | // Header for standard system include files. 4 | // 5 | 6 | #pragma once 7 | 8 | #include "gtest/gtest.h" 9 | -------------------------------------------------------------------------------- /sql-odbc/src/autoconf.h.in: -------------------------------------------------------------------------------- 1 | #cmakedefine AUTOCONF_ENABLE 2 | #cmakedefine AUTOCONF_STRING "@AUTOCONF_STRING@" 3 | -------------------------------------------------------------------------------- /sql-odbc/src/gtest/googletest-download.cmake: -------------------------------------------------------------------------------- 1 | # code copied from https://crascit.com/2015/07/25/cmake-gtest/ 2 | cmake_minimum_required(VERSION 3.5 FATAL_ERROR) 3 | 4 | project(googletest-download NONE) 5 | 6 | include(ExternalProject) 7 | 8 | ExternalProject_Add( 9 | googletest 10 | SOURCE_DIR "@GOOGLETEST_DOWNLOAD_ROOT@/googletest-src" 11 | BINARY_DIR "@GOOGLETEST_DOWNLOAD_ROOT@/googletest-build" 12 | GIT_REPOSITORY 13 | https://github.com/google/googletest.git 14 | GIT_TAG 15 | release-1.10.0 16 | CONFIGURE_COMMAND "" 17 | BUILD_COMMAND "" 18 | INSTALL_COMMAND "" 19 | TEST_COMMAND "" 20 | ) 21 | -------------------------------------------------------------------------------- /sql-odbc/src/installer/Resources/Welcome.txt: -------------------------------------------------------------------------------- 1 | Open Distro for Elasticsearch SQL ODBC is a read-only ODBC driver for connecting to Open Distro for Elasticsearch SQL support. -------------------------------------------------------------------------------- /sql-odbc/src/installer/Resources/background.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/src/installer/Resources/background.bmp -------------------------------------------------------------------------------- /sql-odbc/src/installer/Resources/background_darkaqua.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/src/installer/Resources/background_darkaqua.bmp -------------------------------------------------------------------------------- /sql-odbc/src/installer/Resources/odfe_sql_odbc.tdc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /sql-odbc/src/installer/banner.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/src/installer/banner.bmp -------------------------------------------------------------------------------- /sql-odbc/src/installer/dialog.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/src/installer/dialog.bmp -------------------------------------------------------------------------------- /sql-odbc/src/installer/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opendistro-for-elasticsearch/sql/a549025e42e71fb3146f0ba2a1705cbd3fa2db9c/sql-odbc/src/installer/icon.ico -------------------------------------------------------------------------------- /sql-odbc/src/installer/remove-odfe-dsn.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "This script will only remove the default DSN and Driver entries from your ODBC configuration." 4 | echo "You will be responsible for removing installed files from the system." 5 | if [[ $EUID -ne 0 ]]; then 6 | echo "ERROR: This script must be run as root" 7 | exit 1 8 | fi 9 | 10 | # check for "Yes" 11 | while true; do 12 | read -p "Do you want to continue? (Y/y) " yn 13 | case $yn in 14 | [Yy]* ) break;; 15 | [Nn]* ) exit;; 16 | * ) echo "Please answer yes or no.";; 17 | esac 18 | done 19 | 20 | # Run dsn_installer uninstall 21 | ${BASH_SOURCE%/*}/dsn_installer uninstall 22 | if [ $? -ne 0 ]; then 23 | echo "Error while removing DSN and Driver entries." 24 | else 25 | echo "DSN and Driver entries have been removed successfully." 26 | fi 27 | -------------------------------------------------------------------------------- /sql-odbc/src/odfeenlist/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(odfeenlist) 2 | 3 | # Source files for odfeenlist 4 | set(SOURCE_FILES msdtc_enlist.cpp) 5 | set(HEADER_FILES elasticenlist.h) 6 | 7 | # Generate static lib 8 | add_library(odfeenlist STATIC ${SOURCE_FILES} ${HEADER_FILES}) 9 | 10 | # Library dependencies 11 | target_link_libraries(odfeenlist kernel32 advapi32 Delayimp XOleHlp) 12 | 13 | # Platform specific library dependencies 14 | if(WIN32) 15 | # Windows specifiec 16 | target_link_libraries(odfeenlist wsock32 winspool user32 gdi32 comdlg32 shell32 uuid) 17 | else() 18 | # Unix specific 19 | endif() 20 | -------------------------------------------------------------------------------- /sql-odbc/src/odfesqlodbc/es_driver_connect.h: -------------------------------------------------------------------------------- 1 | #ifndef __ES_DRIVER_CONNECT_H__ 2 | #define __ES_DRIVER_CONNECT_H__ 3 | #include "es_connection.h" 4 | 5 | // C Interface 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | RETCODE ESAPI_DriverConnect(HDBC hdbc, HWND hwnd, SQLCHAR *conn_str_in, 10 | SQLSMALLINT conn_str_in_len, SQLCHAR *conn_str_out, 11 | SQLSMALLINT conn_str_out_len, 12 | SQLSMALLINT *pcb_conn_str_out, 13 | SQLUSMALLINT driver_completion); 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | 18 | #endif /* __ES_DRIVER_CONNECT_H__ */ 19 | -------------------------------------------------------------------------------- /sql-odbc/src/odfesqlodbc/es_result_queue.h: -------------------------------------------------------------------------------- 1 | #ifndef ES_RESULT_QUEUE 2 | #define ES_RESULT_QUEUE 3 | 4 | #include 5 | #include 6 | #include "es_semaphore.h" 7 | 8 | #define QUEUE_TIMEOUT 20 // milliseconds 9 | 10 | struct ESResult; 11 | 12 | class ESResultQueue { 13 | public: 14 | ESResultQueue(unsigned int capacity); 15 | ~ESResultQueue(); 16 | 17 | void clear(); 18 | bool pop(unsigned int timeout_ms, ESResult*& result); 19 | bool push(unsigned int timeout_ms, ESResult* result); 20 | 21 | private: 22 | std::queue m_queue; 23 | std::mutex m_queue_mutex; 24 | es_semaphore m_push_semaphore; 25 | es_semaphore m_pop_semaphore; 26 | }; 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /sql-odbc/src/odfesqlodbc/es_semaphore.h: -------------------------------------------------------------------------------- 1 | #ifndef ES_SEMAPHORE 2 | #define ES_SEMAPHORE 3 | 4 | #ifdef WIN32 5 | #include 6 | #elif defined(__APPLE__) 7 | #include 8 | #else 9 | #include 10 | #endif 11 | 12 | class es_semaphore { 13 | public: 14 | es_semaphore(unsigned int initial, unsigned int capacity); 15 | ~es_semaphore(); 16 | 17 | void lock(); 18 | void release(); 19 | bool try_lock_for(unsigned int timeout_ms); 20 | 21 | private: 22 | #ifdef WIN32 23 | HANDLE m_semaphore; 24 | #elif defined(__APPLE__) 25 | dispatch_semaphore_t m_semaphore; 26 | #else 27 | sem_t m_semaphore; 28 | #endif 29 | }; 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /sql-odbc/src/odfesqlodbc/es_statement.h: -------------------------------------------------------------------------------- 1 | #ifndef _ES_STATEMENT_H_ 2 | #define _ES_STATEMENT_H_ 3 | 4 | #include "es_parse_result.h" 5 | #include "qresult.h" 6 | #include "statement.h" 7 | 8 | #ifdef __cplusplus 9 | extern "C" { 10 | #endif 11 | RETCODE RePrepareStatement(StatementClass *stmt); 12 | RETCODE PrepareStatement(StatementClass* stmt, const SQLCHAR *stmt_str, SQLINTEGER stmt_sz); 13 | RETCODE ExecuteStatement(StatementClass *stmt, BOOL commit); 14 | QResultClass *SendQueryGetResult(StatementClass *stmt, BOOL commit); 15 | RETCODE AssignResult(StatementClass *stmt); 16 | SQLRETURN ESAPI_Cancel(HSTMT hstmt); 17 | SQLRETURN GetNextResultSet(StatementClass *stmt); 18 | void ClearESResult(void *es_result); 19 | #ifdef __cplusplus 20 | } 21 | #endif 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /sql-odbc/src/odfesqlodbc/es_utility.h: -------------------------------------------------------------------------------- 1 | #ifndef ES_UTILITY_H 2 | #define ES_UTILITY_H 3 | 4 | #include 5 | 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | 10 | typedef struct ESExpBufferData { 11 | char *data; 12 | size_t len; 13 | size_t maxlen; 14 | } ESExpBufferData; 15 | 16 | typedef ESExpBufferData *ESExpBuffer; 17 | 18 | #define ESExpBufferBroken(str) ((str) == NULL || (str)->maxlen == 0) 19 | #define ESExpBufferDataBroken(buf) ((buf).maxlen == 0) 20 | #define INITIAL_EXPBUFFER_SIZE 256 21 | 22 | void InitESExpBuffer(ESExpBuffer str); 23 | void AppendESExpBuffer(ESExpBuffer str, const char *fmt, ...); 24 | void TermESExpBuffer(ESExpBuffer str); 25 | 26 | #ifdef __cplusplus 27 | } 28 | #endif 29 | 30 | #endif /* ES_UTILITY_H */ 31 | -------------------------------------------------------------------------------- /sql-odbc/src/odfesqlodbc/version.h: -------------------------------------------------------------------------------- 1 | #ifndef __VERSION_H__ 2 | #define __VERSION_H__ 3 | 4 | /* 5 | * BuildAll may pass ELASTICDRIVERVERSION, ELASTIC_RESOURCE_VERSION 6 | * and ES_DRVFILE_VERSION via winbuild/elasticodbc.vcxproj. 7 | */ 8 | #ifdef ES_ODBC_VERSION 9 | 10 | #ifndef ELASTICSEARCHDRIVERVERSION 11 | #define ELASTICSEARCHDRIVERVERSION ES_ODBC_VERSION 12 | #endif 13 | #ifndef ELASTICSEARCH_RESOURCE_VERSION 14 | #define ELASTICSEARCH_RESOURCE_VERSION ELASTICSEARCHDRIVERVERSION 15 | #endif 16 | #ifndef ES_DRVFILE_VERSION 17 | #define ES_DRVFILE_VERSION ES_ODBC_DRVFILE_VERSION 18 | #endif 19 | 20 | #endif // ES_ODBC_VERSION 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /sql/lombok.config: -------------------------------------------------------------------------------- 1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin 2 | config.stopBubbling = true 3 | lombok.addLombokGeneratedAnnotation = true 4 | -------------------------------------------------------------------------------- /workbench/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | /build/ 3 | .cypress/screenshots 4 | .cypress/videos 5 | /target/* 6 | -------------------------------------------------------------------------------- /workbench/.kibana-plugin-helpers.json: -------------------------------------------------------------------------------- 1 | { 2 | "serverSourcePatterns": [ 3 | "package.json", 4 | "tsconfig.json", 5 | "yarn.lock", 6 | ".yarnrc", 7 | "index.js", 8 | "{lib,public,server,test}/**/*", 9 | "!__tests__" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /workbench/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ## Code of Conduct 2 | 3 | This project has adopted an [Open Source Code of Conduct](https://opendistro.github.io/for-elasticsearch/codeofconduct.html). 4 | -------------------------------------------------------------------------------- /workbench/CONTRIBUTORS.md: -------------------------------------------------------------------------------- 1 | Contributors in order of last name: 2 | 3 | Peng Huo 4 | 5 | Abbas Hussain 6 | 7 | Anirudh Jadhav 8 | 9 | Joshua Li 10 | 11 | Francesca Paoletti 12 | 13 | Alolita Sharma 14 | 15 | Chloe Zhang 16 | -------------------------------------------------------------------------------- /workbench/NOTICE: -------------------------------------------------------------------------------- 1 | Open Distro for Elasticsearch SQL Kibana Plugin 2 | Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | -------------------------------------------------------------------------------- /workbench/common/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"). 5 | * You may not use this file except in compliance with the License. 6 | * A copy of the License is located at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * or in the "license" file accompanying this file. This file is distributed 11 | * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12 | * express or implied. See the License for the specific language governing 13 | * permissions and limitations under the License. 14 | */ 15 | 16 | export const PLUGIN_ID = 'opendistroQueryWorkbench'; 17 | export const PLUGIN_NAME = 'Query Workbench'; 18 | -------------------------------------------------------------------------------- /workbench/cypress.json: -------------------------------------------------------------------------------- 1 | { 2 | "baseUrl": "http://localhost:5601", 3 | "video": true, 4 | "fixturesFolder": ".cypress/fixtures", 5 | "integrationFolder": ".cypress/integration", 6 | "pluginsFile": ".cypress/plugins/index.js", 7 | "screenshotsFolder": ".cypress/screenshots", 8 | "supportFile": ".cypress/support/index.js", 9 | "videosFolder": ".cypress/videos", 10 | "requestTimeout": 60000, 11 | "responseTimeout": 60000, 12 | "defaultCommandTimeout": 60000 13 | } 14 | -------------------------------------------------------------------------------- /workbench/kibana.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "opendistroQueryWorkbenchKibana", 3 | "version": "1.13.0.0", 4 | "kibanaVersion": "7.10.2", 5 | "server": true, 6 | "ui": true, 7 | "requiredPlugins": ["navigation"], 8 | "optionalPlugins": [] 9 | } 10 | -------------------------------------------------------------------------------- /workbench/public/components/Header/__snapshots__/Header.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`
spec renders the component 1`] = ` 4 |
5 |
6 |
9 |
10 |
11 | `; 12 | -------------------------------------------------------------------------------- /workbench/public/components/Main/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"). 5 | * You may not use this file except in compliance with the License. 6 | * A copy of the License is located at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * or in the "license" file accompanying this file. This file is distributed 11 | * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12 | * express or implied. See the License for the specific language governing 13 | * permissions and limitations under the License. 14 | */ 15 | 16 | export { Main } from './main'; 17 | -------------------------------------------------------------------------------- /workbench/public/icons/minus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /workbench/public/icons/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /workbench/public/icons/sql.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /workbench/public/less/main.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"). 5 | * You may not use this file except in compliance with the License. 6 | * A copy of the License is located at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * or in the "license" file accompanying this file. This file is distributed 11 | * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12 | * express or implied. See the License for the specific language governing 13 | * permissions and limitations under the License. 14 | */ 15 | 16 | .container { 17 | margin-top: 30px; 18 | } 19 | 20 | -------------------------------------------------------------------------------- /workbench/release-notes/sql-workbench.release-notes-1.8.0.0.md: -------------------------------------------------------------------------------- 1 | ## 2020-05-14 Version 1.8.0.0 2 | 3 | ### Features 4 | #### Kibana Compatibility 5 | 6 | - Support v7.7.0 compatibility ([#67](https://github.com/opendistro-for-elasticsearch/sql-workbench/pull/67)) 7 | 8 | #### Version 1.8.0.0 Release 9 | 10 | - Update release notes and contributors for v1.8 ([#68](https://github.com/opendistro-for-elasticsearch/sql-workbench/pull/68)) 11 | - Update README.md ([#71](https://github.com/opendistro-for-elasticsearch/sql-workbench/pull/71)) 12 | - Rename plugin name to sql-workbench ([#72](https://github.com/opendistro-for-elasticsearch/sql-workbench/pull/72)) 13 | -------------------------------------------------------------------------------- /workbench/release-notes/sql-workbench.release-notes-1.9.0.0.md: -------------------------------------------------------------------------------- 1 | ## 2020-06-23 Version 1.9.0.0 2 | 3 | ### Features 4 | #### Kibana Compatibility 5 | 6 | - Support v7.8.0 compatibility ([#80](https://github.com/opendistro-for-elasticsearch/sql-workbench/pull/80)) 7 | 8 | #### Version 1.9.0.0 Release 9 | 10 | - Bug fix: custom plugin icon displaying improperly ([#73](https://github.com/opendistro-for-elasticsearch/sql-workbench/pull/73)) 11 | - Fix: column name in result table shows alias if alias exists ([#75](https://github.com/opendistro-for-elasticsearch/sql-workbench/pull/75)) 12 | -------------------------------------------------------------------------------- /workbench/release-notes/sql-workbench.release-notes-1.9.0.1.md: -------------------------------------------------------------------------------- 1 | ## 2020-06-23 Version 1.9.0.1 2 | 3 | ### Bug Fixes 4 | - Fix: Kibana did not load properly ([#81](https://github.com/opendistro-for-elasticsearch/sql-workbench/pull/81)) 5 | -------------------------------------------------------------------------------- /workbench/release-notes/sql-workbench.release-notes-1.9.0.2.md: -------------------------------------------------------------------------------- 1 | ## 2020-07-06 Version 1.9.0.2 (Current) 2 | 3 | ### Bug Fixes 4 | - Fix: use column name if alias is an empty string ([#84](https://github.com/opendistro-for-elasticsearch/sql-workbench/pull/84)) 5 | -------------------------------------------------------------------------------- /workbench/server/clusters/index.js: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"). 6 | * You may not use this file except in compliance with the License. 7 | * A copy of the License is located at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * or in the "license" file accompanying this file. This file is distributed 12 | * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 | * express or implied. See the License for the specific language governing 14 | * permissions and limitations under the License. 15 | */ 16 | 17 | import createSqlCluster from './sql/createSqlCluster'; 18 | 19 | export { createSqlCluster }; 20 | -------------------------------------------------------------------------------- /workbench/test/mocks/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"). 5 | * You may not use this file except in compliance with the License. 6 | * A copy of the License is located at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * or in the "license" file accompanying this file. This file is distributed 11 | * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12 | * express or implied. See the License for the specific language governing 13 | * permissions and limitations under the License. 14 | */ 15 | 16 | import browserServicesMock from "./browserServicesMock"; 17 | import httpClientMock from "./httpClientMock"; 18 | import styleMock from "./styleMock"; 19 | 20 | export { browserServicesMock, httpClientMock, styleMock }; 21 | -------------------------------------------------------------------------------- /workbench/test/mocks/styleMock.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"). 5 | * You may not use this file except in compliance with the License. 6 | * A copy of the License is located at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * or in the "license" file accompanying this file. This file is distributed 11 | * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12 | * express or implied. See the License for the specific language governing 13 | * permissions and limitations under the License. 14 | */ 15 | 16 | export default {}; 17 | -------------------------------------------------------------------------------- /workbench/test/polyfills.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"). 5 | * You may not use this file except in compliance with the License. 6 | * A copy of the License is located at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * or in the "license" file accompanying this file. This file is distributed 11 | * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12 | * express or implied. See the License for the specific language governing 13 | * permissions and limitations under the License. 14 | */ 15 | 16 | // @ts-ignore 17 | import { MutationObserver } from "./polyfills/mutationObserver"; 18 | 19 | Object.defineProperty(window, "MutationObserver", { value: MutationObserver }); 20 | -------------------------------------------------------------------------------- /workbench/test/setupTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"). 5 | * You may not use this file except in compliance with the License. 6 | * A copy of the License is located at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * or in the "license" file accompanying this file. This file is distributed 11 | * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12 | * express or implied. See the License for the specific language governing 13 | * permissions and limitations under the License. 14 | */ 15 | 16 | require("babel-polyfill"); 17 | -------------------------------------------------------------------------------- /workbench/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // extend Kibana's tsconfig, or use your own settings 3 | "extends": "../../tsconfig.json", 4 | 5 | // tell the TypeScript compiler where to find your source files 6 | "include": ["server/**/*", "public/**/*", "test/**/*", "babel.config.js"], 7 | "exclude": ["node_modules", "*/node_modules/"], 8 | 9 | "compilerOptions": { 10 | "skipLibCheck": true, 11 | "noImplicitAny": true, 12 | "noImplicitThis": true, 13 | "strictNullChecks": false, 14 | "suppressImplicitAnyIndexErrors": true, 15 | "lib": ["es5", "es2015", "es2017", "dom"] 16 | } 17 | } 18 | --------------------------------------------------------------------------------