Обсуждение: BUG and FIX: getTables - SYSTEM TABLE

Поиск
Список
Период
Сортировка

BUG and FIX: getTables - SYSTEM TABLE

От
"Mitchell J. Friedman"
Дата:
In getTables in DatabaseMetaData.java it looks like
"TABLE" is returned as the TABLE_TYPE even if the
table is a SYSTEM TABLE.  It looks like the
getTableTypes code is working correctly - if SYSTEM
TABLE is not requested then none are returned.

The problem appears to be in
   case (byte) 'r':
       relKind = "TABLE";
       break;
which kind of forgets that sometimes an 'r' means a
TABLE and other times a SYSTEM TABLE depending on
TABLE_NAME.

the fix would be something like
   case (byte) 'r':
      if (relname.r.getBytes(1).startsWith("pg_"))
         relKind = "SYSTEM TABLE"
      else
         relKind = "TABLE";
      break;

For what its worth I am new to this list - I tried
searching the archive for this bug and was not able to
read the archive.  Hopefully this bug and fix have
already been posted - but if not...

mjf

__________________________________________________
Do You Yahoo!?
Find a job, post your resume.
http://careers.yahoo.com

Re: BUG and FIX: getTables - SYSTEM TABLE

От
Bruce Momjian
Дата:
This looks very good.  We are in beta now so we will keep it for the 7.3
release.


---------------------------------------------------------------------------

> In getTables in DatabaseMetaData.java it looks like
> "TABLE" is returned as the TABLE_TYPE even if the
> table is a SYSTEM TABLE.  It looks like the
> getTableTypes code is working correctly - if SYSTEM
> TABLE is not requested then none are returned.
>
> The problem appears to be in
>    case (byte) 'r':
>        relKind = "TABLE";
>        break;
> which kind of forgets that sometimes an 'r' means a
> TABLE and other times a SYSTEM TABLE depending on
> TABLE_NAME.
>
> the fix would be something like
>    case (byte) 'r':
>       if (relname.r.getBytes(1).startsWith("pg_"))
>          relKind = "SYSTEM TABLE"
>       else
>          relKind = "TABLE";
>       break;
>
> For what its worth I am new to this list - I tried
> searching the archive for this bug and was not able to
> read the archive.  Hopefully this bug and fix have
> already been posted - but if not...
>
> mjf
>
> __________________________________________________
> Do You Yahoo!?
> Find a job, post your resume.
> http://careers.yahoo.com
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Re: BUG and FIX: getTables - SYSTEM TABLE

От
Bruce Momjian
Дата:
Your patch has been added to the PostgreSQL unapplied patches list at:

    http://candle.pha.pa.us/cgi-bin/pgpatches

I will try to apply it within the next 48 hours.  JDBC maintainers will
review.


---------------------------------------------------------------------------


Mitchell J. Friedman wrote:
> In getTables in DatabaseMetaData.java it looks like
> "TABLE" is returned as the TABLE_TYPE even if the
> table is a SYSTEM TABLE.  It looks like the
> getTableTypes code is working correctly - if SYSTEM
> TABLE is not requested then none are returned.
>
> The problem appears to be in
>    case (byte) 'r':
>        relKind = "TABLE";
>        break;
> which kind of forgets that sometimes an 'r' means a
> TABLE and other times a SYSTEM TABLE depending on
> TABLE_NAME.
>
> the fix would be something like
>    case (byte) 'r':
>       if (relname.r.getBytes(1).startsWith("pg_"))
>          relKind = "SYSTEM TABLE"
>       else
>          relKind = "TABLE";
>       break;
>
> For what its worth I am new to this list - I tried
> searching the archive for this bug and was not able to
> read the archive.  Hopefully this bug and fix have
> already been posted - but if not...
>
> mjf
>
> __________________________________________________
> Do You Yahoo!?
> Find a job, post your resume.
> http://careers.yahoo.com
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026