Re: bug report: slow getColumnTypeName

Поиск
Список
Период
Сортировка
От Craig Ringer
Тема Re: bug report: slow getColumnTypeName
Дата
Msg-id 50776FB4.5090701@ringerc.id.au
обсуждение исходный текст
Ответ на Re: bug report: slow getColumnTypeName  (Luis Flores <luiscamposflores@gmail.com>)
Ответы Re: bug report: slow getColumnTypeName  (Thomas Kellerer <spam_eater@gmx.net>)
Список pgsql-jdbc
On 10/11/2012 10:07 PM, Luis Flores wrote:
> You are talking about a different matter.
> 1. 802 and prior drivers named serials as int4 (and big serials int8)
> 2. 900 and newer drivers named serials as serials (and you got a
> performance hit from that)
>
> We are now attempting to solve the problem #2, maintain the correct
> column name (serial and big serial), and if possible improve
> performance.

I strongly disagree with this approach. "serial" and "bigserial" are
*not* the correct column names. "serial" and "bigserial" are effectively
macros and cease to exist in any meaningful way once expanded.

Even if showing "serial" or "bigserial" were free, I'd still want to
show the underlying types "integer" and "biginteger".

Showing "serial" is not consistent with psql:

regress=# CREATE TABLE blah ( id serial primary key);
NOTICE:  CREATE TABLE will create implicit sequence "blah_id_seq" for
serial column "blah.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"blah_pkey" for table "blah"
CREATE TABLE
regress=# \d blah
                          Table "public.blah"
  Column |  Type   |                     Modifiers
--------+---------+---------------------------------------------------
  id     | integer | not null default nextval('blah_id_seq'::regclass)
Indexes:
     "blah_pkey" PRIMARY KEY, btree (id)


... nor with INFORMATION_SCHEMA:

select * from information_schema.columns WHERE table_schema = 'public'
AND table_name = 'blah';

-[ RECORD 1 ]------------+---------------------------------
table_catalog            | regress
table_schema             | public
table_name               | blah
column_name              | id
ordinal_position         | 1
column_default           | nextval('blah_id_seq'::regclass)
is_nullable              | NO
data_type                | integer
numeric_precision        | 32
numeric_precision_radix  | 2
numeric_scale            | 0
...
udt_catalog              | regress
udt_schema               | pg_catalog
udt_name                 | int4
...
dtd_identifier           | 1
is_self_referencing      | NO
is_identity              | NO
...
is_generated             | NEVER
...
is_updatable             | YES


> If you use a column with a default value from a sequence, the column
> type name doesn't change. If the column is int AND is generated from a
> sequence called <TABLE>_<COLUMN>_seq, then in postgresql (you can
> check in pgadmin)

PgAdmin is doing something funky; that doesn't mean PgJDBC should.

--
Craig Ringer


В списке pgsql-jdbc по дате отправления:

Предыдущее
От: pramodh reddy
Дата:
Сообщение: large object max size
Следующее
От: Craig Ringer
Дата:
Сообщение: Re: ResultSetMetaData.isNullable(i) and outer joined columns