Reorganize development docs - #1200

Merged
dai-chen merged 5 commits into
opensearch-project:mainfrom
dai-chen:refactor-dev-docs-rebased
Jan 24, 2023
Merged

Reorganize development docs#1200
dai-chen merged 5 commits into
opensearch-project:mainfrom
dai-chen:refactor-dev-docs-rebased

Conversation

@dai-chen

@dai-chendai-chen commented Dec 20, 2022

Copy link
Copy Markdown
Collaborator

Signed-off-by: Chen Dai daichen@amazon.com

Description

This PR is the first one aimed to improve our dev documentation. Currently there are only a few docs in docs/dev/ folder. Actually there are many valuable info in our old docs or PR description. As initial effort, this PR added an index page reorganize existing docs to categories. Meanwhile I extracted a few PR description for main feature to new docs. Will upload more docs in separate PR.

Please see https://github.com/dai-chen/sql-1/blob/refactor-dev-docs-rebased/docs/dev/index.md -> https://github.com/opensearch-project/sql/blob/main/docs/dev/index.md

Issues Resolved

#1219

Check List

  • New functionality includes testing.
    • All tests pass, including unit test, integration test and doctest
  • New functionality has been documented.
    • New functionality has javadoc added
    • New functionality has user manual doc added
  • Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@dai-chendai-chen added the documentation Improvements or additions to documentation label Dec 20, 2022
@dai-chendai-chen self-assigned this Dec 20, 2022
@codecov-commenter

codecov-commenter commented Dec 23, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1200 (c7e306f) into main (1b58f7d) will increase coverage by 0.03%.
The diff coverage is n/a.

@@ Coverage Diff @@## main #1200 +/- ##
============================================
+ Coverage 98.32% 98.35% +0.03% - Complexity 3550 3609 +59 
============================================
Files 344 344 Lines 8762 8946 +184 Branches 554 569 +15 ============================================
+ Hits 8615 8799 +184 
Misses 142 142 Partials 5 5 
FlagCoverage Δ
sql-engine98.35% <ø> (+0.03%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted FilesCoverage Δ
...c/main/java/org/opensearch/sql/expression/DSL.java100.00% <0.00%> (ø)
...n/java/org/opensearch/sql/utils/DateTimeUtils.java100.00% <0.00%> (ø)
...a/org/opensearch/sql/data/model/ExprDateValue.java100.00% <0.00%> (ø)
...a/org/opensearch/sql/data/model/ExprTimeValue.java100.00% <0.00%> (ø)
.../org/opensearch/sql/data/model/ExprValueUtils.java100.00% <0.00%> (ø)
...g/opensearch/sql/data/model/ExprDatetimeValue.java100.00% <0.00%> (ø)
...pensearch/sql/sql/parser/AstExpressionBuilder.java100.00% <0.00%> (ø)
...pensearch/sql/expression/function/FunctionDSL.java100.00% <0.00%> (ø)
...arch/sql/expression/datetime/DateTimeFunction.java100.00% <0.00%> (ø)
...h/sql/expression/function/BuiltinFunctionName.java100.00% <0.00%> (ø)
... and 2 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@dai-chen
dai-chenforce-pushed the refactor-dev-docs-rebased branch from e31b2c0 to 3ad530dCompareJanuary 3, 2023 19:50
@dai-chendai-chen changed the title Reorganize development documentationAdd table of content page and reorganize dev docsJan 3, 2023
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chen
dai-chenforce-pushed the refactor-dev-docs-rebased branch from 3ad530d to 7b038c4CompareJanuary 13, 2023 22:35
Signed-off-by: Chen Dai <daichen@amazon.com>
Signed-off-by: Chen Dai <daichen@amazon.com>
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chendai-chen changed the title Add table of content page and reorganize dev docsAdd index page and reorganize dev docsJan 13, 2023
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chen
dai-chen marked this pull request as ready for review January 13, 2023 23:47
@dai-chen
dai-chen requested a review from a team as a code ownerJanuary 13, 2023 23:47
@dai-chendai-chen changed the title Add index page and reorganize dev docsReorganize development docsJan 14, 2023
@dai-chen
dai-chen merged commit 1ed9701 into opensearch-project:mainJan 24, 2023
@dai-chen
dai-chen deleted the refactor-dev-docs-rebased branch January 24, 2023 17:38

@YANG-DBYANG-DB left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an excellent direction +1

Comment threaddocs/dev/index.md
+ **CLI**
+ **JDBC Driver**
+ **ODBC Driver**
+ **Query Workbench**

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn’t this a UI feature ?
can we also have a UI section associated to the SQL ?

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, I was planning to add some brief intro or link to their repo. Added here just to give users a complete picture of our eco system.

Comment threaddocs/dev/index.md

# OpenSearch SQL/PPL Engine Development Manual

## Introduction

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we also have tutorial section for playground like exploring

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure, I'm still thinking what's the best way to do this. I have a sub task here for adding tutorial / quick start section: #1219.

Many other projects provide sample data and executable script/jar. User can play around with sample data files via CLI and their file connector. Because our CLI is written in Python, probably we can put some quick start example for playground website.

@dai-chen

Copy link
Copy Markdown
CollaboratorAuthor

This is an excellent direction +1

@YANG-DB I've merged this PR right before your comments. Feel free to comment on #1219 if any idea. I will do it in the future PRs. Thanks!

* *Observability :* The ability to understand whats happening inside your business/application using logs, traces, metrics and other data emitted from the application.


## 3.Tenets

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 3.Tenets
## 3.Tenets

* Changes to PPL Query Language grammar should be simple and easy to onboard.
* Component design should be extensible for supporting new data stores.

## 4.Out of Scope for the Design.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 4.Out of Scope for the Design.
## 4.Out of Scope for the Design

Comment on lines +47 to +49



Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change




### 6.1 Data source representation.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### 6.1 Data source representation.
### 6.1 Data source representation

* *Catalog :* we can describe a catalog as the union of a connector and the underlying instance of the datasource being referred. This gives us flexbility to refer different instances of a similar datastore with the same connector i.e. we can refer data from multiple prometheus instances using prometheus connector. The name for each catalog should be different.

Example Prometheus Catalog Definition
```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json

Comment on lines +109 to +110

* JSON Format

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* JSON Format
  • JSON Format

Comment on lines +124 to +128
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]
```json
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]

``

##### Include NULL and MISSING value in the QueryResult (Issue 1, 2)
The SELECT operator will be translated to PhysicalOpeartor with a list of expression to resolve ExprValue from input data. With the above example, when handling NULL and MISSING value, the expected output data should be as follows.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json


An additional list of Schema is also required to when protocol is JDBC.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json

1. Each data source adds special logical operator and explode the optimizer rule space. For example, Prometheus also has `PrometheusLogicalMetricAgg` and `PrometheusLogicalMetricScan` accordingly. They have the exactly same pattern to match query plan tree as OpenSearch.
2. A bigger problem is the difficulty of transforming from logical to physical when there are 2 `Table`s in query plan. Because only 1 of them has the chance to do the `implement()`. This is a blocker for supporting `INSERT ... SELECT ...` statement or JOIN query. See code below.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```java

@dai-chen

Copy link
Copy Markdown
CollaboratorAuthor

This is not back port to other branch intentionally. Because I think we may need single dedicated branch for Github pages in future.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

Status: Planned work items

Development

Successfully merging this pull request may close these issues.

6 participants

@dai-chen@codecov-commenter@anirudha@penghuo@YANG-DB@Yury-Fridlyand
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Reorganize development docs - #1200

Merged
dai-chen merged 5 commits into
opensearch-project:mainfrom
dai-chen:refactor-dev-docs-rebased
Jan 24, 2023
Merged

Reorganize development docs#1200
dai-chen merged 5 commits into
opensearch-project:mainfrom
dai-chen:refactor-dev-docs-rebased

Conversation

@dai-chen

@dai-chendai-chen commented Dec 20, 2022

Copy link
Copy Markdown
Collaborator

Signed-off-by: Chen Dai daichen@amazon.com

Description

This PR is the first one aimed to improve our dev documentation. Currently there are only a few docs in docs/dev/ folder. Actually there are many valuable info in our old docs or PR description. As initial effort, this PR added an index page reorganize existing docs to categories. Meanwhile I extracted a few PR description for main feature to new docs. Will upload more docs in separate PR.

Please see https://github.com/dai-chen/sql-1/blob/refactor-dev-docs-rebased/docs/dev/index.md -> https://github.com/opensearch-project/sql/blob/main/docs/dev/index.md

Issues Resolved

#1219

Check List

  • New functionality includes testing.
    • All tests pass, including unit test, integration test and doctest
  • New functionality has been documented.
    • New functionality has javadoc added
    • New functionality has user manual doc added
  • Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@dai-chendai-chen added the documentation Improvements or additions to documentation label Dec 20, 2022
@dai-chendai-chen self-assigned this Dec 20, 2022
@codecov-commenter

codecov-commenter commented Dec 23, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1200 (c7e306f) into main (1b58f7d) will increase coverage by 0.03%.
The diff coverage is n/a.

@@ Coverage Diff @@## main #1200 +/- ##
============================================
+ Coverage 98.32% 98.35% +0.03% - Complexity 3550 3609 +59 
============================================
Files 344 344 Lines 8762 8946 +184 Branches 554 569 +15 ============================================
+ Hits 8615 8799 +184 
Misses 142 142 Partials 5 5 
FlagCoverage Δ
sql-engine98.35% <ø> (+0.03%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted FilesCoverage Δ
...c/main/java/org/opensearch/sql/expression/DSL.java100.00% <0.00%> (ø)
...n/java/org/opensearch/sql/utils/DateTimeUtils.java100.00% <0.00%> (ø)
...a/org/opensearch/sql/data/model/ExprDateValue.java100.00% <0.00%> (ø)
...a/org/opensearch/sql/data/model/ExprTimeValue.java100.00% <0.00%> (ø)
.../org/opensearch/sql/data/model/ExprValueUtils.java100.00% <0.00%> (ø)
...g/opensearch/sql/data/model/ExprDatetimeValue.java100.00% <0.00%> (ø)
...pensearch/sql/sql/parser/AstExpressionBuilder.java100.00% <0.00%> (ø)
...pensearch/sql/expression/function/FunctionDSL.java100.00% <0.00%> (ø)
...arch/sql/expression/datetime/DateTimeFunction.java100.00% <0.00%> (ø)
...h/sql/expression/function/BuiltinFunctionName.java100.00% <0.00%> (ø)
... and 2 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@dai-chen
dai-chenforce-pushed the refactor-dev-docs-rebased branch from e31b2c0 to 3ad530dCompareJanuary 3, 2023 19:50
@dai-chendai-chen changed the title Reorganize development documentationAdd table of content page and reorganize dev docsJan 3, 2023
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chen
dai-chenforce-pushed the refactor-dev-docs-rebased branch from 3ad530d to 7b038c4CompareJanuary 13, 2023 22:35
Signed-off-by: Chen Dai <daichen@amazon.com>
Signed-off-by: Chen Dai <daichen@amazon.com>
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chendai-chen changed the title Add table of content page and reorganize dev docsAdd index page and reorganize dev docsJan 13, 2023
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chen
dai-chen marked this pull request as ready for review January 13, 2023 23:47
@dai-chen
dai-chen requested a review from a team as a code ownerJanuary 13, 2023 23:47
@dai-chendai-chen changed the title Add index page and reorganize dev docsReorganize development docsJan 14, 2023
@dai-chen
dai-chen merged commit 1ed9701 into opensearch-project:mainJan 24, 2023
@dai-chen
dai-chen deleted the refactor-dev-docs-rebased branch January 24, 2023 17:38

@YANG-DBYANG-DB left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an excellent direction +1

Comment threaddocs/dev/index.md
+ **CLI**
+ **JDBC Driver**
+ **ODBC Driver**
+ **Query Workbench**

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn’t this a UI feature ?
can we also have a UI section associated to the SQL ?

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, I was planning to add some brief intro or link to their repo. Added here just to give users a complete picture of our eco system.

Comment threaddocs/dev/index.md

# OpenSearch SQL/PPL Engine Development Manual

## Introduction

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we also have tutorial section for playground like exploring

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure, I'm still thinking what's the best way to do this. I have a sub task here for adding tutorial / quick start section: #1219.

Many other projects provide sample data and executable script/jar. User can play around with sample data files via CLI and their file connector. Because our CLI is written in Python, probably we can put some quick start example for playground website.

@dai-chen

Copy link
Copy Markdown
CollaboratorAuthor

This is an excellent direction +1

@YANG-DB I've merged this PR right before your comments. Feel free to comment on #1219 if any idea. I will do it in the future PRs. Thanks!

* *Observability :* The ability to understand whats happening inside your business/application using logs, traces, metrics and other data emitted from the application.


## 3.Tenets

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 3.Tenets
## 3.Tenets

* Changes to PPL Query Language grammar should be simple and easy to onboard.
* Component design should be extensible for supporting new data stores.

## 4.Out of Scope for the Design.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 4.Out of Scope for the Design.
## 4.Out of Scope for the Design

Comment on lines +47 to +49



Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change




### 6.1 Data source representation.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### 6.1 Data source representation.
### 6.1 Data source representation

* *Catalog :* we can describe a catalog as the union of a connector and the underlying instance of the datasource being referred. This gives us flexbility to refer different instances of a similar datastore with the same connector i.e. we can refer data from multiple prometheus instances using prometheus connector. The name for each catalog should be different.

Example Prometheus Catalog Definition
```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json

Comment on lines +109 to +110

* JSON Format

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* JSON Format
  • JSON Format

Comment on lines +124 to +128
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]
```json
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]

``

##### Include NULL and MISSING value in the QueryResult (Issue 1, 2)
The SELECT operator will be translated to PhysicalOpeartor with a list of expression to resolve ExprValue from input data. With the above example, when handling NULL and MISSING value, the expected output data should be as follows.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json


An additional list of Schema is also required to when protocol is JDBC.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json

1. Each data source adds special logical operator and explode the optimizer rule space. For example, Prometheus also has `PrometheusLogicalMetricAgg` and `PrometheusLogicalMetricScan` accordingly. They have the exactly same pattern to match query plan tree as OpenSearch.
2. A bigger problem is the difficulty of transforming from logical to physical when there are 2 `Table`s in query plan. Because only 1 of them has the chance to do the `implement()`. This is a blocker for supporting `INSERT ... SELECT ...` statement or JOIN query. See code below.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```java

@dai-chen

Copy link
Copy Markdown
CollaboratorAuthor

This is not back port to other branch intentionally. Because I think we may need single dedicated branch for Github pages in future.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

Status: Planned work items

Development

Successfully merging this pull request may close these issues.

6 participants

@dai-chen@codecov-commenter@anirudha@penghuo@YANG-DB@Yury-Fridlyand
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Reorganize development docs - #1200

Merged
dai-chen merged 5 commits into
opensearch-project:mainfrom
dai-chen:refactor-dev-docs-rebased
Jan 24, 2023
Merged

Reorganize development docs#1200
dai-chen merged 5 commits into
opensearch-project:mainfrom
dai-chen:refactor-dev-docs-rebased

Conversation

@dai-chen

@dai-chendai-chen commented Dec 20, 2022

Copy link
Copy Markdown
Collaborator

Signed-off-by: Chen Dai daichen@amazon.com

Description

This PR is the first one aimed to improve our dev documentation. Currently there are only a few docs in docs/dev/ folder. Actually there are many valuable info in our old docs or PR description. As initial effort, this PR added an index page reorganize existing docs to categories. Meanwhile I extracted a few PR description for main feature to new docs. Will upload more docs in separate PR.

Please see https://github.com/dai-chen/sql-1/blob/refactor-dev-docs-rebased/docs/dev/index.md -> https://github.com/opensearch-project/sql/blob/main/docs/dev/index.md

Issues Resolved

#1219

Check List

  • New functionality includes testing.
    • All tests pass, including unit test, integration test and doctest
  • New functionality has been documented.
    • New functionality has javadoc added
    • New functionality has user manual doc added
  • Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@dai-chendai-chen added the documentation Improvements or additions to documentation label Dec 20, 2022
@dai-chendai-chen self-assigned this Dec 20, 2022
@codecov-commenter

codecov-commenter commented Dec 23, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1200 (c7e306f) into main (1b58f7d) will increase coverage by 0.03%.
The diff coverage is n/a.

@@ Coverage Diff @@## main #1200 +/- ##
============================================
+ Coverage 98.32% 98.35% +0.03% - Complexity 3550 3609 +59 
============================================
Files 344 344 Lines 8762 8946 +184 Branches 554 569 +15 ============================================
+ Hits 8615 8799 +184 
Misses 142 142 Partials 5 5 
FlagCoverage Δ
sql-engine98.35% <ø> (+0.03%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted FilesCoverage Δ
...c/main/java/org/opensearch/sql/expression/DSL.java100.00% <0.00%> (ø)
...n/java/org/opensearch/sql/utils/DateTimeUtils.java100.00% <0.00%> (ø)
...a/org/opensearch/sql/data/model/ExprDateValue.java100.00% <0.00%> (ø)
...a/org/opensearch/sql/data/model/ExprTimeValue.java100.00% <0.00%> (ø)
.../org/opensearch/sql/data/model/ExprValueUtils.java100.00% <0.00%> (ø)
...g/opensearch/sql/data/model/ExprDatetimeValue.java100.00% <0.00%> (ø)
...pensearch/sql/sql/parser/AstExpressionBuilder.java100.00% <0.00%> (ø)
...pensearch/sql/expression/function/FunctionDSL.java100.00% <0.00%> (ø)
...arch/sql/expression/datetime/DateTimeFunction.java100.00% <0.00%> (ø)
...h/sql/expression/function/BuiltinFunctionName.java100.00% <0.00%> (ø)
... and 2 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@dai-chen
dai-chenforce-pushed the refactor-dev-docs-rebased branch from e31b2c0 to 3ad530dCompareJanuary 3, 2023 19:50
@dai-chendai-chen changed the title Reorganize development documentationAdd table of content page and reorganize dev docsJan 3, 2023
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chen
dai-chenforce-pushed the refactor-dev-docs-rebased branch from 3ad530d to 7b038c4CompareJanuary 13, 2023 22:35
Signed-off-by: Chen Dai <daichen@amazon.com>
Signed-off-by: Chen Dai <daichen@amazon.com>
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chendai-chen changed the title Add table of content page and reorganize dev docsAdd index page and reorganize dev docsJan 13, 2023
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chen
dai-chen marked this pull request as ready for review January 13, 2023 23:47
@dai-chen
dai-chen requested a review from a team as a code ownerJanuary 13, 2023 23:47
@dai-chendai-chen changed the title Add index page and reorganize dev docsReorganize development docsJan 14, 2023
@dai-chen
dai-chen merged commit 1ed9701 into opensearch-project:mainJan 24, 2023
@dai-chen
dai-chen deleted the refactor-dev-docs-rebased branch January 24, 2023 17:38

@YANG-DBYANG-DB left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an excellent direction +1

Comment threaddocs/dev/index.md
+ **CLI**
+ **JDBC Driver**
+ **ODBC Driver**
+ **Query Workbench**

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn’t this a UI feature ?
can we also have a UI section associated to the SQL ?

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, I was planning to add some brief intro or link to their repo. Added here just to give users a complete picture of our eco system.

Comment threaddocs/dev/index.md

# OpenSearch SQL/PPL Engine Development Manual

## Introduction

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we also have tutorial section for playground like exploring

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure, I'm still thinking what's the best way to do this. I have a sub task here for adding tutorial / quick start section: #1219.

Many other projects provide sample data and executable script/jar. User can play around with sample data files via CLI and their file connector. Because our CLI is written in Python, probably we can put some quick start example for playground website.

@dai-chen

Copy link
Copy Markdown
CollaboratorAuthor

This is an excellent direction +1

@YANG-DB I've merged this PR right before your comments. Feel free to comment on #1219 if any idea. I will do it in the future PRs. Thanks!

* *Observability :* The ability to understand whats happening inside your business/application using logs, traces, metrics and other data emitted from the application.


## 3.Tenets

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 3.Tenets
## 3.Tenets

* Changes to PPL Query Language grammar should be simple and easy to onboard.
* Component design should be extensible for supporting new data stores.

## 4.Out of Scope for the Design.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 4.Out of Scope for the Design.
## 4.Out of Scope for the Design

Comment on lines +47 to +49



Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change




### 6.1 Data source representation.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### 6.1 Data source representation.
### 6.1 Data source representation

* *Catalog :* we can describe a catalog as the union of a connector and the underlying instance of the datasource being referred. This gives us flexbility to refer different instances of a similar datastore with the same connector i.e. we can refer data from multiple prometheus instances using prometheus connector. The name for each catalog should be different.

Example Prometheus Catalog Definition
```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json

Comment on lines +109 to +110

* JSON Format

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* JSON Format
  • JSON Format

Comment on lines +124 to +128
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]
```json
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]

``

##### Include NULL and MISSING value in the QueryResult (Issue 1, 2)
The SELECT operator will be translated to PhysicalOpeartor with a list of expression to resolve ExprValue from input data. With the above example, when handling NULL and MISSING value, the expected output data should be as follows.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json


An additional list of Schema is also required to when protocol is JDBC.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json

