[CONJ-562] MariaDbClob Length Error Created: 2017-12-22  Updated: 2018-01-23  Resolved: 2018-01-23

Status: Closed
Project: MariaDB Connector/J
Component/s: Other
Affects Version/s: 1.6.3
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: 정대현 Assignee: Diego Dupin
Resolution: Not a Bug Votes: 0
Labels: None
Environment:

mariaDB : 5.2
mariadb-java-client : 1.6.3
OS : Ubuntu 16.04
JAVA : 1.7



 Description   

Table
CREATE TABLE `TEST_QUEUE` ( "
`TEST_SEQ` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '일련번호',
`TEST_DATA` LONGTEXT NULL COMMENT '저장될데이터' COLLATE 'utf8mb4_unicode_ci',
PRIMARY KEY (`TEST_SEQ`)"
) CHARSET=utf8mb4 COLLATE='utf8mb4_unicode_ci' ;

insert Row (Size :1032)
insert into TEST_QUEUE (TEST_DATA) values('

{"mail_to":"hardriano80@jaseng.co.kr","box_name":"INBOX","subject":"ߘ® 빨리 열어보세요! 이 일일 특가 상품의 주인공이 되셨어요!","user_seq":88,"mail_from":"익스피디아 쿠폰 <Expedia@kr.expediamail.com>","mails_seq":8547,"seen":0,"mail_date":"2017-12-15 08:04:27","attach_filename":[],"m_uid":941,"flagged":0,"size":89053,"mail_body":"Expedia.co.kr 미개봉 특가 홈 호텔 국내호텔 마감 특가 상품 온라인 예약 안내 특별한 여행이 기다립니다! 감사의 의미로 환상적인 휴가 특가 상품을 준비했어요. 할인 호텔 보기 비공개 특가 : 호텔 반값 할인가 뉴스레터 수신 고객님께 더 큰 할인 혜택이 적용된 상품을 보여드려요. 특가보기 이용약관 보기 무료앱 다운로드 내 계정 | 내 일정 | 수신거부 | 개인정보 취급방침 | 고객지원 | 이 이메일을 웹브라우저에서 보기 본 메일은 정보통신망 이용촉진 및 정보보호 등에 관한 법률 시행규칙에 의거하여, 2017\/12\/15 오전 08:04:27 현재 회원님의 메일 수신동의 여부를 확인한 결과, 회원님께서 수신을 동의하셨기에 발송되었습니다. 본 메일은 발신 전용 메일로서 회신되지 않습니다. © 2017 Expedia, Inc. All rights reserved. Expedia, Expedia+, +VIP Access 및 비행기 로고는 미국 및\/또는 다른 국가에서 Expedia, Inc.의 등록 상표 또는 상표입니다. 기타 모든 상품은 해당 소유권자의 상표입니다. EMLCID=KR.MR.CUSTOMMAILMERCH.MERCHDAILYDEALS.HOTEL&EMLDTL=DATE20171215.SID8008891.KEY43936346186.PAID308058064.LANGKO_KR.MCIDM.TEST1.VERS3.MIDS1-5504_2-5502_3-1427","box_seq":436}

');

When you call the getClob function of the ResultSet object after performing a select query using JDBC, the last character "}" is omitted and the result is output.

MariaDbClob.java The length () of the source is missing a value of 1.
The value of clob.length () is 1031.
The original length is 1032.

Please confirm.

-----------------------------------------------------------------------------------------------------
JDBC를 이용하여 select 쿼리를 한 다음 ResultSet 개체의 getClob 함수를 호출 하면 맨 마지막 글자"}"가 빠져서 결과 값이 나오고 있습니다.

MariaDbClob.java 소스중 length()에서 값이 1이 모자르게 나오고 있습니다.
clob.length() 값이 1031이 나오고 있습니다.
원래 길이는 1032 입니다.

확인 부탁 드립니다.



 Comments   
Comment by Diego Dupin [ 2017-12-22 ]

Hi,
That's normal : in this part :

reserved. Expedia, Expedia+, +VIP Access 및 비행기 로고는 미국 및\/또는 다른 국가에서 Expedia, Inc.의 등록 상표 또는 상표입니다. 기타 모든 상품은 해당 소
                                                                ^---escape character

backslash is the escape character. so having a backslash followed by a slash ('\/') mean having an escape character before a character that doesn't need to be escaped. so this escaped character is removed.

if this backslash is intentional, it must be escaped '
/', or better use PrepareStatement :

        PreparedStatement preparedStatement = sharedConnection.prepareStatement("insert into TEST_QUEUE (TEST_DATA) values(?)");
        preparedStatement.setString(1, param);
        preparedStatement.execute();

Driver will then escape this backslash.

Generated at Thu Feb 08 03:16:40 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.