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

[CBRD-25757] check coercibility of SP parameter default values without actually coercing it #5734

Closed

Conversation

hyunikn
Copy link
Contributor

@hyunikn hyunikn commented Dec 24, 2024

http://jira.cubrid.org/browse/CBRD-25757

인자 타입에서의 NUMERIC, CHAR 는 실제로 NUMERIC(ANY, ANY), CHAR(ANY) 를 의미하나,
NUMERIC(ANY, ANY), CHAR(ANY) 로의 형변환이 큐브리드에 아직 구현되지 않았기 때문에
일단, 현단계에서 CBRD-25690은 아래와 같이 해결한다.

  • SP 인자의 디폴트 값이 파라메터 타입으로 형변환 가능한지 테스트만 하고 실제로 형변환은 하지 않음
    • 카탈로그 테이블에 사용자가 적어준 값이 형변환 되지 않고 그대로 문자열로 저장됨.
  • SP 인자의 디폴트 값의 문자열 저장값을 파라메터 타입으로 cast 하지 않고 그대로 문자열인 채로 PL 서버로 보냄.
    • 필요한 형변환은 PL 서버에서 일어남
    • 큐브리드 엔진에서의 형변환과 100% 일치하지 않는다는 문제는 있음 (시간 상 이유로 별도 이슈로 해결 요망)

…lly coerce it to the parameter type

. do not wrap SP parameter default values with CAST op; send them as string values as saved in the catalog
@hyunikn hyunikn requested a review from beyondykk9 as a code owner December 24, 2024 07:40
@hyunikn hyunikn self-assigned this Dec 24, 2024
@hyunikn hyunikn requested review from hgryoo and beyondykk9 and removed request for beyondykk9 December 24, 2024 07:40
@@ -19440,7 +19440,7 @@ pt_coerce_value_for_default_value (PARSER_CONTEXT * parser, PT_NODE * src, PT_NO
implicit_coercion = true;
}

return pt_coerce_value_internal (parser, src, dest, desired_type, data_type, true, implicit_coercion);
Copy link
Contributor Author

Choose a reason for hiding this comment

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

true 는 '... c char := 'abc' ...' 와 같은 경우 에러를 일으킵니다.

error =
pt_coerce_value_for_default_value (parser, default_value, default_value, param->type_enum,
pt_coerce_value_for_default_value (parser, default_value, dummy, param->type_enum,
Copy link
Contributor Author

Choose a reason for hiding this comment

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

형변환 가능성 검사만 하고 실제 적용하지는 않습니다.

@@ -2425,8 +2425,6 @@ jsp_get_default_expr_node_list (PARSER_CONTEXT *parser, cubpl::pl_signature &sig
else
{
default_next_node = pt_make_string_value (parser, sig.arg.arg_default_value[i]);
default_next_node = pt_wrap_with_cast_op (parser, default_next_node, pt_db_to_type_enum ((DB_TYPE) sig.arg.arg_type[i]),
Copy link
Contributor Author

Choose a reason for hiding this comment

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

cast op 로 감싸지 않고 문자열 그대로 pl 서버로 보냅니다.

@hyunikn hyunikn changed the title [CBRD-25690] check coercibility of SP parameter default values without actually coercing it [CBRD-25757] check coercibility of SP parameter default values without actually coercing it Dec 24, 2024
@hyunikn hyunikn closed this Dec 24, 2024
@hyunikn
Copy link
Contributor Author

hyunikn commented Dec 24, 2024

이슈와의 링크가 잘못되어 닫습니다. 다시 만들겠습니다.

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.

1 participant