SQL Server 2000 SP4 RTM released
Finally, all SP4 bugs are fixed and all tests are passing: We have achieved lift off for SQL Server 2000 SP4. This is the best tested and most secure SQL Server 2000 yet. You can find it for download at microsoft.com for both 32-bit and 64-bit.
On the XML front, this is the first release that uses the SQL Server specific MSXMLSQL.dll that removes the dependency from the MSXML 2.6 (32-bit) and MSXML 3.0 (64-bit) OS versions (SQL Server 2005 will also use MSXMLSQL). It is based on the MSXML 3.0 code-base and is used by OpenXML in a backwards-compatibility mode to provide the existing SQL Server 2000 semantics. There are a few things that will not work the same though (some are bug fixes, some are artefacts of moving to MSXMLSQL):
- The XML Parser in sp_xml_preparedocument now rejects invalid high surrogate pairs that are normally used to represent Unicode code points.
- We now have a stricter XPath 1.0 engine that has removed of the following functions that are not part of XPath proper:
- format-number() && formatNumber() – these were exposed as intrinsic functions in 2.6 but moved to the xslt layer in 3.0, thus are no longer available to xpath expressions.
- current() – this always returned null, so removing it should not be an issue.
- element-available()– this function was never useful in OpenXML, so I seriously doubt that anyone depends on it.
- function-available() – similar to element-available(). not likely anyone depends on this.
- system-property() – unlikely anyone depended on this.
- We now have a stricter XPath 1.0 engine that has changed the semantics of non-integer values in positional predicates. a[5.1] will now return no element instead of the 5th <a> element. Since this value cannot be parameterized, such expressions are unlikely to occur in the "wild".
- Bug fix: Previously, the XML parser rejected valid high surrogate pair characters inside PI and comments and failed the parse. In SP4, the parser accepts them and the parse succeeds.
- Bug fix: Previously, OpenXML returned NULL for metaproperties (e.g., @mp:id) of document nodes. In SP4, this bug has been fixed.
Some of the positive performance aspects are:
- The parser now scales linearly to the size of the document.
- The parent axes (..) is now orders of magnitude faster than using the MSXML 2.6 version.
Finally, as I mentioned earlier, SP4 still ships with the original SQLXML component. You can get the latest version (SQLXML 3.0 SP3) from the SQLXML download page.
Enjoy!