[Doc] Enable doctest with Calcite - #4379

Merged
Swiddis merged 13 commits into
opensearch-project:mainfrom
LantaoJin:pr/issues/4314_test
Sep 29, 2025
Merged

[Doc] Enable doctest with Calcite#4379
Swiddis merged 13 commits into
opensearch-project:mainfrom
LantaoJin:pr/issues/4314_test

Conversation

@LantaoJin

@LantaoJinLantaoJin commented Sep 25, 2025

Copy link
Copy Markdown
Member

Description

Followup of #4372

Related Issues

Resolves #[Issue number to be closed when this PR is merged]

Check List

  • New functionality includes testing.
  • New functionality has been documented.
  • New functionality has javadoc added.
  • New functionality has a user manual doc added.
  • New PPL command checklist all confirmed.
  • API changes companion pull request created.
  • Commits are signed per the DCO using --signoff or -s.
  • Public documentation issue/PR created.

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.

Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
@LantaoJinLantaoJin changed the title Pr/issues/4314 test[Doc] Enable doctest with CalciteSep 25, 2025
Signed-off-by: Lantao Jin <ltjin@amazon.com>
@LantaoJinLantaoJin added the documentation Improvements or additions to documentation label Sep 25, 2025
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
| FLOOR(282474973688888.022) | FLOOR(9223372036854775807.022) | FLOOR(9223372036854775807.0000001) |
|----------------------------+--------------------------------+------------------------------------|
| 282474973688888 | 9223372036854775807 | 9223372036854775807 |
| 282474973688888.0| 9.223372036854776e+18| 9.223372036854776e+18 |

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

For the double values which are out of the double's precision. Keep the behavior same as Java's Math.floor(double) and Splunk's floor() math function.

Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
] as b
| stats avg(salary) by span(age, 10) as age_span, b.country;
fetched rows / total rows = 5/5
PPL> source = state_country as a | where country = 'USA' OR country = 'England' | left join ON a.name = b.name [ source = occupation | where salary > 0 | fields name, country, salary | sort salary | head 3 ] as b | stats avg(salary) by span(age, 10) as age_span, b.country;

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

not sure why this query failed in linux/doctest only. I cannot reproduce in local and IT. Will keep the PPL> to avoid failure.

 ppl_cmd.process("source = state_country as a | where country = 'USA' OR country = 'England' | left join ON a.name = b.name [ source = occupation | where salary > 0 | fields name, country, salary | sort salary | head 3 ] as b | stats avg(salary) by span(age, 10) as age_span, b.country")Expected:
fetched rows / total rows = 3/3
+-------------+----------+-----------+
| avg(salary) | age_span | b.country |
|-------------+----------+-----------|
| null | 40 | null |
| 70000.0 | 30 | USA |
| 100000.0 | 70 | England |
+-------------+----------+-----------+
Got:
fetched rows / total rows = 2/2
+-------------+----------+-----------+
| avg(salary) | age_span | b.country |
|-------------+----------+-----------|
| 70000.0 | 30 | USA |
| 100000.0 | 70 | England |
+-------------+----------+-----------+
----------------------------------------------------------------------

Comment threaddocs/category.json
Comment on lines 10 to +12
"user/ppl/cmd/grok.rst",
"user/ppl/cmd/head.rst",
"user/ppl/cmd/parse.rst",
"user/ppl/cmd/patterns.rst",
"user/ppl/cmd/rare.rst",
"user/ppl/cmd/search.rst",
"user/ppl/cmd/sort.rst",
"user/ppl/cmd/syntax.rst",
"user/ppl/cmd/trendline.rst",
"user/ppl/cmd/top.rst",
"user/ppl/cmd/where.rst",
"user/ppl/cmd/join.rst",
"user/ppl/cmd/lookup.rst",
"user/ppl/cmd/subquery.rst",
"user/ppl/general/identifiers.rst",
"user/ppl/general/datatypes.rst",
"user/ppl/functions/datetime.rst",
"user/ppl/functions/expressions.rst",
"user/ppl/functions/ip.rst",
"user/ppl/functions/json.rst",
"user/ppl/functions/math.rst",
"user/ppl/functions/relevance.rst",
"user/ppl/functions/string.rst"
"user/ppl/cmd/patterns.rst"

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

I see the #4380 closed. but grok, parse, patterns are still not able to 100% match the result of doctest in v2. @songkant-aws can you fix it or link an issue. Or it just needs to update the doc.

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.

Reopen #4380

| 2024-07-01 00:00:00 | web-01 | 2 |
| 2024-07-01 00:00:00 | web-02 | 2 |
+---------------------+--------+-------+
os> source=events | timechart span=1h count() by host

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@selsong , when I change PPL> to os> in timechart.rst. I found many results cannot not match the expected results added in doc. timechart command is a Calcite enabled only command, which means the results in this file shouldn't be impacted by the action of setting calcite enabled as default. Please check why the original expected results cannot match the actual ones. cc @penghuo

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.

Add issue to track. #4409

@@ -145,9 +141,7 @@ This example calculates the average CPU usage for each minute without grouping b
PPL query::

PPL> source=events | timechart span=1m avg(cpu_usage)

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@selsong there are many tests which cannot run in timechart.rst, see the queries starting with PPL>. cc @penghuo

@Swiddis
Swiddis merged commit 9143a44 into opensearch-project:mainSep 29, 2025
51 of 52 checks passed
@opensearch-trigger-bot

Copy link
Copy Markdown
Contributor

The backport to 2.19-dev failed:

The process '/usr/bin/git' failed with exit code 128

To backport manually, run these commands in your terminal:

# Navigate to the root of your repositorycd$(git rev-parse --show-toplevel)# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/sql/backport-2.19-dev 2.19-dev
# Navigate to the new working treepushd ../.worktrees/sql/backport-2.19-dev
# Create a new branch
git switch --create backport/backport-4379-to-2.19-dev
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 9143a449f38bf08470ecc25826c474d8fd38d6c8
# Push it to GitHub
git push --set-upstream origin backport/backport-4379-to-2.19-dev
# Go back to the original working treepopd# Delete the working tree
git worktree remove ../.worktrees/sql/backport-2.19-dev

Then, create a pull request where the base branch is 2.19-dev and the compare/head branch is backport/backport-4379-to-2.19-dev.

penghuo pushed a commit to penghuo/os-sql that referenced this pull request Oct 7, 2025
penghuo pushed a commit to penghuo/os-sql that referenced this pull request Oct 7, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Peng Huo <penghuo@gmail.com>
LantaoJin added a commit to LantaoJin/search-plugins-sql that referenced this pull request Oct 9, 2025
@LantaoJinLantaoJin added the backport-manually Filed a PR to backport manually. label Oct 9, 2025
LantaoJin added a commit to LantaoJin/search-plugins-sql that referenced this pull request Oct 9, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Lantao Jin <ltjin@amazon.com>
LantaoJin added a commit that referenced this pull request Oct 9, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Lantao Jin <ltjin@amazon.com>
asifabashar added a commit to asifabashar/sql that referenced this pull request Oct 10, 2025
* main-apple: (218 commits)
Add ignorePrometheus Flag for integTest and docTest (opensearch-project#4442)
Create fab-radar.yml
PPL `fillnull` command enhancement (opensearch-project#4421)
reverting to _doc + _id (opensearch-project#4435)
Support `multisearch` command in calcite (opensearch-project#4332)
Add 3.3 release notes (opensearch-project#4422) (opensearch-project#4423)
[SQL/PPL] Fix the `count(*)` and `dc(field)` to be capped at MAX_INTEGER opensearch-project#4416 (opensearch-project#4418)
Change the default search sort tiebreaker to `_shard_doc` for PIT search (opensearch-project#4378)
[Enhancement] Add error handling for known limitation of sql `JOIN` (opensearch-project#4344)
Bugfix: SQL type mapping for legacy JDBC output (opensearch-project#3613)
Version bump: 3.3 (opensearch-project#4417)
Add max/min eval functions (opensearch-project#4333)
Support time modifiers in search command (opensearch-project#4224)
Fix numbered token bug and make it optional output in patterns command (opensearch-project#4402)
refactor span (opensearch-project#4334)
Move release notes categories (opensearch-project#3818)
[Doc] Enable doctest with Calcite (opensearch-project#4379)
Mod function should return decimal instead of float when handle the operands are decimal literal (opensearch-project#4407)
Scale of decimal literal should always be positive in Calcite (opensearch-project#4401)
Enable Calcite by default and implicit fallback the unsupported commands (opensearch-project#4372)
...
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport 2.19-devbackport-failedbackport-manuallyFiled a PR to backport manually.documentationImprovements or additions to documentationv3.3.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@LantaoJin@penghuo@Swiddis
, '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

[Doc] Enable doctest with Calcite - #4379

Merged
Swiddis merged 13 commits into
opensearch-project:mainfrom
LantaoJin:pr/issues/4314_test
Sep 29, 2025
Merged

[Doc] Enable doctest with Calcite#4379
Swiddis merged 13 commits into
opensearch-project:mainfrom
LantaoJin:pr/issues/4314_test

Conversation

@LantaoJin

@LantaoJinLantaoJin commented Sep 25, 2025

Copy link
Copy Markdown
Member

Description

Followup of #4372

Related Issues

Resolves #[Issue number to be closed when this PR is merged]

Check List

  • New functionality includes testing.
  • New functionality has been documented.
  • New functionality has javadoc added.
  • New functionality has a user manual doc added.
  • New PPL command checklist all confirmed.
  • API changes companion pull request created.
  • Commits are signed per the DCO using --signoff or -s.
  • Public documentation issue/PR created.

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.

Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
@LantaoJinLantaoJin changed the title Pr/issues/4314 test[Doc] Enable doctest with CalciteSep 25, 2025
Signed-off-by: Lantao Jin <ltjin@amazon.com>
@LantaoJinLantaoJin added the documentation Improvements or additions to documentation label Sep 25, 2025
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
| FLOOR(282474973688888.022) | FLOOR(9223372036854775807.022) | FLOOR(9223372036854775807.0000001) |
|----------------------------+--------------------------------+------------------------------------|
| 282474973688888 | 9223372036854775807 | 9223372036854775807 |
| 282474973688888.0| 9.223372036854776e+18| 9.223372036854776e+18 |

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

For the double values which are out of the double's precision. Keep the behavior same as Java's Math.floor(double) and Splunk's floor() math function.

Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
] as b
| stats avg(salary) by span(age, 10) as age_span, b.country;
fetched rows / total rows = 5/5
PPL> source = state_country as a | where country = 'USA' OR country = 'England' | left join ON a.name = b.name [ source = occupation | where salary > 0 | fields name, country, salary | sort salary | head 3 ] as b | stats avg(salary) by span(age, 10) as age_span, b.country;

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

not sure why this query failed in linux/doctest only. I cannot reproduce in local and IT. Will keep the PPL> to avoid failure.

 ppl_cmd.process("source = state_country as a | where country = 'USA' OR country = 'England' | left join ON a.name = b.name [ source = occupation | where salary > 0 | fields name, country, salary | sort salary | head 3 ] as b | stats avg(salary) by span(age, 10) as age_span, b.country")Expected:
fetched rows / total rows = 3/3
+-------------+----------+-----------+
| avg(salary) | age_span | b.country |
|-------------+----------+-----------|
| null | 40 | null |
| 70000.0 | 30 | USA |
| 100000.0 | 70 | England |
+-------------+----------+-----------+
Got:
fetched rows / total rows = 2/2
+-------------+----------+-----------+
| avg(salary) | age_span | b.country |
|-------------+----------+-----------|
| 70000.0 | 30 | USA |
| 100000.0 | 70 | England |
+-------------+----------+-----------+
----------------------------------------------------------------------

Comment threaddocs/category.json
Comment on lines 10 to +12
"user/ppl/cmd/grok.rst",
"user/ppl/cmd/head.rst",
"user/ppl/cmd/parse.rst",
"user/ppl/cmd/patterns.rst",
"user/ppl/cmd/rare.rst",
"user/ppl/cmd/search.rst",
"user/ppl/cmd/sort.rst",
"user/ppl/cmd/syntax.rst",
"user/ppl/cmd/trendline.rst",
"user/ppl/cmd/top.rst",
"user/ppl/cmd/where.rst",
"user/ppl/cmd/join.rst",
"user/ppl/cmd/lookup.rst",
"user/ppl/cmd/subquery.rst",
"user/ppl/general/identifiers.rst",
"user/ppl/general/datatypes.rst",
"user/ppl/functions/datetime.rst",
"user/ppl/functions/expressions.rst",
"user/ppl/functions/ip.rst",
"user/ppl/functions/json.rst",
"user/ppl/functions/math.rst",
"user/ppl/functions/relevance.rst",
"user/ppl/functions/string.rst"
"user/ppl/cmd/patterns.rst"

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

I see the #4380 closed. but grok, parse, patterns are still not able to 100% match the result of doctest in v2. @songkant-aws can you fix it or link an issue. Or it just needs to update the doc.

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.

Reopen #4380

| 2024-07-01 00:00:00 | web-01 | 2 |
| 2024-07-01 00:00:00 | web-02 | 2 |
+---------------------+--------+-------+
os> source=events | timechart span=1h count() by host

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@selsong , when I change PPL> to os> in timechart.rst. I found many results cannot not match the expected results added in doc. timechart command is a Calcite enabled only command, which means the results in this file shouldn't be impacted by the action of setting calcite enabled as default. Please check why the original expected results cannot match the actual ones. cc @penghuo

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.

Add issue to track. #4409

@@ -145,9 +141,7 @@ This example calculates the average CPU usage for each minute without grouping b
PPL query::

PPL> source=events | timechart span=1m avg(cpu_usage)

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@selsong there are many tests which cannot run in timechart.rst, see the queries starting with PPL>. cc @penghuo

@Swiddis
Swiddis merged commit 9143a44 into opensearch-project:mainSep 29, 2025
51 of 52 checks passed
@opensearch-trigger-bot

Copy link
Copy Markdown
Contributor

The backport to 2.19-dev failed:

The process '/usr/bin/git' failed with exit code 128

To backport manually, run these commands in your terminal:

# Navigate to the root of your repositorycd$(git rev-parse --show-toplevel)# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/sql/backport-2.19-dev 2.19-dev
# Navigate to the new working treepushd ../.worktrees/sql/backport-2.19-dev
# Create a new branch
git switch --create backport/backport-4379-to-2.19-dev
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 9143a449f38bf08470ecc25826c474d8fd38d6c8
# Push it to GitHub
git push --set-upstream origin backport/backport-4379-to-2.19-dev
# Go back to the original working treepopd# Delete the working tree
git worktree remove ../.worktrees/sql/backport-2.19-dev

Then, create a pull request where the base branch is 2.19-dev and the compare/head branch is backport/backport-4379-to-2.19-dev.

penghuo pushed a commit to penghuo/os-sql that referenced this pull request Oct 7, 2025
penghuo pushed a commit to penghuo/os-sql that referenced this pull request Oct 7, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Peng Huo <penghuo@gmail.com>
LantaoJin added a commit to LantaoJin/search-plugins-sql that referenced this pull request Oct 9, 2025
@LantaoJinLantaoJin added the backport-manually Filed a PR to backport manually. label Oct 9, 2025
LantaoJin added a commit to LantaoJin/search-plugins-sql that referenced this pull request Oct 9, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Lantao Jin <ltjin@amazon.com>
LantaoJin added a commit that referenced this pull request Oct 9, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Lantao Jin <ltjin@amazon.com>
asifabashar added a commit to asifabashar/sql that referenced this pull request Oct 10, 2025
* main-apple: (218 commits)
Add ignorePrometheus Flag for integTest and docTest (opensearch-project#4442)
Create fab-radar.yml
PPL `fillnull` command enhancement (opensearch-project#4421)
reverting to _doc + _id (opensearch-project#4435)
Support `multisearch` command in calcite (opensearch-project#4332)
Add 3.3 release notes (opensearch-project#4422) (opensearch-project#4423)
[SQL/PPL] Fix the `count(*)` and `dc(field)` to be capped at MAX_INTEGER opensearch-project#4416 (opensearch-project#4418)
Change the default search sort tiebreaker to `_shard_doc` for PIT search (opensearch-project#4378)
[Enhancement] Add error handling for known limitation of sql `JOIN` (opensearch-project#4344)
Bugfix: SQL type mapping for legacy JDBC output (opensearch-project#3613)
Version bump: 3.3 (opensearch-project#4417)
Add max/min eval functions (opensearch-project#4333)
Support time modifiers in search command (opensearch-project#4224)
Fix numbered token bug and make it optional output in patterns command (opensearch-project#4402)
refactor span (opensearch-project#4334)
Move release notes categories (opensearch-project#3818)
[Doc] Enable doctest with Calcite (opensearch-project#4379)
Mod function should return decimal instead of float when handle the operands are decimal literal (opensearch-project#4407)
Scale of decimal literal should always be positive in Calcite (opensearch-project#4401)
Enable Calcite by default and implicit fallback the unsupported commands (opensearch-project#4372)
...
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport 2.19-devbackport-failedbackport-manuallyFiled a PR to backport manually.documentationImprovements or additions to documentationv3.3.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@LantaoJin@penghuo@Swiddis
, '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

[Doc] Enable doctest with Calcite - #4379

Merged
Swiddis merged 13 commits into
opensearch-project:mainfrom
LantaoJin:pr/issues/4314_test
Sep 29, 2025
Merged

[Doc] Enable doctest with Calcite#4379
Swiddis merged 13 commits into
opensearch-project:mainfrom
LantaoJin:pr/issues/4314_test

Conversation

@LantaoJin

@LantaoJinLantaoJin commented Sep 25, 2025

Copy link
Copy Markdown
Member

Description

Followup of #4372

Related Issues

Resolves #[Issue number to be closed when this PR is merged]

Check List

  • New functionality includes testing.
  • New functionality has been documented.
  • New functionality has javadoc added.
  • New functionality has a user manual doc added.
  • New PPL command checklist all confirmed.
  • API changes companion pull request created.
  • Commits are signed per the DCO using --signoff or -s.
  • Public documentation issue/PR created.

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.

Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
@LantaoJinLantaoJin changed the title Pr/issues/4314 test[Doc] Enable doctest with CalciteSep 25, 2025
Signed-off-by: Lantao Jin <ltjin@amazon.com>
@LantaoJinLantaoJin added the documentation Improvements or additions to documentation label Sep 25, 2025
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
| FLOOR(282474973688888.022) | FLOOR(9223372036854775807.022) | FLOOR(9223372036854775807.0000001) |
|----------------------------+--------------------------------+------------------------------------|
| 282474973688888 | 9223372036854775807 | 9223372036854775807 |
| 282474973688888.0| 9.223372036854776e+18| 9.223372036854776e+18 |

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

For the double values which are out of the double's precision. Keep the behavior same as Java's Math.floor(double) and Splunk's floor() math function.

Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
] as b
| stats avg(salary) by span(age, 10) as age_span, b.country;
fetched rows / total rows = 5/5
PPL> source = state_country as a | where country = 'USA' OR country = 'England' | left join ON a.name = b.name [ source = occupation | where salary > 0 | fields name, country, salary | sort salary | head 3 ] as b | stats avg(salary) by span(age, 10) as age_span, b.country;

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

not sure why this query failed in linux/doctest only. I cannot reproduce in local and IT. Will keep the PPL> to avoid failure.

 ppl_cmd.process("source = state_country as a | where country = 'USA' OR country = 'England' | left join ON a.name = b.name [ source = occupation | where salary > 0 | fields name, country, salary | sort salary | head 3 ] as b | stats avg(salary) by span(age, 10) as age_span, b.country")Expected:
fetched rows / total rows = 3/3
+-------------+----------+-----------+
| avg(salary) | age_span | b.country |
|-------------+----------+-----------|
| null | 40 | null |
| 70000.0 | 30 | USA |
| 100000.0 | 70 | England |
+-------------+----------+-----------+
Got:
fetched rows / total rows = 2/2
+-------------+----------+-----------+
| avg(salary) | age_span | b.country |
|-------------+----------+-----------|
| 70000.0 | 30 | USA |
| 100000.0 | 70 | England |
+-------------+----------+-----------+
----------------------------------------------------------------------

Comment threaddocs/category.json
Comment on lines 10 to +12
"user/ppl/cmd/grok.rst",
"user/ppl/cmd/head.rst",
"user/ppl/cmd/parse.rst",
"user/ppl/cmd/patterns.rst",
"user/ppl/cmd/rare.rst",
"user/ppl/cmd/search.rst",
"user/ppl/cmd/sort.rst",
"user/ppl/cmd/syntax.rst",
"user/ppl/cmd/trendline.rst",
"user/ppl/cmd/top.rst",
"user/ppl/cmd/where.rst",
"user/ppl/cmd/join.rst",
"user/ppl/cmd/lookup.rst",
"user/ppl/cmd/subquery.rst",
"user/ppl/general/identifiers.rst",
"user/ppl/general/datatypes.rst",
"user/ppl/functions/datetime.rst",
"user/ppl/functions/expressions.rst",
"user/ppl/functions/ip.rst",
"user/ppl/functions/json.rst",
"user/ppl/functions/math.rst",
"user/ppl/functions/relevance.rst",
"user/ppl/functions/string.rst"
"user/ppl/cmd/patterns.rst"

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

I see the #4380 closed. but grok, parse, patterns are still not able to 100% match the result of doctest in v2. @songkant-aws can you fix it or link an issue. Or it just needs to update the doc.

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.

Reopen #4380

| 2024-07-01 00:00:00 | web-01 | 2 |
| 2024-07-01 00:00:00 | web-02 | 2 |
+---------------------+--------+-------+
os> source=events | timechart span=1h count() by host

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@selsong , when I change PPL> to os> in timechart.rst. I found many results cannot not match the expected results added in doc. timechart command is a Calcite enabled only command, which means the results in this file shouldn't be impacted by the action of setting calcite enabled as default. Please check why the original expected results cannot match the actual ones. cc @penghuo

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.

Add issue to track. #4409

@@ -145,9 +141,7 @@ This example calculates the average CPU usage for each minute without grouping b
PPL query::

PPL> source=events | timechart span=1m avg(cpu_usage)

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@selsong there are many tests which cannot run in timechart.rst, see the queries starting with PPL>. cc @penghuo

@Swiddis
Swiddis merged commit 9143a44 into opensearch-project:mainSep 29, 2025
51 of 52 checks passed
@opensearch-trigger-bot

Copy link
Copy Markdown
Contributor

The backport to 2.19-dev failed:

The process '/usr/bin/git' failed with exit code 128

To backport manually, run these commands in your terminal:

# Navigate to the root of your repositorycd$(git rev-parse --show-toplevel)# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/sql/backport-2.19-dev 2.19-dev
# Navigate to the new working treepushd ../.worktrees/sql/backport-2.19-dev
# Create a new branch
git switch --create backport/backport-4379-to-2.19-dev
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 9143a449f38bf08470ecc25826c474d8fd38d6c8
# Push it to GitHub
git push --set-upstream origin backport/backport-4379-to-2.19-dev
# Go back to the original working treepopd# Delete the working tree
git worktree remove ../.worktrees/sql/backport-2.19-dev

Then, create a pull request where the base branch is 2.19-dev and the compare/head branch is backport/backport-4379-to-2.19-dev.

penghuo pushed a commit to penghuo/os-sql that referenced this pull request Oct 7, 2025
penghuo pushed a commit to penghuo/os-sql that referenced this pull request Oct 7, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Peng Huo <penghuo@gmail.com>
LantaoJin added a commit to LantaoJin/search-plugins-sql that referenced this pull request Oct 9, 2025
@LantaoJinLantaoJin added the backport-manually Filed a PR to backport manually. label Oct 9, 2025
LantaoJin added a commit to LantaoJin/search-plugins-sql that referenced this pull request Oct 9, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Lantao Jin <ltjin@amazon.com>
LantaoJin added a commit that referenced this pull request Oct 9, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Lantao Jin <ltjin@amazon.com>
asifabashar added a commit to asifabashar/sql that referenced this pull request Oct 10, 2025
* main-apple: (218 commits)
Add ignorePrometheus Flag for integTest and docTest (opensearch-project#4442)
Create fab-radar.yml
PPL `fillnull` command enhancement (opensearch-project#4421)
reverting to _doc + _id (opensearch-project#4435)
Support `multisearch` command in calcite (opensearch-project#4332)
Add 3.3 release notes (opensearch-project#4422) (opensearch-project#4423)
[SQL/PPL] Fix the `count(*)` and `dc(field)` to be capped at MAX_INTEGER opensearch-project#4416 (opensearch-project#4418)
Change the default search sort tiebreaker to `_shard_doc` for PIT search (opensearch-project#4378)
[Enhancement] Add error handling for known limitation of sql `JOIN` (opensearch-project#4344)
Bugfix: SQL type mapping for legacy JDBC output (opensearch-project#3613)
Version bump: 3.3 (opensearch-project#4417)
Add max/min eval functions (opensearch-project#4333)
Support time modifiers in search command (opensearch-project#4224)
Fix numbered token bug and make it optional output in patterns command (opensearch-project#4402)
refactor span (opensearch-project#4334)
Move release notes categories (opensearch-project#3818)
[Doc] Enable doctest with Calcite (opensearch-project#4379)
Mod function should return decimal instead of float when handle the operands are decimal literal (opensearch-project#4407)
Scale of decimal literal should always be positive in Calcite (opensearch-project#4401)
Enable Calcite by default and implicit fallback the unsupported commands (opensearch-project#4372)
...
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport 2.19-devbackport-failedbackport-manuallyFiled a PR to backport manually.documentationImprovements or additions to documentationv3.3.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@LantaoJin@penghuo@Swiddis
, '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

[Doc] Enable doctest with Calcite - #4379

Merged
Swiddis merged 13 commits into
opensearch-project:mainfrom
LantaoJin:pr/issues/4314_test
Sep 29, 2025
Merged

[Doc] Enable doctest with Calcite#4379
Swiddis merged 13 commits into
opensearch-project:mainfrom
LantaoJin:pr/issues/4314_test

Conversation

@LantaoJin

@LantaoJinLantaoJin commented Sep 25, 2025

Copy link
Copy Markdown
Member

Description

Followup of #4372

Related Issues

Resolves #[Issue number to be closed when this PR is merged]

Check List

  • New functionality includes testing.
  • New functionality has been documented.
  • New functionality has javadoc added.
  • New functionality has a user manual doc added.
  • New PPL command checklist all confirmed.
  • API changes companion pull request created.
  • Commits are signed per the DCO using --signoff or -s.
  • Public documentation issue/PR created.

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.

Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
@LantaoJinLantaoJin changed the title Pr/issues/4314 test[Doc] Enable doctest with CalciteSep 25, 2025
Signed-off-by: Lantao Jin <ltjin@amazon.com>
@LantaoJinLantaoJin added the documentation Improvements or additions to documentation label Sep 25, 2025
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
| FLOOR(282474973688888.022) | FLOOR(9223372036854775807.022) | FLOOR(9223372036854775807.0000001) |
|----------------------------+--------------------------------+------------------------------------|
| 282474973688888 | 9223372036854775807 | 9223372036854775807 |
| 282474973688888.0| 9.223372036854776e+18| 9.223372036854776e+18 |

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

For the double values which are out of the double's precision. Keep the behavior same as Java's Math.floor(double) and Splunk's floor() math function.

Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
] as b
| stats avg(salary) by span(age, 10) as age_span, b.country;
fetched rows / total rows = 5/5
PPL> source = state_country as a | where country = 'USA' OR country = 'England' | left join ON a.name = b.name [ source = occupation | where salary > 0 | fields name, country, salary | sort salary | head 3 ] as b | stats avg(salary) by span(age, 10) as age_span, b.country;

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

not sure why this query failed in linux/doctest only. I cannot reproduce in local and IT. Will keep the PPL> to avoid failure.

 ppl_cmd.process("source = state_country as a | where country = 'USA' OR country = 'England' | left join ON a.name = b.name [ source = occupation | where salary > 0 | fields name, country, salary | sort salary | head 3 ] as b | stats avg(salary) by span(age, 10) as age_span, b.country")Expected:
fetched rows / total rows = 3/3
+-------------+----------+-----------+
| avg(salary) | age_span | b.country |
|-------------+----------+-----------|
| null | 40 | null |
| 70000.0 | 30 | USA |
| 100000.0 | 70 | England |
+-------------+----------+-----------+
Got:
fetched rows / total rows = 2/2
+-------------+----------+-----------+
| avg(salary) | age_span | b.country |
|-------------+----------+-----------|
| 70000.0 | 30 | USA |
| 100000.0 | 70 | England |
+-------------+----------+-----------+
----------------------------------------------------------------------

Comment threaddocs/category.json
Comment on lines 10 to +12
"user/ppl/cmd/grok.rst",
"user/ppl/cmd/head.rst",
"user/ppl/cmd/parse.rst",
"user/ppl/cmd/patterns.rst",
"user/ppl/cmd/rare.rst",
"user/ppl/cmd/search.rst",
"user/ppl/cmd/sort.rst",
"user/ppl/cmd/syntax.rst",
"user/ppl/cmd/trendline.rst",
"user/ppl/cmd/top.rst",
"user/ppl/cmd/where.rst",
"user/ppl/cmd/join.rst",
"user/ppl/cmd/lookup.rst",
"user/ppl/cmd/subquery.rst",
"user/ppl/general/identifiers.rst",
"user/ppl/general/datatypes.rst",
"user/ppl/functions/datetime.rst",
"user/ppl/functions/expressions.rst",
"user/ppl/functions/ip.rst",
"user/ppl/functions/json.rst",
"user/ppl/functions/math.rst",
"user/ppl/functions/relevance.rst",
"user/ppl/functions/string.rst"
"user/ppl/cmd/patterns.rst"

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

I see the #4380 closed. but grok, parse, patterns are still not able to 100% match the result of doctest in v2. @songkant-aws can you fix it or link an issue. Or it just needs to update the doc.

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.

Reopen #4380

| 2024-07-01 00:00:00 | web-01 | 2 |
| 2024-07-01 00:00:00 | web-02 | 2 |
+---------------------+--------+-------+
os> source=events | timechart span=1h count() by host

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@selsong , when I change PPL> to os> in timechart.rst. I found many results cannot not match the expected results added in doc. timechart command is a Calcite enabled only command, which means the results in this file shouldn't be impacted by the action of setting calcite enabled as default. Please check why the original expected results cannot match the actual ones. cc @penghuo

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.

Add issue to track. #4409

@@ -145,9 +141,7 @@ This example calculates the average CPU usage for each minute without grouping b
PPL query::

PPL> source=events | timechart span=1m avg(cpu_usage)

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@selsong there are many tests which cannot run in timechart.rst, see the queries starting with PPL>. cc @penghuo

@Swiddis
Swiddis merged commit 9143a44 into opensearch-project:mainSep 29, 2025
51 of 52 checks passed
@opensearch-trigger-bot

Copy link
Copy Markdown
Contributor

The backport to 2.19-dev failed:

The process '/usr/bin/git' failed with exit code 128

To backport manually, run these commands in your terminal:

# Navigate to the root of your repositorycd$(git rev-parse --show-toplevel)# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/sql/backport-2.19-dev 2.19-dev
# Navigate to the new working treepushd ../.worktrees/sql/backport-2.19-dev
# Create a new branch
git switch --create backport/backport-4379-to-2.19-dev
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 9143a449f38bf08470ecc25826c474d8fd38d6c8
# Push it to GitHub
git push --set-upstream origin backport/backport-4379-to-2.19-dev
# Go back to the original working treepopd# Delete the working tree
git worktree remove ../.worktrees/sql/backport-2.19-dev

Then, create a pull request where the base branch is 2.19-dev and the compare/head branch is backport/backport-4379-to-2.19-dev.

penghuo pushed a commit to penghuo/os-sql that referenced this pull request Oct 7, 2025
penghuo pushed a commit to penghuo/os-sql that referenced this pull request Oct 7, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Peng Huo <penghuo@gmail.com>
LantaoJin added a commit to LantaoJin/search-plugins-sql that referenced this pull request Oct 9, 2025
@LantaoJinLantaoJin added the backport-manually Filed a PR to backport manually. label Oct 9, 2025
LantaoJin added a commit to LantaoJin/search-plugins-sql that referenced this pull request Oct 9, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Lantao Jin <ltjin@amazon.com>
LantaoJin added a commit that referenced this pull request Oct 9, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Lantao Jin <ltjin@amazon.com>
asifabashar added a commit to asifabashar/sql that referenced this pull request Oct 10, 2025
* main-apple: (218 commits)
Add ignorePrometheus Flag for integTest and docTest (opensearch-project#4442)
Create fab-radar.yml
PPL `fillnull` command enhancement (opensearch-project#4421)
reverting to _doc + _id (opensearch-project#4435)
Support `multisearch` command in calcite (opensearch-project#4332)
Add 3.3 release notes (opensearch-project#4422) (opensearch-project#4423)
[SQL/PPL] Fix the `count(*)` and `dc(field)` to be capped at MAX_INTEGER opensearch-project#4416 (opensearch-project#4418)
Change the default search sort tiebreaker to `_shard_doc` for PIT search (opensearch-project#4378)
[Enhancement] Add error handling for known limitation of sql `JOIN` (opensearch-project#4344)
Bugfix: SQL type mapping for legacy JDBC output (opensearch-project#3613)
Version bump: 3.3 (opensearch-project#4417)
Add max/min eval functions (opensearch-project#4333)
Support time modifiers in search command (opensearch-project#4224)
Fix numbered token bug and make it optional output in patterns command (opensearch-project#4402)
refactor span (opensearch-project#4334)
Move release notes categories (opensearch-project#3818)
[Doc] Enable doctest with Calcite (opensearch-project#4379)
Mod function should return decimal instead of float when handle the operands are decimal literal (opensearch-project#4407)
Scale of decimal literal should always be positive in Calcite (opensearch-project#4401)
Enable Calcite by default and implicit fallback the unsupported commands (opensearch-project#4372)
...
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport 2.19-devbackport-failedbackport-manuallyFiled a PR to backport manually.documentationImprovements or additions to documentationv3.3.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@LantaoJin@penghuo@Swiddis
, '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

[Doc] Enable doctest with Calcite - #4379

Merged
Swiddis merged 13 commits into
opensearch-project:mainfrom
LantaoJin:pr/issues/4314_test
Sep 29, 2025
Merged

[Doc] Enable doctest with Calcite#4379
Swiddis merged 13 commits into
opensearch-project:mainfrom
LantaoJin:pr/issues/4314_test

Conversation

@LantaoJin

@LantaoJinLantaoJin commented Sep 25, 2025

Copy link
Copy Markdown
Member

Description

Followup of #4372

Related Issues

Resolves #[Issue number to be closed when this PR is merged]

Check List

  • New functionality includes testing.
  • New functionality has been documented.
  • New functionality has javadoc added.
  • New functionality has a user manual doc added.
  • New PPL command checklist all confirmed.
  • API changes companion pull request created.
  • Commits are signed per the DCO using --signoff or -s.
  • Public documentation issue/PR created.

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.

Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
@LantaoJinLantaoJin changed the title Pr/issues/4314 test[Doc] Enable doctest with CalciteSep 25, 2025
Signed-off-by: Lantao Jin <ltjin@amazon.com>
@LantaoJinLantaoJin added the documentation Improvements or additions to documentation label Sep 25, 2025
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
| FLOOR(282474973688888.022) | FLOOR(9223372036854775807.022) | FLOOR(9223372036854775807.0000001) |
|----------------------------+--------------------------------+------------------------------------|
| 282474973688888 | 9223372036854775807 | 9223372036854775807 |
| 282474973688888.0| 9.223372036854776e+18| 9.223372036854776e+18 |

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

For the double values which are out of the double's precision. Keep the behavior same as Java's Math.floor(double) and Splunk's floor() math function.

Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
] as b
| stats avg(salary) by span(age, 10) as age_span, b.country;
fetched rows / total rows = 5/5
PPL> source = state_country as a | where country = 'USA' OR country = 'England' | left join ON a.name = b.name [ source = occupation | where salary > 0 | fields name, country, salary | sort salary | head 3 ] as b | stats avg(salary) by span(age, 10) as age_span, b.country;

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

not sure why this query failed in linux/doctest only. I cannot reproduce in local and IT. Will keep the PPL> to avoid failure.

 ppl_cmd.process("source = state_country as a | where country = 'USA' OR country = 'England' | left join ON a.name = b.name [ source = occupation | where salary > 0 | fields name, country, salary | sort salary | head 3 ] as b | stats avg(salary) by span(age, 10) as age_span, b.country")Expected:
fetched rows / total rows = 3/3
+-------------+----------+-----------+
| avg(salary) | age_span | b.country |
|-------------+----------+-----------|
| null | 40 | null |
| 70000.0 | 30 | USA |
| 100000.0 | 70 | England |
+-------------+----------+-----------+
Got:
fetched rows / total rows = 2/2
+-------------+----------+-----------+
| avg(salary) | age_span | b.country |
|-------------+----------+-----------|
| 70000.0 | 30 | USA |
| 100000.0 | 70 | England |
+-------------+----------+-----------+
----------------------------------------------------------------------

Comment threaddocs/category.json
Comment on lines 10 to +12
"user/ppl/cmd/grok.rst",
"user/ppl/cmd/head.rst",
"user/ppl/cmd/parse.rst",
"user/ppl/cmd/patterns.rst",
"user/ppl/cmd/rare.rst",
"user/ppl/cmd/search.rst",
"user/ppl/cmd/sort.rst",
"user/ppl/cmd/syntax.rst",
"user/ppl/cmd/trendline.rst",
"user/ppl/cmd/top.rst",
"user/ppl/cmd/where.rst",
"user/ppl/cmd/join.rst",
"user/ppl/cmd/lookup.rst",
"user/ppl/cmd/subquery.rst",
"user/ppl/general/identifiers.rst",
"user/ppl/general/datatypes.rst",
"user/ppl/functions/datetime.rst",
"user/ppl/functions/expressions.rst",
"user/ppl/functions/ip.rst",
"user/ppl/functions/json.rst",
"user/ppl/functions/math.rst",
"user/ppl/functions/relevance.rst",
"user/ppl/functions/string.rst"
"user/ppl/cmd/patterns.rst"

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

I see the #4380 closed. but grok, parse, patterns are still not able to 100% match the result of doctest in v2. @songkant-aws can you fix it or link an issue. Or it just needs to update the doc.

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.

Reopen #4380

| 2024-07-01 00:00:00 | web-01 | 2 |
| 2024-07-01 00:00:00 | web-02 | 2 |
+---------------------+--------+-------+
os> source=events | timechart span=1h count() by host

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@selsong , when I change PPL> to os> in timechart.rst. I found many results cannot not match the expected results added in doc. timechart command is a Calcite enabled only command, which means the results in this file shouldn't be impacted by the action of setting calcite enabled as default. Please check why the original expected results cannot match the actual ones. cc @penghuo

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.

Add issue to track. #4409

@@ -145,9 +141,7 @@ This example calculates the average CPU usage for each minute without grouping b
PPL query::

PPL> source=events | timechart span=1m avg(cpu_usage)

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@selsong there are many tests which cannot run in timechart.rst, see the queries starting with PPL>. cc @penghuo

@Swiddis
Swiddis merged commit 9143a44 into opensearch-project:mainSep 29, 2025
51 of 52 checks passed
@opensearch-trigger-bot

Copy link
Copy Markdown
Contributor

The backport to 2.19-dev failed:

The process '/usr/bin/git' failed with exit code 128

To backport manually, run these commands in your terminal:

# Navigate to the root of your repositorycd$(git rev-parse --show-toplevel)# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/sql/backport-2.19-dev 2.19-dev
# Navigate to the new working treepushd ../.worktrees/sql/backport-2.19-dev
# Create a new branch
git switch --create backport/backport-4379-to-2.19-dev
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 9143a449f38bf08470ecc25826c474d8fd38d6c8
# Push it to GitHub
git push --set-upstream origin backport/backport-4379-to-2.19-dev
# Go back to the original working treepopd# Delete the working tree
git worktree remove ../.worktrees/sql/backport-2.19-dev

Then, create a pull request where the base branch is 2.19-dev and the compare/head branch is backport/backport-4379-to-2.19-dev.

penghuo pushed a commit to penghuo/os-sql that referenced this pull request Oct 7, 2025
penghuo pushed a commit to penghuo/os-sql that referenced this pull request Oct 7, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Peng Huo <penghuo@gmail.com>
LantaoJin added a commit to LantaoJin/search-plugins-sql that referenced this pull request Oct 9, 2025
@LantaoJinLantaoJin added the backport-manually Filed a PR to backport manually. label Oct 9, 2025
LantaoJin added a commit to LantaoJin/search-plugins-sql that referenced this pull request Oct 9, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Lantao Jin <ltjin@amazon.com>
LantaoJin added a commit that referenced this pull request Oct 9, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Lantao Jin <ltjin@amazon.com>
asifabashar added a commit to asifabashar/sql that referenced this pull request Oct 10, 2025
* main-apple: (218 commits)
Add ignorePrometheus Flag for integTest and docTest (opensearch-project#4442)
Create fab-radar.yml
PPL `fillnull` command enhancement (opensearch-project#4421)
reverting to _doc + _id (opensearch-project#4435)
Support `multisearch` command in calcite (opensearch-project#4332)
Add 3.3 release notes (opensearch-project#4422) (opensearch-project#4423)
[SQL/PPL] Fix the `count(*)` and `dc(field)` to be capped at MAX_INTEGER opensearch-project#4416 (opensearch-project#4418)
Change the default search sort tiebreaker to `_shard_doc` for PIT search (opensearch-project#4378)
[Enhancement] Add error handling for known limitation of sql `JOIN` (opensearch-project#4344)
Bugfix: SQL type mapping for legacy JDBC output (opensearch-project#3613)
Version bump: 3.3 (opensearch-project#4417)
Add max/min eval functions (opensearch-project#4333)
Support time modifiers in search command (opensearch-project#4224)
Fix numbered token bug and make it optional output in patterns command (opensearch-project#4402)
refactor span (opensearch-project#4334)
Move release notes categories (opensearch-project#3818)
[Doc] Enable doctest with Calcite (opensearch-project#4379)
Mod function should return decimal instead of float when handle the operands are decimal literal (opensearch-project#4407)
Scale of decimal literal should always be positive in Calcite (opensearch-project#4401)
Enable Calcite by default and implicit fallback the unsupported commands (opensearch-project#4372)
...
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport 2.19-devbackport-failedbackport-manuallyFiled a PR to backport manually.documentationImprovements or additions to documentationv3.3.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@LantaoJin@penghuo@Swiddis
, '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

[Doc] Enable doctest with Calcite - #4379

Merged
Swiddis merged 13 commits into
opensearch-project:mainfrom
LantaoJin:pr/issues/4314_test
Sep 29, 2025
Merged

[Doc] Enable doctest with Calcite#4379
Swiddis merged 13 commits into
opensearch-project:mainfrom
LantaoJin:pr/issues/4314_test

Conversation

@LantaoJin

@LantaoJinLantaoJin commented Sep 25, 2025

Copy link
Copy Markdown
Member

Description

Followup of #4372

Related Issues

Resolves #[Issue number to be closed when this PR is merged]

Check List

  • New functionality includes testing.
  • New functionality has been documented.
  • New functionality has javadoc added.
  • New functionality has a user manual doc added.
  • New PPL command checklist all confirmed.
  • API changes companion pull request created.
  • Commits are signed per the DCO using --signoff or -s.
  • Public documentation issue/PR created.

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.

Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
@LantaoJinLantaoJin changed the title Pr/issues/4314 test[Doc] Enable doctest with CalciteSep 25, 2025
Signed-off-by: Lantao Jin <ltjin@amazon.com>
@LantaoJinLantaoJin added the documentation Improvements or additions to documentation label Sep 25, 2025
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
| FLOOR(282474973688888.022) | FLOOR(9223372036854775807.022) | FLOOR(9223372036854775807.0000001) |
|----------------------------+--------------------------------+------------------------------------|
| 282474973688888 | 9223372036854775807 | 9223372036854775807 |
| 282474973688888.0| 9.223372036854776e+18| 9.223372036854776e+18 |

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

For the double values which are out of the double's precision. Keep the behavior same as Java's Math.floor(double) and Splunk's floor() math function.

Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
] as b
| stats avg(salary) by span(age, 10) as age_span, b.country;
fetched rows / total rows = 5/5
PPL> source = state_country as a | where country = 'USA' OR country = 'England' | left join ON a.name = b.name [ source = occupation | where salary > 0 | fields name, country, salary | sort salary | head 3 ] as b | stats avg(salary) by span(age, 10) as age_span, b.country;

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

not sure why this query failed in linux/doctest only. I cannot reproduce in local and IT. Will keep the PPL> to avoid failure.

 ppl_cmd.process("source = state_country as a | where country = 'USA' OR country = 'England' | left join ON a.name = b.name [ source = occupation | where salary > 0 | fields name, country, salary | sort salary | head 3 ] as b | stats avg(salary) by span(age, 10) as age_span, b.country")Expected:
fetched rows / total rows = 3/3
+-------------+----------+-----------+
| avg(salary) | age_span | b.country |
|-------------+----------+-----------|
| null | 40 | null |
| 70000.0 | 30 | USA |
| 100000.0 | 70 | England |
+-------------+----------+-----------+
Got:
fetched rows / total rows = 2/2
+-------------+----------+-----------+
| avg(salary) | age_span | b.country |
|-------------+----------+-----------|
| 70000.0 | 30 | USA |
| 100000.0 | 70 | England |
+-------------+----------+-----------+
----------------------------------------------------------------------

Comment threaddocs/category.json
Comment on lines 10 to +12
"user/ppl/cmd/grok.rst",
"user/ppl/cmd/head.rst",
"user/ppl/cmd/parse.rst",
"user/ppl/cmd/patterns.rst",
"user/ppl/cmd/rare.rst",
"user/ppl/cmd/search.rst",
"user/ppl/cmd/sort.rst",
"user/ppl/cmd/syntax.rst",
"user/ppl/cmd/trendline.rst",
"user/ppl/cmd/top.rst",
"user/ppl/cmd/where.rst",
"user/ppl/cmd/join.rst",
"user/ppl/cmd/lookup.rst",
"user/ppl/cmd/subquery.rst",
"user/ppl/general/identifiers.rst",
"user/ppl/general/datatypes.rst",
"user/ppl/functions/datetime.rst",
"user/ppl/functions/expressions.rst",
"user/ppl/functions/ip.rst",
"user/ppl/functions/json.rst",
"user/ppl/functions/math.rst",
"user/ppl/functions/relevance.rst",
"user/ppl/functions/string.rst"
"user/ppl/cmd/patterns.rst"

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

I see the #4380 closed. but grok, parse, patterns are still not able to 100% match the result of doctest in v2. @songkant-aws can you fix it or link an issue. Or it just needs to update the doc.

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.

Reopen #4380

| 2024-07-01 00:00:00 | web-01 | 2 |
| 2024-07-01 00:00:00 | web-02 | 2 |
+---------------------+--------+-------+
os> source=events | timechart span=1h count() by host

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@selsong , when I change PPL> to os> in timechart.rst. I found many results cannot not match the expected results added in doc. timechart command is a Calcite enabled only command, which means the results in this file shouldn't be impacted by the action of setting calcite enabled as default. Please check why the original expected results cannot match the actual ones. cc @penghuo

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.

Add issue to track. #4409

@@ -145,9 +141,7 @@ This example calculates the average CPU usage for each minute without grouping b
PPL query::

PPL> source=events | timechart span=1m avg(cpu_usage)

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@selsong there are many tests which cannot run in timechart.rst, see the queries starting with PPL>. cc @penghuo

@Swiddis
Swiddis merged commit 9143a44 into opensearch-project:mainSep 29, 2025
51 of 52 checks passed
@opensearch-trigger-bot

Copy link
Copy Markdown
Contributor

The backport to 2.19-dev failed:

The process '/usr/bin/git' failed with exit code 128

To backport manually, run these commands in your terminal:

# Navigate to the root of your repositorycd$(git rev-parse --show-toplevel)# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/sql/backport-2.19-dev 2.19-dev
# Navigate to the new working treepushd ../.worktrees/sql/backport-2.19-dev
# Create a new branch
git switch --create backport/backport-4379-to-2.19-dev
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 9143a449f38bf08470ecc25826c474d8fd38d6c8
# Push it to GitHub
git push --set-upstream origin backport/backport-4379-to-2.19-dev
# Go back to the original working treepopd# Delete the working tree
git worktree remove ../.worktrees/sql/backport-2.19-dev

Then, create a pull request where the base branch is 2.19-dev and the compare/head branch is backport/backport-4379-to-2.19-dev.

penghuo pushed a commit to penghuo/os-sql that referenced this pull request Oct 7, 2025
penghuo pushed a commit to penghuo/os-sql that referenced this pull request Oct 7, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Peng Huo <penghuo@gmail.com>
LantaoJin added a commit to LantaoJin/search-plugins-sql that referenced this pull request Oct 9, 2025
@LantaoJinLantaoJin added the backport-manually Filed a PR to backport manually. label Oct 9, 2025
LantaoJin added a commit to LantaoJin/search-plugins-sql that referenced this pull request Oct 9, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Lantao Jin <ltjin@amazon.com>
LantaoJin added a commit that referenced this pull request Oct 9, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Lantao Jin <ltjin@amazon.com>
asifabashar added a commit to asifabashar/sql that referenced this pull request Oct 10, 2025
* main-apple: (218 commits)
Add ignorePrometheus Flag for integTest and docTest (opensearch-project#4442)
Create fab-radar.yml
PPL `fillnull` command enhancement (opensearch-project#4421)
reverting to _doc + _id (opensearch-project#4435)
Support `multisearch` command in calcite (opensearch-project#4332)
Add 3.3 release notes (opensearch-project#4422) (opensearch-project#4423)
[SQL/PPL] Fix the `count(*)` and `dc(field)` to be capped at MAX_INTEGER opensearch-project#4416 (opensearch-project#4418)
Change the default search sort tiebreaker to `_shard_doc` for PIT search (opensearch-project#4378)
[Enhancement] Add error handling for known limitation of sql `JOIN` (opensearch-project#4344)
Bugfix: SQL type mapping for legacy JDBC output (opensearch-project#3613)
Version bump: 3.3 (opensearch-project#4417)
Add max/min eval functions (opensearch-project#4333)
Support time modifiers in search command (opensearch-project#4224)
Fix numbered token bug and make it optional output in patterns command (opensearch-project#4402)
refactor span (opensearch-project#4334)
Move release notes categories (opensearch-project#3818)
[Doc] Enable doctest with Calcite (opensearch-project#4379)
Mod function should return decimal instead of float when handle the operands are decimal literal (opensearch-project#4407)
Scale of decimal literal should always be positive in Calcite (opensearch-project#4401)
Enable Calcite by default and implicit fallback the unsupported commands (opensearch-project#4372)
...
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport 2.19-devbackport-failedbackport-manuallyFiled a PR to backport manually.documentationImprovements or additions to documentationv3.3.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@LantaoJin@penghuo@Swiddis
, '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

[Doc] Enable doctest with Calcite - #4379

Merged
Swiddis merged 13 commits into
opensearch-project:mainfrom
LantaoJin:pr/issues/4314_test
Sep 29, 2025
Merged

[Doc] Enable doctest with Calcite#4379
Swiddis merged 13 commits into
opensearch-project:mainfrom
LantaoJin:pr/issues/4314_test

Conversation

@LantaoJin

@LantaoJinLantaoJin commented Sep 25, 2025

Copy link
Copy Markdown
Member

Description

Followup of #4372

Related Issues

Resolves #[Issue number to be closed when this PR is merged]

Check List

  • New functionality includes testing.
  • New functionality has been documented.
  • New functionality has javadoc added.
  • New functionality has a user manual doc added.
  • New PPL command checklist all confirmed.
  • API changes companion pull request created.
  • Commits are signed per the DCO using --signoff or -s.
  • Public documentation issue/PR created.

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.

Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
@LantaoJinLantaoJin changed the title Pr/issues/4314 test[Doc] Enable doctest with CalciteSep 25, 2025
Signed-off-by: Lantao Jin <ltjin@amazon.com>
@LantaoJinLantaoJin added the documentation Improvements or additions to documentation label Sep 25, 2025
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
| FLOOR(282474973688888.022) | FLOOR(9223372036854775807.022) | FLOOR(9223372036854775807.0000001) |
|----------------------------+--------------------------------+------------------------------------|
| 282474973688888 | 9223372036854775807 | 9223372036854775807 |
| 282474973688888.0| 9.223372036854776e+18| 9.223372036854776e+18 |

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

For the double values which are out of the double's precision. Keep the behavior same as Java's Math.floor(double) and Splunk's floor() math function.

Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
] as b
| stats avg(salary) by span(age, 10) as age_span, b.country;
fetched rows / total rows = 5/5
PPL> source = state_country as a | where country = 'USA' OR country = 'England' | left join ON a.name = b.name [ source = occupation | where salary > 0 | fields name, country, salary | sort salary | head 3 ] as b | stats avg(salary) by span(age, 10) as age_span, b.country;

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

not sure why this query failed in linux/doctest only. I cannot reproduce in local and IT. Will keep the PPL> to avoid failure.

 ppl_cmd.process("source = state_country as a | where country = 'USA' OR country = 'England' | left join ON a.name = b.name [ source = occupation | where salary > 0 | fields name, country, salary | sort salary | head 3 ] as b | stats avg(salary) by span(age, 10) as age_span, b.country")Expected:
fetched rows / total rows = 3/3
+-------------+----------+-----------+
| avg(salary) | age_span | b.country |
|-------------+----------+-----------|
| null | 40 | null |
| 70000.0 | 30 | USA |
| 100000.0 | 70 | England |
+-------------+----------+-----------+
Got:
fetched rows / total rows = 2/2
+-------------+----------+-----------+
| avg(salary) | age_span | b.country |
|-------------+----------+-----------|
| 70000.0 | 30 | USA |
| 100000.0 | 70 | England |
+-------------+----------+-----------+
----------------------------------------------------------------------

Comment threaddocs/category.json
Comment on lines 10 to +12
"user/ppl/cmd/grok.rst",
"user/ppl/cmd/head.rst",
"user/ppl/cmd/parse.rst",
"user/ppl/cmd/patterns.rst",
"user/ppl/cmd/rare.rst",
"user/ppl/cmd/search.rst",
"user/ppl/cmd/sort.rst",
"user/ppl/cmd/syntax.rst",
"user/ppl/cmd/trendline.rst",
"user/ppl/cmd/top.rst",
"user/ppl/cmd/where.rst",
"user/ppl/cmd/join.rst",
"user/ppl/cmd/lookup.rst",
"user/ppl/cmd/subquery.rst",
"user/ppl/general/identifiers.rst",
"user/ppl/general/datatypes.rst",
"user/ppl/functions/datetime.rst",
"user/ppl/functions/expressions.rst",
"user/ppl/functions/ip.rst",
"user/ppl/functions/json.rst",
"user/ppl/functions/math.rst",
"user/ppl/functions/relevance.rst",
"user/ppl/functions/string.rst"
"user/ppl/cmd/patterns.rst"

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

I see the #4380 closed. but grok, parse, patterns are still not able to 100% match the result of doctest in v2. @songkant-aws can you fix it or link an issue. Or it just needs to update the doc.

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.

Reopen #4380

| 2024-07-01 00:00:00 | web-01 | 2 |
| 2024-07-01 00:00:00 | web-02 | 2 |
+---------------------+--------+-------+
os> source=events | timechart span=1h count() by host

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@selsong , when I change PPL> to os> in timechart.rst. I found many results cannot not match the expected results added in doc. timechart command is a Calcite enabled only command, which means the results in this file shouldn't be impacted by the action of setting calcite enabled as default. Please check why the original expected results cannot match the actual ones. cc @penghuo

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.

Add issue to track. #4409

@@ -145,9 +141,7 @@ This example calculates the average CPU usage for each minute without grouping b
PPL query::

PPL> source=events | timechart span=1m avg(cpu_usage)

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@selsong there are many tests which cannot run in timechart.rst, see the queries starting with PPL>. cc @penghuo

@Swiddis
Swiddis merged commit 9143a44 into opensearch-project:mainSep 29, 2025
51 of 52 checks passed
@opensearch-trigger-bot

Copy link
Copy Markdown
Contributor

The backport to 2.19-dev failed:

The process '/usr/bin/git' failed with exit code 128

To backport manually, run these commands in your terminal:

# Navigate to the root of your repositorycd$(git rev-parse --show-toplevel)# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/sql/backport-2.19-dev 2.19-dev
# Navigate to the new working treepushd ../.worktrees/sql/backport-2.19-dev
# Create a new branch
git switch --create backport/backport-4379-to-2.19-dev
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 9143a449f38bf08470ecc25826c474d8fd38d6c8
# Push it to GitHub
git push --set-upstream origin backport/backport-4379-to-2.19-dev
# Go back to the original working treepopd# Delete the working tree
git worktree remove ../.worktrees/sql/backport-2.19-dev

Then, create a pull request where the base branch is 2.19-dev and the compare/head branch is backport/backport-4379-to-2.19-dev.

penghuo pushed a commit to penghuo/os-sql that referenced this pull request Oct 7, 2025
penghuo pushed a commit to penghuo/os-sql that referenced this pull request Oct 7, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Peng Huo <penghuo@gmail.com>
LantaoJin added a commit to LantaoJin/search-plugins-sql that referenced this pull request Oct 9, 2025
@LantaoJinLantaoJin added the backport-manually Filed a PR to backport manually. label Oct 9, 2025
LantaoJin added a commit to LantaoJin/search-plugins-sql that referenced this pull request Oct 9, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Lantao Jin <ltjin@amazon.com>
LantaoJin added a commit that referenced this pull request Oct 9, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Lantao Jin <ltjin@amazon.com>
asifabashar added a commit to asifabashar/sql that referenced this pull request Oct 10, 2025
* main-apple: (218 commits)
Add ignorePrometheus Flag for integTest and docTest (opensearch-project#4442)
Create fab-radar.yml
PPL `fillnull` command enhancement (opensearch-project#4421)
reverting to _doc + _id (opensearch-project#4435)
Support `multisearch` command in calcite (opensearch-project#4332)
Add 3.3 release notes (opensearch-project#4422) (opensearch-project#4423)
[SQL/PPL] Fix the `count(*)` and `dc(field)` to be capped at MAX_INTEGER opensearch-project#4416 (opensearch-project#4418)
Change the default search sort tiebreaker to `_shard_doc` for PIT search (opensearch-project#4378)
[Enhancement] Add error handling for known limitation of sql `JOIN` (opensearch-project#4344)
Bugfix: SQL type mapping for legacy JDBC output (opensearch-project#3613)
Version bump: 3.3 (opensearch-project#4417)
Add max/min eval functions (opensearch-project#4333)
Support time modifiers in search command (opensearch-project#4224)
Fix numbered token bug and make it optional output in patterns command (opensearch-project#4402)
refactor span (opensearch-project#4334)
Move release notes categories (opensearch-project#3818)
[Doc] Enable doctest with Calcite (opensearch-project#4379)
Mod function should return decimal instead of float when handle the operands are decimal literal (opensearch-project#4407)
Scale of decimal literal should always be positive in Calcite (opensearch-project#4401)
Enable Calcite by default and implicit fallback the unsupported commands (opensearch-project#4372)
...
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport 2.19-devbackport-failedbackport-manuallyFiled a PR to backport manually.documentationImprovements or additions to documentationv3.3.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@LantaoJin@penghuo@Swiddis
, '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

[Doc] Enable doctest with Calcite - #4379

Merged
Swiddis merged 13 commits into
opensearch-project:mainfrom
LantaoJin:pr/issues/4314_test
Sep 29, 2025
Merged

[Doc] Enable doctest with Calcite#4379
Swiddis merged 13 commits into
opensearch-project:mainfrom
LantaoJin:pr/issues/4314_test

Conversation

@LantaoJin

@LantaoJinLantaoJin commented Sep 25, 2025

Copy link
Copy Markdown
Member

Description

Followup of #4372

Related Issues

Resolves #[Issue number to be closed when this PR is merged]

Check List

  • New functionality includes testing.
  • New functionality has been documented.
  • New functionality has javadoc added.
  • New functionality has a user manual doc added.
  • New PPL command checklist all confirmed.
  • API changes companion pull request created.
  • Commits are signed per the DCO using --signoff or -s.
  • Public documentation issue/PR created.

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.

Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
@LantaoJinLantaoJin changed the title Pr/issues/4314 test[Doc] Enable doctest with CalciteSep 25, 2025
Signed-off-by: Lantao Jin <ltjin@amazon.com>
@LantaoJinLantaoJin added the documentation Improvements or additions to documentation label Sep 25, 2025
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
| FLOOR(282474973688888.022) | FLOOR(9223372036854775807.022) | FLOOR(9223372036854775807.0000001) |
|----------------------------+--------------------------------+------------------------------------|
| 282474973688888 | 9223372036854775807 | 9223372036854775807 |
| 282474973688888.0| 9.223372036854776e+18| 9.223372036854776e+18 |

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

For the double values which are out of the double's precision. Keep the behavior same as Java's Math.floor(double) and Splunk's floor() math function.

Signed-off-by: Lantao Jin <ltjin@amazon.com>
Signed-off-by: Lantao Jin <ltjin@amazon.com>
] as b
| stats avg(salary) by span(age, 10) as age_span, b.country;
fetched rows / total rows = 5/5
PPL> source = state_country as a | where country = 'USA' OR country = 'England' | left join ON a.name = b.name [ source = occupation | where salary > 0 | fields name, country, salary | sort salary | head 3 ] as b | stats avg(salary) by span(age, 10) as age_span, b.country;

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

not sure why this query failed in linux/doctest only. I cannot reproduce in local and IT. Will keep the PPL> to avoid failure.

 ppl_cmd.process("source = state_country as a | where country = 'USA' OR country = 'England' | left join ON a.name = b.name [ source = occupation | where salary > 0 | fields name, country, salary | sort salary | head 3 ] as b | stats avg(salary) by span(age, 10) as age_span, b.country")Expected:
fetched rows / total rows = 3/3
+-------------+----------+-----------+
| avg(salary) | age_span | b.country |
|-------------+----------+-----------|
| null | 40 | null |
| 70000.0 | 30 | USA |
| 100000.0 | 70 | England |
+-------------+----------+-----------+
Got:
fetched rows / total rows = 2/2
+-------------+----------+-----------+
| avg(salary) | age_span | b.country |
|-------------+----------+-----------|
| 70000.0 | 30 | USA |
| 100000.0 | 70 | England |
+-------------+----------+-----------+
----------------------------------------------------------------------

Comment threaddocs/category.json
Comment on lines 10 to +12
"user/ppl/cmd/grok.rst",
"user/ppl/cmd/head.rst",
"user/ppl/cmd/parse.rst",
"user/ppl/cmd/patterns.rst",
"user/ppl/cmd/rare.rst",
"user/ppl/cmd/search.rst",
"user/ppl/cmd/sort.rst",
"user/ppl/cmd/syntax.rst",
"user/ppl/cmd/trendline.rst",
"user/ppl/cmd/top.rst",
"user/ppl/cmd/where.rst",
"user/ppl/cmd/join.rst",
"user/ppl/cmd/lookup.rst",
"user/ppl/cmd/subquery.rst",
"user/ppl/general/identifiers.rst",
"user/ppl/general/datatypes.rst",
"user/ppl/functions/datetime.rst",
"user/ppl/functions/expressions.rst",
"user/ppl/functions/ip.rst",
"user/ppl/functions/json.rst",
"user/ppl/functions/math.rst",
"user/ppl/functions/relevance.rst",
"user/ppl/functions/string.rst"
"user/ppl/cmd/patterns.rst"

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

I see the #4380 closed. but grok, parse, patterns are still not able to 100% match the result of doctest in v2. @songkant-aws can you fix it or link an issue. Or it just needs to update the doc.

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.

Reopen #4380

| 2024-07-01 00:00:00 | web-01 | 2 |
| 2024-07-01 00:00:00 | web-02 | 2 |
+---------------------+--------+-------+
os> source=events | timechart span=1h count() by host

@LantaoJinLantaoJinSep 29, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@selsong , when I change PPL> to os> in timechart.rst. I found many results cannot not match the expected results added in doc. timechart command is a Calcite enabled only command, which means the results in this file shouldn't be impacted by the action of setting calcite enabled as default. Please check why the original expected results cannot match the actual ones. cc @penghuo

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.

Add issue to track. #4409

@@ -145,9 +141,7 @@ This example calculates the average CPU usage for each minute without grouping b
PPL query::

PPL> source=events | timechart span=1m avg(cpu_usage)

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@selsong there are many tests which cannot run in timechart.rst, see the queries starting with PPL>. cc @penghuo

@Swiddis
Swiddis merged commit 9143a44 into opensearch-project:mainSep 29, 2025
51 of 52 checks passed
@opensearch-trigger-bot

Copy link
Copy Markdown
Contributor

The backport to 2.19-dev failed:

The process '/usr/bin/git' failed with exit code 128

To backport manually, run these commands in your terminal:

# Navigate to the root of your repositorycd$(git rev-parse --show-toplevel)# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/sql/backport-2.19-dev 2.19-dev
# Navigate to the new working treepushd ../.worktrees/sql/backport-2.19-dev
# Create a new branch
git switch --create backport/backport-4379-to-2.19-dev
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 9143a449f38bf08470ecc25826c474d8fd38d6c8
# Push it to GitHub
git push --set-upstream origin backport/backport-4379-to-2.19-dev
# Go back to the original working treepopd# Delete the working tree
git worktree remove ../.worktrees/sql/backport-2.19-dev

Then, create a pull request where the base branch is 2.19-dev and the compare/head branch is backport/backport-4379-to-2.19-dev.

penghuo pushed a commit to penghuo/os-sql that referenced this pull request Oct 7, 2025
penghuo pushed a commit to penghuo/os-sql that referenced this pull request Oct 7, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Peng Huo <penghuo@gmail.com>
LantaoJin added a commit to LantaoJin/search-plugins-sql that referenced this pull request Oct 9, 2025
@LantaoJinLantaoJin added the backport-manually Filed a PR to backport manually. label Oct 9, 2025
LantaoJin added a commit to LantaoJin/search-plugins-sql that referenced this pull request Oct 9, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Lantao Jin <ltjin@amazon.com>
LantaoJin added a commit that referenced this pull request Oct 9, 2025
(cherry picked from commit 9143a44)
Signed-off-by: Lantao Jin <ltjin@amazon.com>
asifabashar added a commit to asifabashar/sql that referenced this pull request Oct 10, 2025
* main-apple: (218 commits)
Add ignorePrometheus Flag for integTest and docTest (opensearch-project#4442)
Create fab-radar.yml
PPL `fillnull` command enhancement (opensearch-project#4421)
reverting to _doc + _id (opensearch-project#4435)
Support `multisearch` command in calcite (opensearch-project#4332)
Add 3.3 release notes (opensearch-project#4422) (opensearch-project#4423)
[SQL/PPL] Fix the `count(*)` and `dc(field)` to be capped at MAX_INTEGER opensearch-project#4416 (opensearch-project#4418)
Change the default search sort tiebreaker to `_shard_doc` for PIT search (opensearch-project#4378)
[Enhancement] Add error handling for known limitation of sql `JOIN` (opensearch-project#4344)
Bugfix: SQL type mapping for legacy JDBC output (opensearch-project#3613)
Version bump: 3.3 (opensearch-project#4417)
Add max/min eval functions (opensearch-project#4333)
Support time modifiers in search command (opensearch-project#4224)
Fix numbered token bug and make it optional output in patterns command (opensearch-project#4402)
refactor span (opensearch-project#4334)
Move release notes categories (opensearch-project#3818)
[Doc] Enable doctest with Calcite (opensearch-project#4379)
Mod function should return decimal instead of float when handle the operands are decimal literal (opensearch-project#4407)
Scale of decimal literal should always be positive in Calcite (opensearch-project#4401)
Enable Calcite by default and implicit fallback the unsupported commands (opensearch-project#4372)
...
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport 2.19-devbackport-failedbackport-manuallyFiled a PR to backport manually.documentationImprovements or additions to documentationv3.3.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@LantaoJin@penghuo@Swiddis