Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

insert varchar column mismatch through INSERT INTO EXEC into a table #2017

Merged

Conversation

forestkeeper
Copy link
Contributor

@forestkeeper forestkeeper commented Nov 14, 2023

Previously insert exec impl didn't consider the type cast during execution, this fix has add a implicit type cast between insert execution and exec execution if the type is mismatched.

Task: BABEL-2999

Check List

  • Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is under the terms of the Apache 2.0 and PostgreSQL licenses, and grant any person obtaining a copy of the contribution permission to relicense all or a portion of my contribution to the PostgreSQL License solely to contribute all or a portion of my contribution to the PostgreSQL open source project.

For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Task: BABEL-2999
Signed-off-by: Zhibai Song <szh@amazon.com>
contrib/babelfishpg_tsql/src/pl_exec-2.c Outdated Show resolved Hide resolved
@@ -3047,6 +3069,210 @@ exec_stmt_insert_execute_select(PLtsql_execstate *estate, PLtsql_expr *query)
return PLTSQL_RC_OK;
}

static AttrMap* build_typecast_attrmap_by_position(TupleDesc indesc, TupleDesc outdesc, const char *msg)
Copy link
Contributor

@2jungkook 2jungkook Nov 14, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems like this is very similar to build_attrmap_by_position(). In that case, adding a special handling to the function can be better, if possible (either by adding a new hook or dialect check). If we copy engine's function, it will be not easy to adopt a new major versions when there are some changes in the original function.

test/JDBC/expected/BABEL-2999-vu-verify.out Outdated Show resolved Hide resolved
@forestkeeper forestkeeper merged commit 2d20e6c into babelfish-for-postgresql:BABEL_3_X_DEV Nov 15, 2023
28 checks passed
staticlibs pushed a commit to wiltondb/babelfish_extensions that referenced this pull request Mar 15, 2024
Previously insert exec implement didn't consider the type cast during execution, this fix has add a implicit type cast between insert execution and exec execution if the type is mismatched.

Engine pr : babelfish-for-postgresql/postgresql_modified_for_babelfish#256

Task: BABEL-2999, BABEL-4426
Signed-off-by: Zhibai Song <szh@amazon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants