[#3342] Cannot INSERT into tables with Firebird BLOB types

This commit is contained in:
Lukas Eder 2014-06-20 10:43:52 +02:00
parent 0165b325f5
commit c28bd2ceaa
2 changed files with 13 additions and 2 deletions

View File

@ -82,7 +82,12 @@ public class FirebirdTableDefinition extends AbstractTableDefinition {
r.RDB$NULL_FLAG.nvl((short) 0),
r.RDB$DEFAULT_SOURCE,
r.RDB$FIELD_POSITION,
f.RDB$FIELD_LENGTH,
// [#3342] FIELD_LENGTH should be ignored for LOBs
decode().value(f.RDB$FIELD_TYPE)
.when((short) 261, (short) 0)
.otherwise(f.RDB$FIELD_LENGTH)
.as("FIELD_LENGTH"),
f.RDB$FIELD_PRECISION,
f.RDB$FIELD_SCALE.neg().as("FIELD_SCALE"),
@ -132,7 +137,7 @@ public class FirebirdTableDefinition extends AbstractTableDefinition {
getDatabase(),
getSchema(),
record.getValue("FIELD_TYPE", String.class),
record.getValue(f.RDB$FIELD_LENGTH),
record.getValue("FIELD_LENGTH", short.class),
record.getValue(f.RDB$FIELD_PRECISION),
record.getValue("FIELD_SCALE", Integer.class),
record.getValue(r.RDB$NULL_FLAG.nvl((short) 0)) == 0,

View File

@ -36,6 +36,7 @@ DROP TABLE "t_941"/
DROP TABLE T_943/
DROP TABLE t_unsigned/
DROP TABLE t_booleans/
DROP TABLE t_3342/
@ -289,6 +290,11 @@ CREATE TABLE x_test_case_2025 (
);
/
CREATE TABLE t_3342 (
b BLOB SUB_TYPE 1 SEGMENT SIZE 80 CHARACTER SET NONE COLLATE NONE
);
/
CREATE VIEW V_LIBRARY (AUTHOR, TITLE) AS
SELECT T_AUTHOR.FIRST_NAME || ' ' || T_AUTHOR.LAST_NAME, T_BOOK.TITLE
FROM T_AUTHOR JOIN T_BOOK ON T_BOOK.AUTHOR_ID = T_AUTHOR.ID;