## Problem The table compute value parser was unable to handle expressions with nested parentheses, causing incorrect extraction of computation expressions when functions with multiple parameters or nested function calls were used. This caused issues when users tried to use more complex expressions like `JSObject1.somefunction(currentRow["id"] || 0)`. ## Solution Implemented a proper nested parentheses tracking algorithm that counts opening and closing parentheses to find the correct end of the computation expression, rather than simply looking for the first closing parenthesis sequence. ## Why This Approach This solution is robust because it: 1. Properly handles any level of nested parentheses in function calls 2. Maintains backward compatibility with existing simple expressions 3. Provides a more accurate way to extract the computation expression ## Testing - Added a new test case with nested parentheses: `JSObject1.somefunction(currentRow["id"] || 0)` - Ensured existing test cases still pass - Manually verified with complex expressions containing multiple nested parentheses This fix enables users to write more complex table computations involving function calls with multiple parameters and conditions. Fixes #40265 ## Automation /ok-to-test tags="@tag.Table, @tag.Widget, @tag.Binding, @tag.Sanity, @tag.PropertyPane" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/14610729968> > Commit: abbbaebfe5cf723109bee517e5f6f0cebf96a74a > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14610729968&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Table, @tag.Widget, @tag.Binding, @tag.Sanity, @tag.PropertyPane` > Spec: > <hr>Wed, 23 Apr 2025 07:45:26 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Bug Fixes** - Improved handling of computed values in table controls to correctly process nested parentheses and avoid errors from malformed expressions. - **Tests** - Added test cases for complex computed expressions with nested parentheses, logical operators, and malformed inputs to ensure robustness. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Vivekanand Ilango <vivek@Vivekanands-MacBook-Pro.local> Co-authored-by: Vivekanand Ilango <vivek.ilango@appsmith.com> |
||
|---|---|---|
| .cursor | ||
| .github | ||
| app | ||
| contributions | ||
| deploy | ||
| scripts | ||
| static | ||
| .coderabbit.yaml | ||
| .deepsource.toml | ||
| .editorconfig | ||
| .env.example | ||
| .gitignore | ||
| .imgbotconfig | ||
| .nojekyll | ||
| app.json | ||
| appsmith_events.md | ||
| appsmith_templates.md | ||
| ci-debug.sh | ||
| CODE_OF_CONDUCT.md | ||
| CODEOWNERS | ||
| CONTRIBUTING.md | ||
| depot.json | ||
| Dockerfile | ||
| heroku.yml | ||
| IssuesReport.md | ||
| LICENSE | ||
| README.md | ||
| SECURITY.md | ||
Organizations build internal applications such as dashboards, database GUIs, admin panels, approval apps, customer support dashboards, and more to help their teams perform day-to-day operations. Appsmith is an open-source tool that enables the rapid development of these internal apps. Read more on our website.
Installation
There are two ways to start using Appsmith:
- Signup on Appsmith Cloud.
- Install Appsmith on your machine. See the installation guides below.
| Installation Methods | Documentation |
|---|---|
| Docker (Recommended) | |
| Kubernetes | |
| AWS AMI |
For other deployment options, see the Installation Guides documentation.
Development
To build and run Appsmith in your local dev environment, see Setup for local development.
Learning Resources
Need Help?
Contributing
We ❤️ our contributors. We're committed to fostering an open, welcoming, and safe environment in the community.
📕 We expect everyone participating in the community to abide by our Code of Conduct. Please read and follow it.
🤝 If you'd like to contribute, start by reading our Contribution Guide.
👾 Explore some good first issues.
Let's build great software together.
Top Contributors
License
Appsmith is licensed under the terms of Apache License 2.0.
