cubrid
cubrid copied to clipboard
[CBRD-25156] Let four system parameters take effect during PL/CSQL program execution
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 를 임시로 구현해 둠.