Commit 5fd7af7
fix: UDF/ODFV source rehydrate (+ Postgres / online cache) (#6655)
* fix: prefer UDF source over dill; Postgres SELECT *; fresh online registry reads
Rehydrate BatchFeatureView/ODFV callables from body_text (strip leading
decorators) before dill.loads to avoid Spark driver exit 139 and
cross-Python serve failures. Treat empty Postgres feature_name_columns as
SELECT *. Disable registry cache on the online request path so FeatureView
state gates see AVAILABLE_ONLINE immediately after materialize.
RayTransformation.from_proto left unchanged (follow-up).
Signed-off-by: Aniket Paluskar <apaluska@redhat.com>
* Lint
Signed-off-by: Aniket Paluskar <apaluska@redhat.com>
* fix: drop global allow_cache=False on online path
Post-materialize MATERIALIZING gate lag is handled by client retry /
registry TTL refresh, not by bypassing the registry cache on every
online request. Addresses review feedback on #6655.
Signed-off-by: Aniket Paluskar <apaluska@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix: replace UDF decorator strip regex with linear scan
Avoid CodeQL ReDoS finding on nested @/newline regex when rehydrating
body_text. Add multiline and adversarial @ spam unit tests.
Signed-off-by: Aniket Paluskar <apaluska@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix: cast resolve_udf result to FunctionType for mypy
Signed-off-by: Aniket Paluskar <apaluska@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix: compare UDF transformations by udf_string when present
Source-first from_proto rebuilds callables whose bytecode differs from
the live repo function; requiring co_code equality made no-op feast apply
rewrite ODFVs and broke universal CLI integration tests.
Signed-off-by: Aniket Paluskar <apaluska@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
* lint
Signed-off-by: Aniket Paluskar <apaluska@redhat.com>
* fix: align Ray __eq__ with source identity; cache Spark UDF resolve
RayTransformation now compares by udf_string when present (same contract
as Pandas/Python) so a future source-first from_proto will not break
no-op apply. SparkTransformationNode caches resolve_udf so strip+exec
runs once per node lifetime.
Signed-off-by: Aniket Paluskar <apaluska@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Signed-off-by: Aniket Paluskar <apaluska@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>1 parent f771ea4 commit 5fd7af7
12 files changed
Lines changed: 513 additions & 42 deletions
File tree
- sdk/python
- feast
- infra
- compute_engines/spark
- offline_stores/contrib/postgres_offline_store
- transformation
- tests
- component/spark
- unit
- infra/offline_stores/contrib/postgres_offline_store
- transformation
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 4 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
109 | 109 | | |
110 | 110 | | |
111 | 111 | | |
112 | | - | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
113 | 116 | | |
114 | 117 | | |
115 | 118 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| 48 | + | |
48 | 49 | | |
49 | 50 | | |
50 | 51 | | |
| |||
602 | 603 | | |
603 | 604 | | |
604 | 605 | | |
605 | | - | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
606 | 613 | | |
607 | 614 | | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
608 | 632 | | |
609 | 633 | | |
610 | 634 | | |
| |||
613 | 637 | | |
614 | 638 | | |
615 | 639 | | |
616 | | - | |
| 640 | + | |
617 | 641 | | |
618 | 642 | | |
619 | 643 | | |
| |||
Lines changed: 39 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | | - | |
111 | | - | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
112 | 133 | | |
113 | 134 | | |
114 | 135 | | |
| |||
275 | 296 | | |
276 | 297 | | |
277 | 298 | | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
282 | 309 | | |
283 | | - | |
284 | 310 | | |
285 | 311 | | |
286 | 312 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | 4 | | |
6 | 5 | | |
7 | 6 | | |
| |||
134 | 133 | | |
135 | 134 | | |
136 | 135 | | |
137 | | - | |
138 | | - | |
139 | | - | |
140 | | - | |
141 | | - | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
142 | 144 | | |
143 | | - | |
| 145 | + | |
144 | 146 | | |
145 | 147 | | |
146 | 148 | | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
147 | 157 | | |
148 | | - | |
149 | | - | |
| 158 | + | |
| 159 | + | |
150 | 160 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | 4 | | |
6 | 5 | | |
7 | 6 | | |
| |||
145 | 144 | | |
146 | 145 | | |
147 | 146 | | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
153 | 155 | | |
154 | | - | |
| 156 | + | |
155 | 157 | | |
156 | 158 | | |
157 | 159 | | |
| |||
162 | 164 | | |
163 | 165 | | |
164 | 166 | | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
165 | 175 | | |
166 | | - | |
167 | | - | |
| 176 | + | |
| 177 | + | |
168 | 178 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
272 | 272 | | |
273 | 273 | | |
274 | 274 | | |
275 | | - | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
282 | 283 | | |
283 | 284 | | |
284 | 285 | | |
| |||
0 commit comments