Thank you for the additional information. The query that jOOQ executes to
collect column and data type information is roughly this one:
SELECT
TRIM(
"r" . "RDB$FIELD_NAME"
) ,
"r" . "RDB$DESCRIPTION" ,
"r" . "RDB$DEFAULT_VALUE" ,
CASE
WHEN "r" . "RDB$NULL_FLAG" IS NOT NULL
THEN "r" . "RDB$NULL_FLAG"
ELSE 0
END ,
"r" . "RDB$DEFAULT_SOURCE" ,
"r" . "RDB$FIELD_POSITION" ,
CASE
"f" . "RDB$FIELD_TYPE" WHEN 261
THEN 0
ELSE "f" . "RDB$FIELD_LENGTH"
END "FIELD_LENGTH" ,
"f" . "RDB$FIELD_PRECISION" ,
-(
"f" . "RDB$FIELD_SCALE"
) "FIELD_SCALE" ,
CASE
"f" . "RDB$FIELD_TYPE" WHEN 7
THEN CASE
WHEN "f" . "RDB$FIELD_SUB_TYPE" = 1
THEN 'NUMERIC' WHEN(
"f" . "RDB$FIELD_SUB_TYPE" = 0
AND "f" . "RDB$FIELD_SCALE" < 0
)
THEN 'NUMERIC' WHEN "f" . "RDB$FIELD_SUB_TYPE" = 2
THEN 'DECIMAL'
ELSE 'SMALLINT'
END WHEN 8
THEN CASE
WHEN "f" . "RDB$FIELD_SUB_TYPE" = 1
THEN 'NUMERIC' WHEN(
"f" . "RDB$FIELD_SUB_TYPE" = 0
AND "f" . "RDB$FIELD_SCALE" < 0
)
THEN 'NUMERIC' WHEN "f" . "RDB$FIELD_SUB_TYPE" = 2
THEN 'DECIMAL'
ELSE 'INTEGER'
END WHEN 9
THEN 'QUAD' WHEN 10
THEN 'FLOAT' WHEN 11
THEN 'D_FLOAT' WHEN 12
THEN 'DATE' WHEN 13
THEN 'TIME' WHEN 14
THEN 'CHAR' WHEN 16
THEN CASE
WHEN "f" . "RDB$FIELD_SUB_TYPE" = 1
THEN 'NUMERIC' WHEN(
"f" . "RDB$FIELD_SUB_TYPE" = 0
AND "f" . "RDB$FIELD_SCALE" < 0
)
THEN 'NUMERIC' WHEN "f" . "RDB$FIELD_SUB_TYPE" = 2
THEN 'DECIMAL'
ELSE 'BIGINT'
END WHEN 27
THEN 'DOUBLE' WHEN 35
THEN 'TIMESTAMP' WHEN 37
THEN 'VARCHAR' WHEN 40
THEN 'CSTRING' WHEN 261
THEN CASE
"f" . "RDB$FIELD_SUB_TYPE" WHEN 0
THEN 'BLOB' WHEN 1
THEN 'BLOB SUB_TYPE TEXT'
ELSE 'BLOB'
END
ELSE 'UNKNOWN'
END "FIELD_TYPE" ,
"f" . "RDB$FIELD_SUB_TYPE"
FROM
"RDB$RELATION_FIELDS" "r" LEFT OUTER JOIN "RDB$FIELDS" "f"
ON "r" . "RDB$FIELD_SOURCE" = "f" . "RDB$FIELD_NAME"
WHERE
"r" . "RDB$RELATION_NAME" = 'BUPDATERLINKS'
ORDER BY
"r" . "RDB$FIELD_POSITION" ASC
The parts marked in yellow don't seem to be correct in the case of column
types originating from domains. The JDBC driver gets this correctly, when
executing DatabaseMetaData.getColumns(). I'll see how this can be fixed.
Cheers
Lukas
2014-07-09 16:47 GMT+02:00 <[email protected]>:
> ok i attach the entire ddl
>
> Le vendredi 4 juillet 2014 17:01:36 UTC+2, [email protected] a écrit :
>
>> I post the DDL of the table and i attache table result
>>
>> /***********************************************************
>> *******************/
>> /**** Tables
>> ****/
>> /***********************************************************
>> *******************/
>>
>>
>>
>> CREATE TABLE BUPDATERLINKS (
>> IDBUPDATERLINKS IDENT /* IDENT = VARCHAR(22) NOT NULL */,
>> BULREFPARENT REFERENCE /* REFERENCE = VARCHAR(22) DEFAULT '-1' */,
>> BULTYPE ENTIER /* ENTIER = INTEGER DEFAULT 0 */,
>> BULREFBYTYPE REFERENCE /* REFERENCE = VARCHAR(22) DEFAULT '-1' */,
>> BULDEST LIB500 /* LIB500 = VARCHAR(500) */,
>> BULJSON BLOBTEXT /* BLOBTEXT = BLOB SUB_TYPE 1 SEGMENT SIZE
>> 80 */,
>> BULSTATE ENTIER /* ENTIER = INTEGER DEFAULT 0 */,
>> BULDATEACTION DATECOMPLETE /* DATECOMPLETE = TIMESTAMP */,
>> BULACTIF ENTIER /* ENTIER = INTEGER DEFAULT 0 */,
>> FTPDATE DATECOMPLETE2 /* DATECOMPLETE2 = TIMESTAMP DEFAULT
>> 'now' NOT NULL */,
>> CREATEDATE DATECOMPLETE2 /* DATECOMPLETE2 = TIMESTAMP DEFAULT
>> 'now' NOT NULL */
>> );
>>
>>
>>
>>
>> /***********************************************************
>> *******************/
>> /**** Primary Keys
>> ****/
>> /***********************************************************
>> *******************/
>>
>> ALTER TABLE BUPDATERLINKS ADD CONSTRAINT PK_BUPDATERLINKS PRIMARY KEY
>> (IDBUPDATERLINKS);
>>
>>
>> /***********************************************************
>> *******************/
>> /**** Triggers
>> ****/
>> /***********************************************************
>> *******************/
>>
>>
>> SET TERM ^ ;
>>
>>
>>
>> /***********************************************************
>> *******************/
>> /**** Triggers for tables
>> ****/
>> /***********************************************************
>> *******************/
>>
>>
>>
>> /* Trigger: BUPDATERLINKS_BI */
>> CREATE OR ALTER TRIGGER BUPDATERLINKS_BI FOR BUPDATERLINKS
>> ACTIVE BEFORE INSERT POSITION 0
>> as
>> begin
>> IF (NEW.idbupdaterlinks IS NULL) THEN
>> BEGIN
>> EXECUTE PROCEDURE SYS_GET_UUID RETURNING_VALUES NEW.idbupdaterlinks;
>> END
>> end
>> ^
>>
>> Le vendredi 4 juillet 2014 16:49:52 UTC+2, [email protected] a écrit :
>>>
>>> i think the problem is in the mapping of table the definition of my
>>> primary key is :
>>>
>>> IDMYTABLE VARCHAR(22) NOT NULL via a domain
>>>
>>> but field.getDataType().nullable => returns true and field size is 88
>>> ????
>>>
>>>
>>>
>>> Le vendredi 4 juillet 2014 16:15:46 UTC+2, [email protected] a écrit :
>>>>
>>>> I have debug a little bit and it try to do an update (i don't know why
>>>> for moment)
>>>>
>>>> Le vendredi 4 juillet 2014 16:09:07 UTC+2, [email protected] a écrit :
>>>>>
>>>>> Hi,
>>>>>
>>>>> my database is firebird and now when i doing that the insert don't
>>>>> work :
>>>>>
>>>>> record = getDsl().newRecord(MYTABLE);
>>>>> record.setState(0);
>>>>> record.store();
>>>>>
>>>>> no warning, no error but nothing is inserted and i have a primary key
>>>>> on MYTABLE.
>>>>>
>>>>> it works fine on 3.2.2.
>>>>>
>>>>> any sugestions ?
>>>>>
>>>> --
> You received this message because you are subscribed to the Google Groups
> "jOOQ User Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups "jOOQ
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.