• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

babelfish-for-postgresql / babelfish_extensions / 25815795942
78%

Build:
DEFAULT BRANCH: BABEL_6_X_DEV
Ran 13 May 2026 06:35PM UTC
Jobs 1
Files 127
Run time 4min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

13 May 2026 05:35PM UTC coverage: 77.105% (-0.1%) from 77.207%
25815795942

push

github

web-flow
[OSS-ONLY] Add persistent ANTLR parse tree cache for routines (#4802)

Cache serialized parse trees in sys.babelfish_function_ext to eliminate
redundant ANTLR parsing on first execution in new sessions. The PLtsql
function hash table is session-scoped, so without caching every new
session re-parses large routines from scratch. This reduces first-
execution time from ~2s to ~15ms for routines with ~1300 lines.

Serialized trees use a nodeToString/stringToNode framework modeled after
PostgreSQL's node serialization, with a Perl code generator producing
outfuncs/readfuncs/equalfuncs from annotated PLtsql headers. Extension-
owned NodeTags are offset from 10000 to avoid collision with PG's enum.
Cache is written at CREATE/ALTER time, restored on first EXEC in a new
session, and validated against BABELFISH_VERSION_STR to reject stale
entries after upgrades. Cache writes are skipped on read-only instances.

Caching behavior is controlled at three levels: a session-level GUC
(babelfishpg_tsql.enable_antlr_parse_cache, default true) provides the
global toggle, a per-function setting toggled via
sys.enable_antlr_parse_cache(routine_oid, true/false/NULL) allows
function owners to force-enable, force-disable, or follow the session
GUC, and a superuser-only debug GUC (validate_antlr_parse_cache)
enables roundtrip verification by comparing cached trees against fresh
ANTLR output.

Limitations: trigger functions and event triggers are not cached in this
initial implementation due to differences in datum array layout between
CREATE and EXEC time. These will be addressed in a follow-up.

Task: BABEL-6037

Author: Manisha Deshpande mmdeshp@amazon.com
(cherry picked from commit 56b641e7c)

582 of 909 new or added lines in 16 files covered. (64.03%)

53910 of 69918 relevant lines covered (77.1%)

610116.93 hits per line

Uncovered Changes

Lines Coverage ∆ File
83
51.18
contrib/babelfishpg_tsql/src/pltsql_node/pltsql_nodeio.c
74
1.27
0.0% contrib/babelfishpg_tsql/src/pl_gram.y
66
13.16
contrib/babelfishpg_tsql/src/pltsql_node/pltsql_equalfuncs.c
32
70.29
-0.6% contrib/babelfishpg_tsql/src/pl_comp.c
30
62.96
contrib/babelfishpg_tsql/src/pltsql_node/pltsql_readfuncs_stubs.c
17
85.87
0.26% contrib/babelfishpg_tsql/src/hooks.c
10
81.13
contrib/babelfishpg_tsql/src/pltsql_node/pltsql_outfuncs_stubs.c
7
75.0
contrib/babelfishpg_tsql/src/pltsql_node/pltsql_node_macros.h
4
44.56
0.0% contrib/babelfishpg_tsql/src/pl_exec.c
3
0.0
0.0% contrib/babelfishpg_tsql/src/tsqlNodes.c
1
86.89
0.36% contrib/babelfishpg_tsql/src/catalog.c
Jobs
ID Job ID Ran Files Coverage
1 25815795942.1 13 May 2026 06:35PM UTC 127
77.1
GitHub Action Run
Source Files on build 25815795942
  • Tree
  • List 127
  • Changed 12
  • Source Changed 11
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25815795942
  • 8562585d on github
  • Prev Build on BABEL_6_X_DEV (#25799300680)
  • Next Build on BABEL_6_X_DEV (#26048646215)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc