Thomas J. Girsch
2007-11-01 22:57:46 UTC
Can anyone else replicate this? I get a -23103 error when trying to use
dbschema on a UTF8 database that contains default roles. If the
database is not UTF8, everything works fine.
I've replicated it on 10.00.UC6, FC5, FC6, FC7 on Solaris, AIX, and
Linux. I have a PMR open, but the engineer working the case has so far
been UNABLE to replicate it.
Here's what you need to do:
$ export DB_LOCALE=en_US.utf8
$ dbaccess -a sysmaster << EOF
Database closed.
Database created.
Permission granted.
Role created.
Database closed.
$ dbschema -d testdb -ss
DBSCHEMA Schema Utility INFORMIX-SQL Version 10.00.FC6
Copyright IBM Corporation 1996, 2006 All rights reserved
Software Serial Number AAA#B000000
grant dba to "informix";
grant connect to "tgirsch";
create role "ifmxdba" ;
revoke usage on language SPL from public ;
grant usage on language SPL to public ;
$ dbaccess testdb << EOF
Permission granted.
Database closed.
$ dbschema -d testdb -ss
DBSCHEMA Schema Utility INFORMIX-SQL Version 10.00.FC6
Copyright IBM Corporation 1996, 2006 All rights reserved
Software Serial Number AAA#B000000
grant dba to "informix";
grant connect to "tgirsch";
create role "ifmxdba" ;
grant "ifmxdba" to "tgirsch" ;
-23103 - Code-set conversion function failed due to illegal sequence or
invalid value.
A repeat test with DB_LOCALE unset shows that everything works fine, then:
$ dbaccess sysmaster << EOF
Database dropped.
Database closed.
$ unset DB_LOCALE
$ dbaccess sysmaster << EOF
Database closed.
Database created.
Permission granted.
Role created.
Database closed.
$ dbschema -d testdb -ss
DBSCHEMA Schema Utility INFORMIX-SQL Version 10.00.FC6
Copyright IBM Corporation 1996, 2006 All rights reserved
Software Serial Number AAA#B000000
grant dba to "informix";
grant connect to "tgirsch";
create role "ifmxdba" ;
revoke usage on language SPL from public ;
grant usage on language SPL to public ;
$ dbaccess testdb << EOF
Permission granted.
Database closed.
$ dbschema -d testdb -ss
DBSCHEMA Schema Utility INFORMIX-SQL Version 10.00.FC6
Copyright IBM Corporation 1996, 2006 All rights reserved
Software Serial Number AAA#B000000
grant dba to "informix";
grant connect to "tgirsch";
create role "ifmxdba" ;
grant "ifmxdba" to "tgirsch" ;
grant default role "ifmxdba" to "tgirsch" ;
revoke usage on language SPL from public ;
grant usage on language SPL to public ;
$
dbschema on a UTF8 database that contains default roles. If the
database is not UTF8, everything works fine.
I've replicated it on 10.00.UC6, FC5, FC6, FC7 on Solaris, AIX, and
Linux. I have a PMR open, but the engineer working the case has so far
been UNABLE to replicate it.
Here's what you need to do:
$ export DB_LOCALE=en_US.utf8
$ dbaccess -a sysmaster << EOF
CREATE DATABASE testdb WITH BUFFERED LOG;
GRANT CONNECT TO "tgirsch";
CREATE ROLE "ifmxdba";
EOF
Database selected.GRANT CONNECT TO "tgirsch";
CREATE ROLE "ifmxdba";
EOF
Database closed.
Database created.
Permission granted.
Role created.
Database closed.
$ dbschema -d testdb -ss
DBSCHEMA Schema Utility INFORMIX-SQL Version 10.00.FC6
Copyright IBM Corporation 1996, 2006 All rights reserved
Software Serial Number AAA#B000000
grant dba to "informix";
grant connect to "tgirsch";
create role "ifmxdba" ;
revoke usage on language SPL from public ;
grant usage on language SPL to public ;
$ dbaccess testdb << EOF
GRANT DEFAULT ROLE "ifmxdba" TO "tgirsch";
EOF
Database selected.EOF
Permission granted.
Database closed.
$ dbschema -d testdb -ss
DBSCHEMA Schema Utility INFORMIX-SQL Version 10.00.FC6
Copyright IBM Corporation 1996, 2006 All rights reserved
Software Serial Number AAA#B000000
grant dba to "informix";
grant connect to "tgirsch";
create role "ifmxdba" ;
grant "ifmxdba" to "tgirsch" ;
-23103 - Code-set conversion function failed due to illegal sequence or
invalid value.
A repeat test with DB_LOCALE unset shows that everything works fine, then:
$ dbaccess sysmaster << EOF
DROP DATABASE testdb;
EOF
Database selected.EOF
Database dropped.
Database closed.
$ unset DB_LOCALE
$ dbaccess sysmaster << EOF
CREATE DATABASE testdb WITH BUFFERED LOG;
GRANT CONNECT TO "tgirsch";
CREATE ROLE "ifmxdba";
EOF
Database selected.GRANT CONNECT TO "tgirsch";
CREATE ROLE "ifmxdba";
EOF
Database closed.
Database created.
Permission granted.
Role created.
Database closed.
$ dbschema -d testdb -ss
DBSCHEMA Schema Utility INFORMIX-SQL Version 10.00.FC6
Copyright IBM Corporation 1996, 2006 All rights reserved
Software Serial Number AAA#B000000
grant dba to "informix";
grant connect to "tgirsch";
create role "ifmxdba" ;
revoke usage on language SPL from public ;
grant usage on language SPL to public ;
$ dbaccess testdb << EOF
GRANT DEFAULT ROLE "ifmxdba" TO "tgirsch";
EOF
Database selected.EOF
Permission granted.
Database closed.
$ dbschema -d testdb -ss
DBSCHEMA Schema Utility INFORMIX-SQL Version 10.00.FC6
Copyright IBM Corporation 1996, 2006 All rights reserved
Software Serial Number AAA#B000000
grant dba to "informix";
grant connect to "tgirsch";
create role "ifmxdba" ;
grant "ifmxdba" to "tgirsch" ;
grant default role "ifmxdba" to "tgirsch" ;
revoke usage on language SPL from public ;
grant usage on language SPL to public ;
$