1. Each data source adds special logical operator and explode the optimizer rule space. For example, Prometheus also has `PrometheusLogicalMetricAgg` and `PrometheusLogicalMetricScan` accordingly. They have the exactly same pattern to match query plan tree as OpenSearch.
2. A bigger problem is the difficulty of transforming from logical to physical when there are 2 `Table`s in query plan. Because only 1 of them has the chance to do the `implement()`. This is a blocker for supporting `INSERT ... SELECT ...` statement or JOIN query. See code below.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```java

@dai-chen

Copy link
Copy Markdown
CollaboratorAuthor

This is not back port to other branch intentionally. Because I think we may need single dedicated branch for Github pages in future.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

Status: Planned work items

Development

Successfully merging this pull request may close these issues.

6 participants

@dai-chen@codecov-commenter@anirudha@penghuo@YANG-DB@Yury-Fridlyand
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Reorganize development docs - #1200

Merged
dai-chen merged 5 commits into
opensearch-project:mainfrom
dai-chen:refactor-dev-docs-rebased
Jan 24, 2023
Merged

Reorganize development docs#1200
dai-chen merged 5 commits into
opensearch-project:mainfrom
dai-chen:refactor-dev-docs-rebased

Conversation

@dai-chen

@dai-chendai-chen commented Dec 20, 2022

Copy link
Copy Markdown
Collaborator

Signed-off-by: Chen Dai daichen@amazon.com

Description

This PR is the first one aimed to improve our dev documentation. Currently there are only a few docs in docs/dev/ folder. Actually there are many valuable info in our old docs or PR description. As initial effort, this PR added an index page reorganize existing docs to categories. Meanwhile I extracted a few PR description for main feature to new docs. Will upload more docs in separate PR.

Please see https://github.com/dai-chen/sql-1/blob/refactor-dev-docs-rebased/docs/dev/index.md -> https://github.com/opensearch-project/sql/blob/main/docs/dev/index.md

Issues Resolved

#1219

Check List

  • New functionality includes testing.
    • All tests pass, including unit test, integration test and doctest
  • New functionality has been documented.
    • New functionality has javadoc added
    • New functionality has user manual doc added
  • Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@dai-chendai-chen added the documentation Improvements or additions to documentation label Dec 20, 2022
@dai-chendai-chen self-assigned this Dec 20, 2022
@codecov-commenter

codecov-commenter commented Dec 23, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1200 (c7e306f) into main (1b58f7d) will increase coverage by 0.03%.
The diff coverage is n/a.

@@ Coverage Diff @@## main #1200 +/- ##
============================================
+ Coverage 98.32% 98.35% +0.03% - Complexity 3550 3609 +59 
============================================
Files 344 344 Lines 8762 8946 +184 Branches 554 569 +15 ============================================
+ Hits 8615 8799 +184 
Misses 142 142 Partials 5 5 
FlagCoverage Δ
sql-engine98.35% <ø> (+0.03%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted FilesCoverage Δ
...c/main/java/org/opensearch/sql/expression/DSL.java100.00% <0.00%> (ø)
...n/java/org/opensearch/sql/utils/DateTimeUtils.java100.00% <0.00%> (ø)
...a/org/opensearch/sql/data/model/ExprDateValue.java100.00% <0.00%> (ø)
...a/org/opensearch/sql/data/model/ExprTimeValue.java100.00% <0.00%> (ø)
.../org/opensearch/sql/data/model/ExprValueUtils.java100.00% <0.00%> (ø)
...g/opensearch/sql/data/model/ExprDatetimeValue.java100.00% <0.00%> (ø)
...pensearch/sql/sql/parser/AstExpressionBuilder.java100.00% <0.00%> (ø)
...pensearch/sql/expression/function/FunctionDSL.java100.00% <0.00%> (ø)
...arch/sql/expression/datetime/DateTimeFunction.java100.00% <0.00%> (ø)
...h/sql/expression/function/BuiltinFunctionName.java100.00% <0.00%> (ø)
... and 2 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@dai-chen
dai-chenforce-pushed the refactor-dev-docs-rebased branch from e31b2c0 to 3ad530dCompareJanuary 3, 2023 19:50
@dai-chendai-chen changed the title Reorganize development documentationAdd table of content page and reorganize dev docsJan 3, 2023
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chen
dai-chenforce-pushed the refactor-dev-docs-rebased branch from 3ad530d to 7b038c4CompareJanuary 13, 2023 22:35
Signed-off-by: Chen Dai <daichen@amazon.com>
Signed-off-by: Chen Dai <daichen@amazon.com>
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chendai-chen changed the title Add table of content page and reorganize dev docsAdd index page and reorganize dev docsJan 13, 2023
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chen
dai-chen marked this pull request as ready for review January 13, 2023 23:47
@dai-chen
dai-chen requested a review from a team as a code ownerJanuary 13, 2023 23:47
@dai-chendai-chen changed the title Add index page and reorganize dev docsReorganize development docsJan 14, 2023
@dai-chen
dai-chen merged commit 1ed9701 into opensearch-project:mainJan 24, 2023
@dai-chen
dai-chen deleted the refactor-dev-docs-rebased branch January 24, 2023 17:38

@YANG-DBYANG-DB left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an excellent direction +1

Comment threaddocs/dev/index.md
+ **CLI**
+ **JDBC Driver**
+ **ODBC Driver**
+ **Query Workbench**

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn’t this a UI feature ?
can we also have a UI section associated to the SQL ?

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, I was planning to add some brief intro or link to their repo. Added here just to give users a complete picture of our eco system.

Comment threaddocs/dev/index.md

# OpenSearch SQL/PPL Engine Development Manual

## Introduction

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we also have tutorial section for playground like exploring

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure, I'm still thinking what's the best way to do this. I have a sub task here for adding tutorial / quick start section: #1219.

Many other projects provide sample data and executable script/jar. User can play around with sample data files via CLI and their file connector. Because our CLI is written in Python, probably we can put some quick start example for playground website.

@dai-chen

Copy link
Copy Markdown
CollaboratorAuthor

This is an excellent direction +1

@YANG-DB I've merged this PR right before your comments. Feel free to comment on #1219 if any idea. I will do it in the future PRs. Thanks!

* *Observability :* The ability to understand whats happening inside your business/application using logs, traces, metrics and other data emitted from the application.


## 3.Tenets

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 3.Tenets
## 3.Tenets

* Changes to PPL Query Language grammar should be simple and easy to onboard.
* Component design should be extensible for supporting new data stores.

## 4.Out of Scope for the Design.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 4.Out of Scope for the Design.
## 4.Out of Scope for the Design

Comment on lines +47 to +49



Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change




### 6.1 Data source representation.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### 6.1 Data source representation.
### 6.1 Data source representation

* *Catalog :* we can describe a catalog as the union of a connector and the underlying instance of the datasource being referred. This gives us flexbility to refer different instances of a similar datastore with the same connector i.e. we can refer data from multiple prometheus instances using prometheus connector. The name for each catalog should be different.

Example Prometheus Catalog Definition
```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json

Comment on lines +109 to +110

* JSON Format

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* JSON Format
  • JSON Format

Comment on lines +124 to +128
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]
```json
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]

``

##### Include NULL and MISSING value in the QueryResult (Issue 1, 2)
The SELECT operator will be translated to PhysicalOpeartor with a list of expression to resolve ExprValue from input data. With the above example, when handling NULL and MISSING value, the expected output data should be as follows.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json


An additional list of Schema is also required to when protocol is JDBC.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json

1. Each data source adds special logical operator and explode the optimizer rule space. For example, Prometheus also has `PrometheusLogicalMetricAgg` and `PrometheusLogicalMetricScan` accordingly. They have the exactly same pattern to match query plan tree as OpenSearch.
2. A bigger problem is the difficulty of transforming from logical to physical when there are 2 `Table`s in query plan. Because only 1 of them has the chance to do the `implement()`. This is a blocker for supporting `INSERT ... SELECT ...` statement or JOIN query. See code below.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```java

@dai-chen

Copy link
Copy Markdown
CollaboratorAuthor

This is not back port to other branch intentionally. Because I think we may need single dedicated branch for Github pages in future.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

Status: Planned work items

Development

Successfully merging this pull request may close these issues.

6 participants

@dai-chen@codecov-commenter@anirudha@penghuo@YANG-DB@Yury-Fridlyand
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Reorganize development docs - #1200

Merged
dai-chen merged 5 commits into
opensearch-project:mainfrom
dai-chen:refactor-dev-docs-rebased
Jan 24, 2023
Merged

