SNOW-2912540: translate create_temp_table=True to table_type in AST encoding (rebased onto main) - #4307
Open
sfc-gh-fpawlowski wants to merge 2 commits into
Open
SNOW-2912540: translate create_temp_table=True to table_type in AST encoding (rebased onto main)#4307sfc-gh-fpawlowski wants to merge 2 commits into
sfc-gh-fpawlowski wants to merge 2 commits into
Conversation
…ncoding The deprecated `create_temp_table` parameter was being emitted to the proto AST as a separate boolean field even though the runtime already translates it to `table_type="temporary"`. This meant the AST decoder had to handle two representations for the same thing. Fix: move the deprecation coercion before the AST block in save_as_table so `table_type` is already resolved when emitted; remove the deprecated field from both AST emission sites (WriteTable and WritePandas); update the internal cache_result mock path to pass table_type="temp" directly; mark the proto fields as deprecated. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…_table removal Remove create_temp_table from the expected encoded AST and unparser output in the write_pandas golden test — the field is no longer emitted to the proto since the deprecation coercion now happens before the AST block, making table_type the sole carrier of this information. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
sfc-gh-fpawlowski
marked this pull request as ready for review
August 6, 2026 09:01
sfc-gh-fpawlowski
requested review from
sfc-gh-aling,
sfc-gh-jzeng and
sfc-gh-mayliu
August 6, 2026 09:01
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4307 +/- ##
==========================================
+ Coverage 95.26% 95.46% +0.19%
==========================================
Files 171 171
Lines 44720 44718 -2
Branches 7676 7676
==========================================
+ Hits 42604 42691 +87
+ Misses 1299 1253 -46
+ Partials 817 774 -43 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Author
This was referenced Aug 6, 2026
Draft
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
Rebases the fix from #4296 onto
main. #4296's head branch (worktree-create-temp-table-ast-fix) is based on the staleud-local-test-scriptsbranch, which is 49 commits behindmain— so it can't land there cleanly. This PR cherry-picks #4296's two commits (unchanged, same authorship) directly onto currentmain, where they apply without conflicts.Same fix as #4296: stops emitting the deprecated
create_temp_tableparameter into the encoded AST sent to the server, without changing Snowpark's own public API —create_temp_tablestays in the function signatures, still fires its deprecation warning, and still works exactly as before for callers. Onlytable_type(already resolved fromcreate_temp_tablewhen needed) is now recorded in the AST.Changes:
dataframe_writer.py: Movecreate_temp_tabledeprecation coercion to before the AST emission block insave_as_table, sotable_typeis already resolved whenWriteTableis encoded. Removeexpr.create_temp_tableemission.session.py: Removeast.create_temp_table = create_temp_tablefrom thewrite_pandasAST block — the coercion already fires before AST emission there, soast.table_typecarries the correct value.dataframe.py: Replacecreate_temp_table=Truewithtable_type="temp"in the internalcache_resultmock path, matching the real code path and avoiding a spurious deprecation warning from internal code.ast.proto: Mark bothcreate_temp_tablefields as// Deprecated: use table_type instead.(fields retained for wire compatibility).tests/ast/data/session_write_pandas.test: Removecreate_temp_table: truefrom expected encoded AST andcreate_temp_table=Truefrom expected unparser output.Test plan
tests/ast/test_ast_driver.py::test_ast[session_write_pandas.test]passestests/ast/test_ast_driver.py::test_ast[DataFrame.write.test]passessave_as_table(..., create_temp_table=True)still logs the deprecation warning and creates a temp tablecache_result()no longer emits the spurious deprecation warningSupersedes #4296 for the purpose of landing on
main.Stack (via Graphite)
🤖 Generated with Claude Code