Merged
Conversation
… the group_concat function (#35078)
* feat: Enhance TDgpt installer with resource package support - Added support for downloading and installing a TDgpt resource package via a configurable URL in the installer. - Updated installer UI to allow users to choose between downloading the resource package or skipping it. - Implemented logic to check for existing resource assets and prompt users accordingly. - Modified the installation script to handle the new resource package URL and integrate it into the installation process. - Updated the Python runtime handling to ensure compatibility with the new resource package structure. - Enhanced logging to provide clearer information about the resource package download and installation status. * feat: Add resource package handling and improve error reporting in Windows installer * feat: Enhance TDgpt installer with resource package versioning and improved URL handling * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * feat: Enhance Windows installer with download progress tracking and size formatting * feat: Update TDgpt installer to support model resource packages and improve bundle handling * fix: Update type imports in install.py for consistency --------- Co-authored-by: support-platform <it@taosdata.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Updated the CI workflow to clean the build directory before restoring docs.
…o a single query instead (#35096)
Contributor
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR merges recent changes from main into the 3.0 branch, bringing over updates across TDgpt Windows packaging/installer flows, SQL/executor/function behavior (notably GROUP_CONCAT and window execution), taos-tools dump-out error handling, test coverage additions, and connector/doc version bumps.
Changes:
- Update TDgpt Windows installer/packaging to bundle a Python runtime, separate “main venv” vs “model resource” offline packages, and optionally download model resources via a configured URL.
- Fix/extend SQL execution and function behavior (e.g.,
GROUP_CONCATseparator + NULL handling; merge-aligned interval scalar expression application) and expand regression tests (external window + aggregates). - Improve
taosdumpdump-out error propagation and update CI/test dependencies (taos-ws-py 0.6.8) plus corresponding documentation.
Reviewed changes
Copilot reviewed 33 out of 34 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/tdgpt/script/install.py | Adds model resource package URL support, download progress, offline import adjustments, and richer error reporting. |
| tools/tdgpt/requirements_ess.txt | Removes tensorflow-cpu from the “ess” requirements set. |
| tools/tdgpt/packaging/win_release.py | Adds default model resource package URL/version wiring and bundles Python runtime into installer payload. |
| tools/tdgpt/packaging/installer/tdgpt.iss | Installer UI/logic updated for model resource package install/download, process stop/lock handling, and bundling python/. |
| tools/tdgpt/packaging/build_offline_assets.py | Refactors offline bundle building to support bundle kinds (venv/model/combined) and gzip outputs + manifest enhancements. |
| tools/tdgpt/packaging/README.md | Documents new resource package discovery/download behavior and wrapper default behavior updates. |
| tools/tdgpt/packaging/README-CN.md | Chinese documentation updates mirroring packaging/installer behavior changes. |
| tools/tdgpt/INSTALL.md | Notes upgrade behavior stopping existing services before replacing packaged files. |
| tools/tdgpt/INSTALL-CN.md | Chinese install notes updated for upgrade service stop behavior. |
| tools/taos-tools/src/taosdump.c | Adds dump-out error counting and tighter failure propagation; restructures AVRO dump write loop. |
| tools/taos-tools/inc/dump.h | Updates queryDbForDumpOutOffset signature to match implementation changes. |
| source/libs/function/src/builtinsimpl.c | Updates GROUP_CONCAT implementation to avoid separator bugs and handle NULL inputs correctly. |
| source/libs/executor/src/timewindowoperator.c | Applies scalar expressions during merge-aligned interval aggregation (for window expr support). |
| source/libs/executor/src/externalwindowoperator.c | Removes noisy debug logging in external window merge-aligned path. |
| test/cases/13-TimeSeriesExt/08-ExternalWindow/test_external.py | Adds more aggregate coverage in external window tests; adjusts schema/data accordingly. |
| test/cases/11-Functions/02-Aggregate/test_fun_agg_leastsquares.py | Adds regression test covering leastsquares on duplicate timestamps across child tables. |
| test/cases/11-Functions/02-Aggregate/test_agg_gconcat.py | Adds comprehensive GROUP_CONCAT regression coverage across separators, NULL handling, windows, grouping. |
| tests/ci/dockerfile_ci | Bumps taos-ws-py to 0.6.8 in CI image. |
| tests/ci/Dockerfile | Bumps taos-ws-py to 0.6.8 in CI image. |
| tests/parallel_test/run_case.sh | Bumps taos-ws-py install to 0.6.8. |
| test/ci/run_case.sh | Bumps taos-ws-py install to 0.6.8. |
| test/cases/83-DocTest/python.sh | Bumps doc-test taos-ws-py install to 0.6.8. |
| test/requirements.txt | Bumps taos-ws-py pin to 0.6.8. |
| test/pyproject.toml | Bumps taos-ws-py lower bound to 0.6.8. |
| test/uv.lock | Bumps taos-ws-py dependency constraint to >=0.6.8. |
| docs/zh/14-reference/05-connector/30-python.mdx | Adds 0.6.8 connector history entry. |
| docs/en/14-reference/05-connector/30-python.md | Adds 0.6.8 connector history entry. |
| docs/zh/14-reference/03-taos-sql/24-distinguished.md | Adds/expands EXTERNAL_WINDOW documentation and rules. |
| docs/en/14-reference/03-taos-sql/24-distinguished.md | Adds/expands EXTERNAL_WINDOW documentation and rules (EN). |
| docs/zh/14-reference/03-taos-sql/20-select.md | Adds EXTERNAL_WINDOW to window clause grammar + explanation. |
| docs/en/14-reference/03-taos-sql/20-select.md | Adds EXTERNAL_WINDOW to window clause grammar + explanation (EN). |
| docs/zh/05-basic/03-query.md | Adds EXTERNAL_WINDOW overview and adjusts rule wording. |
| docs/en/05-basic/03-query.md | Adds EXTERNAL_WINDOW overview and adjusts rule wording (EN). |
| .github/workflows/tdengine-docs-ci.yml | Cleans build/* alongside docs during docs CI sync/build. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+3285
to
+3289
| count = -1; | ||
| errorPrint("%s() LN%d, failed run %s to fetch row, taos: %p, " | ||
| "code: 0x%08x, reason: %s\n", | ||
| __func__, __LINE__, | ||
| command, taos, code, taos_errstr(res)); |
Comment on lines
+532
to
+546
| parsed = urllib.parse.urlparse(self.resource_package_url) | ||
| file_name = Path(parsed.path).name or "tdengine-tdgpt-model-resource.tar" | ||
| target_dir = self.log_dir / "downloads" | ||
| target_dir.mkdir(parents=True, exist_ok=True) | ||
| target_path = target_dir / file_name | ||
| partial_path = target_path.with_name(target_path.name + ".part") | ||
|
|
||
| self.set_progress(18, "Downloading TDgpt model resource package", f"Connecting to server for {file_name}") | ||
| self.print_info(f"Downloading TDgpt model resource package from {self.resource_package_url}") | ||
| try: | ||
| if partial_path.exists(): | ||
| partial_path.unlink() | ||
| request = urllib.request.Request(self.resource_package_url, headers={"User-Agent": "TDgptInstaller/1.0"}) | ||
| with urllib.request.urlopen(request, timeout=120) as response, partial_path.open("wb") as fh: | ||
| total_size_text = response.headers.get("Content-Length", "").strip() |
Comment on lines
2149
to
+2152
| "Selected models: " + (", ".join(self.selected_models) if self.selected_models else "None"), | ||
| f"Offline package: {self.offline_package or 'None'}", | ||
| f"Main venv package: {self.offline_package or 'None'}", | ||
| f"Model resource package: {self.offline_model_package or 'None'}", | ||
| f"Model resource package URL: {self.resource_package_url or 'None'}", |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Issue(s)
Checklist
Please check the items in the checklist if applicable.