Reorganize development docs#1200
dai-chen merged 5 commits into
opensearch-project:mainfrom
dai-chen:refactor-dev-docs-rebased

Conversation

@dai-chen

@dai-chendai-chen commented Dec 20, 2022

Copy link
Copy Markdown
Collaborator

Signed-off-by: Chen Dai daichen@amazon.com

Description

This PR is the first one aimed to improve our dev documentation. Currently there are only a few docs in docs/dev/ folder. Actually there are many valuable info in our old docs or PR description. As initial effort, this PR added an index page reorganize existing docs to categories. Meanwhile I extracted a few PR description for main feature to new docs. Will upload more docs in separate PR.

Please see https://github.com/dai-chen/sql-1/blob/refactor-dev-docs-rebased/docs/dev/index.md -> https://github.com/opensearch-project/sql/blob/main/docs/dev/index.md

Issues Resolved

#1219

Check List

  • New functionality includes testing.
    • All tests pass, including unit test, integration test and doctest
  • New functionality has been documented.
    • New functionality has javadoc added
    • New functionality has user manual doc added
  • Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@dai-chendai-chen added the documentation Improvements or additions to documentation label Dec 20, 2022
@dai-chendai-chen self-assigned this Dec 20, 2022
@codecov-commenter

codecov-commenter commented Dec 23, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1200 (c7e306f) into main (1b58f7d) will increase coverage by 0.03%.
The diff coverage is n/a.

@@ Coverage Diff @@## main #1200 +/- ##
============================================
+ Coverage 98.32% 98.35% +0.03% - Complexity 3550 3609 +59 
============================================
Files 344 344 Lines 8762 8946 +184 Branches 554 569 +15 ============================================
+ Hits 8615 8799 +184 
Misses 142 142 Partials 5 5 
FlagCoverage Δ
sql-engine98.35% <ø> (+0.03%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted FilesCoverage Δ
...c/main/java/org/opensearch/sql/expression/DSL.java100.00% <0.00%> (ø)
...n/java/org/opensearch/sql/utils/DateTimeUtils.java100.00% <0.00%> (ø)
...a/org/opensearch/sql/data/model/ExprDateValue.java100.00% <0.00%> (ø)
...a/org/opensearch/sql/data/model/ExprTimeValue.java100.00% <0.00%> (ø)
.../org/opensearch/sql/data/model/ExprValueUtils.java100.00% <0.00%> (ø)
...g/opensearch/sql/data/model/ExprDatetimeValue.java100.00% <0.00%> (ø)
...pensearch/sql/sql/parser/AstExpressionBuilder.java100.00% <0.00%> (ø)
...pensearch/sql/expression/function/FunctionDSL.java100.00% <0.00%> (ø)
...arch/sql/expression/datetime/DateTimeFunction.java100.00% <0.00%> (ø)
...h/sql/expression/function/BuiltinFunctionName.java100.00% <0.00%> (ø)
... and 2 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@dai-chen
dai-chenforce-pushed the refactor-dev-docs-rebased branch from e31b2c0 to 3ad530dCompareJanuary 3, 2023 19:50
@dai-chendai-chen changed the title Reorganize development documentationAdd table of content page and reorganize dev docsJan 3, 2023
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chen
dai-chenforce-pushed the refactor-dev-docs-rebased branch from 3ad530d to 7b038c4CompareJanuary 13, 2023 22:35
Signed-off-by: Chen Dai <daichen@amazon.com>
Signed-off-by: Chen Dai <daichen@amazon.com>
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chendai-chen changed the title Add table of content page and reorganize dev docsAdd index page and reorganize dev docsJan 13, 2023
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chen
dai-chen marked this pull request as ready for review January 13, 2023 23:47
@dai-chen
dai-chen requested a review from a team as a code ownerJanuary 13, 2023 23:47
@dai-chendai-chen changed the title Add index page and reorganize dev docsReorganize development docsJan 14, 2023
@dai-chen
dai-chen merged commit 1ed9701 into opensearch-project:mainJan 24, 2023
@dai-chen
dai-chen deleted the refactor-dev-docs-rebased branch January 24, 2023 17:38

@YANG-DBYANG-DB left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an excellent direction +1

Comment threaddocs/dev/index.md
+ **CLI**
+ **JDBC Driver**
+ **ODBC Driver**
+ **Query Workbench**

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn’t this a UI feature ?
can we also have a UI section associated to the SQL ?

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, I was planning to add some brief intro or link to their repo. Added here just to give users a complete picture of our eco system.

Comment threaddocs/dev/index.md

# OpenSearch SQL/PPL Engine Development Manual

## Introduction

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we also have tutorial section for playground like exploring

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure, I'm still thinking what's the best way to do this. I have a sub task here for adding tutorial / quick start section: #1219.

Many other projects provide sample data and executable script/jar. User can play around with sample data files via CLI and their file connector. Because our CLI is written in Python, probably we can put some quick start example for playground website.

@dai-chen

Copy link
Copy Markdown
CollaboratorAuthor

This is an excellent direction +1

@YANG-DB I've merged this PR right before your comments. Feel free to comment on #1219 if any idea. I will do it in the future PRs. Thanks!

* *Observability :* The ability to understand whats happening inside your business/application using logs, traces, metrics and other data emitted from the application.


## 3.Tenets

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 3.Tenets
## 3.Tenets

* Changes to PPL Query Language grammar should be simple and easy to onboard.
* Component design should be extensible for supporting new data stores.

## 4.Out of Scope for the Design.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 4.Out of Scope for the Design.
## 4.Out of Scope for the Design

Comment on lines +47 to +49



Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change




### 6.1 Data source representation.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### 6.1 Data source representation.
### 6.1 Data source representation

* *Catalog :* we can describe a catalog as the union of a connector and the underlying instance of the datasource being referred. This gives us flexbility to refer different instances of a similar datastore with the same connector i.e. we can refer data from multiple prometheus instances using prometheus connector. The name for each catalog should be different.

Example Prometheus Catalog Definition
```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json

Comment on lines +109 to +110

* JSON Format

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* JSON Format
  • JSON Format

Comment on lines +124 to +128
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]
```json
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]

``

##### Include NULL and MISSING value in the QueryResult (Issue 1, 2)
The SELECT operator will be translated to PhysicalOpeartor with a list of expression to resolve ExprValue from input data. With the above example, when handling NULL and MISSING value, the expected output data should be as follows.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json


An additional list of Schema is also required to when protocol is JDBC.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json

