How long can an Informix database name be?
Posted in 2005
Topics: Stored Procedures & SPL, Security, Permissions & Auditing, Triggers, Constraints & Referential Integrity, Transactions, Locking & Isolation
Hi all,
I have a customer with a "how long can a database name be?" question.
The story is they have a standard engine, and lots of small databases,
and they follow a certain naming standard for database names. They are
using the informix engine as an embedded product, and he(customer) did
not know the root or informix password on this system.
First issue is... What IDS version.... Well....
I found tools like selog and secheck in $INFORMIXDIR/bin. When run, they
show:
Selog
DBLOG: Transaction Log File Display C-ISAM Version 7.25.UC1
Secheck
BCHECK C-ISAM B-tree Checker version 7.25.UC1
When I go into Isql, the front screen says:
INFORMIX-SQL Version 7.30.UC5
If I check the copyright file in $INFORMIXDIR/etc, I get:
Cat SE-cr
INFORMIX-SE Version 7.25.UC1
So I'm thinking I'm dealing with a 7.25.UC1.
However, I want to confirm this with the engine itself...I can not get
to the sysmaster database, but in a typical database (there are many in
the instance), when I do:
"Select * from systables", I can see:
tabname VERSION
owner 7.24C9
So, maybe it's not 7.25.UC1, maybe it's really 7.24C9.... Which answers
should I trust?
Back to the Dbname length issue....
The customer says he can't create a database with a name longer than 10
characters.
I checked syscolumns, and with the following results, I don't understand
why he is limited to 10 chars, when the field seems to allow 18.
select * from syscolumns; colname tabid colno coltype collength
Systables :tabname 1 1 0 18
Systables :dirpath 1 3 0 64
Syscolumns :colname 2 1 0 18
Sysindexes :idxname 3 1 0 18
syssynonyms:synname 9 2 0 18
syssyntable:servername 10 2 0 18
syssyntable:dbname 10 3 0 18
syssyntable:tabname 10 5 0 18
sysconstraints:idxname 11 6 0 18
sysprocedures:procname 16 1 0 18
systriggers:trigname 20 2 0 18
sysobjstate:name 23 3 0 18
In my version (9.4), I can check $INFORMIXDIR/etc/sysmaster.sql and see
I have a 128 char dbname limit.
In my version (9.4), I can check table info on sysdbspartn in sysmaster,
and again, I see a 128 char definition.
In the customer's version (7.2), there is no sysmaster.sql file, nor is
there a sysdbspartn (well, I can't get to sysmaster DB either cuz I
don't have root or informix, or permission as public). I tried to
create a database on his system, but don't have perms to do so.
Any ideas?
I'll check the IBM website for manuals... RTFM, it's probably in there,
but you all might answer faster....
Thanks,
Norma Jean
============================================================
The information contained in this message may be privileged
and confidential and protected from disclosure. If the reader
of this message is not the intended recipient, or an employee
or agent responsible for delivering this message to the
intended recipient, you are hereby notified that any reproduction,
dissemination or distribution of this communication is strictly
prohibited. If you have received this communication in error,
please notify us immediately by replying to the message and
deleting it from your computer. Thank you. Tellabs
============================================================
sending to informix-list
"In the customer's version (7.2), there is no sysmaster.sql file, nor is there a sysdbspartn (well, I can't get to sysmaster DB either cuz I don't have root or informix, or permission as public). I tried to create a database on his system, but don't have perms to do so." You can't get to sysmaster because he is running Standard Engine, not IDS. SE does not have a sysmaster database.