13.07.2015 Views

Caché Upgrade Checklists - InterSystems Documentation

Caché Upgrade Checklists - InterSystems Documentation

Caché Upgrade Checklists - InterSystems Documentation

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Developers3.2.13.2 Changes To Catalog QueriesThe TABLE_TYPE argument for the ODBC Catalog Query SQLTables and the JDBC Catalog query getTables has beenenhanced to support the following new types in addition to the types 'TABLE' and 'VIEW' that have always been supported:• SYSTEM TABLE – a table projected from a class that has a System > 0 setting• SYSTEM VIEW – a view projected from a class that has a System > 0 setting• GLOBAL TEMPORARY – a table projected from a class with class parameter:Parameter SQLTABLETYPE = "GLOBAL TEMPORARY";Prior to this version, if an application called SQLTables or getTables with an empty TABLE_TYPE argument, only TABLEand VIEW types would be returned. Now all all types that exist in the catalog will be returned. If an application only wantsthe TABLE and VIEW types, it must be changed to pass in only 'TABLE', and 'VIEW' for the TABLE_TYPE argument.3.2.14 MultiValue Changes3.2.14.1 MVFILENAME Class ParameterThe presence of MVFILENAME corrects inconsistency issues that previously might occur between copied or importedclasses, and the file references in the VOC. The use of MVFILENAME assures that the storage definition in a class thatextends %MV.Adaptor closely follows the definition of the MV file. <strong>InterSystems</strong> strongly recommend the use ofMVFILENAME.3.2.14.2 Debugger Changes For D3 EmulationWhen using the Studio debugger in a MultiValue account using D3 emulation, if the debugger does not find a value for amixed or lower case variable name it will look for an uppercase name. This will help when debugging routines that use theD3 default behavior of converting all variable names to uppercase. This can cause confusion if$OPTIONS -NO.CASEturns off the default for a routine and it uses two variable names that differ only in the case of the names. D3 routinescompiled with case sensitivity and with variable names identical except for case may see unexpected values in the debugger.This change applies only to displaying variables. To modify a value, the true uppercase name must be used.3.2.14.3 Behavior Changes For Dynamic Arrays With Unassigned EntriesThe current behavior of padding the MATBUILD/MATWRITE dynamic array with null entries for unassigned array nodesat the end is no longer supported. No legacy MultiValue system provides this behavior, so <strong>InterSystems</strong> believes no existingapplications depend on it.In prior releases, unassigned nodes would be treated as empty strings and the resulting dynamic array could have manyempty entries at the end if the higher array subscripts were undefined. Beginning with this release, the behavior of MAT-BUILD and MATWRITE has changed for arrays that have unassigned nodes. Now the behavior depends on an emulationoption, which is set to match the behavior of existing legacy platforms, namely:• Cache, Universe, and Unidata emulationsEmpty strings will be used for unassigned nodes and the dynamic array will be truncated when the highest subscriptsof the array are unassigned.• jBase, Reality, and D3 emulationsAn error will be thrown when an unassigned array node is encountered.<strong>Caché</strong> <strong>Upgrade</strong> <strong>Checklists</strong> 67

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!