is this a problem?
Posted in 2005
Topics: General Discussion
I have two tables in sysmaster:systabnames that have two records each. I was thinking that there should only be one record per tabname/dbsname combo, I'm I thinking wrong? If I'm right how do I correct this? If, I'm wrong, what are the reasons for having two records? systabnames records for the two tables. partnum 2102365 dbsname cars owner informix tabname systabperm collate en_US.819 partnum 2102371 dbsname cars owner informix tabname systabperm collate en_US.819 partnum 2102819 dbsname cars owner informix tabname gu_prereg_pay collate en_US.819 partnum 2102821 dbsname cars owner informix tabname gu_prereg_pay collate en_US.819 John David Adamski Information Systems Specialist Graceland University
jda wrote: > I have two tables in sysmaster:systabnames that have two records each. > I was thinking that there should only be one record per tabname/dbsname > combo, I'm I thinking wrong? If I'm right how do I correct this? If, > I'm wrong, what are the reasons for having two records? > > systabnames records for the two tables. > > partnum 2102365 > dbsname cars > owner informix > tabname systabperm > collate en_US.819 > > partnum 2102371 > dbsname cars > owner informix > tabname systabperm > collate en_US.819 > > partnum 2102819 > dbsname cars > owner informix > tabname gu_prereg_pay > collate en_US.819 > > partnum 2102821 > dbsname cars > owner informix > tabname gu_prereg_pay > collate en_US.819 Various questions spring to mind - such as which version of IDS, running on which platform... What does ON-Check have to say about the state of the instance and the database? The general answer to your question is "No, you should normally only have one table of a given name in your database". There are exceptions; if your database is MODE ANSI, it is possible to have the same table name with two different owners. Question: is the owner listed in systabnames the database owner or the table owner? It really only makes sense for it to be the table owner - but the question should be asked. Are you messing with DELIMIDENT at any time? If so, you can achieve interesting results with trailing blanks. If ON-Check doesn't identify anything wrong, have you tried connecting to the database and seeing what is in systables in the cars database? Depending what you find based on these investigations, there could be numerous explanations, corresponding to numerous findings. However, you should probably not simply continue using the database without determining what is going on. -- Jonathan Leffler #include <disclaimer.h> Email: jleffler@earthlink.net, jleffler@us.ibm.com Guardian of DBD::Informix v2005.01 -- http://dbi.perl.org/
Jonathan Leffler <jleffler@earthlink.net> wrote in message news:<Cjjbe.1047$Oz2.125@newsread3.news.pas.earthlink.net>...
> jda wrote:
> > I have two tables in sysmaster:systabnames that have two records each.
> > I was thinking that there should only be one record per tabname/dbsname
> > combo, I'm I thinking wrong? If I'm right how do I correct this? If,
> > I'm wrong, what are the reasons for having two records?
> >
> > systabnames records for the two tables.
> >
> > partnum 2102365
> > dbsname cars
> > owner informix
> > tabname systabperm
> > collate en_US.819
> >
> > partnum 2102371
> > dbsname cars
> > owner informix
> > tabname systabperm
> > collate en_US.819
> >
> > partnum 2102819
> > dbsname cars
> > owner informix
> > tabname gu_prereg_pay
> > collate en_US.819
> >
> > partnum 2102821
> > dbsname cars
> > owner informix
> > tabname gu_prereg_pay
> > collate en_US.819
>
> Various questions spring to mind - such as which version of IDS, running
> on which platform... What does ON-Check have to say about the state of
> the instance and the database?
>
> The general answer to your question is "No, you should normally only
> have one table of a given name in your database". There are exceptions;
> if your database is MODE ANSI, it is possible to have the same table
> name with two different owners.
This will also happen if there is fragmentation of the table into two
or more dbspaces - each fragment has its own partnum. Check in the
sysfragments table in the cars database, which will also give you the
fragmentation expression.
Or use dbschema -d cars -t gu_prereg_pay -ss (or systabperm - which
AFAIK is not a system catalog table unless it's an earlier version or
possibly SE).
Cheers
Malc