ALTIBASE HDB Patch Notes

Similar documents
목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

ALTIBASE HDB Patch Notes

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

ALTIBASE HDB Patch Notes

목차 BUG ora(alti)adapter 에서복제대상 DB 장애로데이터정합성이깨진후맞춰지지않습니다... 3 BUG PERCENTILE_CONT, PERCENTILE_DISC, MEDIAN 에서 DATE 타입을지원해야합니다 BUG-438

쉽게 풀어쓴 C 프로그래밊

10.ppt

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

DBMS & SQL Server Installation Database Laboratory

13주-14주proc.PDF

歯sql_tuning2

chap 5: Trees

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

강의 개요

歯JavaExceptionHandling.PDF

슬라이드 1

rmi_박준용_final.PDF

MySQL-.. 1

Spring Boot/JDBC JdbcTemplate/CRUD 예제

NoSQL

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

TITLE

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

문서 템플릿

제목을 입력하세요.

Microsoft PowerPoint - 10Àå.ppt

JAVA PROGRAMMING 실습 09. 예외처리

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

untitled

Tablespace On-Offline 테이블스페이스 온라인/오프라인

신림프로그래머_클린코드.key

FileMaker ODBC and JDBC Guide

SQL Tuning Business Development DB

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

PowerPoint 프레젠테이션

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

DocsPin_Korean.pages

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT

자바-11장N'1-502

FileMaker ODBC 및 JDBC 가이드

Microsoft PowerPoint - Java7.pptx

슬라이드 1

Modern Javascript

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

Cluster management software

Microsoft PowerPoint - 04-UDP Programming.ppt

PowerPoint 프레젠테이션

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

PowerPoint Presentation

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER

Jerry Held


untitled

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

MS-SQL SERVER 대비 기능

FileMaker 15 ODBC 및 JDBC 설명서

Ç¥Áö

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

개발문서 Oracle - Clob

- 다음은 Statement 객체를사용해서삽입 (insert) 작업의예 String sql = "insert into member(code, name, id, pwd, age) values ("; int id = 10; sql = sql + id +, ;// 항목사이에

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

FileMaker ODBC and JDBC Guide

Microsoft PowerPoint - CSharp-10-예외처리

슬라이드 1

5장 SQL 언어 Part II

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

PowerPoint 프레젠테이션

untitled

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 08.다형성

[ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL T-SQL 문법 5.3 JAVA 프로그래밍 2

PowerPoint Presentation

윈도우시스템프로그래밍

Microsoft PowerPoint - 18-DataSource.ppt

Chap 6: Graphs

어댑터뷰

untitled

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

Microsoft PowerPoint - aj-lecture5.ppt [호환 모드]

JAVA PROGRAMMING 실습 05. 객체의 활용

chap01_time_complexity.key

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

gnu-lee-oop-kor-lec06-3-chap7

초보자를 위한 분산 캐시 활용 전략

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

PowerPoint 프레젠테이션

Frama-C/JESSIS 사용법 소개

PowerPoint Presentation

설계란 무엇인가?

thesis

Chapter 4. LISTS

Transcription:

ALTIBASE HDB 6.3.1.10.6 Patch Notes

목차 BUG-45060 offline replication start 와 replication drop 을동시에수행하는경우, replication start 가완료되지않았으면 replication drop 을수행하지못하도록수정하였습니다... 4 BUG-46193 메모리테이블의이중화병렬 sync 의성능을개선합니다... 5 BUG-46202 v$event_name 에중복된항목이있습니다... 7 BUG-46229 MERGE 구문에서의메모리재사용개선... 8 BUG-46230 idumemory 의 getstatus(), setstatus() 함수에러메시지세분화... 9 BUG-46249 group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 10 BUG-46264 디스크테이블에서 window sort 의 order by 절에동일한컬럼을중복하여나열하는경우, hang 이발생할수있습니다... 13 BUG-46265 Create Disk Temp Table 에서 Key column list 가순환할수도있는지검증합니다.... 14 BUG-46266 [sm] V$LFG 에서삭제된 logfile 번호컬럼 (FIRST_DELETED_LOGFILE, LAST_DELETED_LOGFILE) 값이잘못출력됩니다... 15 BUG-46279 Disk temp 사용시 grouping 데이터의정렬이 subquery 를참조하는경우결과값오류가발생합니다... 16 BUG-46292 aexport 에서객체를생성할때, BIGINT 타입의 Object Id 가 integer 타입으로바인딩되어 Numeric value out of range 에러가발생합니다... 19 BUG-46295 뷰생성문마지막라인에단일행주석이포함될경우, 생성된 SQL 파일이정상적으로실행되지않습니다... 20 BUG-46309 PSM 안에서 dequeue 호출시 into 절을누락하면서버가비정상종료할수있습니다... 22 BUG-46314 각서버에서이중화대상 Table 의컬럼순서가다른경우, Update 수행시이중화가정상적으로수행되지않습니다... 25 2 / 32

BUG-46322 Disk Sort Temp Table 중특정 merge join 에서정상상황임에도비정상으로판단하여오류를잘못반환하는문제를수정합니다. 26 BUG-46383 Disk Sort Temp Table 에서잘못된 page 를읽어서 hang 이발생하는문제를수정합니다... 28 BUG-46384 Disk Sort Temp Table 에서작업완료되지않은 page 가다른 page 로변경되어오작동하거나 hang 이발생하는문제를수정합니다... 29 BUG-46407 dump_stack.sh 에서간헐적으로콜스택을가져오지못하는상황이있습니다... 30 BUG-46410 sdctemprow::filteringandfetch() 에서 row Ptr 이잘못설정될수있습니다.... 31 3 / 32

BUG-45060 offline replication start 와 replication drop 을동시에 수행하는경우, replication start 가완료되지않았으면 replication drop 을수행하지못하도록수정하였습니다. 증상변경사항 rp Fatal Frequence 재현절차 N/A 수행결과 N/A 예상결과 N/A 오프라인이중화에서 replication start 와 replication drop 을동시에수행하는경우, offline replication start 가진행중일때 replication drop 이관련자료구조를삭제하여, 예기치못한오류가발생할수있습니다. 이에 replication start 가완료되지않았으면 replication drop 을수행하지못하도록수정하였습니다. N/A 4 / 32

BUG-46193 메모리테이블의이중화병렬 sync 의성능을개선합니다. 증상변경사항 rp Efficiency Always 재현절차 N/A 수행결과 N/A 예상결과 N/A 메모리테이블의이중화병렬 sync 에서성능개선및관리효율성을위해 REPLICATION_SYNC_TUPLE_COUNT 를각테이블에맞게적절한값으로동작하는기능을추가하였습니다. REPLICATION_SYNC_TUPLE_COUNT 프로퍼티를 0 으로설정하면, REPLICATION_SYNC_TUPLE_COUNT 가테이블의레코드최대개수에송신쓰레드를나눈값으로자동계산됩니다. 만약자동으로계산된건수가 50 만건보다작은경우, 50 만건으로설정됩니다. 자동으로계산된레코드건수가 50 만건보다큰경우, 로그가쌓이는것을방지하기위해서 50 만건단위로커밋합니다. 참고로, 기존에는 REPLICATION_SYNC_TUPLE_COUNT 를 0 으로설정하면, sync 가동작하지않았습니다. 또한, REPLICATION_SYNC_TUPLE_COUNT 프로퍼티의기본값이 500000 에서 0 으로변경되었습니다. - 이름 : REPLICATION_SYNC_TUPLE_COUNT - 공개 / 비공개 : 공개 - 변경 / 추가 / 삭제 : 변경 - 최소값, 최대값, 기본값 : 0,2^64-1,0 - 속성설명 : Property 병렬동기화시송신쓰레드가한번에읽어서처리할수있는레코드의최대개수를지정한다. Altibase 운영중 ALTER SYSTEM 문을이용하여이프로퍼티의값을변경할수있다. 0 으로설정시각테이블마다테이블의 row 개수에따라적절한값으로처리된다. ( 보통 row 개수 / 송신쓰레드수로동작하지만 5 / 32

50 만이하인경우 50 만으로동작한다 ) Error Code N/A N/A 6 / 32

BUG-46202 v$event_name 에중복된항목이있습니다. sm Message Error Always set vertical on; 재현절차 select * from v$event_name where name in('latch free: drdb secondary bcb mutex'); isql> select * from v$event_name where name in('latch free: drdb secondary bcb mutex'); EVENT_ID : 32 NAME : latch free: drdb secondary bcb mutex WAIT_CLASS_ID : 3 수행결과 WAIT_CLASS : Concurrency EVENT_ID : 33 NAME : latch free: drdb secondary bcb mutex WAIT_CLASS_ID : 3 WAIT_CLASS : Concurrency 2 rows selected. isql> select * from v$event_name where name in('latch free: drdb secondary bcb mutex'); EVENT_ID : 32 예상결과 NAME : latch free: drdb secondary bcb mutex WAIT_CLASS_ID : 3 WAIT_CLASS : Concurrency 1 row selected. 증상 v$event_name 에중복된항목이있어, 수정하였습니다. 변경사항 N/A 7 / 32

BUG-46229 MERGE 구문에서의메모리재사용개선 증상변경사항 qp-dml-execute Maintainability Always 재현절차 N/A 수행결과 N/A 예상결과 N/A Merge 함수에서메모리재사용코드를적절한값으로사용하도록조정하였습니다. N/A 8 / 32

BUG-46230 idumemory 의 getstatus(), setstatus() 함수에러메시지 세분화 증상변경사항 id Other Always 재현절차 N/A 수행결과 N/A 예상결과 N/A idumemory 의 getstatus(), setstatus() 함수에러메시지세분화 N/A 9 / 32

BUG-46249 group by 표현식에있는컬럼을참조하는집합연산이존재하지 않으면결괏값오류가발생할수있습니다. 재현절차 qp-select-pvo Functional Error Always drop table t1; create table t1 ( c1 varchar(15) ); insert into t1 values ( 'eee' ); insert into t1 values ( 'aaa' ); insert into t1 values ( 'bbb' ); insert into t1 values ( 'ddd' ); insert into t1 values ( 'bbb' ); insert into t1 values ( 'ccc' ); insert into t1 values ( 'aaa' ); insert into t1 values ( 'ccc' ); insert into t1 values ( 'eee' ); insert into t1 values ( 'ddd' ); select /*+ group_sort no_plan_cache */ substr(c1, 1, 3),count(case when substr(c1, 1, 3) = 'SPBKO' then 1 else 0 end) gg1 from t1 group by substr(c1, 1, 3); 수행결과 select /*+ group_hash no_plan_cache */ substr(c1, 1, 3),min(c1),count(case when substr(c1, 1, 3) = 'SPBKO' then 1 else 0 end) gg1 from t1 group by substr(c1, 1, 3); isql> select /*+ group_sort no_plan_cache */ substr(c1, 1, 3) 2,count(case when substr(c1, 1, 3) = 'SPBKO' then 1 else 0 end) gg1 3 from t1 group by substr(c1, 1, 3); SUBSTR(C1, 1, 3) GG1 ------------------------------------------ ddd 1 ddd 1 10 / 32

ddd 1 ddd 1 ddd 1 ddd 3 ddd 1 ddd 1 8 rows selected. 예상결과 isql> select /*+ group_hash no_plan_cache */ substr(c1, 1, 3) 2,min(c1) 3,count(case when substr(c1, 1, 3) = 'SPBKO' then 1 else 0 end) gg1 4 from t1 group by substr(c1, 1, 3); SUBSTR(C1, 1, 3) MIN(C1) GG1 ------------------------------------------------------------ eee eee 2 aaa aaa 2 bbb bbb 2 ddd ddd 2 ccc ccc 2 5 rows selected. isql> select /*+ group_sort no_plan_cache */ substr(c1, 1, 3) 2,count(case when substr(c1, 1, 3) = 'SPBKO' then 1 else 0 end) gg1 3 from t1 group by substr(c1, 1, 3); SUBSTR(C1, 1, 3) GG1 ------------------------------------------ aaa 2 bbb 2 ccc 2 ddd 2 eee 2 5 rows selected. isql> select /*+ group_hash no_plan_cache */ substr(c1, 1, 3) 2,min(c1) 11 / 32

증상 변경사항 3,count(case when substr(c1, 1, 3) = 'SPBKO' then 1 else 0 end) gg1 4 from t1 group by substr(c1, 1, 3); SUBSTR(C1, 1, 3) MIN(C1) GG1 ------------------------------------------------------------ eee eee 2 aaa aaa 2 bbb bbb 2 ddd ddd 2 ccc ccc 2 5 rows selected. group by 표현식에있는컬럼 (t1.c1) 을참조하는집합 연산 (min(c1)) 이존재하지않으면, case 구문에포함된 substring 연산이오동작해서결괏값오류가발생할수있습니다. 수정방법은 case 구문에포함된 substring 연산이 group by 표현식을참조하도록변경합니다. use group_hash hint 12 / 32

BUG-46264 디스크테이블에서 window sort 의 order by 절에동일한 컬럼을중복하여나열하는경우, hang 이발생할수있습니다. 증상변경사항 qp-select-execute Hang Always DROP TABLE T1; CREATE TABLE T1 ( I0 integer, I1 integer ) TABLESPACE sys_tbs_disk_data; 재현절차 INSERT INTO T1 VALUES ( 0, 0 ); INSERT INTO T1 VALUES ( 0, 0 ); SELECT I0,I1, ROW_NUMBER() OVER( ORDER BY I0, I1, I0 ) FROM t1; 수행결과 Hang isql> SELECT I0,I1, ROW_NUMBER() OVER( ORDER BY I0, I1, I0 ) FROM t1; I0 I1 ROW_NUMBER() OVER( ORDER BY I0, I1, I0 ) 예상결과 --------------------------------------------------------------------- 0 0 1 0 0 2 2 rows selected. 디스크테이블에서 window sort 의 order by 절에동일한컬럼을중복하여나열하는경우, 중복을제거하여 hang 이발생하지않도록수정하였습니다. SELECT I0,I1, ROW_NUMBER() OVER( ORDER BY I0, I1 ) FROM t1; 또는 SELECT /*+ TEMP_TBS_MEMORY */ I0,I1, ROW_NUMBER() OVER( ORDER BY I0, I1, I0 ) FROM t1; 13 / 32

BUG-46265 Create Disk Temp Table 에서 Key column list 가순환할수도 있는지검증합니다. sm-disk-resource Hang Always drop table t1; create table t1 ( I0 integer, I1 integer ) tablespace sys_tbs_disk_data; 재현절차 insert into t1 values( 0, 0 ); insert into t1 values( 0, 0 ); SELECT I0,I1, ROW_NUMBER() OVER( ORDER BY I0, I1, I0 ) FROM t1; 수행결과 Hang 예상결과 isql> SELECT I0,I1, ROW_NUMBER() OVER( ORDER BY I0, I1 ) FROM t1; I0 I1 ROW_NUMBER()OVER(ORDERBYI0,I1) ----------------------------------------------------------- 0 0 1 0 0 2 2 rows selected. 증상 Create Disk Temp Table 에서 Key column list 에중복이있는경우, 무시하도록수정하였습니다. 이로인해 HANG 이발생하던문제가수정되었습니다. 변경사항 SELECT I0,I1, ROW_NUMBER() OVER( ORDER BY I0, I1 ) FROM t1; 14 / 32

BUG-46266 [sm] V$LFG 에서삭제된 logfile 번호 컬럼 (FIRST_DELETED_LOGFILE, LAST_DELETED_LOGFILE) 값이 잘못출력됩니다. 증상변경사항 sm Functional Error Always 재현절차 N/A 수행결과 N/A 예상결과 N/A V$LFG 에서삭제된 logfile 번호컬럼 FIRST_DELETED_LOGFILE, LAST_DELETED_LOGFILE 값이잘못출력되던문제를수정하였습니다. N/A 15 / 32

BUG-46279 Disk temp 사용시 grouping 데이터의정렬이 subquery 를 참조하는경우결과값오류가발생합니다. 재현절차 수행결과 qp-select-pvo Functional Error Always DROP TABLE T1; DROP TABLE T3; CREATE TABLE T1 ( game_id int ) TABLESPACE sys_tbs_disk_data; CREATE TABLE T3 ( game_nm int, game_id int ) TABLESPACE sys_tbs_disk_data; INSERT INTO T1 SELECT LEVEL FROM DUAL CONNECT BY LEVEL <= 5; INSERT INTO T3 SELECT LEVEL, LEVEL FROM DUAL CONNECT BY LEVEL <= 5; SELECT (SELECT GAME_NM FROM T3 WHERE GAME_ID = a.game_id) AS GAME_NM FROM T1 a GROUP BY a.game_id ORDER BY a.game_id, GAME_NM ; SELECT /*+ TEMP_TBS_MEMORY */ (SELECT GAME_NM FROM T3 WHERE GAME_ID = A.GAME_ID) AS GAME_NM FROM T1 A GROUP BY A.GAME_ID ORDER BY A.GAME_ID, GAME_NM ; isql> SELECT (SELECT GAME_NM FROM T3 WHERE GAME_ID = a.game_id) AS GAME_NM 2 FROM T1 a 3 GROUP BY a.game_id 4 ORDER BY a.game_id, 16 / 32

5 GAME_NM 6 ; GAME_NM -------------- 5 예상결과 1 2 4 5 rows selected. isql> SELECT /*+ TEMP_TBS_MEMORY */ (SELECT GAME_NM FROM T3 WHERE GAME_ID = A.GAME_ID) AS GAME_NM 2 FROM T1 A 3 GROUP BY A.GAME_ID 4 ORDER BY A.GAME_ID, 5 GAME_NM 6 ; GAME_NM -------------- 1 2 3 4 5 5 rows selected. isql> SELECT (SELECT GAME_NM FROM T3 WHERE GAME_ID = a.game_id) AS GAME_NM 2 FROM T1 a 3 GROUP BY a.game_id 4 ORDER BY a.game_id, 5 GAME_NM 6 ; GAME_NM -------------- 1 2 17 / 32

증상 변경사항 3 4 5 5 rows selected. isql> SELECT /*+ TEMP_TBS_MEMORY */ (SELECT GAME_NM FROM T3 WHERE GAME_ID = A.GAME_ID) AS GAME_NM 2 FROM T1 A 3 GROUP BY A.GAME_ID 4 ORDER BY A.GAME_ID, 5 GAME_NM 6 ; GAME_NM -------------- 1 2 3 4 5 5 rows selected. Disk temp 사용시 grouping 데이터의정렬이 subquery 를참조하는경우결과값오류가발생합니다. SELECT /*+ TEMP_TBS_MEMORY */ (SELECT GAME_NM FROM T3 WHERE GAME_ID = A.GAME_ID) AS GAME_NM FROM T1 A GROUP BY A.GAME_ID ORDER BY A.GAME_ID, GAME_NM ; 18 / 32

BUG-46292 aexport 에서객체를생성할때, BIGINT 타입의 Object Id 가 integer 타입으로바인딩되어 Numeric value out of range 에러가발생합니다. 증상변경사항 ux-aexport Fatal Always 재현절차 N/A 수행결과 N/A 예상결과 N/A aexport 에서객체를생성할때, BIGINT 타입의 Object Id 가 integer 타입으로바인딩되어 Numeric value out of range 에러가발생하는데, 이를수정하였습니다. N/A 19 / 32

BUG-46295 뷰생성문마지막라인에단일행주석이포함될경우, 생성된 SQL 파일이정상적으로실행되지않습니다. 재현절차 ux-aexport Functional Error Always import java.sql.connection; import java.sql.drivermanager; import java.sql.sqlexception; import java.sql.statement; import java.util.properties; public class Test4AltiJdbc { public static void main(string[] args) throws SQLException { Properties props = new Properties(); Connection conn = null; Statement stmt = null; String url = "jdbc:altibase://192.168.1.94:56794/mydb"; String sql = "CREATE OR REPLACE VIEW V1 AS SELECT SYSDATE d FROM dual -- e.g. 02-AUG-2018"; props.put("user", "sys"); props.put("password", "manager"); try { Class.forName("Altibase.jdbc.driver.AltibaseDriver"); conn = DriverManager.getConnection(url, props); stmt = conn.createstatement(); stmt.execute(sql); } catch (Exception e) { e.printstacktrace(); } 20 / 32

증상 변경사항 finally { stmt.close(); conn.close(); } } } $ cat ALL_CRT_VIEW_PROC.sql connect "SYS"/"MANAGER"; 수행결과 drop view "SYS"."V1"; CREATE OR REPLACE VIEW V1 AS SELECT SYSDATE D FROM DUAL -- e.g. 02-AUG-2018; $ cat ALL_CRT_VIEW_PROC.sql connect "SYS"/"MANAGER"; drop view "SYS"."V1"; 예상결과 CREATE OR REPLACE VIEW V1 AS SELECT SYSDATE D FROM DUAL -- e.g. 02-AUG-2018 ; 뷰와프로시저의 terminator(; 또는 ;/) 앞에 new line 이추가됩니다. 뷰와프로시저는마지막라인에주석을작성할수있으며, 작성한주석은해당객체생성문과함께그대로메타에기록됩니다. 기존 aexport 는뷰나프로시저의 DDL 을추출할때, 이주석의존재가능성에대한고려없이문장종결자 (; 또는 ;/) 를덧붙였습니다. DDL 마지막에단일행주석이올시, 이종결자가무시되어불완전한문장이출력될수있습니다. 따라서새로운라인에종결자를입력하도록변경하였습니다. N/A 21 / 32

BUG-46309 PSM 안에서 dequeue 호출시 into 절을누락하면서버가비정상 종료할수있습니다. 재현절차 수행결과 qp-psm-trigger-execute Fatal Always DROP QUEUE Q1; DROP PROCEDURE PROC1_DEQUEUE; CREATE QUEUE Q1 (40); CREATE OR REPLACE PROCEDURE PROC1_DEQUEUE AS MSGID INTEGER; MESSAGE VARCHAR(10); CORRID INTEGER; ENQUEUE_TIME DATE; V1 INTEGER; BEGIN DEQUEUE MESSAGE, MSGID FROM Q1; PRINTLN('MSG : ' MESSAGE ); END; / execute PROC1_DEQUEUE; isql> CREATE OR REPLACE PROCEDURE PROC1_DEQUEUE 2 AS 3 MSGID INTEGER; 4 MESSAGE VARCHAR(10); 5 CORRID INTEGER; 6 ENQUEUE_TIME DATE; 7 V1 INTEGER; 8 BEGIN 9 DEQUEUE MESSAGE, MSGID FROM Q1; 10 PRINTLN('MSG : ' MESSAGE ); 11 END; 12 / 22 / 32

증상 변경사항 Create success. isql> execute PROC1_DEQUEUE; [ERR-91015 : Communication failure.] isql> CREATE OR REPLACE PROCEDURE PROC1_DEQUEUE 2 AS 3 MSGID INTEGER; 4 MESSAGE VARCHAR(10); 5 CORRID INTEGER; 6 ENQUEUE_TIME DATE; 7 V1 INTEGER; 8 BEGIN 9 DEQUEUE MESSAGE, MSGID FROM Q1; 10 PRINTLN('MSG : ' MESSAGE ); 11 END; 12 / [ERR-3114D : A SELECT statement in a procedure or function must 예상결과 have an INTO clause. In PROC1_DEQUEUE 0009 : DEQUEUE MESSAGE, MSGID FROM Q1; ^ ^ In PROC1_DEQUEUE 0009 : DEQUEUE MESSAGE, MSGID FROM Q1; ^ ^ ] isql> execute PROC1_DEQUEUE; [ERR-31129 : Procedure or function not found : 0001 : execute PROC1_DEQUEUE ^ ^.] PSM 에서 dequeue 수행시 into 절이없는경우에서버가비정상종료하는현상을수정합니다. 23 / 32

CREATE OR REPLACE PROCEDURE PROC1_DEQUEUE AS V1 INTEGER; V2 VARCHAR(100); V3 VARCHAR(100); BEGIN DEQUEUE c1, c2, c3 into v1, v2,v3 from q1; END; / 24 / 32

BUG-46314 각서버에서이중화대상 Table 의컬럼순서가다른경우, Update 수행시이중화가정상적으로수행되지않습니다. 증상변경사항 dm Functional Error Always 재현절차 N/A 수행결과 N/A 예상결과 N/A 각서버에서이중화대상 table 의컬럼순서가다르더라도, update 수행시이중화가정상적으로수행되도록수정하였습니다. N/A 25 / 32

BUG-46322 Disk Sort Temp Table 중특정 merge join 에서정상 상황임에도비정상으로판단하여오류를잘못반환하는문제를 수정합니다. 증상변경사항 sm-disk-resource Functional Error Always ALTER SYSTEM SET SORT_AREA_SIZE=1048576; ALTER SYSTEM SET TEMP_SORT_GROUP_RATIO=30; ALTER SYSTEM SET OPTIMIZER_JOIN_DISABLE = 0; CREATE TABLE T1 ( I1 CHAR(30000) ) tablespace sys_tbs_disk_data; 재현절차 CREATE TABLE T2 ( I1 CHAR(30000) ) tablespace sys_tbs_disk_data; INSERT INTO T1 SELECT 1 FROM DUAL CONNECT BY LEVEL <= 9; INSERT INTO T2 SELECT 1 FROM DUAL CONNECT BY LEVEL <= 9; SELECT /*+USE_MERGE(T1,T2)*/ count( T1.I1 ) FROM T1 JOIN T2 ON T1.I1=T2.I1; isql> SELECT /*+USE_MERGE(T1,T2)*/ count( T1.I1 ) FROM T1 JOIN T2 ON T1.I1=T2.I1; 수행결과 [ERR-11069 : Internal server error in the storage manager ([FAILURE] ERR-0109E(error=11) Internal server error.)] isql> SELECT /*+USE_MERGE(T1,T2)*/ count( T1.I1 ) FROM T1 JOIN T2 ON T1.I1=T2.I1; COUNT(T1.I1) 예상결과 ----------------------- 81 1 row selected. Disk Sort Temp Table 중특정 merge join 에서정상상황임에도비정상으로판단하여오류를잘못반환하는문제를수정합니다. Temp Table 의크기를작게설정하여공간이부족한상황에서발생합니다. 26 / 32

N/A 27 / 32

BUG-46383 Disk Sort Temp Table 에서잘못된 page 를읽어서 hang 이 발생하는문제를수정합니다. 증상변경사항 sm-disk-resource Hang Rare 재현절차 N/A 수행결과 N/A 예상결과 N/A Disk Sort Temp Table 에서잘못된 Page 를읽어서 hang 이걸리는문제를수정합니다. N/A 28 / 32

BUG-46384 Disk Sort Temp Table 에서작업완료되지않은 page 가다른 page 로변경되어오작동하거나 hang 이발생하는문제를 수정합니다. 증상변경사항 sm-disk-resource Hang Rare 재현절차 N/A 수행결과 N/A 예상결과 N/A Disk Sort Temp Table 에서작업완료되지않은 page 가다른 page 로변경되어오작동하거나 hang 이발생하는문제를수정합니다. N/A 29 / 32

BUG-46407 dump_stack.sh 에서간헐적으로콜스택을가져오지못하는 상황이있습니다. 증상변경사항 id Maintainability Always 재현절차 N/A 수행결과 N/A 예상결과 N/A dump_stack.sh 에서간헐적으로콜스택을가져오지못하는상황이있는데, 이를해결하였습니다. N/A 30 / 32

BUG-46410 sdctemprow::filteringandfetch() 에서 row Ptr 이잘못설정 될수있습니다. 재현절차 수행결과 예상결과 sm-disk-resource Fatal Frequence DROP TABLE T1; DROP TABLE T2; ALTER SYSTEM SET TEMP_HASH_GROUP_RATIO=78; ALTER SYSTEM SET HASH_AREA_SIZE=524288; CREATE TABLE T1 ( I1 INTEGER, I2 VARCHAR(31000) ) tablespace sys_tbs_disk_data; CREATE TABLE T2 ( I1 INTEGER, I2 VARCHAR(31000) ) tablespace sys_tbs_disk_data; INSERT /*+APPEND*/ INTO T1 SELECT ROWNUM, rpad(mod(rownum,100),30000,252) FROM DUAL CONNECT BY LEVEL <= 1000; INSERT /*+APPEND*/ INTO T2 SELECT ROWNUM, rpad(mod(rownum,100),30000,252) FROM DUAL CONNECT BY LEVEL <= 100; SELECT sum(t1.i1) FROM T1 LEFT OUTER JOIN T2 ON T1.I2 = T2.I2 group by T1.I2 ; isql> SELECT sum(t1.i1) FROM T1 LEFT OUTER JOIN T2 ON T1.I2 = T2.I2 group by T1.I2 ; [ERR-91015 : Communication failure.] isql> SELECT sum(t1.i1) FROM T1 LEFT OUTER JOIN T2 ON T1.I2 = T2.I2 group by T1.I2 ; SUM(T1.I1) ----------------------- 5180 5330 5390 5250 5000 31 / 32

증상 변경사항 5500... 5160 5060 5200 5280 100 rows selected. isql> disk temp table 에서 size 가큰 row 를작은크기의 work area 에서 fetch 할때고정되어있어야할 page 가의도치않게 replace 되어서엉뚱한 page 에잘못접근할수있는버그를수정합니다. HASH_AREA_SIZE Property 와 SORT_AREA_SIZE property 를충분히설정. 32 / 32