1. Each data source adds special logical operator and explode the optimizer rule space. For example, Prometheus also has `PrometheusLogicalMetricAgg` and `PrometheusLogicalMetricScan` accordingly. They have the exactly same pattern to match query plan tree as OpenSearch.
2. A bigger problem is the difficulty of transforming from logical to physical when there are 2 `Table`s in query plan. Because only 1 of them has the chance to do the `implement()`. This is a blocker for supporting `INSERT ... SELECT ...` statement or JOIN query. See code below.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```java

@dai-chen

Copy link
Copy Markdown
CollaboratorAuthor

This is not back port to other branch intentionally. Because I think we may need single dedicated branch for Github pages in future.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

Status: Planned work items

Development

Successfully merging this pull request may close these issues.

6 participants

@dai-chen@codecov-commenter@anirudha@penghuo@YANG-DB@Yury-Fridlyand
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Reorganize development docs - #1200

Merged
dai-chen merged 5 commits into
opensearch-project:mainfrom
dai-chen:refactor-dev-docs-rebased
Jan 24, 2023
Merged

Reorganize development docs#1200
dai-chen merged 5 commits into
opensearch-project:mainfrom
dai-chen:refactor-dev-docs-rebased

Conversation

@dai-chen

@dai-chendai-chen commented Dec 20, 2022

Copy link
Copy Markdown
Collaborator

Signed-off-by: Chen Dai daichen@amazon.com

Description

This PR is the first one aimed to improve our dev documentation. Currently there are only a few docs in docs/dev/ folder. Actually there are many valuable info in our old docs or PR description. As initial effort, this PR added an index page reorganize existing docs to categories. Meanwhile I extracted a few PR description for main feature to new docs. Will upload more docs in separate PR.

Please see https://github.com/dai-chen/sql-1/blob/refactor-dev-docs-rebased/docs/dev/index.md -> https://github.com/opensearch-project/sql/blob/main/docs/dev/index.md

Issues Resolved

#1219

Check List

  • New functionality includes testing.
    • All tests pass, including unit test, integration test and doctest
  • New functionality has been documented.
    • New functionality has javadoc added
    • New functionality has user manual doc added
  • Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@dai-chendai-chen added the documentation Improvements or additions to documentation label Dec 20, 2022
@dai-chendai-chen self-assigned this Dec 20, 2022
@codecov-commenter

codecov-commenter commented Dec 23, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1200 (c7e306f) into main (1b58f7d) will increase coverage by 0.03%.
The diff coverage is n/a.

@@ Coverage Diff @@## main #1200 +/- ##
============================================
+ Coverage 98.32% 98.35% +0.03% - Complexity 3550 3609 +59 
============================================
Files 344 344 Lines 8762 8946 +184 Branches 554 569 +15 ============================================
+ Hits 8615 8799 +184 
Misses 142 142 Partials 5 5 
FlagCoverage Δ
sql-engine98.35% <ø> (+0.03%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted FilesCoverage Δ
...c/main/java/org/opensearch/sql/expression/DSL.java100.00% <0.00%> (ø)
...n/java/org/opensearch/sql/utils/DateTimeUtils.java100.00% <0.00%> (ø)
...a/org/opensearch/sql/data/model/ExprDateValue.java100.00% <0.00%> (ø)
...a/org/opensearch/sql/data/model/ExprTimeValue.java100.00% <0.00%> (ø)
.../org/opensearch/sql/data/model/ExprValueUtils.java100.00% <0.00%> (ø)
...g/opensearch/sql/data/model/ExprDatetimeValue.java100.00% <0.00%> (ø)
...pensearch/sql/sql/parser/AstExpressionBuilder.java100.00% <0.00%> (ø)
...pensearch/sql/expression/function/FunctionDSL.java100.00% <0.00%> (ø)
...arch/sql/expression/datetime/DateTimeFunction.java100.00% <0.00%> (ø)
...h/sql/expression/function/BuiltinFunctionName.java100.00% <0.00%> (ø)
... and 2 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@dai-chen
dai-chenforce-pushed the refactor-dev-docs-rebased branch from e31b2c0 to 3ad530dCompareJanuary 3, 2023 19:50
@dai-chendai-chen changed the title Reorganize development documentationAdd table of content page and reorganize dev docsJan 3, 2023
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chen
dai-chenforce-pushed the refactor-dev-docs-rebased branch from 3ad530d to 7b038c4CompareJanuary 13, 2023 22:35
Signed-off-by: Chen Dai <daichen@amazon.com>
Signed-off-by: Chen Dai <daichen@amazon.com>
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chendai-chen changed the title Add table of content page and reorganize dev docsAdd index page and reorganize dev docsJan 13, 2023
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chen
dai-chen marked this pull request as ready for review January 13, 2023 23:47
@dai-chen
dai-chen requested a review from a team as a code ownerJanuary 13, 2023 23:47
@dai-chendai-chen changed the title Add index page and reorganize dev docsReorganize development docsJan 14, 2023
@dai-chen
dai-chen merged commit 1ed9701 into opensearch-project:mainJan 24, 2023
@dai-chen
dai-chen deleted the refactor-dev-docs-rebased branch January 24, 2023 17:38

@YANG-DBYANG-DB left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an excellent direction +1

Comment threaddocs/dev/index.md
+ **CLI**
+ **JDBC Driver**
+ **ODBC Driver**
+ **Query Workbench**

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn’t this a UI feature ?
can we also have a UI section associated to the SQL ?

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, I was planning to add some brief intro or link to their repo. Added here just to give users a complete picture of our eco system.

Comment threaddocs/dev/index.md

# OpenSearch SQL/PPL Engine Development Manual

## Introduction

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we also have tutorial section for playground like exploring

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure, I'm still thinking what's the best way to do this. I have a sub task here for adding tutorial / quick start section: #1219.

Many other projects provide sample data and executable script/jar. User can play around with sample data files via CLI and their file connector. Because our CLI is written in Python, probably we can put some quick start example for playground website.

@dai-chen

Copy link
Copy Markdown
CollaboratorAuthor

This is an excellent direction +1

@YANG-DB I've merged this PR right before your comments. Feel free to comment on #1219 if any idea. I will do it in the future PRs. Thanks!

* *Observability :* The ability to understand whats happening inside your business/application using logs, traces, metrics and other data emitted from the application.


## 3.Tenets

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 3.Tenets
## 3.Tenets

* Changes to PPL Query Language grammar should be simple and easy to onboard.
* Component design should be extensible for supporting new data stores.

## 4.Out of Scope for the Design.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 4.Out of Scope for the Design.
## 4.Out of Scope for the Design

Comment on lines +47 to +49



Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change




### 6.1 Data source representation.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### 6.1 Data source representation.
### 6.1 Data source representation

* *Catalog :* we can describe a catalog as the union of a connector and the underlying instance of the datasource being referred. This gives us flexbility to refer different instances of a similar datastore with the same connector i.e. we can refer data from multiple prometheus instances using prometheus connector. The name for each catalog should be different.

Example Prometheus Catalog Definition
```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json

Comment on lines +109 to +110

* JSON Format

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* JSON Format
  • JSON Format

Comment on lines +124 to +128
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]
```json
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]

``

##### Include NULL and MISSING value in the QueryResult (Issue 1, 2)
The SELECT operator will be translated to PhysicalOpeartor with a list of expression to resolve ExprValue from input data. With the above example, when handling NULL and MISSING value, the expected output data should be as follows.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json


An additional list of Schema is also required to when protocol is JDBC.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json

1. Each data source adds special logical operator and explode the optimizer rule space. For example, Prometheus also has `PrometheusLogicalMetricAgg` and `PrometheusLogicalMetricScan` accordingly. They have the exactly same pattern to match query plan tree as OpenSearch.
2. A bigger problem is the difficulty of transforming from logical to physical when there are 2 `Table`s in query plan. Because only 1 of them has the chance to do the `implement()`. This is a blocker for supporting `INSERT ... SELECT ...` statement or JOIN query. See code below.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```java

@dai-chen

Copy link
Copy Markdown
CollaboratorAuthor

This is not back port to other branch intentionally. Because I think we may need single dedicated branch for Github pages in future.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

Status: Planned work items

Development

Successfully merging this pull request may close these issues.

6 participants

@dai-chen@codecov-commenter@anirudha@penghuo@YANG-DB@Yury-Fridlyand
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Reorganize development docs - #1200

Merged
dai-chen merged 5 commits into
opensearch-project:mainfrom
dai-chen:refactor-dev-docs-rebased
Jan 24, 2023
Merged

