LOB datatype infrastructure support Technology preview. More changes expected as part of this work before it is user ready. blueprint lob-support
This checkin contains basic support for create blob/clob datatypes. The feature is disabled by default. Instructions on how to enable are listed below. New test executor/TEST130 that turns the feature on and tests out the functionality. New mxlobsrvr process will be started as part of sqstart. Create and drop of tables with LOB columns. No support for alter. DML support for LOB datatypes. Insert, update and deletes. Joins of 2 tables with LOB columns are allowed but joins on LOB columns temselves are not allowed. Insert-select from one LOB table another not yet supported. Link to document from the blueprint will be added shortly.
To enable and try LOBs: On a developer workstation :
cqd TRAF_BLOB_AS_VARCHAR 'OFF';
On a cluster after installing the code 2 steps are needed:
This checkin includes several merges from the mainline and each of the lines below represents one commit to the project branch where this work was done. ` -Turning off LOB code by default. But turning it on in executor/TEST130 just to ensure testing the code path. -Support for showddl and some syntax for external files and stream. -LOB regression test -Workaround for dtm issue LP 378167 -Changes to make append work. Changes to use lob heap. -Fix for using system heap for all LOB allocations and handling NULLs. -Added workaround for cursor delete issue. LP 1376969 -Fixes for update. -Parser changes for exe_util_lob_extract -Pull in lob extract code -Adding mxlobsrvr directory
-Fixed the LOB interface to use 2 new params for cursor fetches. They do not overload the LOB Handle and LOB handle length anymore. Added a flag to lobGlobals to indetify it's a hive access. Cleaned up parser code.
-LOB support for create,drop,insert,delete,select.
Various changes done to upgrade metadata from v23 to v30. -- initialize trafodion, upgrade; will upgrade metadata from v23 to v30. -- Following columns were added/dropped/modified in metadata tables: -- COLUMNS: added sql_data_type -- OBJECTS: added DROPPABLE column to indicated droppable table. added schema_owner column. -- TABLES: added num_salt_partns, table_format, comment, key_length, row_data_length, row_total_length. Removed hbase_create_options and moved it to TEXT. -- SEQ_GEN: redef_ts and upd_ts added. -- TEXT: text_type, sub_id added. -- TABLE_CONSTRAINTS: added IS_ENFORCED, DROPPABLE, DISABLED, VALIDATED, LAST_VALIDATED_TIME -- reserved flags column added to metadata tables, initialize to zero. -- default_value in COLUMNS is now UTF8 instead of UCS2 -- new columns populated during upgrade for existing objects. -- values that moved from one metadata table to another populated during upgrade. -- new columns populated during create operation for new objects. -- step added to drop/create metadata views as part of upgrade