Subject | Re: [ib-support] System Table Inconsistency in IB6? |
---|---|
Author | Andrew Garner |
Post date | 2001-05-27T21:54:13Z |
Thanks for the info Ann. However it beings to look as if there *really* is an inconsistancy in the system tables.
In rdb$types the value for an INT64 field (ie QUAD) is 9.
However a field defined as say numeric(18) (ie an INT64 field) has a value of 16 in rdb$fields.rdb$field_type.
16 does not appear in rdb$types.
Thanks, Andy.
To restate the example:
SET SQL DIALECT 3;
CREATE DATABASE 'c:\foo.gdb' USER 'SYSDBA' PASSWORD 'masterkey';
CREATE TABLE ATABLE
(
PK NUMERIC(18) NOT NULL, /* intended to be INT64 */
DATAFIELD1 NUMERIC(18), /* intended to be INT64 */
DATAFIELD2 NUMERIC(5)
);
select
r.rdb$field_name r_field,
f.rdb$field_length f_len,
f.rdb$field_type f_type,
t.rdb$type t_type,
t.rdb$type_name t_type_name
from
rdb$relation_fields r left join
rdb$fields f on f.rdb$field_name = r.rdb$field_source
left outer join
rdb$types t on f.rdb$field_type = t.rdb$type and
t.rdb$field_name = 'RDB$FIELD_TYPE'
where
r.rdb$relation_name = 'ATABLE';
R_FIELD F_LEN F_TYPE T_TYPE T_TYPE_NAME
============ ===== ====== ====== ===========
PK 8 16 <null> <null>
DATAFIELD1 8 16 <null> <null>
DATAFIELD2 4 8 8 LONG
^ with QUAD = 9 = INT64, 16 here seems inconsistant?
ODS 10.0
Implementation 1.50.1
Level 1.6
Server Version WI-T0.9.4.41 Firebird Test 1
In rdb$types the value for an INT64 field (ie QUAD) is 9.
However a field defined as say numeric(18) (ie an INT64 field) has a value of 16 in rdb$fields.rdb$field_type.
16 does not appear in rdb$types.
Thanks, Andy.
To restate the example:
SET SQL DIALECT 3;
CREATE DATABASE 'c:\foo.gdb' USER 'SYSDBA' PASSWORD 'masterkey';
CREATE TABLE ATABLE
(
PK NUMERIC(18) NOT NULL, /* intended to be INT64 */
DATAFIELD1 NUMERIC(18), /* intended to be INT64 */
DATAFIELD2 NUMERIC(5)
);
select
r.rdb$field_name r_field,
f.rdb$field_length f_len,
f.rdb$field_type f_type,
t.rdb$type t_type,
t.rdb$type_name t_type_name
from
rdb$relation_fields r left join
rdb$fields f on f.rdb$field_name = r.rdb$field_source
left outer join
rdb$types t on f.rdb$field_type = t.rdb$type and
t.rdb$field_name = 'RDB$FIELD_TYPE'
where
r.rdb$relation_name = 'ATABLE';
R_FIELD F_LEN F_TYPE T_TYPE T_TYPE_NAME
============ ===== ====== ====== ===========
PK 8 16 <null> <null>
DATAFIELD1 8 16 <null> <null>
DATAFIELD2 4 8 8 LONG
^ with QUAD = 9 = INT64, 16 here seems inconsistant?
ODS 10.0
Implementation 1.50.1
Level 1.6
Server Version WI-T0.9.4.41 Firebird Test 1
----- Original Message -----
From: Ann W. Harrison
To: ib-support@yahoogroups.com ; ib-support@yahoogroups.com
Sent: Sunday, May 27, 2001 9:54 PM
Subject: Re: [ib-support] System Table Inconsistency in IB6?
At 09:30 PM 5/27/2001 +0100, Andrew Garner wrote:
>However, on reflection, it would probably have been much more direct for
>my original post to have asked 'where is INT64 in the
>following?'
9 QUAD
Regards,
Ann
www.ibphoenix.com
We have answers.
Yahoo! Groups Sponsor
To unsubscribe from this group, send an email to:
ib-support-unsubscribe@egroups.com
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.