Reorganize development docs#1200
dai-chen merged 5 commits into
opensearch-project:mainfrom
dai-chen:refactor-dev-docs-rebased

Conversation

@dai-chen

@dai-chendai-chen commented Dec 20, 2022

Copy link
Copy Markdown
Collaborator

Signed-off-by: Chen Dai daichen@amazon.com

Description

This PR is the first one aimed to improve our dev documentation. Currently there are only a few docs in docs/dev/ folder. Actually there are many valuable info in our old docs or PR description. As initial effort, this PR added an index page reorganize existing docs to categories. Meanwhile I extracted a few PR description for main feature to new docs. Will upload more docs in separate PR.

Please see https://github.com/dai-chen/sql-1/blob/refactor-dev-docs-rebased/docs/dev/index.md -> https://github.com/opensearch-project/sql/blob/main/docs/dev/index.md

Issues Resolved

#1219

Check List

  • New functionality includes testing.
    • All tests pass, including unit test, integration test and doctest
  • New functionality has been documented.
    • New functionality has javadoc added
    • New functionality has user manual doc added
  • Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@dai-chendai-chen added the documentation Improvements or additions to documentation label Dec 20, 2022
@dai-chendai-chen self-assigned this Dec 20, 2022
@codecov-commenter

codecov-commenter commented Dec 23, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1200 (c7e306f) into main (1b58f7d) will increase coverage by 0.03%.
The diff coverage is n/a.

@@ Coverage Diff @@## main #1200 +/- ##
============================================
+ Coverage 98.32% 98.35% +0.03% - Complexity 3550 3609 +59 
============================================
Files 344 344 Lines 8762 8946 +184 Branches 554 569 +15 ============================================
+ Hits 8615 8799 +184 
Misses 142 142 Partials 5 5 
FlagCoverage Δ
sql-engine98.35% <ø> (+0.03%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted FilesCoverage Δ
...c/main/java/org/opensearch/sql/expression/DSL.java100.00% <0.00%> (ø)
...n/java/org/opensearch/sql/utils/DateTimeUtils.java100.00% <0.00%> (ø)
...a/org/opensearch/sql/data/model/ExprDateValue.java100.00% <0.00%> (ø)
...a/org/opensearch/sql/data/model/ExprTimeValue.java100.00% <0.00%> (ø)
.../org/opensearch/sql/data/model/ExprValueUtils.java100.00% <0.00%> (ø)
...g/opensearch/sql/data/model/ExprDatetimeValue.java100.00% <0.00%> (ø)
...pensearch/sql/sql/parser/AstExpressionBuilder.java100.00% <0.00%> (ø)
...pensearch/sql/expression/function/FunctionDSL.java100.00% <0.00%> (ø)
...arch/sql/expression/datetime/DateTimeFunction.java100.00% <0.00%> (ø)
...h/sql/expression/function/BuiltinFunctionName.java100.00% <0.00%> (ø)
... and 2 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@dai-chen
dai-chenforce-pushed the refactor-dev-docs-rebased branch from e31b2c0 to 3ad530dCompareJanuary 3, 2023 19:50
@dai-chendai-chen changed the title Reorganize development documentationAdd table of content page and reorganize dev docsJan 3, 2023
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chen
dai-chenforce-pushed the refactor-dev-docs-rebased branch from 3ad530d to 7b038c4CompareJanuary 13, 2023 22:35
Signed-off-by: Chen Dai <daichen@amazon.com>
Signed-off-by: Chen Dai <daichen@amazon.com>
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chendai-chen changed the title Add table of content page and reorganize dev docsAdd index page and reorganize dev docsJan 13, 2023
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chen
dai-chen marked this pull request as ready for review January 13, 2023 23:47
@dai-chen
dai-chen requested a review from a team as a code ownerJanuary 13, 2023 23:47
@dai-chendai-chen changed the title Add index page and reorganize dev docsReorganize development docsJan 14, 2023
@dai-chen
dai-chen merged commit 1ed9701 into opensearch-project:mainJan 24, 2023
@dai-chen
dai-chen deleted the refactor-dev-docs-rebased branch January 24, 2023 17:38

@YANG-DBYANG-DB left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an excellent direction +1

Comment threaddocs/dev/index.md
+ **CLI**
+ **JDBC Driver**
+ **ODBC Driver**
+ **Query Workbench**

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn’t this a UI feature ?
can we also have a UI section associated to the SQL ?

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, I was planning to add some brief intro or link to their repo. Added here just to give users a complete picture of our eco system.

Comment threaddocs/dev/index.md

# OpenSearch SQL/PPL Engine Development Manual

## Introduction

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we also have tutorial section for playground like exploring

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure, I'm still thinking what's the best way to do this. I have a sub task here for adding tutorial / quick start section: #1219.

Many other projects provide sample data and executable script/jar. User can play around with sample data files via CLI and their file connector. Because our CLI is written in Python, probably we can put some quick start example for playground website.

@dai-chen

Copy link
Copy Markdown
CollaboratorAuthor

This is an excellent direction +1

@YANG-DB I've merged this PR right before your comments. Feel free to comment on #1219 if any idea. I will do it in the future PRs. Thanks!

* *Observability :* The ability to understand whats happening inside your business/application using logs, traces, metrics and other data emitted from the application.


## 3.Tenets

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 3.Tenets
## 3.Tenets

* Changes to PPL Query Language grammar should be simple and easy to onboard.
* Component design should be extensible for supporting new data stores.

## 4.Out of Scope for the Design.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 4.Out of Scope for the Design.
## 4.Out of Scope for the Design

Comment on lines +47 to +49



Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change




### 6.1 Data source representation.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### 6.1 Data source representation.
### 6.1 Data source representation

* *Catalog :* we can describe a catalog as the union of a connector and the underlying instance of the datasource being referred. This gives us flexbility to refer different instances of a similar datastore with the same connector i.e. we can refer data from multiple prometheus instances using prometheus connector. The name for each catalog should be different.

Example Prometheus Catalog Definition
```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json

Comment on lines +109 to +110

* JSON Format

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* JSON Format
  • JSON Format

Comment on lines +124 to +128
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]
```json
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]

``

##### Include NULL and MISSING value in the QueryResult (Issue 1, 2)
The SELECT operator will be translated to PhysicalOpeartor with a list of expression to resolve ExprValue from input data. With the above example, when handling NULL and MISSING value, the expected output data should be as follows.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json


An additional list of Schema is also required to when protocol is JDBC.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json

