Regression: no more can change column from BLOB to VARCHAR or back
------------------------------------------------------------------
Key: CORE-6052
URL: http://tracker.firebirdsql.org/browse/CORE-6052
Project: Firebird Core
Issue Type: Bug
Components: Engine
Affects Versions: 3.0.4
Environment: any with Firebird 3.x
Reporter: Arioch
Expanding columns from VarChar(nn) to BLOB SUB_TYPE TEXT (or shrinking it
back) is working in Firebird 2.1.7 and 2.5.8 but it fails in Firebird 3.0.4
P.S. I know there is a workaround for this regression: creating extra column
and copying data there. Still, it is just a workaround, and slow one on large
tables.
https://stackoverflow.com/questions/34368282
------------
CREATE DOMAIN T_TEXT_BLOB AS
BLOB SUB_TYPE 1;
CREATE DOMAIN T_TEXT_VC AS
VARCHAR(20);
CREATE TABLE ALTER_TEXT (
TARGET T_TEXT_VC);
INSERT INTO ALTER_TEXT(TARGET) VALUES('aaa');
INSERT INTO ALTER_TEXT(TARGET) VALUES('bbb');
INSERT INTO ALTER_TEXT(TARGET) VALUES('ccc');
COMMIT;
-- now we want to change the column WITHOUT copying data
update RDB$RELATION_FIELDS set
RDB$FIELD_SOURCE = 'T_TEXT_BLOB'
where (RDB$FIELD_NAME = 'TARGET') and
(RDB$RELATION_NAME = 'ALTER_TEXT')
/* works like a charm in FB 2.1 and FB 2.5, but fails in FB 3.0.4.
Unsuccessful execution caused by a system error that precludes successful
execution of subsequent statements.
UPDATE operation is not allowed for system table RDB$RELATION_FIELDS. */
/* ALTER TABLE ALTER_TEXT ALTER COLUMN TARGET TYPE T_TEXT_BLOB;
This operation is not defined for system tables.
unsuccessful metadata update.
ALTER TABLE ALTER_TEXT failed.
Cannot change datatype for column TARGET. Changing datatype is not supported
for BLOB or ARRAY columns. */
Fails with internal errors on both FB 2.1, FB 2.5, FB 3.0.4
So, the operation that worked (albeit in an "obsolete" way) on Firebird 2.1 and
2.5 is no more working in 3.x
This regression is twice sad since "BLOB and array data types are not supported
for move operation" was reportedly fixed in BLOB and array data types are not
supported for move operation
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel