Maximal length of user attribute (first-, middle- and lastname) can not exceed
32 OCTETS (rather than CHARACTERS) on FB-3, 31 octets on FB 2.5
----------------------------------------------------------------------------------------------------------------------------------------------
Key: CORE-5079
URL: http://tracker.firebirdsql.org/browse/CORE-5079
Project: Firebird Core
Issue Type: Bug
Components: Charsets/Collation, Engine, Security
Affects Versions: 2.5.5, 3.0 RC1
Reporter: Pavel Zotov
Consider following script:
####################
shell del C:\MIX\firebird\QA\fbt-repo\c0856.fdb 2>nul;
set names utf8;
create database 'localhost/3333:C:\MIX\firebird\QA\fbt-repo\c0856.fdb' user
'SYSDBA' password 'masterke';
-- show table sec$users;
commit;
set echo on;
create or alter user tmp$c0856 password '123'
firstname '....:....1....:....2....:....3è' -- octet_length = 32
;
create or alter user tmp$c0856 password '123'
firstname '....:....1....:....2....:....3∑'-- octet_length = 33
;
create or alter user tmp$c0856 password '123'
firstname '....:....1....:....2....:....3.è' -- octet_length = 33
;
####################
Its running will issue:
1) on WI-V2.5.6.26963:
===
Statement failed, SQLSTATE = 22001
arithmetic exception, numeric overflow, or string truncation
-string right truncation
-unknown ISC error 335545033
After line 3 in file c0856.sql
Command error: show table sec$users
create or alter user tmp$c0856 password '123'
firstname '....:....1....:....2....:....3è' -- octet_length = 32
;
create or alter user tmp$c0856 password '123'
firstname '....:....1....:....2....:....3∑'-- octet_length = 33
;
Statement failed, SQLSTATE = HY000
modify record error
create or alter user tmp$c0856 password '123'
firstname '....:....1....:....2....:....3.è' -- octet_length = 33
;
Statement failed, SQLSTATE = HY000
modify record error
===
2) on WI-V3.0.0.32281:
===
create or alter user tmp$c0856 password '123'
firstname '....:....1....:....2....:....3è' -- octet_length = 32
;
create or alter user tmp$c0856 password '123'
firstname '....:....1....:....2....:....3∑'-- octet_length = 33
;
Statement failed, SQLSTATE = HY000
modify record error
create or alter user tmp$c0856 password '123'
firstname '....:....1....:....2....:....3.è' -- octet_length = 33
;
Statement failed, SQLSTATE = HY000
modify record error
===
But:
1) on 2.5:
SQL> show table rdb$users;
RDB$USER_NAME (RDB$USER_NAME) VARCHAR(128) CHARACTER SET
UNICODE_FSS Not Null
. . .
RDB$FIRST_NAME (RDB$NAME_PART) VARCHAR(32) CHARACTER SET
UNICODE_FSS Nullable DEFAULT _UNICODE_FSS ''
RDB$MIDDLE_NAME (RDB$NAME_PART) VARCHAR(32) CHARACTER SET
UNICODE_FSS Nullable DEFAULT _UNICODE_FSS ''
RDB$LAST_NAME (RDB$NAME_PART) VARCHAR(32) CHARACTER SET
UNICODE_FSS Nullable DEFAULT _UNICODE_FSS ''
. . .
2) on 3.0:
SQL> show table sec$users;
SEC$USER_NAME (RDB$USER) CHAR(31) CHARACTER SET UNICODE_FSS
Nullable
SEC$FIRST_NAME (SEC$NAME_PART) VARCHAR(32) CHARACTER SET
UNICODE_FSS Nullable
SEC$MIDDLE_NAME (SEC$NAME_PART) VARCHAR(32) CHARACTER SET
UNICODE_FSS Nullable
SEC$LAST_NAME (SEC$NAME_PART) VARCHAR(32) CHARACTER SET
UNICODE_FSS Nullable
. . .
PS. As reference.
Each of following characters requires:
1) čřžéèêάëïüäöüêŝçęđøłŲĖŪґůőűčž -- two bytes for symbol;
2) ∑∫≈ -- three bytes for symbol.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel