★ wanayoo — archive 1999 https://github.com/utPLSQL/utPLSQL/issues/994Nouvelle recherche | Portail wanayoo
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

Multibyte characters overflows variable #994

Open
lukashov-artem opened this issue Sep 13, 2019 · 4 comments
Open

Multibyte characters overflows variable #994

lukashov-artem opened this issue Sep 13, 2019 · 4 comments
Labels
bug

Comments

@lukashov-artem
Copy link

@lukashov-artem lukashov-artem commented Sep 13, 2019

Describe the bug
String of multibyte characters overflows variable when converting ut_varchar2_list to ut_varchar2_rows

Provide version info
utPLSQL v3.1.2.2134
Oracle 12.2 charset UTF8

To Reproduce
Steps to reproduce the behavior:

  1. generate multibyte character string rpad('№',1334,'№')||'№'
  2. make it hit the reporter
  3. See error

Expected behavior
the error is not raised and the log lines are displayed correctly

Example code

create or replace package utestoq.test_package as
  --%suite(Test multibyte strings)

  --%test
  procedure pTest1;
end;
/
create or replace package body utestoq.test_package as
  procedure pTest1 as
  begin
    utest.ut.fail(rpad('',1332,''));
  end;
end;
/
select * from table(utest.ut.run('utestoq.test_package'))
[1]: ORA-12899: значение для столбца "UTEST"."UT_OUTPUT_BUFFER_TMP$"."TEXT" слишком велико (фактическое: 4002, максимальное: 4000)
[1]: ORA-06512: на  "UTEST.UT_RUNNER", line 150
[1]: ORA-06512: на  "UTEST.UT_OUTPUT_TABLE_BUFFER", line 61
[1]: ORA-06512: на  "UTEST.UT_OUTPUT_REPORTER_BASE", line 46
[1]: ORA-06512: на  "UTEST.UT_DOCUMENTATION_REPORTER", line 38
[1]: ORA-06512: на  "UTEST.UT_CONSOLE_REPORTER_BASE", line 26
[1]: ORA-06512: на  "UTEST.UT_DOCUMENTATION_REPORTER", line 101
[1]: ORA-06512: на  "UTEST.UT_DOCUMENTATION_REPORTER", line 11

Fix
We tried to fix it. I'm new to github, so I did not understand where to click to offer a fix.
lukashov-artem@2673e70#diff-b081c1c6f662c3d212eb2be99d4d58bd
lukashov-artem@be17067

@pesse
Copy link
Member

@pesse pesse commented Sep 13, 2019

Thank you for bringing this up!
Seems the bug might still exist in the latest version

@jgebal
Copy link
Member

@jgebal jgebal commented Sep 13, 2019

Open a pull request for that change into our repo.

image

@jgebal jgebal added the bug label Sep 13, 2019
@jgebal jgebal added this to the 3.1.9 milestone Sep 13, 2019
@jgebal
Copy link
Member

@jgebal jgebal commented Sep 13, 2019

Could you also add a unit test to cover that situation?
Our tests are in test folder.
The test will run on our Travis once you open a Pull Request.
For details see the contributing guide.

Thanks again for finding the issue, reporting it and fixing it 👍

@jgebal
Copy link
Member

@jgebal jgebal commented Sep 22, 2019

There definitely is a problem with muti-byte characters.
I'm not sure if the fix solves them all.

@lukashov-artem - I've tried applying you fix on my AL32UTF8 databases and encountered problems in other parts of code.

Most probably your fix is not addressing all the issues.

@jgebal jgebal modified the milestones: 3.1.9, 3.1.10 Nov 30, 2019
@jgebal jgebal removed this from the 3.1.10 milestone Feb 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants
You can’t perform that action at this time.