13.07.2015 Views

Caché Upgrade Checklists - InterSystems Documentation

Caché Upgrade Checklists - InterSystems Documentation

Caché Upgrade Checklists - InterSystems Documentation

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Developers• if an application had a user-defined DATE datatype, and the Logical value of this datatype was not +$Horolog, it wouldnot accept CURRENT_DATE as input for this field value or in a query as a comparison value for this field. Also, itcould not use this field in calls to DATEDIFF, DATEADD, DATENAME, or DATEPART.• if the application had a user-defined TIMESTAMP datatype, and the Logical value of this datatype was not 'YYYY-MM-DD HH:MM:SS[.sss]', it could not use CURRENT_TIMESTAMP as input for this field value, in a query as acomparison value for this field, or in calls to DATEDIFF, DATEADD, DATENAME, or DATEPART.<strong>Caché</strong> SQL will now support these operations as long as the user-defined datatype class contains methods which convertfrom the user-defined logical value to the %Library.Date logical value. The methods needed for the user-defined datedatatype class are LogicalToDate and DateToLogical.4.2.6.12 Owners Of SQL Stored ProceduresA correction has been made to the SQL projection of a stored procedure. If the procedure does not have an owner specificallydefined for it (the owner of the class that projects the procedure), the owner will default to “_SYSTEM” and no privilegeswill be granted to the owner (since _SYSTEM has the %All role). This now matches the behavior followed when compilingclasses that project tables and views. Prior to this change, the owner would default to the current user (the user compilingthe class).4.2.6.13 Class References Projection ChangesFor a persistent class with a property that is a reference to another persistent class with a CLASSNAME=1, the propertyno longer projects to SQL as a reference, but as a simple %List type. This corrects behavior where SQL treated this fieldwas an Integer value that contained the ID of the referenced row. When CLASSNAME=1, the field data is instead an Oidvalue, which is not an integer.Note:At this time SQL -> syntax cannot be used on referenced fields that are defined with CLASSNAME=1.4.2.6.14 New EXTERNALSQLTYPE PropertyWhen a linked table is defined through the Link Table Wizard, a new property type parameter will now be defined calledEXTERNALSQLTYPE. This will be set to the type number or name returned from the metadata of the external table.4.2.6.15 Correction For CAST(x AS NUMERIC(p,s)) AppliedA problem has been corrected where “CAST(value AS NUMERIC(5,2))” would return incorrect results in display modewhen using (European-style) comma as the numeric decimal separator.The expression CAST (value AS NUMERIC(precision, scale)) used to return a logical value that included the full displayscale of the cast value. For example, CAST(1 AS NUMERIC(5,2)) used to return 1.00 as the logical value; now it returnsjust 1. The display value will still be 1.00. Any code that relied on the logical value of the CAST result having being 1.00will have to be modified.4.2.7 CSP Changes4.2.7.1 Charset Reporting Changed For 8–Bit SystemsWhen serving up files with the stream server via CSP on 8–bit systems, <strong>Caché</strong> now reports which charset is used in a differentmanner. In the past, <strong>Caché</strong> used the default character file translate table, but on 8–bit systems this is almost alwaysRAW and so does not provide the information required. Beginning with this version, <strong>Caché</strong> reports the system defaultlocale charset for these files. The logic is now:1. If ^%SYS(“CSP”, “MimeFileClassify”, extension) is defined, it is assumed to be of the form “$LISTBUILD(type,binary, charset)” and this will be used to report the type of this file.<strong>Caché</strong> <strong>Upgrade</strong> <strong>Checklists</strong> 87

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

Saved successfully!

Ooh no, something went wrong!