cubrid icon indicating copy to clipboard operation
cubrid copied to clipboard

[CBRD-25156] Let four system parameters take effect during PL/CSQL program execution

Open hyunikn opened this issue 7 months ago • 0 comments

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

네 개의 시스템 파라메터를 PL/CSQL 프로그램 실행에 반영

  • compat_numeric_division_scale :
    • 파라메터 값이 no 일 때 numeric 값 나눗셈 연산자에서 scale 을 9로 늘려 줌.
  • oracle_compat_number_behavior :
    • 파라메터 값이 yes 일 때 numeric, double, float 값 문자열 변환에서 trailing 0 와 소수점을 잘라냄
    • 파라메터 값이 no 일 때 double, float 값 문자열 변환에서 지수 형식으로 표시
    • 정수 나누기를 numeric 나누기로 바꿀지 여부 (예: 1/2 --> 0 or 0.5) - 미구현
      • 실행시간에 int 혹은 numeric 타입이 되도록 타입 검사 로직과 Java 코드 생성부 구현에 장시간 소요 예상
      • 스펙 재논의 필요
  • oracle_style_empty_string
    • 문자열을 연산자로 갖는 연산 함수에서 파라메터 값을 고려해서 빈문자열을 null 로 치환해 줌
  • timezone
    • timestamp 리터럴을 파싱하거나 문자열을 timestamp 로 변환할 때 파라메터 값을 고려
    • timestamp 값을 문자열로 바꿀 때 파라메터 값을 고려

파라메터 값이 바뀌더라도 재컴파일 할 필요가 없도록 실행시간에 값을 고려하여 지정된 동작을 하도록 구현.

파라메터의 실제 값 반영 부분이 구현되기 전 진행을 위해서 Server 클래스에 mock API 를 임시로 구현해 둠.

hyunikn avatar Jun 28 '24 08:06 hyunikn