├── .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 |
6 |
7 |
8 |
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 |
6 |
7 |
8 |
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 |
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 |
--------------------------------------------------------------------------------