1. Each data source adds special logical operator and explode the optimizer rule space. For example, Prometheus also has `PrometheusLogicalMetricAgg` and `PrometheusLogicalMetricScan` accordingly. They have the exactly same pattern to match query plan tree as OpenSearch.
2. A bigger problem is the difficulty of transforming from logical to physical when there are 2 `Table`s in query plan. Because only 1 of them has the chance to do the `implement()`. This is a blocker for supporting `INSERT ... SELECT ...` statement or JOIN query. See code below.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```java

@dai-chen

Copy link
Copy Markdown
CollaboratorAuthor

This is not back port to other branch intentionally. Because I think we may need single dedicated branch for Github pages in future.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

Status: Planned work items

Development

Successfully merging this pull request may close these issues.

6 participants

@dai-chen@codecov-commenter@anirudha@penghuo@YANG-DB@Yury-Fridlyand
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Reorganize development docs - #1200

Merged
dai-chen merged 5 commits into
opensearch-project:mainfrom
dai-chen:refactor-dev-docs-rebased
Jan 24, 2023
Merged

Reorganize development docs#1200
dai-chen merged 5 commits into
opensearch-project:mainfrom
dai-chen:refactor-dev-docs-rebased

Conversation

@dai-chen

@dai-chendai-chen commented Dec 20, 2022

Copy link
Copy Markdown
Collaborator

Signed-off-by: Chen Dai daichen@amazon.com

Description

This PR is the first one aimed to improve our dev documentation. Currently there are only a few docs in docs/dev/ folder. Actually there are many valuable info in our old docs or PR description. As initial effort, this PR added an index page reorganize existing docs to categories. Meanwhile I extracted a few PR description for main feature to new docs. Will upload more docs in separate PR.

Please see https://github.com/dai-chen/sql-1/blob/refactor-dev-docs-rebased/docs/dev/index.md -> https://github.com/opensearch-project/sql/blob/main/docs/dev/index.md

Issues Resolved

#1219

Check List

  • New functionality includes testing.
    • All tests pass, including unit test, integration test and doctest
  • New functionality has been documented.
    • New functionality has javadoc added
    • New functionality has user manual doc added
  • Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@dai-chendai-chen added the documentation Improvements or additions to documentation label Dec 20, 2022
@dai-chendai-chen self-assigned this Dec 20, 2022
@codecov-commenter

codecov-commenter commented Dec 23, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1200 (c7e306f) into main (1b58f7d) will increase coverage by 0.03%.
The diff coverage is n/a.

@@ Coverage Diff @@## main #1200 +/- ##
============================================
+ Coverage 98.32% 98.35% +0.03% - Complexity 3550 3609 +59 
============================================
Files 344 344 Lines 8762 8946 +184 Branches 554 569 +15 ============================================
+ Hits 8615 8799 +184 
Misses 142 142 Partials 5 5 
FlagCoverage Δ
sql-engine98.35% <ø> (+0.03%)⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted FilesCoverage Δ
...c/main/java/org/opensearch/sql/expression/DSL.java100.00% <0.00%> (ø)
...n/java/org/opensearch/sql/utils/DateTimeUtils.java100.00% <0.00%> (ø)
...a/org/opensearch/sql/data/model/ExprDateValue.java100.00% <0.00%> (ø)
...a/org/opensearch/sql/data/model/ExprTimeValue.java100.00% <0.00%> (ø)
.../org/opensearch/sql/data/model/ExprValueUtils.java100.00% <0.00%> (ø)
...g/opensearch/sql/data/model/ExprDatetimeValue.java100.00% <0.00%> (ø)
...pensearch/sql/sql/parser/AstExpressionBuilder.java100.00% <0.00%> (ø)
...pensearch/sql/expression/function/FunctionDSL.java100.00% <0.00%> (ø)
...arch/sql/expression/datetime/DateTimeFunction.java100.00% <0.00%> (ø)
...h/sql/expression/function/BuiltinFunctionName.java100.00% <0.00%> (ø)
... and 2 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@dai-chen
dai-chenforce-pushed the refactor-dev-docs-rebased branch from e31b2c0 to 3ad530dCompareJanuary 3, 2023 19:50
@dai-chendai-chen changed the title Reorganize development documentationAdd table of content page and reorganize dev docsJan 3, 2023
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chen
dai-chenforce-pushed the refactor-dev-docs-rebased branch from 3ad530d to 7b038c4CompareJanuary 13, 2023 22:35
Signed-off-by: Chen Dai <daichen@amazon.com>
Signed-off-by: Chen Dai <daichen@amazon.com>
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chendai-chen changed the title Add table of content page and reorganize dev docsAdd index page and reorganize dev docsJan 13, 2023
Signed-off-by: Chen Dai <daichen@amazon.com>
@dai-chen
dai-chen marked this pull request as ready for review January 13, 2023 23:47
@dai-chen
dai-chen requested a review from a team as a code ownerJanuary 13, 2023 23:47
@dai-chendai-chen changed the title Add index page and reorganize dev docsReorganize development docsJan 14, 2023
@dai-chen
dai-chen merged commit 1ed9701 into opensearch-project:mainJan 24, 2023
@dai-chen
dai-chen deleted the refactor-dev-docs-rebased branch January 24, 2023 17:38

@YANG-DBYANG-DB left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an excellent direction +1

Comment threaddocs/dev/index.md
+ **CLI**
+ **JDBC Driver**
+ **ODBC Driver**
+ **Query Workbench**

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn’t this a UI feature ?
can we also have a UI section associated to the SQL ?

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, I was planning to add some brief intro or link to their repo. Added here just to give users a complete picture of our eco system.

Comment threaddocs/dev/index.md

# OpenSearch SQL/PPL Engine Development Manual

## Introduction

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we also have tutorial section for playground like exploring

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure, I'm still thinking what's the best way to do this. I have a sub task here for adding tutorial / quick start section: #1219.

Many other projects provide sample data and executable script/jar. User can play around with sample data files via CLI and their file connector. Because our CLI is written in Python, probably we can put some quick start example for playground website.

@dai-chen

Copy link
Copy Markdown
CollaboratorAuthor

This is an excellent direction +1

@YANG-DB I've merged this PR right before your comments. Feel free to comment on #1219 if any idea. I will do it in the future PRs. Thanks!

* *Observability :* The ability to understand whats happening inside your business/application using logs, traces, metrics and other data emitted from the application.


## 3.Tenets

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 3.Tenets
## 3.Tenets

* Changes to PPL Query Language grammar should be simple and easy to onboard.
* Component design should be extensible for supporting new data stores.

## 4.Out of Scope for the Design.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 4.Out of Scope for the Design.
## 4.Out of Scope for the Design

Comment on lines +47 to +49



Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change




### 6.1 Data source representation.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### 6.1 Data source representation.
### 6.1 Data source representation

* *Catalog :* we can describe a catalog as the union of a connector and the underlying instance of the datasource being referred. This gives us flexbility to refer different instances of a similar datastore with the same connector i.e. we can refer data from multiple prometheus instances using prometheus connector. The name for each catalog should be different.

Example Prometheus Catalog Definition
```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json

Comment on lines +109 to +110

* JSON Format

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* JSON Format
  • JSON Format

Comment on lines +124 to +128
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]
```json
[
{"age": ExprIntegerValue(1), "account_number": ExprIntegerValue(1)},
{"age": ExprNullValue(), "account_number": ExprIntegerValue(2)},
{"account_number": ExprIntegerValue(3)}
]

``

##### Include NULL and MISSING value in the QueryResult (Issue 1, 2)
The SELECT operator will be translated to PhysicalOpeartor with a list of expression to resolve ExprValue from input data. With the above example, when handling NULL and MISSING value, the expected output data should be as follows.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json


An additional list of Schema is also required to when protocol is JDBC.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```json

1. Each data source adds special logical operator and explode the optimizer rule space. For example, Prometheus also has `PrometheusLogicalMetricAgg` and `PrometheusLogicalMetricScan` accordingly. They have the exactly same pattern to match query plan tree as OpenSearch.
2. A bigger problem is the difficulty of transforming from logical to physical when there are 2 `Table`s in query plan. Because only 1 of them has the chance to do the `implement()`. This is a blocker for supporting `INSERT ... SELECT ...` statement or JOIN query. See code below.

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```
```java

@dai-chen

Copy link
Copy Markdown
CollaboratorAuthor

This is not back port to other branch intentionally. Because I think we may need single dedicated branch for Github pages in future.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

Status: Planned work items

Development

Successfully merging this pull request may close these issues.

6 participants

@dai-chen@codecov-commenter@anirudha@penghuo@YANG-DB@Yury-Fridlyand