Support for the US Government Encryption Standard (AES-256) has been added.
Dynamically allocated parameter types are now supported. This new type (TD_ANYTYPE) supports input and result parameter types and may take on any Teradata system defined type. The attributes of TD_ANYTYPE parameters is defined at function execution. TD_ANYTYPE parameters are supported in functions (domain specific system functions and user defined functions), user defined methods and external stored procedures. For an overview refer to TD_ANYTYPE Overview.
Several new Client-Attributes are collected upon establishing a connection to the Teradata Database. The columns are available in the DBC.SessionInfo view, the DBC.SessionTbl (usually only available to administrators of the Teradata Database) and the DBC.LogOnOff view. These new attributes (Client operating system name, .NET Framework Version for example) supplement the Logon Source information (Logon Source. For more details on the new columns refer to Client Attributes.
A new Provider Specific Type called TdNumber has been added. This type supports the Teradata Data Type NUMBER that was introduced in the Teradata 14.0 release. This required the following changes to the data provider:
The Data Provider supports Site-Specific Teradata Database version numbers. The Data Provider ignores/removes all characters after '_', '-', '/', '\' or '|'. The Data Provider also supports version numbers with up to 6 components (e.g. ##.##.##.###.###.###).
The Data Provider supports User Defined Array data types. The Teradata Database transforms User Defined Array data types to and from characters. The TdDataReader.GetString(Int32) method returns String representation of a User Defined Array data type.
The Default Response Buffer Size has been increased to 64,000 bytes. The default was set to 8,192 bytes in earlier versions of the Data Provider. For additional information refer to Performance Considerations: Response Buffer Size and TdConnectionStringBuilder.ResponseBufferSize property.
The Data Provider maps parameter values of type System.Byte to the Teradata Database SMALLINT data type. The Data Provider performs this mapping when an application does not explicitly set the TdParameter.TdType and TdParameter.DbType properties. Previously the Data Provider generated an exception because it could not infer the Teradata Database data type from the .NET Framework System.Byte data type.
The Tables Schema Collection returns NOPI tables when the TABLE_TYPE restrictions is set to 'T' or 't'. Previously the Data Provider did not return NOPI tables and it did not support lower-case TABLE_TYPE restriction.
The Data Provider can convert a String value to a TIME WITH TIME ZONE parameter when the TdParameter.Size, TdParameter.Precision and TdParameter.Scale properties are all set to zero. Previously the Data Provider truncated the TIME ZONE portion of the TdParameter.Value which resulted in an error.
The Entity Provider can infer the length of a VARCHAR Function Parameter from the parameter value. There is no need to manually add the MaxLength facet to the SSDL file. Previously the Entity Provider truncated the VARCHAR input parameters to 1 character.
The Precision facet must be manually added to the SSDL file for TIME, TIMESTAMP and TIMESTAMP WITH TIME ZONE Function Parameters. Otherwise the Entity Provider will not send the fractional portion of the SECOND field to the Teradata Database. Previously the Entity Provider sent 6 significant digits for the fractional portions of the SECOND field. This behavior was incompatible with most TIME, TIMESTAMP and TIMESTAMP WITH TIME ZONE parameters.
The Data Provider can convert CHAR or VARCHAR data to an Interval Provider Specific Type. The Data Provider can now handle Input-Output Interval parameters when it is connected to the Teradata Database 6.2. Previously the Data Provider threw an exception with error code 110070 ("Invalid cast to Out Parameters. Provider does not support conversion from Char to Teradata.Client.Provider.TdInterval..."). This issue is specific to connections to the Teradata Database 6.2.
The TdIntervalHourToMinute.Zero field returns an instance of the TdIntervalHourToMinute value type. Previously the Zero field returned an instance of the TdIntervalMinuteToSecond value type.
The password, user-id and account fields accept double quotes in the logon string for TdConnection without duplicating each double quote character. Previously double quotes were accepted in the logon string by entering two double quotes for each double quote character within the logon string.
The ToString(format) method of the Provider Specific Types (e.g. TdDecimal and TdDate) throws a FormatException exception when the format parameter is invalid. The Data Provider's behavior is now consistent across all values, Null (e.g. TdDecimal.Null) or otherwise (e.g. new TdDecimal(1.23M)). Previously the Data Provider ignored the format parameter to the ToString method(s) when the Provider Specific Type value was Null.
The behavior of the TdDecimal.ToString(format) method is identical to the TdDecimal.ToString() method when the format parameter is set to String.Empty or null. Previously the ToString(format) method threw an exception when the format parameter was set to String.Empty or null.
The Entity Provider returns the Provider-Manifest version 14.0 when it is connected to the Teradata Database version 14.10 or later. Previously the Entity Provider threw an exception when the Data Provider is connected to the Teradata Database version 14.10 or higher.
The ToString(format) method of the Interval Provider Specific Types (e.g. TdIntervalDay, TdIntervalYear ...) throws a System.FormatException when the format parameter is invalid. Previously the Data Provider did not throw an exception as long as the very first character of the format was a valid format specifier.
The Data Provider supports the NUMBER data type when the "Use Enhanced SchemaTable" connection string attribute is set to false. Previously the Data Provider threw an exception.
For a User Defined Type, the COLUMN_TYPE column of the COLUMNS Schema collection is set to the UDT Name for VIEWs and TABLEs. Previously the Data Provider set the COLUMN_TYPE to 1) "UDT TYPE" for VIEWs and 2) the UDT Name for TABLEs.
The Data Provider correctly handles Command Timeout after transmitting a very large LOB to the Teradata Database. Previously the Data Provider did not return control back to the application after it transmitted a very large LOB to the Teradata Database and the Teradata Database did not complete the Command within the specified Command Timeout (TdCommand.CommandTimeout property).
The TdDataReader.GetTdClob and TdDataReader.GetBlob methods will not timeout after 30 seconds. Previously the methods timed out after 30 seconds and the Data Provider threw a TdException ("[100001] Cannot close an Active Request. Please Abort the Request").
The Data Provider supports Command Timeout. The Data Provider aborts a Command that does not complete within the specified time limit. The Data Provider can now process an unsuccessful abort during Command-Timeout processing. Previously the Data Provider threw an exception indicating that it "cannot close an Active Request. Please Abort the Request".
The Data Provider correctly handles parsing of a string "Null" for TdInterval provider specific data types. Previously it was returning a format exception. The Data Provider will now return a Null value (e.g. TdIntervalDayToSecond.Null) on parsing a string "Null".
LDAP/SPNEGO logons used to fail when the password used to have an @ in the password. The Data Provider now escapes the characters @, /, \, newline, backspace, tab, double-quotes if they are present in the password, hence the LDAP/SPENGO logons will now be successful if the password has any of those characters.
Note |
---|
If the password had a " (double-quote) or a / (forward-slash) and if the AuthenticationString was set to UPN style format, the logon might fail with this efix version. Changes made to .NET TeraGSS (DR159942) requires UPN format to be consistant whether it was provider generated or application supplied via AuthenticationString. If AuthenticationString is set to UPN style format and if the password has either or both of the above mentioned characters, please escape it for logons to be successful. The " (double-quote) needs to be escaped with another " (double-quote) and the / (forward-slash) needs to be escaped with \ (back-slash) character. |
Problem occurs when using the SPNEGO authentication mechanism without specifying a server-supported mechanism. When this occurs it is possible that the Teradata server will restart (DR 153685).
Under certain scenarios SQL statements were incorrectly generated when using the Entity Provider with the ADO.Net Entity Framework 4.0. When the Entity Provider uses the NULL keyword in the columns list of a SELECT clause, it was not being casted to the correct data type. In addition, columns defined as DOUBLE PRECISION were not being correctly casted in the columns-list of the generated SELECT statement. Both these errors have been fixed.
Queries submitted to the Entity Provider for Teradata generating a query to Teradata that contains a join referencing multiple tables with the same column name, may generate an incorrect alias name. The reference to this alias may generate a Teradata error: Failure 3810 Column does not exist. Alias generation has been fixed (NET-757).