Repository navigation
fix: support ABAP SQL string functions - #27
Merged
Merged
Conversation
Owner
Author
|
Final checked head a662e00 is green. Quality run: https://github.com/marianfoo/ztoad/actions/runs/31173457448 (Repository quality / ABAP 7.50 passed); abaplint passed and observations completed neutral. The post-green audit changed documentation only, moved the plan to docs/plans/finished, and did not invalidate the frozen ABAP candidate or its recorded live-system evidence. |
This was referenced Aug 7, 2026
marianfoo
pushed a commit
that referenced
this pull request
Aug 7, 2026
🤖 I have created a release *beep* *boop* --- ## [5.0.1](5.0.0...5.0.1) (2026-08-07) ### Bug Fixes * bound temporary subroutine pools ([#32](#32)) ([ef54657](ef54657)) * classify ZTOAD table as not extensible ([#26](#26)) ([e5ae759](e5ae759)) * enforce bounded SELECT results ([#33](#33)) ([b6acc14](b6acc14)) * execute queries safely in WebGUI ([#24](#24)) ([5218476](5218476)) * execute UNION as one SQL set ([a5ad27c](a5ad27c)) * generate aggregate CASE result types ([#21](#21)) ([d532b2e](d532b2e)) * isolate generated query failures ([#31](#31)) ([b0b4d9f](b0b4d9f)) * parse top-level SQL clauses ([#28](#28)) ([c5ca65b](c5ca65b)) * support ABAP SQL string functions ([#27](#27)) ([0f056e8](0f056e8)) * verify complete native-abapGit installation ([#22](#22)) ([2360fe4](2360fe4)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.
Summary
SUBSTRING,CONCAT,LENGTH,LPAD,LTRIM,REPLACE,RIGHT, andRTRIMresult generationFixes #4.
Root cause
QUERY_GENERATEreplaced every comma in its inference copy and split the result at spaces. That collapsed top-level result separators, nested function arguments, and literal data into the same representation, so tokens such asSUBSTRING(fell through to invalid DDIC component inference.LENGTHalso failed to activate strict ABAP SQL clause ordering because it contains no comma.The new scanner normalizes only the metadata-inference copy. It tracks parentheses, literals, and doubled quotes; supported function expressions are kept together and malformed representations fail closed before generated-program creation.
TDD evidence
f75fad1on SAP_BASIS 750: all 67 inherited tests passed and exactly four new function-generator regressions failed6a2971b: 78/78 ABAP Unit tests pass on SAP_BASIS 750 and SAP_BASIS 7584f07726e262d06a42fa56257197bd22ce5d1654fbf64919e9069f2a28deb325636ebfcba68733ff91655ec552298af8ec5d19a203767aa88f34dedc67d7e6f83Validation
npm ci: passed, no dependency vulnerabilitiesnpm test: passed, configured abaplint has 0 findingsgit diff --check: passedDEFAULTATC passed; ATC remained 88 findingsABAP_CLOUD_READINESSpassed; ATC remained 682 findingsS4HANA_READINESS_2023returned no rows but remains explicitly prerequisite-incompleteSUBSTRINGand nestedCONCAT/SUBSTRINGqueries with expected aliasesCompatibility and risk
The implementation uses ABAP syntax and APIs available on SAP_BASIS 750. It introduces no new SAP API or structural object. Existing source authorization, full-fragment validation, generated-line splitting, and both
GENERATE SUBROUTINE POOLgates remain in place.This is a non-breaking bug fix. Release Please PR #23 is intentionally not modified or merged here.