<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>CodeCentral Blackfish SQL Submissions</title>
    <link>http://cc.embarcadero.com/Products.aspx?prodid=10</link>
    <description>CodeCentral Blackfish SQL Submissions</description>
    <item>
      <title>NHibernate example using Blackfish</title>
      <description />
      <link>http://cc.embarcadero.com/Item/26550</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=26550" type="application/zip" length="31880" />
      <pubDate>2009-01-17T03:04:18</pubDate>
      <dc:date>2009-01-17T03:04:18</dc:date>
      <guid>http://cc.embarcadero.com/Item/26550</guid>
    </item>
    <item>
      <title>Blackfish SQL 8 for Java Trial - Solaris</title>
      <description>&amp;lt;P&amp;gt;Blackfish&amp;#8482; SQL is a high-performance, small-footprint, SQL-92 compliant transactional database. Blackfish SQL runs on both the .NET framework and on the Java platform. Database files are compatible between the two platforms.&amp;lt;P&amp;gt;&amp;lt;B&amp;gt;Download the software and request your trial license&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;1. Click the Download button to download the software&amp;lt;BR&amp;gt;2. Enter your information and click the Send Activation/Confirm button to receive your 30-day trial license by email &amp;lt;P&amp;gt;&amp;lt;B&amp;gt;How to purchase deployment licenses&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;When you're ready to deploy Blackfish SQL with your apps, see the &amp;lt;a href=&amp;quot;http://www.codegear.com/products/blackfish&amp;quot;&amp;gt;Blackfish SQL product page&amp;lt;/a&amp;gt; for deployment license pricing options which include individual deployment licenses and deployment licenses that are included with JBuilder 2008.&amp;lt;P&amp;gt;&amp;lt;B&amp;gt;New in Blackfish SQL 8&amp;lt;/B&amp;gt; &amp;lt;UL&amp;gt;&amp;lt;LI&amp;gt;Database triggers written in Java or any .NET language &amp;lt;LI&amp;gt;Unlimited deployment licenses available with the purchase of JBuilder 2008 Professional or Enterprise &amp;lt;LI&amp;gt;Delphi dbExpress Win32 driver can connect to Blackfish SQL for Java or .NET server; providing access for native Delphi and C++ applications &amp;lt;LI&amp;gt;Blackfish SQL ADO.NET 2.0 driver can connect to either a Blackfish for Java or .NET server &amp;lt;LI&amp;gt;Integration into Delphi Data Explorer using dbExpress or ADO.NET drivers &amp;lt;LI&amp;gt;Select statement support for retrieving autoincrement values System properties. See com.borland.datastore.driver.cons.System &amp;lt;LI&amp;gt; Additions to DB_ADMIN built-in administrative stored procedures, primarily for metadata and new licensing &amp;lt;/UL&amp;gt;See the included Blackfish SQL Developer's Guide for additional information&amp;lt;P&amp;gt;Blackfish SQL for .NET is only available bundled with Delphi 2007 or later, C++Builder 2007 or later and CodeGear RAD Studio 2007.</description>
      <link>http://cc.embarcadero.com/Item/25558</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=25558" type="application/zip" length="68634961" />
      <pubDate>2008-08-29T20:37:25</pubDate>
      <dc:date>2008-08-29T20:37:25</dc:date>
      <guid>http://cc.embarcadero.com/Item/25558</guid>
    </item>
    <item>
      <title>Blackfish SQL 8 for Java Trial - Mac</title>
      <description>&amp;lt;P&amp;gt;Blackfish&amp;#8482; SQL is a high-performance, small-footprint, SQL-92 compliant transactional database. Blackfish SQL runs on both the .NET framework and on the Java platform. Database files are compatible between the two platforms.&amp;lt;P&amp;gt;&amp;lt;B&amp;gt;Download the software and request your trial license&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;1. Click the Download button to download the software&amp;lt;BR&amp;gt;2. Enter your information and click the Send Activation/Confirm button to receive your 30-day trial license by email &amp;lt;P&amp;gt;&amp;lt;B&amp;gt;How to purchase deployment licenses&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;When you're ready to deploy Blackfish SQL with your apps, see the &amp;lt;a href=&amp;quot;http://www.codegear.com/products/blackfish&amp;quot;&amp;gt;Blackfish SQL product page&amp;lt;/a&amp;gt; for deployment license pricing options which include individual deployment licenses and deployment licenses that are included with JBuilder 2008.&amp;lt;P&amp;gt;&amp;lt;B&amp;gt;New in Blackfish SQL 8&amp;lt;/B&amp;gt; &amp;lt;UL&amp;gt;&amp;lt;LI&amp;gt;Database triggers written in Java or any .NET language &amp;lt;LI&amp;gt;Unlimited deployment licenses available with the purchase of JBuilder 2008 Professional or Enterprise &amp;lt;LI&amp;gt;Delphi dbExpress Win32 driver can connect to Blackfish SQL for Java or .NET server; providing access for native Delphi and C++ applications &amp;lt;LI&amp;gt;Blackfish SQL ADO.NET 2.0 driver can connect to either a Blackfish for Java or .NET server &amp;lt;LI&amp;gt;Integration into Delphi Data Explorer using dbExpress or ADO.NET drivers &amp;lt;LI&amp;gt;Select statement support for retrieving autoincrement values System properties. See com.borland.datastore.driver.cons.System &amp;lt;LI&amp;gt; Additions to DB_ADMIN built-in administrative stored procedures, primarily for metadata and new licensing &amp;lt;/UL&amp;gt;See the included Blackfish SQL Developer's Guide for additional information&amp;lt;P&amp;gt;Blackfish SQL for .NET is only available bundled with Delphi 2007 or later, C++Builder 2007 or later and CodeGear RAD Studio 2007.</description>
      <link>http://cc.embarcadero.com/Item/25559</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=25559" type="application/zip" length="47868360" />
      <pubDate>2008-08-29T20:37:00</pubDate>
      <dc:date>2008-08-29T20:37:00</dc:date>
      <guid>http://cc.embarcadero.com/Item/25559</guid>
    </item>
    <item>
      <title>Blackfish SQL 8 for Java Trial - Linux</title>
      <description>&amp;lt;P&amp;gt;Blackfish&amp;#8482; SQL is a high-performance, small-footprint, SQL-92 compliant transactional database. Blackfish SQL runs on both the .NET framework and on the Java platform. Database files are compatible between the two platforms.&amp;lt;P&amp;gt;&amp;lt;B&amp;gt;Download the software and request your trial license&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;1. Click the Download button to download the software&amp;lt;BR&amp;gt;2. Enter your information and click the Send Activation/Confirm button to receive your 30-day trial license by email &amp;lt;P&amp;gt;&amp;lt;B&amp;gt;How to purchase deployment licenses&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;When you're ready to deploy Blackfish SQL with your apps, see the &amp;lt;a href=&amp;quot;http://www.codegear.com/products/blackfish&amp;quot;&amp;gt;Blackfish SQL product page&amp;lt;/a&amp;gt; for deployment license pricing options which include individual deployment licenses and deployment licenses that are included with JBuilder 2008.&amp;lt;P&amp;gt;&amp;lt;B&amp;gt;New in Blackfish SQL 8&amp;lt;/B&amp;gt; &amp;lt;UL&amp;gt;&amp;lt;LI&amp;gt;Database triggers written in Java or any .NET language &amp;lt;LI&amp;gt;Unlimited deployment licenses available with the purchase of JBuilder 2008 Professional or Enterprise &amp;lt;LI&amp;gt;Delphi dbExpress Win32 driver can connect to Blackfish SQL for Java or .NET server; providing access for native Delphi and C++ applications &amp;lt;LI&amp;gt;Blackfish SQL ADO.NET 2.0 driver can connect to either a Blackfish for Java or .NET server &amp;lt;LI&amp;gt;Integration into Delphi Data Explorer using dbExpress or ADO.NET drivers &amp;lt;LI&amp;gt;Select statement support for retrieving autoincrement values System properties. See com.borland.datastore.driver.cons.System &amp;lt;LI&amp;gt; Additions to DB_ADMIN built-in administrative stored procedures, primarily for metadata and new licensing &amp;lt;/UL&amp;gt;See the included Blackfish SQL Developer's Guide for additional information&amp;lt;P&amp;gt;Blackfish SQL for .NET is only available bundled with Delphi 2007 or later, C++Builder 2007 or later and CodeGear RAD Studio 2007.</description>
      <link>http://cc.embarcadero.com/Item/25556</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=25556" type="application/zip" length="71407314" />
      <pubDate>2008-08-29T20:36:26</pubDate>
      <dc:date>2008-08-29T20:36:26</dc:date>
      <guid>http://cc.embarcadero.com/Item/25556</guid>
    </item>
    <item>
      <title>Blackfish SQL 8 for Java Trial - Windows</title>
      <description>&amp;lt;P&amp;gt;Blackfish&amp;#8482; SQL is a high-performance, small-footprint, SQL-92 compliant transactional database. Blackfish SQL runs on both the .NET framework and on the Java platform. Database files are compatible between the two platforms.&amp;lt;P&amp;gt;&amp;lt;B&amp;gt;Download the software and request your trial license&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;1. Click the Download button to download the software&amp;lt;BR&amp;gt;2. Enter your information and click the Send Activation/Confirm button to receive your 30-day trial license by email &amp;lt;P&amp;gt;&amp;lt;B&amp;gt;How to purchase deployment licenses&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;When you're ready to deploy Blackfish SQL with your apps, see the &amp;lt;a href=&amp;quot;http://www.codegear.com/products/blackfish&amp;quot;&amp;gt;Blackfish SQL product page&amp;lt;/a&amp;gt; for deployment license pricing options which include individual deployment licenses and deployment licenses that are included with JBuilder 2008.&amp;lt;P&amp;gt;&amp;lt;B&amp;gt;New in Blackfish SQL 8&amp;lt;/B&amp;gt; &amp;lt;UL&amp;gt;&amp;lt;LI&amp;gt;Database triggers written in Java or any .NET language &amp;lt;LI&amp;gt;Unlimited deployment licenses available with the purchase of JBuilder 2008 Professional or Enterprise &amp;lt;LI&amp;gt;Delphi dbExpress Win32 driver can connect to Blackfish SQL for Java or .NET server; providing access for native Delphi and C++ applications &amp;lt;LI&amp;gt;Blackfish SQL ADO.NET 2.0 driver can connect to either a Blackfish for Java or .NET server &amp;lt;LI&amp;gt;Integration into Delphi Data Explorer using dbExpress or ADO.NET drivers &amp;lt;LI&amp;gt;Select statement support for retrieving autoincrement values System properties. See com.borland.datastore.driver.cons.System &amp;lt;LI&amp;gt; Additions to DB_ADMIN built-in administrative stored procedures, primarily for metadata and new licensing &amp;lt;/UL&amp;gt;See the included Blackfish SQL Developer's Guide for additional information&amp;lt;P&amp;gt;Blackfish SQL for .NET is only available bundled with Delphi 2007 or later, C++Builder 2007 or later and CodeGear RAD Studio 2007.</description>
      <link>http://cc.embarcadero.com/Item/25557</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=25557" type="application/zip" length="49635568" />
      <pubDate>2008-08-29T20:35:42</pubDate>
      <dc:date>2008-08-29T20:35:42</dc:date>
      <guid>http://cc.embarcadero.com/Item/25557</guid>
    </item>
    <item>
      <title>JDataStore 7.06 for Mac OS X</title>
      <description>&amp;lt;h1 align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;a name=&amp;quot;_top_&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;JDataStore 7.06 (build 7.006.039) for Mac OS X&amp;lt;br&amp;gt;Release Notes&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;These Release Notes provide a brief description of each new feature in JDataStore 7.The &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; includes a &amp;quot;What's New&amp;quot; chapter that provideslinks to the documentation for each new feature within the Developer's Guide.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Bug fix list&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.06 click &amp;lt;a href=&amp;quot;#fixed_706&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.05 click &amp;lt;a href=&amp;quot;#fixed_705&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.04 click &amp;lt;a href=&amp;quot;#fixed_704&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.03 click &amp;lt;a href=&amp;quot;#fixed_703&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.02 click &amp;lt;a href=&amp;quot;#fixed_702&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.01 click &amp;lt;a href=&amp;quot;#fixed_701&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;New Features&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#failsafe&amp;quot;&amp;gt;The JDataStore High Availability Server: incremental backup, automatic failover&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The new &amp;lt;a href=&amp;quot;#console&amp;quot;&amp;gt;Server Console&amp;lt;/a&amp;gt; graphical interface&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;New SQL functions&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#bit_length&amp;quot;&amp;gt;&amp;lt;code&amp;gt;BIT_LENGTH&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#case_function&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#coalesce&amp;quot;&amp;gt;&amp;lt;code&amp;gt;COALESCE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#current_role&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CURRENT_ROLE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#current_user&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CURRENT_USER&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#db_admin&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#DB_UTIL&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DB_UTIL&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#nullif&amp;quot;&amp;gt;&amp;lt;code&amp;gt;NULLIF&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#octet_length&amp;quot;&amp;gt;&amp;lt;code&amp;gt;OCTET_LENGTH&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#user_function&amp;quot;&amp;gt;&amp;lt;code&amp;gt;USER&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;New and updated SQL statements&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#create_schema&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#drop_schema&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DROP SCHEMA&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#create_view&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CREATE VIEW&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#alter_view&amp;quot;&amp;gt;&amp;lt;code&amp;gt;ALTER VIEW&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#drop_view&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DROP VIEW&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#create_role&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CREATE ROLE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#set_role&amp;quot;&amp;gt;&amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#drop_role&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DROP ROLE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#create_table&amp;quot;&amp;gt;CREATE TABLE&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; options&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#alter_table&amp;quot;&amp;gt;ALTER TABLE&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; options&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#drop_table&amp;quot;&amp;gt;DROP TABLE&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; options: &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#create_java_class&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CREATE JAVA_CLASS&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#drop_java_class&amp;quot;&amp;gt;DROP JAVA_CLASS&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Security management&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#grant_statement&amp;quot;&amp;gt;GRANT&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#revoke_statement&amp;quot;&amp;gt;REVOKE&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#create_user&amp;quot;&amp;gt;CREATE USER&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#alter_user&amp;quot;&amp;gt;ALTER USER&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#drop_user&amp;quot;&amp;gt;DROP USER&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Transaction management&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#set_transaction&amp;quot;&amp;gt;SET TRANSACTION&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Other new SQL&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#keywords&amp;quot;&amp;gt;New keywords&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New data type: &amp;lt;a href=&amp;quot;#tinyint&amp;quot;&amp;gt;&amp;lt;code&amp;gt;TINYINT&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Many new &amp;lt;a href=&amp;quot;#escape_functions&amp;quot;&amp;gt;JDBC escape functions&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#isql&amp;quot;&amp;gt;ISQL cross-platform SQL command-line utility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Product notes&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#choose&amp;quot;&amp;gt;Choosing between Server Console and JdsExplorer&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#change_copy&amp;quot;&amp;gt;A change to the &amp;quot;Copy JDataStore&amp;quot; menu item&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;New and updated documentation&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#new_chaps&amp;quot;&amp;gt;New chapters&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#escape&amp;quot;&amp;gt;Escape syntax for calling stored procedures&amp;lt;/a&amp;gt; is now documented.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Updated documentation on &amp;lt;a href=&amp;quot;#jdbc_resultset&amp;quot;&amp;gt;returning JDBC ResultSets&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Getting started with JDataStore 7&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#migration&amp;quot;&amp;gt;Migrating older databases to JDataStore 7&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#jb_bes&amp;quot;&amp;gt;Using JDataStore 7 with JBuilder and the Borland Enterprise server&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;!-- &amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;#bugs&amp;quot;&amp;gt;Defects fixed in JDataStore 7&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt; --&amp;gt;&amp;lt;!-- &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;features&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New features&amp;lt;/h2&amp;gt; --&amp;gt;&amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;features&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New features&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;failsafe&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;The JDataStore High Availability Server&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;JDataStore 7 provides tools for creating automatic or manual incremental backups and for creating automatic failover to a mirror of the original database in case of failure. In addition, there are tools for viewing and managing connections on a remote server, for managing datasources and connections graphically or with the new ISQL feature, for viewing database status logs and transactions logs, for viewing logs, and for verifying databases.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;The &amp;quot;High Availability Server&amp;quot; topic in the &amp;quot;Architecture&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; discusses the architecture of JDataStore's new failsafe server and its associated mirroring functionality. This section is well worth reading, because it will help you make the most of this new offerings. &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For a description of how to use JDataStore's new Server Console to access this new functionality, see the new &amp;quot;JDataStore Server Console&amp;quot; chapter in the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. &amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;console&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;The new Server Console graphical interface&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;There is a whole new graphical interface in JDataStore 7. The Server Console performs many server administration tasks, including several that are new in JDataStore 7, such as automatic failover and incremental backup.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Here is an overview of what you can do with the Server Console. The items in the following list are topics in the &amp;quot;JDataStore Server Console&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; for details.&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Overview&amp;lt;/strong&amp;gt; Get a quick overview of what you can do with Server Console&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;About datasources&amp;lt;/strong&amp;gt; If you're not familiar with how JDataStore uses dataasources to connect to databases, this is the place to find out.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;What you see and what you get&amp;lt;/strong&amp;gt; Get familiar with the new Server Console interface.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Starting/shutting down the server&amp;lt;/strong&amp;gt; You can use Server Console to start and stop the local server.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Connection settings&amp;lt;/strong&amp;gt; A detailed description of how to create, modify, and delete datasources, and how to connect to and disconnect from them.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Creating and managing  datasources&amp;lt;/strong&amp;gt; Create, rename, and modify datasources, connect to them, and disconnect from them.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Verifying a database&amp;lt;/strong&amp;gt; Server Console makes it easier than ever.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Managing connections&amp;lt;/strong&amp;gt; View and optionaly terminate both local and remote datasources.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Managing database properties&amp;lt;/strong&amp;gt; See an editable grid of database properties for both local and remote connections.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Viewing table and row locks&amp;lt;/strong&amp;gt; Server Console makes it easy to see what's happening with locks on both the local and remote server.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Viewing the database status log file&amp;lt;/strong&amp;gt; You exactly what's been going on with a server by viewing its server status file.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Failover&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;incremental backup&amp;lt;/strong&amp;gt; Use mirrors to protect against failures and to incrementally backup your data on a schedule of your choosing. Using Server Console, you can add &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Interactive SQL&amp;lt;/strong&amp;gt; A special SQL pane lets you run SQL or SQL scripts against connected datasources.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;What happened to the old JdsServer graphical interface?&amp;lt;/strong&amp;gt; It's still there, but it has been replaced by the new Server Console. You can still start the JDataStore server as an application by running the &amp;lt;code&amp;gt;JdsServer&amp;lt;/code&amp;gt; executable. However, it is now set to run without the GUI.  If you really need that deprecated interface back, you can invoke the GUI by executing the following command:&amp;lt;/p&amp;gt;&amp;lt;table class=&amp;quot;pre&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;jdsserver -ui [windows|motif|metal|none][other parameters]&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;p&amp;gt;Choose the interface that is appropriate for your platform. For more about starting the JDataStore server, see &amp;quot;Launching JdsServer&amp;quot; in the &amp;quot;JDataStore Administration&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;keywords&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New keywords&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The asterisk following a keyword indicates that the keyword is &amp;lt;em&amp;gt;reserved&amp;lt;/em&amp;gt;. Reserved keywords can be used as SQL identifiers only if they are enclosed in double quotation marks. When quoted in this fashion, they are case sensitive. The words that have no asterisk are &amp;lt;em&amp;gt;nonreserved&amp;lt;/em&amp;gt; keywords. They can be used with or without double quotes and are case insensitive when note in quotes.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For a complete list of keywords, see &amp;lt;strong&amp;gt;Keywords&amp;lt;/strong&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;ADMIN*&amp;lt;br&amp;gt;ADMINISTRATOR*&amp;lt;br&amp;gt;AUTHORIZATION*&amp;lt;br&amp;gt;BIT_LENGTH*&amp;lt;br&amp;gt;COALESCE*&amp;lt;br&amp;gt;CURRENT_ROLE*&amp;lt;br&amp;gt;CURRENT_USER*&amp;lt;br&amp;gt;EXECUTE*&amp;lt;br&amp;gt;GRANT*&amp;lt;br&amp;gt;ISOLATION*&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;LEVEL*&amp;lt;br&amp;gt;NONE*&amp;lt;br&amp;gt;NULLIF*&amp;lt;br&amp;gt;OCTET_LENGTH*&amp;lt;br&amp;gt;ONLY*&amp;lt;br&amp;gt;OPTION*&amp;lt;br&amp;gt;PRIVILEGES*&amp;lt;br&amp;gt;PUBLIC*&amp;lt;br&amp;gt;READ&amp;lt;br&amp;gt;RENAME*&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;RESOLVABLE*&amp;lt;br&amp;gt;REVOKE*&amp;lt;br&amp;gt;ROLE&amp;lt;br&amp;gt;SCHEMA*&amp;lt;br&amp;gt;STARTUP*&amp;lt;br&amp;gt;TO*&amp;lt;br&amp;gt;TRANSACTION*&amp;lt;br&amp;gt;VIEW*&amp;lt;br&amp;gt;WITH*&amp;lt;br&amp;gt;WRITE&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;new_funcs&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New SQL functions&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;bit_length&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;BIT_LENGTH&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;BIT_LENGTH&amp;lt;/code&amp;gt; function gives the length in bits of a &amp;lt;code&amp;gt;STRING&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INPUTSTREAM&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;OBJECT&amp;lt;/code&amp;gt; value. For more information, see &amp;lt;code&amp;gt;BIT_LENGTH&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;case_function&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CASE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CASE function;SQL functions:CASE&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt; function returns a conditional value. For more information, see &amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;coalesce&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;COALESCE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;COALESCE function;SQL functions:COALESCE;non-NULL values, returning&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;COALESCE&amp;lt;/code&amp;gt; function returns the first non-NULL value from the expression list. For more information, see &amp;lt;code&amp;gt;COALESCE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;current_role&amp;quot;&amp;gt;CURRENT_ROLE&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CURRENT_ROLE function;SQL functions:CURRENT_ROLE;roles&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CURRENT_ROLE&amp;lt;/code&amp;gt; function returns the current role, or NULL if no role has been set using the &amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt; statement. For more information, see &amp;lt;code&amp;gt;CURRENT_ROLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. &amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;current_user&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CURRENT_USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CURRENT_USER function;SQL functions:CURRENT_USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CURRENT_USER&amp;lt;/code&amp;gt; function returns the name of the current user. For more information, see &amp;lt;code&amp;gt;CURRENT_USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;db_admin&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DB_ADMIN: administration functions&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DB_ADMIN function;SQL functions:DB_ADMIN&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; is a new JDataStore Java class whose methods are implemented in SQL as built-in stored procedures. Use &amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; for various database administration tasks such as automatic failover, incremental backup, creating and managing datasources, viewing and managing connections, verifying tables, and displaying database privileges and properties, locks, status logs, procedure privileges, and roles granted.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; provides a brief description of each method, implemented as a SQL function. The description of each method includes a link to the exact implementation and &amp;lt;a href=&amp;quot;../apiref/com/borland/datastore/driver/DB_ADMIN.html#method_summary&amp;quot;&amp;gt;&amp;lt;code&amp;gt;com.borland.datastore.driver.DB_ADMIN.html&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt; in the API reference. (The preceding link works when this document is in the &amp;lt;code&amp;gt;&amp;lt;em&amp;gt;JDataStore_home&amp;lt;/em&amp;gt;\doc&amp;lt;/code&amp;gt; directory.) &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;You can call these methods from SQL using the &amp;lt;code&amp;gt;CALL&amp;lt;/code&amp;gt; statement. They can be called without creating a &amp;lt;code&amp;gt;JAVA_METHOD&amp;lt;/code&amp;gt; alias because JDataStore SQL recognizes the methods in &amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; as built-in java methods.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; provides the following methods:&amp;lt;/p&amp;gt;&amp;lt;table border=&amp;quot;0&amp;quot; cols=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;code&amp;gt;ALTER_DATABASE&amp;lt;br&amp;gt;ALTER_MIRROR&amp;lt;br&amp;gt;ALTER_MIRROR_SCHEDULE&amp;lt;br&amp;gt;CLOSE_CONNECTION&amp;lt;br&amp;gt;CREATE_MIRROR&amp;lt;br&amp;gt;CREATE_MIRROR_SCHEDULE&amp;lt;br&amp;gt;DROP_MIRROR&amp;lt;br&amp;gt;DROP_MIRROR_SCHEDULE&amp;lt;br&amp;gt;GET_CONNECTIONS&amp;lt;br&amp;gt;GET_DATABASE_PRIVILEGES&amp;lt;br&amp;gt;GET_DATABASE_PROPS&amp;lt;br&amp;gt;GET_DATABASE_STATUS_LOG_FILTER&amp;lt;br&amp;gt;GET_LOCKS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;code&amp;gt;GET_MIRRORS&amp;lt;br&amp;gt;GET_NEWEST_STATUS_LOG_ID&amp;lt;br&amp;gt;GET_OLDEST_STATUS_LOG_ID&amp;lt;br&amp;gt;GET_PROCEDURE_PRIVILEGES&amp;lt;br&amp;gt;GET_ROLE_GRANTS&amp;lt;br&amp;gt;GET_STATUS_LOG_FILTER&amp;lt;br&amp;gt;GET_STATUS_LOG&amp;lt;br&amp;gt;GET_THIS_MIRROR&amp;lt;br&amp;gt;SET_DATABASE_STATUS_LOG_FILTER&amp;lt;br&amp;gt;SET_PRIMARY_MIRROR&amp;lt;br&amp;gt;SET_STATUS_LOG_FILTER&amp;lt;br&amp;gt;SYNCH_MIRROR&amp;lt;br&amp;gt;VERIFY&amp;lt;/code&amp;gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt; &amp;lt;br&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;DB_UTIL&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DB_UTIL: numeric, string, and date/time functions&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DB_UTIL functions;SQL functions:DB_UTIL;math functions;string functions;date/time functions;utilities:DB_UTIL&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_UTIL&amp;lt;/code&amp;gt; is a new JDataStore Java class whose methods  are implemented in SQL as built-in stored procedures. They are a collection of SQL utility functions that perform numeric, string and date/time operations on data stored in database tables. &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_UTIL&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; provides a brief description of each method. The description of each method includes a link to the exact implementation in &amp;lt;a href=&amp;quot;../apiref/com/borland/datastore/driver/DB_ADMIN.html#method_summary&amp;quot;&amp;gt;&amp;lt;code&amp;gt;com.borland.datastore.driver.DB_ADMIN.html&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt; in the API reference. (The preceding link works when this document is in the &amp;lt;code&amp;gt;&amp;lt;em&amp;gt;JDataStore_home&amp;lt;/em&amp;gt;\doc&amp;lt;/code&amp;gt; directory.) &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;You can call these methods from SQL using the &amp;lt;code&amp;gt;CALL&amp;lt;/code&amp;gt; statement. They can be called without creating a &amp;lt;code&amp;gt;JAVA_METHOD&amp;lt;/code&amp;gt; alias because JDataStore SQL recognizes the methods in &amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; as built-in java methods.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_UTIL&amp;lt;/code&amp;gt; provides the following methods&amp;lt;/p&amp;gt;&amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;code&amp;gt;&amp;lt;br&amp;gt;ACOS&amp;lt;br&amp;gt;ASIN&amp;lt;br&amp;gt;ATAN&amp;lt;br&amp;gt;ATAN2&amp;lt;br&amp;gt;CEILING&amp;lt;br&amp;gt;COS&amp;lt;br&amp;gt;COT&amp;lt;br&amp;gt;DEGREES&amp;lt;br&amp;gt;EXP&amp;lt;br&amp;gt;FLOOR&amp;lt;br&amp;gt;LOG&amp;lt;br&amp;gt;LOG10&amp;lt;br&amp;gt;MOD&amp;lt;br&amp;gt;PI&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;POWER&amp;lt;br&amp;gt;RADIANS&amp;lt;br&amp;gt;RAND&amp;lt;br&amp;gt;ROUND&amp;lt;br&amp;gt;SIGN&amp;lt;br&amp;gt;SIN&amp;lt;br&amp;gt;SQRT&amp;lt;br&amp;gt;TAN&amp;lt;br&amp;gt;TRUNCATE&amp;lt;br&amp;gt;ASCII&amp;lt;br&amp;gt;TO_CHAR&amp;lt;br&amp;gt;DIFFERENCE&amp;lt;br&amp;gt;INSERT_STRING&amp;lt;br&amp;gt;LEFT_STRING&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;code&amp;gt;&amp;lt;br&amp;gt;REPEAT&amp;lt;br&amp;gt;REPLACE&amp;lt;br&amp;gt;RIGHT&amp;lt;br&amp;gt;SOUNDEX&amp;lt;br&amp;gt;SPACE&amp;lt;br&amp;gt;DAYNAME&amp;lt;br&amp;gt;DAYOFWEEK&amp;lt;br&amp;gt;DAYOFYEAR&amp;lt;br&amp;gt;MONTHNAME&amp;lt;br&amp;gt;QUARTER&amp;lt;br&amp;gt;TIMESTAMPADD&amp;lt;br&amp;gt;TIMESTAMPDIFF&amp;lt;br&amp;gt;WEEK&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt; &amp;lt;br&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;nullif&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;NULLIF&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;NULLIF function;SQL functions:NULLIF;expressions:comparing;comparisons:expressions with NULLIF&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;NULLIF&amp;lt;/code&amp;gt; function compares two expressions. It returns NULL if the expressions are equal. Otherwise, it returns the first expression. It is logically equivalent to the following &amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt; expression: &amp;lt;code&amp;gt;CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;For more information, see &amp;lt;code&amp;gt;NULLIF&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;octet_length&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;OCTET_LENGTH&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;OCTET_LENGTH function;SQL functions:OCTET_LENGTH;length of string, imput stream, or object&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;OCTET_LENGTH&amp;lt;/code&amp;gt; function gives the length in bytes of a &amp;lt;code&amp;gt;STRING&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INPUTSTREAM&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;OBJECT&amp;lt;/code&amp;gt; value. For more information, see &amp;lt;code&amp;gt;OCTET_LENGTH&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;user_function&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;USER function;SQL functions:USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;USER&amp;lt;/code&amp;gt; function returns the name of the current user; this function is the same as &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#current_user&amp;quot;&amp;gt;CURRENT_USER&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;. For more information, see &amp;lt;code&amp;gt;CURRENT_USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;new_sql&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New and updated SQL statements&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_schema&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE SCHEMA&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE SCHEMA statement;schemas:creating;SQL statements:CREATE SCHEMA&amp;quot;--&amp;gt;&amp;lt;!--BNDX=&amp;quot;statements, &amp;lt;em&amp;gt;see&amp;lt;/em&amp;gt; SQL statements&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt; statement creates a name space for tables, views, and methods. You can use &amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt; to create multiple objects in one SQL statement. For a discussion of how schemas work in JDataStore, see &amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DROP SCHEMA&amp;lt;/code&amp;gt;in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_schema&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP SCHEMA&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP SCHEMA statement;schemas:dropping;SQL statements:DROP SCHEMA&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP SCHEMA&amp;lt;/code&amp;gt; statement deletes the specified schema. If the command is used without options, it is the same as specifying the &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt; option: the schema to be dropped must be empty. The command fails if the schema contains any objects. &amp;lt;/p&amp;gt; &amp;lt;p class=&amp;quot;bscan&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;bscan&amp;quot;&amp;gt;Note: &amp;lt;/span&amp;gt;The &amp;lt;code&amp;gt;DROP SCHEMA&amp;lt;/code&amp;gt; command used with the &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; option is extremely powerful and should be used with caution. When this command is issued, it drops the schema and all of its objects and dependencies without any chance to change your mind. There is no undo.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_view&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE VIEW&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE VIEW statement;SQL statements:CREATE VIEW;views:creating&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE VIEW&amp;lt;/code&amp;gt; statement creates a derived table by selecting specified columns from existing tables. Views provide a way of accessing a consistent subcollection of the data stored in one or more tables. When the data in the underlying tables changes, the view reflects this change.&amp;lt;/p&amp;gt;For more information, see &amp;lt;code&amp;gt;CREATE VIEW&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;alter_view&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;ALTER VIEW&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;ALTER VIEW statement;SQL statements:ALTER VIEW;views:altering&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;ALTER VIEW&amp;lt;/code&amp;gt; statement modifies a view without losing dependent views and existing &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt;s. This statement can be used to change the name of a view, the columns that comprise the view, and whether the view has the &amp;lt;code&amp;gt;WITH CHECK OPTION&amp;lt;/code&amp;gt; constraint.  For more information, see &amp;lt;code&amp;gt;ALTER VIEW&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_view&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP VIEW&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP VIEW statement;SQL statements:DROP VIEW;views:dropping&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP VIEW&amp;lt;/code&amp;gt; statement drops the named view. By default, it fails if there are dependencies on the view. The &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; option drops the view and any dependent views. For more information, see &amp;lt;code&amp;gt;DROP VIEW&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_role&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE ROLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE ROLE statement;SQL statements:CREATE ROLE;roles:creating;privileges:roles&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE ROLE&amp;lt;/code&amp;gt; statement creates a named role. To complete this functionality, you must &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; privileges to the role, and &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; the role to one or more users. To make use of the privileges acquired in this fashion, the user issues a &amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt; statement.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;lt;code&amp;gt;CREATE ROLE&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; statement in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;set_role&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;SET ROLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;SET ROLE statement;SQL statements:SET ROLE;roles:activating;privileges:roles&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt; statement makes the named role active. The current user acquires all privileges assigned to that role. For more information, see &amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_role&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP ROLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP ROLE statement;SQL statements:DROP ROLE;roles:dropping&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP ROLE&amp;lt;/code&amp;gt; statement drops the specified role. For more information, see &amp;lt;code&amp;gt;DROP ROLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_table&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE TABLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE TABLE statement;JDataStore tables:creating;foreign keys;SQL statements:CREATE TABLE&amp;quot;--&amp;gt;&amp;lt;!--BNDX=&amp;quot;schemas:creating tables in;JDataStore tables:schemas&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;There are three new options for the &amp;lt;code&amp;gt;CREATE TABLE&amp;lt;/code&amp;gt; statement:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;The table name now incldues a schema name.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You have the option of specifying a position for each column.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You can use the [NOT] RESOLVABLE option to track data changes for DataExpress.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;lt;code&amp;gt;CREATE TABLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;alter_table&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;ALTER TABLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;ALTER TABLE statement;JDataStore tables:modifying;SQL statements:ALTER TABLE&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;There are several new options for the &amp;lt;code&amp;gt;ALTER TABLE&amp;lt;/code&amp;gt; statement:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;You can rename the entire table; this is how you assign a table to a different schema.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You can make the table &amp;lt;code&amp;gt;RESOLVABLE&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;NOT RESOLVABLE&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;At the column level you can:&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Change the datatype of a column&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Set whether a collumn is nullable&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Rename a column&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Change the position of a column within the table&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;lt;code&amp;gt;ALTER TABLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_table&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP TABLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP TABLE statement;SQL statements:DROP TABLE;JDataStore tables:deleting&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP TABLE&amp;lt;/code&amp;gt; statement deletes a table and its indexes from a JDataStore database. &amp;lt;code&amp;gt;DROP TABLE&amp;lt;/code&amp;gt; has two new options: &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_java_class&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE JAVA_CLASS&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE JAVA_CLASS statement;SQL statements:CREATE JAVA_CLASS;Java classes:creating;creating:java classes&amp;quot;--&amp;gt; &amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE JAVA_CLASS&amp;lt;/code&amp;gt; statement makes all public static methods of a Java class available to JDataStore SQL as stored procedures or UDFs. For more information, see &amp;lt;code&amp;gt;CREATE JAVA_CLASS&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_java_class&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP JAVA_CLASS&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP JAVA_CLASS statement;SQL statements:DROP JAVA_CLASS;Java classes:dropping;dropping:java classes&amp;quot;--&amp;gt;  &amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP JAVA_CLASS&amp;lt;/code&amp;gt; statement drops a stored class, making it unavailable for use in JDataStore SQL. For more information, see &amp;lt;code&amp;gt;DROP JAVA_CLASS&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;grant_statement&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;GRANT&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;GRANT statement;SQL statements:GRANT;database privileges, granting;privileges:granting;roles:granting privileges to;roles:granting to users&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; statement performs the following actions:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;It grants object privileges&amp;#8212;such as &amp;lt;code&amp;gt;INSERT&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;&amp;#8212;on tables or java methods to &amp;lt;code&amp;gt;PUBLIC&amp;lt;/code&amp;gt;, users, or roles.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It grants database privileges&amp;#8212;such as &amp;lt;code&amp;gt;STARTUP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RENAME&amp;lt;/code&amp;gt;&amp;#8212;to users or roles.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It grants roles to users or roles.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;For more information, see &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;revoke_statement&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;REVOKE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;REVOKE statement;SQL statements:REVOKE;database privileges, revoking;roles:revoking privileges&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;REVOKE&amp;lt;/code&amp;gt; statement performs a number of actions:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;It revokes object privileges&amp;#8212;such as &amp;lt;code&amp;gt;INSERT&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;&amp;#8212;on tables or java methods from &amp;lt;code&amp;gt;PUBLIC&amp;lt;/code&amp;gt;, users, or roles. It has &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt;,options.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It revokes database privileges&amp;#8212;such as &amp;lt;code&amp;gt;STARTUP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RENAME&amp;lt;/code&amp;gt;&amp;#8212;from users or roles.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It revokes roles from users or roles.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It revokes the &amp;lt;code&amp;gt;ADMIN&amp;lt;/code&amp;gt; option from a role without revoking the role itself.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It revokes the &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; option from a privilege without revoking the privilege itself.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;lt;code&amp;gt;REVOKE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_user&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE USER statement;SQL statements:CREATE USER;users:adding with CREATE USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE USER&amp;lt;/code&amp;gt; statement adds the named user and associated password to the database. The password is case sensitive, the user name is not. For more information, see &amp;lt;code&amp;gt;CREATE USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;alter_user&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;ALTER USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;ALTER USER statement;SQL statements:ALTER USER;users:editing with ALTER USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;ALTER USER&amp;lt;/code&amp;gt; statement sets a new password for an existing user.  For more information, see &amp;lt;code&amp;gt;ALTER USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_user&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP USER statement;SQL statements:DROP USER;users:removing with DROP USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP USER&amp;lt;/code&amp;gt; statement drops a user and all objects that the user owns. It has &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; options. For more information, see &amp;lt;code&amp;gt;DROP USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;set_transaction&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;SET TRANSACTION&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;SET TRANSACTION statement;SQL statements:SET TRANSACTION;transactions: setting; transaction isolation levels, overview;isolation levels:setting&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;SET TRANSACTION&amp;lt;/code&amp;gt; statement sets the properties for the following transaction. You can use it to specify the isolation level and whether the transaction is read-write or read-only. For more information, see &amp;lt;code&amp;gt;SET TRANSACTION&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. See &amp;lt;a href=&amp;quot;architecture.html#tx_management&amp;quot;&amp;gt;&amp;quot;Transaction management&amp;quot;&amp;lt;/a&amp;gt; in the &amp;quot;System Architecture&amp;quot; chapter for further discussion of JDataStore transaction management.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;tinyint&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New data type: TINYINT&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;JDataStore SQL now provides a one-byte integer data type, &amp;lt;code&amp;gt;TINYINT&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;BYTE&amp;lt;/code&amp;gt;). For more information, see &amp;quot;Datatypes&amp;quot; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;escape_functions&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;JDBC escape functions&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;JDBC escape functions;SQL functions:JDBC escape functions;functions:JDBC escape functions&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;JDataStore now provides a greatly expanded list of JDBC escape functions. For a complete list, see &amp;quot;JDBC escape functions&amp;quot; the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;isql&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;ISQL&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;JDataStore's new ISQL can be run in the SQL tab of the Server Console. These commands can also be issued from any system command console.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For a discussion of JDataStore new ISQL and a list of commands, see &amp;lt;code&amp;gt;ISQL&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;notes&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Product notes&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;choose&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Choosing between JdsExplorer and the Server Console&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The Server Console is a graphical interface that is new in JDataStore 7. In it, you can perform some of the tasks that you previously performed in JdsExplorer. In addition, Server Console provides access to many new features.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;From Server Console you can:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Create and edit datasources, connect to local or remote databases, and view and manage connections. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;View and manage database properties, and view database status logs, view table and row locks. and verify databases. You cannot create databases in Server Console.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Create and manage mirrors for incremental backup, auto failover, and load balancing.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Use the ISQL tab to execute all SQL and ISQL commands. There is a list of ISQL commands at the end of the SQL Reference chapter in the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. JdsExplorer off an environment for executing SQL commands, but you cannot execute ISQL commands there.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;You need JdsExplorer if you want to:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Perform user administration&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Manage license keys&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Work with and view table structure and content, including indexes.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Import tables from other databases and import text and images into a database&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Upgrade, downgrade, copy, encrypt/decrypt or pack a database. Database verification can be performed from either JdsExplorer or Server Console.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;Most of the tasks listed for JdsExplorer can be performed in the Server Console using the ISQL window.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;change_copy&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;A change to the &amp;quot;Copy JDataStore&amp;quot; menu item&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;JdsExplorer has a Copy JDataStore item on the Tools menu. Its function is different in JDataStore 7 then in earlier versions of the product. In previous versions of JDataStore, choosing Tools|Copy JDataStore brought up the Copy Streams dialog box, and made you select exactly which streams to copy. Now this menu item brings up a dialog in which you copy an entire database file.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;There is a new item on the JDataStore Tools menu: Copy Into Existing JDataStore. This item permits you to copy into an existing, empty JDataStore, which allows you to downgrade or encrypt databases.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;To copy individual tables between databases, use the Tools|Import chose in JdsExplorer.&amp;lt;/p&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;new_doc&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New and updated documentation&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;new_chaps&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New chapters&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;There are two new chapters in the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. &amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;The &amp;quot;What's New&amp;quot; chapter lists the new features and provides links into those topics in the book.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The &amp;quot;JDataStore Server Console&amp;quot; chapter provides details about the new Server Console interface and the things you can do with it.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;exapnd_sql&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Expanded SQL Reference&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The JDataStore implementation of the SQL language has been greatly enriched, and the SQL Reference chapter in the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; has been expanded and reorganized.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;escape&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;JDBC escape syntax&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;JDBC escape sequences;JDataStore tables:string functions;JDataStore tables:JDBC escape sequences;literals in JDBC escape sequences&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The JDBC escape syntax was not previously documented. It is now in the &amp;quot;JDBC escape syntax&amp;quot; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;jdbc_resultset&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Stored procedures and JDBC ResultSets&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;JDBC result set;result set, JDBC;returning a JDBC result set&amp;quot;--&amp;gt;&amp;lt;!--BNDX=&amp;quot;JDBC DataSets;DataSets, returning&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;A Java stored procedure can produce a &amp;lt;code&amp;gt;ResultSet&amp;lt;/code&amp;gt; on the client by returning either a &amp;lt;code&amp;gt;ResultSet&amp;lt;/code&amp;gt; or a DataExpress &amp;lt;code&amp;gt;DataSet&amp;lt;/code&amp;gt; from the Java implementation of the stored procedure. The &amp;lt;code&amp;gt;DataSet&amp;lt;/code&amp;gt; is automatically converted to a &amp;lt;code&amp;gt;ResultSet&amp;lt;/code&amp;gt; for the user of the stored procedure.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Documentation on the feature has been expanded in JDataStore 7. For more information, see &amp;quot;Stored procedures and JDBC ResultSets&amp;quot; in the &amp;quot;Stored Procedures and UDFs&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;start&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Getting started with JDataStore 7&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;migration&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Migrating older databases to JDataStore 7&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The big issue in migrating older databases to JDataStore 7 is that JdataStore 7 has the concept of schemas, and older databases do not. In JDataStore 7, every table belongs to a schema: the schema name is part of the table name. In general, when a user creates an object such as a table or a view, that object belongs to the user's own schema. There are a number of issues regarding the use of schemas. It will be helpful to you to read &amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; to understand how JDataStore 7 uses schemas before proceeding with migration.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For additional detail on migrating older JDataStore databases to JDataStore 7, see &amp;quot;Migrating older databases to JDataStore 7&amp;quot; in the &amp;quot;JDBC Quickstart&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;jb_bes&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;strong&amp;gt;Using JDataStore 7 with JBuilder and the Borland Enterprise Server&amp;lt;/strong&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;To make the latest version of JDataStore available to JBuilder and the Borland Enterprise Server (BES), you need to copy certain files form the JDataStore &amp;lt;em&amp;gt;lib&amp;lt;/em&amp;gt; directory to the &amp;lt;em&amp;gt;lib&amp;lt;/em&amp;gt; directory of the target product. The files are: &amp;lt;em&amp;gt;beandt.jar&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;dbtools.jar&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;dx.jar&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;jds.jar&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;jdsremote.jar&amp;lt;/em&amp;gt;, and &amp;lt;em&amp;gt;jdsserver.jar&amp;lt;/em&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;quot;Using JDataStore with JBuilder and the Borland Enterprise server&amp;quot; in the &amp;quot;JDBC Quickstart&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Field test note: For the field test, copying these files may cause some menu problems in JBuilder. These problems go away when you remove the copied files. This defect will be fixed for the final release.&amp;lt;/p&amp;gt;&amp;lt;h2&amp;gt;Change listing for each point release.&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_706&amp;quot;&amp;gt;Bugs Fixed in 7.06&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Mac installer has been replaced with an installer for intel Mac platform. PowerPC mac's are no longer supported.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Certain prepared queries with aggregators resulted in bad data.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Certain prepared queries with an IN operator resulted in a sporadic NullPointer exception. Safeguards have been added.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;If a range is specified in the WHERE clause for an autoincrement column, the wrong rows might be returned. This is also true for certain primary key columns that implicitly are converted into auto increment columns.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;JDataStore 7.006 has been certified for Microsoft Vista.  We recommend that the developer edition of JDataStore be installed outside of the &amp;#8220;Program Files&amp;#8221; directory.  The JDataStore .exe launchers depend on config files that are located in the same directory as the launcher.exe.  If the product is installed in the &amp;#8220;Program Files&amp;#8221; directory and Vista UAC is enabled, the changes to the config files will only take affect for the user that makes the modifications.  Note that this is mostly of concern to developers or server side installations that use one of the exe launchers.  These are the exe Launchers installed by the developer edition of JDataStore:  JdsServer*.exe, isql.exe, JdsExplorer*.exe, and ServerConsole*.exe.  Note that there are no issues for installing JDataStore jar files in the &amp;#8220;Program Files&amp;#8221; directory.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Data corruption from sql update statements under high concurrency environments has been fixed.&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;Thread deadlock in JdbcConnectionPool shutdown method that occurs when another thread is also returning a connection to the pool by calling java.sql.Connection.close method has been fixed.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;ArrayIndexOutOfBoundsException that occurs for descending sort operations on String columns&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Prepared statement with grouping criteria may produce incorrect results the second time it is executed when other statements that use the same table are prepared and executed.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Joins with range selection criteria for more than one table on columns with the same ordinal position can encounter value access errors indicating a type mismatch.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;DB_ADMIN.GET_CONNECTIONS() built in stored procedure will now include local connections in addition to remote connections.  This includes connections open with the DataStoreConnection and DataStore components.  Connections with a &amp;quot;USER&amp;quot; column that starts with &amp;quot;sys.&amp;quot; and connections that have a &amp;quot;REMARKS&amp;quot; column value of &amp;quot;Opener&amp;quot; are internal connections that do not keep a database from shutting down.&amp;lt;/li&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_705&amp;quot;&amp;gt;Bugs Fixed in 7.05&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;An UPDATE query which uses an aggregation of a subquery with an outer reference to set a column value could cause a NullPointerException.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;DatabaseMetaData.getIndexInfo() returned wrong information about auto increment columns.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;A combination of a 1-1 query of 2 tables with single integer column primary keys and an IN operator in the WHERE clause could cause an Exception.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Creating a table with a single integer column primary key and a different column as an auto increment column, will cause the auto increment column to not function.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Applications that close connections without closing open statements will incur a memory leak if the statements had executed queries that return ResultSets.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;SQL queries with an &amp;#8220;in clause&amp;#8221; selection criteria that references an indexed column may not return all rows that satisfy the in clause selection criteria.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Table open and close operations can fail if several connections are rapidly opening and closing connections.  This can also cause connection close operations to fail resulting in &amp;quot;lingering&amp;quot; connections in the DataStoreServer.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Statement caching provided by the connection pool does not properly cache or close statements.  Because resources and ResultSets are not closed until these unclosed statements are finalized, this can lead to out of memory conditions and large temporary database file sizes.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;For encrypted databases, the crash recovery system can encrypt modified blocks of the user table.  This is a mistake because the user table is the one table that cannot be encrypted in an encrypted database.  Note that this will only occur if some change is made to the user table since the last time the database was opened.  This problem can prevent the database from being opened or cause the user table to appear corrupt when database verification is performed.  We are working on a repair method for applications that have encountered this problem.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Support for opening encrypted databases that have part or all of the user table encrypted by the defect described above.  If the user table record for the user connecting is encrypted, the database cannot be opened.  In this case there is a new connection property called &amp;quot;priorFileName&amp;quot; that can be used to provide the name of a prior version of the encrypted database that can still be opened.  This can be specified as an extended JDBC property for JDBC connections.  There is also a DataStoreConnection.setPriorFileName as well.  Note that the prior database will only be used to unencrypt the user table that is not supposed to be encrypted in the first place.  If the user logging in does not have startup rights in both the prior and current database, the prior database will not be used for the open operation.  Once the database affected by this defect has been opened, it should be copied or packed into a new database file.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_704&amp;quot;&amp;gt;Bugs Fixed in 7.04&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;When &amp;quot;Tools | Encrypt JDataStore&amp;quot; or &amp;quot;Tools | Copy JDataStore&amp;quot; is selected from JdsExplorer, the resulting database has multiple entries for the SYSDBA user. This problem has been fixed.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;When combining an &amp;quot;order by&amp;quot; and an &amp;quot;in&amp;quot; and a sub select on a large set of records, it may result in an incorrect record count.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_703&amp;quot;&amp;gt;Bugs Fixed in 7.03&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;h4&amp;gt;Support for Hibernate&amp;lt;/h4&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Hibernate's automated test suites completed.  Hibernate dialect class provided in samples directory.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;h4&amp;gt;General defect corrections and improvements&amp;lt;/h4&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;ADMINISTRATOR is now a non reserved keyword in SQL. (It used to be a reserved keyword.)&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Corrected defect in remote driver where retrieving longer string or blob values sometimes caused the driver to hang. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Database check point events are now logged in the *STATUS * log files. These messages provide &amp;quot;remarks&amp;quot; on what is keeping a log file from being dropped. This can be useful when trying to diagnose why log files are not being automatically dropped. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New ExtendedProperties.REMARKS property.  This can be set to an informative string.  This is displayed in many of the contexts in which user name is displayed.  Many applications use the same user for many connections.  The remarks property makes it easier to distinguish connections that use the same user name.  Remarks is displayed for lock error reporting, DB_ADMIN.GET_CONNECTIONS() builtin stored procedure and the connections node of the ServerConsole. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;h4&amp;gt;SMP support&amp;lt;/h4&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Completion of all automated stress tests on dual processor Windows XP and Redhat Enterprise Linux 3. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;h4&amp;gt;High availability corrected defects and improvements&amp;lt;/h4&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;General stability improvements. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Improved performance for mirror synchronization. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Eliminated problems where log files would never drop for databases with mirrors in certain situations. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Mirrors with the INSTANT_SYNCH or AUTO_FAIL_OVER property set will automatically have a mirror schedule item added to the SYS.MIRROR_SCHEDULE table.  This mirror schedule item is added when the mirror is created or when the INSTANT_SYNCH or AUTO_FAIL_OVER property is altered for a mirror that does not already have a mirror schedule item. This default mirror schedule item will synchronize the mirror every 10 seconds. This mirror schedule item can be dropped or altered after the mirror is created if so desired.  However, it is probably best to keep a mirror schedule item for each mirror so that the read only mirror database is kept up to date with the primary mirror. When INSTANT_SYNCH or the AUTO_FAIL_OVER property is set for a read only mirror its log records are constantly kept in synch with the primary mirror. However, these log records are not replayed against the read only mirror database until a synch operation is performed. The mirror schedule item will synch the mirror on a regular basis keeping the state of the read only mirror database very close or equal to the state of the primary mirror.  Two key benefits of having the readonly mirror databases up to date with the primary mirror are:  1) Fail over (manual or automatic) is much faster because little or no log records need to be replayed before the fail over operation.  2) Readonly mirror databases will reflect a more recent state of the database.  This will be important for applications that off load readonly queries from the primary mirror to readonly mirrors. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;ISQL show ddl command now outputs the sql call statements to recreate any mirrors configured for the database. This is useful to see how mirrors are can be created from executing a sql script. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The last known replay column for the mirrors table and mirror status table in the ServerConsole now displays these values in hex. The high 32 bits are the log file and the low 32 bits are the offset into the log files. These values determine when log files can be automatically dropped. For example a primary mirror cannot drop a log if a read only mirror has not replayed the contents of that log file. So if the last known replay for a read only mirror as a low log file for its last replay column, this will keep this log file and all log files greater than this log file from being dropped. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_702&amp;quot;&amp;gt;Bugs Fixed in 7.02&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;There have been many significant improvements in High availability Mirrors as well as Read-Only Transactions. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Mirroring support now drops unneeded log files when it should. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cannot use export or show ddl command when a database has multiple schemas because there are no schema creation statements emitted.  Insert statements for export also need to prefix table names with schema name. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;DatabaseMetadata now show a foreign keys for other schemas when logging in as SYSDBA. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;ADMIN is still a keyword, but not a reserved one. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;When two separate threads are allocating a new log file at the same time, the potential for a deadlock  no longer occurs. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;SHOW DDL did not generate &amp;quot;CREATE SCHEMA&amp;quot; statements.  This is needed if the output is to be executed against another database. &amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;Foreign keys are now reported in show ddl for non-default schema when logged in as sysdba (administrator). &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Show ddl command now works for a table with an autoincrement column. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;An exception is reported when there are two tables with foreign keys that reference each other, and both tables are being updated by separate transactions a lock timeout error can occur. This has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Wrong result from running join query has been fixed. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_701&amp;quot;&amp;gt;Bugs Fixed in 7.01&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Modify output of date and time to include at least 2 digits for day, month, minute, second, hours. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Remote JDBC driver improved server exception handling. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;A prepared query with a parameterized LIKE operator in the where clause e.g. &amp;quot;SELECT * FROM PERSON WHERE LASTNAME LIKE ?&amp;quot;was mistakenly executed with the parameter given first time the query was executed; thus subsequent executions would receive wrong results. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;A SQL query which uses an auto-increment field for a lookup or join may in certain circumstances yield the wrong result. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Tables with a column named INTERNALROW, could not be exported using ISQL. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The data presented in the ServerConsole and the SQL tab in JdsExplorer for a query like: &amp;quot;SELECT * FROM MY_VIEW&amp;quot; could not be edited even if the view was updateable. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;TxException LOCK_TIMEOUT errors fixed for situations where table lock escalation is triggered to max row locks exceeded. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Problem when value from source cursor had a maxInline setting that was larger than the destination cursor.  Cursor now can convert inline into blob if necessary. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Drop column no longer fails to have any affect if another connection has a prepared statement that references the same table. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The command SHOW TABLE in ISQL required an explicit schema name. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cannot drop primary mirror. Problem is now fixed. &amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;ResultSetMetaData now returns the correct column count when an updateable ResultSet is used. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Column from Primary keys were sometimes reported to be nullable through DatabaseMetadata.getColumns().This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;If 2 timestamp values are given as 2 literals the first value is stored for both values. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The Date and Timestamp literal JDBC escape formats were incorrectly documented. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;</description>
      <link>http://cc.embarcadero.com/Item/25370</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=25370" type="application/zip" length="43252236" />
      <pubDate>2008-05-13T22:20:45</pubDate>
      <dc:date>2008-05-13T22:20:45</dc:date>
      <guid>http://cc.embarcadero.com/Item/25370</guid>
    </item>
    <item>
      <title>JDataStore 7.06 for Windows</title>
      <description>&amp;lt;h1 align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;a name=&amp;quot;_top_&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;JDataStore 7.06 (build 7.006.039) for Windows&amp;lt;br&amp;gt;Release Notes&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;These Release Notes provide a brief description of each new feature in JDataStore&amp;#160;7.The &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; includes a &amp;quot;What's New&amp;quot; chapter that provideslinks to the documentation for each new feature within the Developer's Guide.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Bug fix list&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.06 click &amp;lt;a href=&amp;quot;#fixed_706&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.05 click &amp;lt;a href=&amp;quot;#fixed_705&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.04 click &amp;lt;a href=&amp;quot;#fixed_704&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.03 click &amp;lt;a href=&amp;quot;#fixed_703&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.02 click &amp;lt;a href=&amp;quot;#fixed_702&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.01 click &amp;lt;a href=&amp;quot;#fixed_701&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;New Features&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#failsafe&amp;quot;&amp;gt;The JDataStore High Availability Server: incremental backup, automatic failover&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The new &amp;lt;a href=&amp;quot;#console&amp;quot;&amp;gt;Server Console&amp;lt;/a&amp;gt; graphical interface&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;New SQL functions&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#bit_length&amp;quot;&amp;gt;&amp;lt;code&amp;gt;BIT_LENGTH&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#case_function&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#coalesce&amp;quot;&amp;gt;&amp;lt;code&amp;gt;COALESCE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#current_role&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CURRENT_ROLE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#current_user&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CURRENT_USER&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#db_admin&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#DB_UTIL&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DB_UTIL&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#nullif&amp;quot;&amp;gt;&amp;lt;code&amp;gt;NULLIF&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#octet_length&amp;quot;&amp;gt;&amp;lt;code&amp;gt;OCTET_LENGTH&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#user_function&amp;quot;&amp;gt;&amp;lt;code&amp;gt;USER&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;New and updated SQL statements&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#create_schema&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#drop_schema&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DROP SCHEMA&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#create_view&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CREATE VIEW&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#alter_view&amp;quot;&amp;gt;&amp;lt;code&amp;gt;ALTER&amp;#160;VIEW&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#drop_view&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DROP&amp;#160;VIEW&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#create_role&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CREATE ROLE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#set_role&amp;quot;&amp;gt;&amp;lt;code&amp;gt;SET&amp;#160;ROLE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#drop_role&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DROP&amp;#160;ROLE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#create_table&amp;quot;&amp;gt;CREATE TABLE&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; options&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#alter_table&amp;quot;&amp;gt;ALTER TABLE&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; options&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#drop_table&amp;quot;&amp;gt;DROP TABLE&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; options: &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#create_java_class&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CREATE JAVA_CLASS&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#drop_java_class&amp;quot;&amp;gt;DROP JAVA_CLASS&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Security management&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#grant_statement&amp;quot;&amp;gt;GRANT&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#revoke_statement&amp;quot;&amp;gt;REVOKE&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#create_user&amp;quot;&amp;gt;CREATE USER&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#alter_user&amp;quot;&amp;gt;ALTER USER&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#drop_user&amp;quot;&amp;gt;DROP&amp;#160;USER&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Transaction management&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#set_transaction&amp;quot;&amp;gt;SET TRANSACTION&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Other new SQL&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#keywords&amp;quot;&amp;gt;New keywords&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New data type: &amp;lt;a href=&amp;quot;#tinyint&amp;quot;&amp;gt;&amp;lt;code&amp;gt;TINYINT&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Many new &amp;lt;a href=&amp;quot;#escape_functions&amp;quot;&amp;gt;JDBC escape functions&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#isql&amp;quot;&amp;gt;ISQL cross-platform SQL command-line utility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Product notes&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#choose&amp;quot;&amp;gt;Choosing between Server Console and JdsExplorer&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#change_copy&amp;quot;&amp;gt;A change to the &amp;quot;Copy JDataStore&amp;quot; menu item&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;New and updated documentation&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#new_chaps&amp;quot;&amp;gt;New chapters&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#escape&amp;quot;&amp;gt;Escape syntax for calling stored procedures&amp;lt;/a&amp;gt; is now documented.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Updated documentation on &amp;lt;a href=&amp;quot;#jdbc_resultset&amp;quot;&amp;gt;returning JDBC ResultSets&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Getting started with JDataStore&amp;#160;7&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#migration&amp;quot;&amp;gt;Migrating older databases to JDataStore 7&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#jb_bes&amp;quot;&amp;gt;Using JDataStore 7 with JBuilder and the Borland Enterprise server&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;!-- &amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;#bugs&amp;quot;&amp;gt;Defects fixed in JDataStore&amp;#160;7&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt; --&amp;gt;&amp;lt;!-- &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;features&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New features&amp;lt;/h2&amp;gt; --&amp;gt;&amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;features&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New features&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;failsafe&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;The JDataStore High Availability Server&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;JDataStore&amp;#160;7 provides tools for creating automatic or manual incremental backups and for creating automatic failover to a mirror of the original database in case of failure. In addition, there are tools for viewing and managing connections on a remote server, for managing datasources and connections graphically or with the new ISQL feature, for viewing database status logs and transactions logs, for viewing logs, and for verifying databases.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;The &amp;quot;High Availability Server&amp;quot; topic in the &amp;quot;Architecture&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; discusses the architecture of JDataStore's new failsafe server and its associated mirroring functionality. This section is well worth reading, because it will help you make the most of this new offerings. &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For a description of how to use JDataStore's new Server Console to access this new functionality, see the new &amp;quot;JDataStore Server Console&amp;quot; chapter in the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. &amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;console&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;The new Server Console graphical interface&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;There is a whole new graphical interface in JDataStore&amp;#160;7. The Server Console performs many server administration tasks, including several that are new in JDataStore&amp;#160;7, such as automatic failover and incremental backup.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Here is an overview of what you can do with the Server Console. The items in the following list are topics in the &amp;quot;JDataStore Server Console&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; for details.&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Overview&amp;lt;/strong&amp;gt; Get a quick overview of what you can do with Server Console&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;About datasources&amp;lt;/strong&amp;gt; If you're not familiar with how JDataStore uses dataasources to connect to databases, this is the place to find out.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;What you see and what you get&amp;lt;/strong&amp;gt; Get familiar with the new Server Console interface.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Starting/shutting down the server&amp;lt;/strong&amp;gt; You can use Server Console to start and stop the local server.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Connection settings&amp;lt;/strong&amp;gt; A detailed description of how to create, modify, and delete datasources, and how to connect to and disconnect from them.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Creating and managing  datasources&amp;lt;/strong&amp;gt; Create, rename, and modify datasources, connect to them, and disconnect from them.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Verifying a database&amp;lt;/strong&amp;gt; Server Console makes it easier than ever.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Managing connections&amp;lt;/strong&amp;gt; View and optionaly terminate both local and remote datasources.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Managing database properties&amp;lt;/strong&amp;gt; See an editable grid of database properties for both local and remote connections.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Viewing table and row locks&amp;lt;/strong&amp;gt; Server Console makes it easy to see what's happening with locks on both the local and remote server.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Viewing the database status log file&amp;lt;/strong&amp;gt; You exactly what's been going on with a server by viewing its server status file.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Failover&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;incremental backup&amp;lt;/strong&amp;gt; Use mirrors to protect against failures and to incrementally backup your data on a schedule of your choosing. Using Server Console, you can add &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Interactive SQL&amp;lt;/strong&amp;gt; A special SQL pane lets you run SQL or SQL scripts against connected datasources.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;What happened to the old JdsServer graphical interface?&amp;lt;/strong&amp;gt; It's still there, but it has been replaced by the new Server Console. You can still start the JDataStore server as an application by running the &amp;lt;code&amp;gt;JdsServer&amp;lt;/code&amp;gt; executable. However, it is now set to run without the GUI.  If you really need that deprecated interface back, you can invoke the GUI by executing the following command:&amp;lt;/p&amp;gt;&amp;lt;table class=&amp;quot;pre&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;jdsserver -ui [windows|motif|metal|none][other parameters]&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;p&amp;gt;Choose the interface that is appropriate for your platform. For more about starting the JDataStore server, see &amp;quot;Launching JdsServer&amp;quot; in the &amp;quot;JDataStore Administration&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;keywords&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New keywords&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The asterisk following a keyword indicates that the keyword is &amp;lt;em&amp;gt;reserved&amp;lt;/em&amp;gt;. Reserved keywords can be used as SQL identifiers only if they are enclosed in double quotation marks. When quoted in this fashion, they are case sensitive. The words that have no asterisk are &amp;lt;em&amp;gt;nonreserved&amp;lt;/em&amp;gt; keywords. They can be used with or without double quotes and are case insensitive when note in quotes.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For a complete list of keywords, see &amp;lt;strong&amp;gt;Keywords&amp;lt;/strong&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;ADMIN*&amp;lt;br&amp;gt;ADMINISTRATOR*&amp;lt;br&amp;gt;AUTHORIZATION*&amp;lt;br&amp;gt;BIT_LENGTH*&amp;lt;br&amp;gt;COALESCE*&amp;lt;br&amp;gt;CURRENT_ROLE*&amp;lt;br&amp;gt;CURRENT_USER*&amp;lt;br&amp;gt;EXECUTE*&amp;lt;br&amp;gt;GRANT*&amp;lt;br&amp;gt;ISOLATION*&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;LEVEL*&amp;lt;br&amp;gt;NONE*&amp;lt;br&amp;gt;NULLIF*&amp;lt;br&amp;gt;OCTET_LENGTH*&amp;lt;br&amp;gt;ONLY*&amp;lt;br&amp;gt;OPTION*&amp;lt;br&amp;gt;PRIVILEGES*&amp;lt;br&amp;gt;PUBLIC*&amp;lt;br&amp;gt;READ&amp;lt;br&amp;gt;RENAME*&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;RESOLVABLE*&amp;lt;br&amp;gt;REVOKE*&amp;lt;br&amp;gt;ROLE&amp;lt;br&amp;gt;SCHEMA*&amp;lt;br&amp;gt;STARTUP*&amp;lt;br&amp;gt;TO*&amp;lt;br&amp;gt;TRANSACTION*&amp;lt;br&amp;gt;VIEW*&amp;lt;br&amp;gt;WITH*&amp;lt;br&amp;gt;WRITE&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;new_funcs&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New SQL functions&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;bit_length&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;BIT_LENGTH&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;BIT_LENGTH&amp;lt;/code&amp;gt; function gives the length in bits of a &amp;lt;code&amp;gt;STRING&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INPUTSTREAM&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;OBJECT&amp;lt;/code&amp;gt; value. For more information, see &amp;lt;code&amp;gt;BIT_LENGTH&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;case_function&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CASE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CASE function;SQL functions:CASE&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt; function returns a conditional value. For more information, see &amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;coalesce&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;COALESCE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;COALESCE function;SQL functions:COALESCE;non-NULL values, returning&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;COALESCE&amp;lt;/code&amp;gt; function returns the first non-NULL value from the expression list. For more information, see &amp;lt;code&amp;gt;COALESCE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;current_role&amp;quot;&amp;gt;CURRENT_ROLE&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CURRENT_ROLE function;SQL functions:CURRENT_ROLE;roles&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CURRENT_ROLE&amp;lt;/code&amp;gt; function returns the current role, or NULL if no role has been set using the &amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt; statement. For more information, see &amp;lt;code&amp;gt;CURRENT_ROLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. &amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;current_user&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CURRENT_USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CURRENT_USER function;SQL functions:CURRENT_USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CURRENT_USER&amp;lt;/code&amp;gt; function returns the name of the current user. For more information, see &amp;lt;code&amp;gt;CURRENT_USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;db_admin&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DB_ADMIN: administration functions&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DB_ADMIN function;SQL functions:DB_ADMIN&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; is a new JDataStore Java class whose methods are implemented in SQL as built-in stored procedures. Use &amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; for various database administration tasks such as automatic failover, incremental backup, creating and managing datasources, viewing and managing connections, verifying tables, and displaying database privileges and properties, locks, status logs, procedure privileges, and roles granted.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; provides a brief description of each method, implemented as a SQL function. The description of each method includes a link to the exact implementation and &amp;lt;a href=&amp;quot;../apiref/com/borland/datastore/driver/DB_ADMIN.html#method_summary&amp;quot;&amp;gt;&amp;lt;code&amp;gt;com.borland.datastore.driver.DB_ADMIN.html&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt; in the API reference. (The preceding link works when this document is in the &amp;lt;code&amp;gt;&amp;lt;em&amp;gt;JDataStore_home&amp;lt;/em&amp;gt;\doc&amp;lt;/code&amp;gt; directory.) &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;You can call these methods from SQL using the &amp;lt;code&amp;gt;CALL&amp;lt;/code&amp;gt; statement. They can be called without creating a &amp;lt;code&amp;gt;JAVA_METHOD&amp;lt;/code&amp;gt; alias because JDataStore SQL recognizes the methods in &amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; as built-in java methods.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; provides the following methods:&amp;lt;/p&amp;gt;&amp;lt;table border=&amp;quot;0&amp;quot; cols=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;code&amp;gt;ALTER_DATABASE&amp;lt;br&amp;gt;ALTER_MIRROR&amp;lt;br&amp;gt;ALTER_MIRROR_SCHEDULE&amp;lt;br&amp;gt;CLOSE_CONNECTION&amp;lt;br&amp;gt;CREATE_MIRROR&amp;lt;br&amp;gt;CREATE_MIRROR_SCHEDULE&amp;lt;br&amp;gt;DROP_MIRROR&amp;lt;br&amp;gt;DROP_MIRROR_SCHEDULE&amp;lt;br&amp;gt;GET_CONNECTIONS&amp;lt;br&amp;gt;GET_DATABASE_PRIVILEGES&amp;lt;br&amp;gt;GET_DATABASE_PROPS&amp;lt;br&amp;gt;GET_DATABASE_STATUS_LOG_FILTER&amp;lt;br&amp;gt;GET_LOCKS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;code&amp;gt;GET_MIRRORS&amp;lt;br&amp;gt;GET_NEWEST_STATUS_LOG_ID&amp;lt;br&amp;gt;GET_OLDEST_STATUS_LOG_ID&amp;lt;br&amp;gt;GET_PROCEDURE_PRIVILEGES&amp;lt;br&amp;gt;GET_ROLE_GRANTS&amp;lt;br&amp;gt;GET_STATUS_LOG_FILTER&amp;lt;br&amp;gt;GET_STATUS_LOG&amp;lt;br&amp;gt;GET_THIS_MIRROR&amp;lt;br&amp;gt;SET_DATABASE_STATUS_LOG_FILTER&amp;lt;br&amp;gt;SET_PRIMARY_MIRROR&amp;lt;br&amp;gt;SET_STATUS_LOG_FILTER&amp;lt;br&amp;gt;SYNCH_MIRROR&amp;lt;br&amp;gt;VERIFY&amp;lt;/code&amp;gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt; &amp;lt;br&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;DB_UTIL&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DB_UTIL: numeric, string, and date/time functions&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DB_UTIL functions;SQL functions:DB_UTIL;math functions;string functions;date/time functions;utilities:DB_UTIL&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_UTIL&amp;lt;/code&amp;gt; is a new JDataStore Java class whose methods  are implemented in SQL as built-in stored procedures. They are a collection of SQL utility functions that perform numeric, string and date/time operations on data stored in database tables. &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_UTIL&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; provides a brief description of each method. The description of each method includes a link to the exact implementation in &amp;lt;a href=&amp;quot;../apiref/com/borland/datastore/driver/DB_ADMIN.html#method_summary&amp;quot;&amp;gt;&amp;lt;code&amp;gt;com.borland.datastore.driver.DB_ADMIN.html&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt; in the API reference. (The preceding link works when this document is in the &amp;lt;code&amp;gt;&amp;lt;em&amp;gt;JDataStore_home&amp;lt;/em&amp;gt;\doc&amp;lt;/code&amp;gt; directory.) &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;You can call these methods from SQL using the &amp;lt;code&amp;gt;CALL&amp;lt;/code&amp;gt; statement. They can be called without creating a &amp;lt;code&amp;gt;JAVA_METHOD&amp;lt;/code&amp;gt; alias because JDataStore SQL recognizes the methods in &amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; as built-in java methods.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_UTIL&amp;lt;/code&amp;gt; provides the following methods&amp;lt;/p&amp;gt;&amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;code&amp;gt;&amp;lt;br&amp;gt;ACOS&amp;lt;br&amp;gt;ASIN&amp;lt;br&amp;gt;ATAN&amp;lt;br&amp;gt;ATAN2&amp;lt;br&amp;gt;CEILING&amp;lt;br&amp;gt;COS&amp;lt;br&amp;gt;COT&amp;lt;br&amp;gt;DEGREES&amp;lt;br&amp;gt;EXP&amp;lt;br&amp;gt;FLOOR&amp;lt;br&amp;gt;LOG&amp;lt;br&amp;gt;LOG10&amp;lt;br&amp;gt;MOD&amp;lt;br&amp;gt;PI&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;POWER&amp;lt;br&amp;gt;RADIANS&amp;lt;br&amp;gt;RAND&amp;lt;br&amp;gt;ROUND&amp;lt;br&amp;gt;SIGN&amp;lt;br&amp;gt;SIN&amp;lt;br&amp;gt;SQRT&amp;lt;br&amp;gt;TAN&amp;lt;br&amp;gt;TRUNCATE&amp;lt;br&amp;gt;ASCII&amp;lt;br&amp;gt;TO_CHAR&amp;lt;br&amp;gt;DIFFERENCE&amp;lt;br&amp;gt;INSERT_STRING&amp;lt;br&amp;gt;LEFT_STRING&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;code&amp;gt;&amp;lt;br&amp;gt;REPEAT&amp;lt;br&amp;gt;REPLACE&amp;lt;br&amp;gt;RIGHT&amp;lt;br&amp;gt;SOUNDEX&amp;lt;br&amp;gt;SPACE&amp;lt;br&amp;gt;DAYNAME&amp;lt;br&amp;gt;DAYOFWEEK&amp;lt;br&amp;gt;DAYOFYEAR&amp;lt;br&amp;gt;MONTHNAME&amp;lt;br&amp;gt;QUARTER&amp;lt;br&amp;gt;TIMESTAMPADD&amp;lt;br&amp;gt;TIMESTAMPDIFF&amp;lt;br&amp;gt;WEEK&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt; &amp;lt;br&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;nullif&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;NULLIF&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;NULLIF function;SQL functions:NULLIF;expressions:comparing;comparisons:expressions with NULLIF&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;NULLIF&amp;lt;/code&amp;gt; function compares two expressions. It returns NULL if the expressions are equal. Otherwise, it returns the first expression. It is logically equivalent to the following &amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt; expression: &amp;lt;code&amp;gt;CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;For more information, see &amp;lt;code&amp;gt;NULLIF&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;octet_length&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;OCTET_LENGTH&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;OCTET_LENGTH function;SQL functions:OCTET_LENGTH;length of string, imput stream, or object&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;OCTET_LENGTH&amp;lt;/code&amp;gt; function gives the length in bytes of a &amp;lt;code&amp;gt;STRING&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INPUTSTREAM&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;OBJECT&amp;lt;/code&amp;gt; value. For more information, see &amp;lt;code&amp;gt;OCTET_LENGTH&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;user_function&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;USER function;SQL functions:USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;USER&amp;lt;/code&amp;gt; function returns the name of the current user; this function is the same as &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#current_user&amp;quot;&amp;gt;CURRENT_USER&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;. For more information, see &amp;lt;code&amp;gt;CURRENT_USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;new_sql&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New and updated SQL statements&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_schema&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE SCHEMA&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE SCHEMA statement;schemas:creating;SQL statements:CREATE SCHEMA&amp;quot;--&amp;gt;&amp;lt;!--BNDX=&amp;quot;statements, &amp;lt;em&amp;gt;see&amp;lt;/em&amp;gt; SQL statements&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt; statement creates a name space for tables, views, and methods. You can use &amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt; to create multiple objects in one SQL statement. For a discussion of how schemas work in JDataStore, see &amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DROP SCHEMA&amp;lt;/code&amp;gt;in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_schema&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP SCHEMA&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP SCHEMA statement;schemas:dropping;SQL statements:DROP SCHEMA&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP SCHEMA&amp;lt;/code&amp;gt; statement deletes the specified schema. If the command is used without options, it is the same as specifying the &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt; option: the schema to be dropped must be empty. The command fails if the schema contains any objects. &amp;lt;/p&amp;gt; &amp;lt;p class=&amp;quot;bscan&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;bscan&amp;quot;&amp;gt;Note: &amp;lt;/span&amp;gt;The &amp;lt;code&amp;gt;DROP SCHEMA&amp;lt;/code&amp;gt; command used with the &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; option is extremely powerful and should be used with caution. When this command is issued, it drops the schema and all of its objects and dependencies without any chance to change your mind. There is no undo.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_view&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE VIEW&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE VIEW statement;SQL statements:CREATE VIEW;views:creating&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE VIEW&amp;lt;/code&amp;gt; statement creates a derived table by selecting specified columns from existing tables. Views provide a way of accessing a consistent subcollection of the data stored in one or more tables. When the data in the underlying tables changes, the view reflects this change.&amp;lt;/p&amp;gt;For more information, see &amp;lt;code&amp;gt;CREATE VIEW&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;alter_view&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;ALTER VIEW&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;ALTER VIEW statement;SQL statements:ALTER VIEW;views:altering&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;ALTER VIEW&amp;lt;/code&amp;gt; statement modifies a view without losing dependent views and existing &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt;s. This statement can be used to change the name of a view, the columns that comprise the view, and whether the view has the &amp;lt;code&amp;gt;WITH CHECK OPTION&amp;lt;/code&amp;gt; constraint.  For more information, see &amp;lt;code&amp;gt;ALTER VIEW&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_view&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP VIEW&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP VIEW statement;SQL statements:DROP VIEW;views:dropping&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP VIEW&amp;lt;/code&amp;gt; statement drops the named view. By default, it fails if there are dependencies on the view. The &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; option drops the view and any dependent views. For more information, see &amp;lt;code&amp;gt;DROP VIEW&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_role&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE ROLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE ROLE statement;SQL statements:CREATE ROLE;roles:creating;privileges:roles&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE ROLE&amp;lt;/code&amp;gt; statement creates a named role. To complete this functionality, you must &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; privileges to the role, and &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; the role to one or more users. To make use of the privileges acquired in this fashion, the user issues a &amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt; statement.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;lt;code&amp;gt;CREATE ROLE&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; statement in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;set_role&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;SET ROLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;SET ROLE statement;SQL statements:SET ROLE;roles:activating;privileges:roles&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt; statement makes the named role active. The current user acquires all privileges assigned to that role. For more information, see &amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_role&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP ROLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP ROLE statement;SQL statements:DROP ROLE;roles:dropping&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP ROLE&amp;lt;/code&amp;gt; statement drops the specified role. For more information, see &amp;lt;code&amp;gt;DROP ROLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_table&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE TABLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE TABLE statement;JDataStore tables:creating;foreign keys;SQL statements:CREATE TABLE&amp;quot;--&amp;gt;&amp;lt;!--BNDX=&amp;quot;schemas:creating tables in;JDataStore tables:schemas&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;There are three new options for the &amp;lt;code&amp;gt;CREATE TABLE&amp;lt;/code&amp;gt; statement:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;The table name now incldues a schema name.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You have the option of specifying a position for each column.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You can use the [NOT] RESOLVABLE option to track data changes for DataExpress.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;lt;code&amp;gt;CREATE TABLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;alter_table&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;ALTER TABLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;ALTER TABLE statement;JDataStore tables:modifying;SQL statements:ALTER TABLE&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;There are several new options for the &amp;lt;code&amp;gt;ALTER TABLE&amp;lt;/code&amp;gt; statement:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;You can rename the entire table; this is how you assign a table to a different schema.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You can make the table &amp;lt;code&amp;gt;RESOLVABLE&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;NOT RESOLVABLE&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;At the column level you can:&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Change the datatype of a column&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Set whether a collumn is nullable&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Rename a column&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Change the position of a column within the table&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;lt;code&amp;gt;ALTER TABLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_table&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP TABLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP TABLE statement;SQL statements:DROP TABLE;JDataStore tables:deleting&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP TABLE&amp;lt;/code&amp;gt; statement deletes a table and its indexes from a JDataStore database. &amp;lt;code&amp;gt;DROP TABLE&amp;lt;/code&amp;gt; has two new options: &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_java_class&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE JAVA_CLASS&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE JAVA_CLASS statement;SQL statements:CREATE JAVA_CLASS;Java classes:creating;creating:java classes&amp;quot;--&amp;gt; &amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE JAVA_CLASS&amp;lt;/code&amp;gt; statement makes all public static methods of a Java class available to JDataStore SQL as stored procedures or UDFs. For more information, see &amp;lt;code&amp;gt;CREATE JAVA_CLASS&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_java_class&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP JAVA_CLASS&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP JAVA_CLASS statement;SQL statements:DROP JAVA_CLASS;Java classes:dropping;dropping:java classes&amp;quot;--&amp;gt;  &amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP JAVA_CLASS&amp;lt;/code&amp;gt; statement drops a stored class, making it unavailable for use in JDataStore SQL. For more information, see &amp;lt;code&amp;gt;DROP JAVA_CLASS&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;grant_statement&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;GRANT&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;GRANT statement;SQL statements:GRANT;database privileges, granting;privileges:granting;roles:granting privileges to;roles:granting to users&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; statement performs the following actions:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;It grants object privileges&amp;#8212;such as &amp;lt;code&amp;gt;INSERT&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;&amp;#8212;on tables or java methods to &amp;lt;code&amp;gt;PUBLIC&amp;lt;/code&amp;gt;, users, or roles.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It grants database privileges&amp;#8212;such as &amp;lt;code&amp;gt;STARTUP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RENAME&amp;lt;/code&amp;gt;&amp;#8212;to users or roles.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It grants roles to users or roles.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;For more information, see &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;revoke_statement&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;REVOKE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;REVOKE statement;SQL statements:REVOKE;database privileges, revoking;roles:revoking privileges&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;REVOKE&amp;lt;/code&amp;gt; statement performs a number of actions:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;It revokes object privileges&amp;#8212;such as &amp;lt;code&amp;gt;INSERT&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;&amp;#8212;on tables or java methods from &amp;lt;code&amp;gt;PUBLIC&amp;lt;/code&amp;gt;, users, or roles. It has &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt;,options.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It revokes database privileges&amp;#8212;such as &amp;lt;code&amp;gt;STARTUP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RENAME&amp;lt;/code&amp;gt;&amp;#8212;from users or roles.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It revokes roles from users or roles.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It revokes the &amp;lt;code&amp;gt;ADMIN&amp;lt;/code&amp;gt; option from a role without revoking the role itself.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It revokes the &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; option from a privilege without revoking the privilege itself.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;lt;code&amp;gt;REVOKE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_user&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE USER statement;SQL statements:CREATE USER;users:adding with CREATE USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE USER&amp;lt;/code&amp;gt; statement adds the named user and associated password to the database. The password is case sensitive, the user name is not. For more information, see &amp;lt;code&amp;gt;CREATE USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;alter_user&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;ALTER USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;ALTER USER statement;SQL statements:ALTER USER;users:editing with ALTER USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;ALTER USER&amp;lt;/code&amp;gt; statement sets a new password for an existing user.  For more information, see &amp;lt;code&amp;gt;ALTER USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_user&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP USER statement;SQL statements:DROP USER;users:removing with DROP USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP USER&amp;lt;/code&amp;gt; statement drops a user and all objects that the user owns. It has &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; options. For more information, see &amp;lt;code&amp;gt;DROP USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;set_transaction&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;SET TRANSACTION&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;SET TRANSACTION statement;SQL statements:SET TRANSACTION;transactions: setting; transaction isolation levels, overview;isolation levels:setting&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;SET TRANSACTION&amp;lt;/code&amp;gt; statement sets the properties for the following transaction. You can use it to specify the isolation level and whether the transaction is read-write or read-only. For more information, see &amp;lt;code&amp;gt;SET TRANSACTION&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. See &amp;lt;a href=&amp;quot;architecture.html#tx_management&amp;quot;&amp;gt;&amp;quot;Transaction management&amp;quot;&amp;lt;/a&amp;gt; in the &amp;quot;System Architecture&amp;quot; chapter for further discussion of JDataStore transaction management.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;tinyint&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New data type: TINYINT&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;JDataStore SQL now provides a one-byte integer data type, &amp;lt;code&amp;gt;TINYINT&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;BYTE&amp;lt;/code&amp;gt;). For more information, see &amp;quot;Datatypes&amp;quot; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;escape_functions&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;JDBC escape functions&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;JDBC escape functions;SQL functions:JDBC escape functions;functions:JDBC escape functions&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;JDataStore now provides a greatly expanded list of JDBC escape functions. For a complete list, see &amp;quot;JDBC escape functions&amp;quot; the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;isql&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;ISQL&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;JDataStore's new ISQL can be run in the SQL tab of the Server Console. These commands can also be issued from any system command console.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For a discussion of JDataStore new ISQL and a list of commands, see &amp;lt;code&amp;gt;ISQL&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;notes&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Product notes&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;choose&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Choosing between JdsExplorer and the Server Console&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The Server Console is a graphical interface that is new in JDataStore&amp;#160;7. In it, you can perform some of the tasks that you previously performed in JdsExplorer. In addition, Server Console provides access to many new features.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;From Server Console you can:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Create and edit datasources, connect to local or remote databases, and view and manage connections. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;View and manage database properties, and view database status logs, view table and row locks. and verify databases. You cannot create databases in Server Console.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Create and manage mirrors for incremental backup, auto failover, and load balancing.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Use the ISQL tab to execute all SQL and ISQL commands. There is a list of ISQL commands at the end of the SQL Reference chapter in the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. JdsExplorer off an environment for executing SQL commands, but you cannot execute ISQL commands there.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;You need JdsExplorer if you want to:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Perform user administration&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Manage license keys&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Work with and view table structure and content, including indexes.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Import tables from other databases and import text and images into a database&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Upgrade, downgrade, copy, encrypt/decrypt or pack a database. Database verification can be performed from either JdsExplorer or Server Console.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;Most of the tasks listed for JdsExplorer can be performed in the Server Console using the ISQL window.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;change_copy&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;A change to the &amp;quot;Copy JDataStore&amp;quot; menu item&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;JdsExplorer has a Copy JDataStore item on the Tools menu. Its function is different in JDataStore&amp;#160;7 then in earlier versions of the product. In previous versions of JDataStore, choosing Tools|Copy JDataStore brought up the Copy Streams dialog box, and made you select exactly which streams to copy. Now this menu item brings up a dialog in which you copy an entire database file.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;There is a new item on the JDataStore Tools menu: Copy Into Existing JDataStore. This item permits you to copy into an existing, empty JDataStore, which allows you to downgrade or encrypt databases.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;To copy individual tables between databases, use the Tools|Import chose in JdsExplorer.&amp;lt;/p&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;new_doc&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New and updated documentation&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;new_chaps&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New chapters&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;There are two new chapters in the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. &amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;The &amp;quot;What's New&amp;quot; chapter lists the new features and provides links into those topics in the book.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The &amp;quot;JDataStore Server Console&amp;quot; chapter provides details about the new Server Console interface and the things you can do with it.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;exapnd_sql&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Expanded SQL Reference&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The JDataStore implementation of the SQL language has been greatly enriched, and the SQL Reference chapter in the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; has been expanded and reorganized.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;escape&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;JDBC escape syntax&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;JDBC escape sequences;JDataStore tables:string functions;JDataStore tables:JDBC escape sequences;literals in JDBC escape sequences&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The JDBC escape syntax was not previously documented. It is now in the &amp;quot;JDBC escape syntax&amp;quot; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;jdbc_resultset&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Stored procedures and JDBC ResultSets&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;JDBC result set;result set, JDBC;returning a JDBC result set&amp;quot;--&amp;gt;&amp;lt;!--BNDX=&amp;quot;JDBC DataSets;DataSets, returning&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;A Java stored procedure can produce a &amp;lt;code&amp;gt;ResultSet&amp;lt;/code&amp;gt; on the client by returning either a &amp;lt;code&amp;gt;ResultSet&amp;lt;/code&amp;gt; or a DataExpress &amp;lt;code&amp;gt;DataSet&amp;lt;/code&amp;gt; from the Java implementation of the stored procedure. The &amp;lt;code&amp;gt;DataSet&amp;lt;/code&amp;gt; is automatically converted to a &amp;lt;code&amp;gt;ResultSet&amp;lt;/code&amp;gt; for the user of the stored procedure.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Documentation on the feature has been expanded in JDataStore&amp;#160;7. For more information, see &amp;quot;Stored procedures and JDBC ResultSets&amp;quot; in the &amp;quot;Stored Procedures and UDFs&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;start&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Getting started with JDataStore&amp;#160;7&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;migration&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Migrating older databases to JDataStore&amp;#160;7&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The big issue in migrating older databases to JDataStore 7 is that JdataStore&amp;#160;7 has the concept of schemas, and older databases do not. In JDataStore&amp;#160;7, every table belongs to a schema: the schema name is part of the table name. In general, when a user creates an object such as a table or a view, that object belongs to the user's own schema. There are a number of issues regarding the use of schemas. It will be helpful to you to read &amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; to understand how JDataStore&amp;#160;7 uses schemas before proceeding with migration.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For additional detail on migrating older JDataStore databases to JDataStore&amp;#160;7, see &amp;quot;Migrating older databases to JDataStore 7&amp;quot; in the &amp;quot;JDBC Quickstart&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;jb_bes&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;strong&amp;gt;Using JDataStore&amp;#160;7 with JBuilder and the Borland Enterprise Server&amp;lt;/strong&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;To make the latest version of JDataStore available to JBuilder and the Borland Enterprise Server (BES), you need to copy certain files form the JDataStore &amp;lt;em&amp;gt;lib&amp;lt;/em&amp;gt; directory to the &amp;lt;em&amp;gt;lib&amp;lt;/em&amp;gt; directory of the target product. The files are: &amp;lt;em&amp;gt;beandt.jar&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;dbtools.jar&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;dx.jar&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;jds.jar&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;jdsremote.jar&amp;lt;/em&amp;gt;, and &amp;lt;em&amp;gt;jdsserver.jar&amp;lt;/em&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;quot;Using JDataStore with JBuilder and the Borland Enterprise server&amp;quot; in the &amp;quot;JDBC Quickstart&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Field test note: For the field test, copying these files may cause some menu problems in JBuilder. These problems go away when you remove the copied files. This defect will be fixed for the final release.&amp;lt;/p&amp;gt;&amp;lt;h2&amp;gt;Change listing for each point release.&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_706&amp;quot;&amp;gt;Bugs Fixed in 7.06&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Mac installer has been replaced with an installer for intel Mac platform. PowerPC mac's are no longer supported.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Certain prepared queries with aggregators resulted in bad data.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Certain prepared queries with an IN operator resulted in a sporadic NullPointer exception. Safeguards have been added.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;If a range is specified in the WHERE clause for an autoincrement column, the wrong rows might be returned. This is also true for certain primary key columns that implicitly are converted into auto increment columns.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;JDataStore 7.006 has been certified for Microsoft Vista.  We recommend that the developer edition of JDataStore be installed outside of the &amp;#8220;Program Files&amp;#8221; directory.  The JDataStore .exe launchers depend on config files that are located in the same directory as the launcher.exe.  If the product is installed in the &amp;#8220;Program Files&amp;#8221; directory and Vista UAC is enabled, the changes to the config files will only take affect for the user that makes the modifications.  Note that this is mostly of concern to developers or server side installations that use one of the exe launchers.  These are the exe Launchers installed by the developer edition of JDataStore:  JdsServer*.exe, isql.exe, JdsExplorer*.exe, and ServerConsole*.exe.  Note that there are no issues for installing JDataStore jar files in the &amp;#8220;Program Files&amp;#8221; directory.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Data corruption from sql update statements under high concurrency environments has been fixed.&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;Thread deadlock in JdbcConnectionPool shutdown method that occurs when another thread is also returning a connection to the pool by calling java.sql.Connection.close method has been fixed.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;ArrayIndexOutOfBoundsException that occurs for descending sort operations on String columns&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Prepared statement with grouping criteria may produce incorrect results the second time it is executed when other statements that use the same table are prepared and executed.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Joins with range selection criteria for more than one table on columns with the same ordinal position can encounter value access errors indicating a type mismatch.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;DB_ADMIN.GET_CONNECTIONS() built in stored procedure will now include local connections in addition to remote connections.  This includes connections open with the DataStoreConnection and DataStore components.  Connections with a &amp;quot;USER&amp;quot; column that starts with &amp;quot;sys.&amp;quot; and connections that have a &amp;quot;REMARKS&amp;quot; column value of &amp;quot;Opener&amp;quot; are internal connections that do not keep a database from shutting down.&amp;lt;/li&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_705&amp;quot;&amp;gt;Bugs Fixed in 7.05&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;An UPDATE query which uses an aggregation of a subquery with an outer reference to set a column value could cause a NullPointerException.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;DatabaseMetaData.getIndexInfo() returned wrong information about auto increment columns.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;A combination of a 1-1 query of 2 tables with single integer column primary keys and an IN operator in the WHERE clause could cause an Exception.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Creating a table with a single integer column primary key and a different column as an auto increment column, will cause the auto increment column to not function.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Applications that close connections without closing open statements will incur a memory leak if the statements had executed queries that return ResultSets.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;SQL queries with an &amp;#8220;in clause&amp;#8221; selection criteria that references an indexed column may not return all rows that satisfy the in clause selection criteria.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Table open and close operations can fail if several connections are rapidly opening and closing connections.&amp;#160; This can also cause connection close operations to fail resulting in &amp;quot;lingering&amp;quot; connections in the DataStoreServer.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Statement caching provided by the connection pool does not properly cache or close statements.  Because resources and ResultSets are not closed until these unclosed statements are finalized, this can lead to out of memory conditions and large temporary database file sizes.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;For encrypted databases, the crash recovery system can encrypt modified blocks of the user table.  This is a mistake because the user table is the one table that cannot be encrypted in an encrypted database.  Note that this will only occur if some change is made to the user table since the last time the database was opened.  This problem can prevent the database from being opened or cause the user table to appear corrupt when database verification is performed.  We are working on a repair method for applications that have encountered this problem.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Support for opening encrypted databases that have part or all of the user table encrypted by the defect described above.  If the user table record for the user connecting is encrypted, the database cannot be opened.  In this case there is a new connection property called &amp;quot;priorFileName&amp;quot; that can be used to provide the name of a prior version of the encrypted database that can still be opened.  This can be specified as an extended JDBC property for JDBC connections.  There is also a DataStoreConnection.setPriorFileName as well.  Note that the prior database will only be used to unencrypt the user table that is not supposed to be encrypted in the first place.  If the user logging in does not have startup rights in both the prior and current database, the prior database will not be used for the open operation.  Once the database affected by this defect has been opened, it should be copied or packed into a new database file.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_704&amp;quot;&amp;gt;Bugs Fixed in 7.04&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;When &amp;quot;Tools | Encrypt JDataStore&amp;quot; or &amp;quot;Tools | Copy JDataStore&amp;quot; is selected from JdsExplorer, the resulting database has multiple entries for the SYSDBA user. This problem has been fixed.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;When combining an &amp;quot;order by&amp;quot; and an &amp;quot;in&amp;quot; and a sub select on a large set of records, it may result in an incorrect record count.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_703&amp;quot;&amp;gt;Bugs Fixed in 7.03&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;h4&amp;gt;Support for Hibernate&amp;lt;/h4&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Hibernate's automated test suites completed.  Hibernate dialect class provided in samples directory.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;h4&amp;gt;General defect corrections and improvements&amp;lt;/h4&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;ADMINISTRATOR is now a non reserved keyword in SQL. (It used to be a reserved keyword.)&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Corrected defect in remote driver where retrieving longer string or blob values sometimes caused the driver to hang. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Database check point events are now logged in the *STATUS * log files. These messages provide &amp;quot;remarks&amp;quot; on what is keeping a log file from being dropped. This can be useful when trying to diagnose why log files are not being automatically dropped. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New ExtendedProperties.REMARKS property.  This can be set to an informative string.  This is displayed in many of the contexts in which user name is displayed.  Many applications use the same user for many connections.  The remarks property makes it easier to distinguish connections that use the same user name.  Remarks is displayed for lock error reporting, DB_ADMIN.GET_CONNECTIONS() builtin stored procedure and the connections node of the ServerConsole. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;h4&amp;gt;SMP support&amp;lt;/h4&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Completion of all automated stress tests on dual processor Windows XP and Redhat Enterprise Linux 3. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;h4&amp;gt;High availability corrected defects and improvements&amp;lt;/h4&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;General stability improvements. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Improved performance for mirror synchronization. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Eliminated problems where log files would never drop for databases with mirrors in certain situations. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Mirrors with the INSTANT_SYNCH or AUTO_FAIL_OVER property set will automatically have a mirror schedule item added to the SYS.MIRROR_SCHEDULE table.  This mirror schedule item is added when the mirror is created or when the INSTANT_SYNCH or AUTO_FAIL_OVER property is altered for a mirror that does not already have a mirror schedule item. This default mirror schedule item will synchronize the mirror every 10 seconds. This mirror schedule item can be dropped or altered after the mirror is created if so desired.  However, it is probably best to keep a mirror schedule item for each mirror so that the read only mirror database is kept up to date with the primary mirror. When INSTANT_SYNCH or the AUTO_FAIL_OVER property is set for a read only mirror its log records are constantly kept in synch with the primary mirror. However, these log records are not replayed against the read only mirror database until a synch operation is performed. The mirror schedule item will synch the mirror on a regular basis keeping the state of the read only mirror database very close or equal to the state of the primary mirror.  Two key benefits of having the readonly mirror databases up to date with the primary mirror are:  1) Fail over (manual or automatic) is much faster because little or no log records need to be replayed before the fail over operation.  2) Readonly mirror databases will reflect a more recent state of the database.  This will be important for applications that off load readonly queries from the primary mirror to readonly mirrors. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;ISQL show ddl command now outputs the sql call statements to recreate any mirrors configured for the database. This is useful to see how mirrors are can be created from executing a sql script. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The last known replay column for the mirrors table and mirror status table in the ServerConsole now displays these values in hex. The high 32 bits are the log file and the low 32 bits are the offset into the log files. These values determine when log files can be automatically dropped. For example a primary mirror cannot drop a log if a read only mirror has not replayed the contents of that log file. So if the last known replay for a read only mirror as a low log file for its last replay column, this will keep this log file and all log files greater than this log file from being dropped. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_702&amp;quot;&amp;gt;Bugs Fixed in 7.02&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;There have been many significant improvements in High availability Mirrors as well as Read-Only Transactions. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Mirroring support now drops unneeded log files when it should. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cannot use export or show ddl command when a database has multiple schemas because there are no schema creation statements emitted.  Insert statements for export also need to prefix table names with schema name. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;DatabaseMetadata now show a foreign keys for other schemas when logging in as SYSDBA. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;ADMIN is still a keyword, but not a reserved one. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;When two separate threads are allocating a new log file at the same time, the potential for a deadlock  no longer occurs. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;SHOW DDL did not generate &amp;quot;CREATE SCHEMA&amp;quot; statements.  This is needed if the output is to be executed against another database. &amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;Foreign keys are now reported in show ddl for non-default schema when logged in as sysdba (administrator). &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Show ddl command now works for a table with an autoincrement column. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;An exception is reported when there are two tables with foreign keys that reference each other, and both tables are being updated by separate transactions a lock timeout error can occur. This has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Wrong result from running join query has been fixed. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_701&amp;quot;&amp;gt;Bugs Fixed in 7.01&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Modify output of date and time to include at least 2 digits for day, month, minute, second, hours. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Remote JDBC driver improved server exception handling. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;A prepared query with a parameterized LIKE operator in the where clause e.g. &amp;quot;SELECT * FROM PERSON WHERE LASTNAME LIKE ?&amp;quot;was mistakenly executed with the parameter given first time the query was executed; thus subsequent executions would receive wrong results. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;A SQL query which uses an auto-increment field for a lookup or join may in certain circumstances yield the wrong result. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Tables with a column named INTERNALROW, could not be exported using ISQL. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The data presented in the ServerConsole and the SQL tab in JdsExplorer for a query like: &amp;quot;SELECT * FROM MY_VIEW&amp;quot; could not be edited even if the view was updateable. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;TxException LOCK_TIMEOUT errors fixed for situations where table lock escalation is triggered to max row locks exceeded. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Problem when value from source cursor had a maxInline setting that was larger than the destination cursor.  Cursor now can convert inline into blob if necessary. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Drop column no longer fails to have any affect if another connection has a prepared statement that references the same table. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The command SHOW TABLE in ISQL required an explicit schema name. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cannot drop primary mirror. Problem is now fixed. &amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;ResultSetMetaData now returns the correct column count when an updateable ResultSet is used. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Column from Primary keys were sometimes reported to be nullable through DatabaseMetadata.getColumns().This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;If 2 timestamp values are given as 2 literals the first value is stored for both values. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The Date and Timestamp literal JDBC escape formats were incorrectly documented. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;</description>
      <link>http://cc.embarcadero.com/Item/25369</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=25369" type="application/zip" length="43622979" />
      <pubDate>2008-05-13T22:18:36</pubDate>
      <dc:date>2008-05-13T22:18:36</dc:date>
      <guid>http://cc.embarcadero.com/Item/25369</guid>
    </item>
    <item>
      <title>JDataStore 7.06 for Solaris</title>
      <description>&amp;lt;h1 align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;a name=&amp;quot;_top_&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;JDataStore 7.06 (build 7.006.039) for Solaris&amp;lt;br&amp;gt;Release Notes&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;These Release Notes provide a brief description of each new feature in JDataStore&amp;#160;7.The &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; includes a &amp;quot;What's New&amp;quot; chapter that provideslinks to the documentation for each new feature within the Developer's Guide.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Bug fix list&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.06 click &amp;lt;a href=&amp;quot;#fixed_706&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.05 click &amp;lt;a href=&amp;quot;#fixed_705&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.04 click &amp;lt;a href=&amp;quot;#fixed_704&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.03 click &amp;lt;a href=&amp;quot;#fixed_703&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.02 click &amp;lt;a href=&amp;quot;#fixed_702&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.01 click &amp;lt;a href=&amp;quot;#fixed_701&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;New Features&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#failsafe&amp;quot;&amp;gt;The JDataStore High Availability Server: incremental backup, automatic failover&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The new &amp;lt;a href=&amp;quot;#console&amp;quot;&amp;gt;Server Console&amp;lt;/a&amp;gt; graphical interface&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;New SQL functions&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#bit_length&amp;quot;&amp;gt;&amp;lt;code&amp;gt;BIT_LENGTH&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#case_function&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#coalesce&amp;quot;&amp;gt;&amp;lt;code&amp;gt;COALESCE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#current_role&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CURRENT_ROLE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#current_user&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CURRENT_USER&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#db_admin&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#DB_UTIL&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DB_UTIL&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#nullif&amp;quot;&amp;gt;&amp;lt;code&amp;gt;NULLIF&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#octet_length&amp;quot;&amp;gt;&amp;lt;code&amp;gt;OCTET_LENGTH&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#user_function&amp;quot;&amp;gt;&amp;lt;code&amp;gt;USER&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;New and updated SQL statements&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#create_schema&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#drop_schema&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DROP SCHEMA&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#create_view&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CREATE VIEW&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#alter_view&amp;quot;&amp;gt;&amp;lt;code&amp;gt;ALTER&amp;#160;VIEW&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#drop_view&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DROP&amp;#160;VIEW&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#create_role&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CREATE ROLE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#set_role&amp;quot;&amp;gt;&amp;lt;code&amp;gt;SET&amp;#160;ROLE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#drop_role&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DROP&amp;#160;ROLE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#create_table&amp;quot;&amp;gt;CREATE TABLE&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; options&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#alter_table&amp;quot;&amp;gt;ALTER TABLE&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; options&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#drop_table&amp;quot;&amp;gt;DROP TABLE&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; options: &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#create_java_class&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CREATE JAVA_CLASS&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#drop_java_class&amp;quot;&amp;gt;DROP JAVA_CLASS&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Security management&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#grant_statement&amp;quot;&amp;gt;GRANT&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#revoke_statement&amp;quot;&amp;gt;REVOKE&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#create_user&amp;quot;&amp;gt;CREATE USER&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#alter_user&amp;quot;&amp;gt;ALTER USER&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#drop_user&amp;quot;&amp;gt;DROP&amp;#160;USER&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Transaction management&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#set_transaction&amp;quot;&amp;gt;SET TRANSACTION&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Other new SQL&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#keywords&amp;quot;&amp;gt;New keywords&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New data type: &amp;lt;a href=&amp;quot;#tinyint&amp;quot;&amp;gt;&amp;lt;code&amp;gt;TINYINT&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Many new &amp;lt;a href=&amp;quot;#escape_functions&amp;quot;&amp;gt;JDBC escape functions&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#isql&amp;quot;&amp;gt;ISQL cross-platform SQL command-line utility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Product notes&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#choose&amp;quot;&amp;gt;Choosing between Server Console and JdsExplorer&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#change_copy&amp;quot;&amp;gt;A change to the &amp;quot;Copy JDataStore&amp;quot; menu item&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;New and updated documentation&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#new_chaps&amp;quot;&amp;gt;New chapters&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#escape&amp;quot;&amp;gt;Escape syntax for calling stored procedures&amp;lt;/a&amp;gt; is now documented.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Updated documentation on &amp;lt;a href=&amp;quot;#jdbc_resultset&amp;quot;&amp;gt;returning JDBC ResultSets&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Getting started with JDataStore&amp;#160;7&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#migration&amp;quot;&amp;gt;Migrating older databases to JDataStore 7&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#jb_bes&amp;quot;&amp;gt;Using JDataStore 7 with JBuilder and the Borland Enterprise server&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;!-- &amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;#bugs&amp;quot;&amp;gt;Defects fixed in JDataStore&amp;#160;7&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt; --&amp;gt;&amp;lt;!-- &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;features&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New features&amp;lt;/h2&amp;gt; --&amp;gt;&amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;features&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New features&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;failsafe&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;The JDataStore High Availability Server&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;JDataStore&amp;#160;7 provides tools for creating automatic or manual incremental backups and for creating automatic failover to a mirror of the original database in case of failure. In addition, there are tools for viewing and managing connections on a remote server, for managing datasources and connections graphically or with the new ISQL feature, for viewing database status logs and transactions logs, for viewing logs, and for verifying databases.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;The &amp;quot;High Availability Server&amp;quot; topic in the &amp;quot;Architecture&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; discusses the architecture of JDataStore's new failsafe server and its associated mirroring functionality. This section is well worth reading, because it will help you make the most of this new offerings. &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For a description of how to use JDataStore's new Server Console to access this new functionality, see the new &amp;quot;JDataStore Server Console&amp;quot; chapter in the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. &amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;console&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;The new Server Console graphical interface&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;There is a whole new graphical interface in JDataStore&amp;#160;7. The Server Console performs many server administration tasks, including several that are new in JDataStore&amp;#160;7, such as automatic failover and incremental backup.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Here is an overview of what you can do with the Server Console. The items in the following list are topics in the &amp;quot;JDataStore Server Console&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; for details.&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Overview&amp;lt;/strong&amp;gt; Get a quick overview of what you can do with Server Console&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;About datasources&amp;lt;/strong&amp;gt; If you're not familiar with how JDataStore uses dataasources to connect to databases, this is the place to find out.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;What you see and what you get&amp;lt;/strong&amp;gt; Get familiar with the new Server Console interface.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Starting/shutting down the server&amp;lt;/strong&amp;gt; You can use Server Console to start and stop the local server.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Connection settings&amp;lt;/strong&amp;gt; A detailed description of how to create, modify, and delete datasources, and how to connect to and disconnect from them.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Creating and managing  datasources&amp;lt;/strong&amp;gt; Create, rename, and modify datasources, connect to them, and disconnect from them.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Verifying a database&amp;lt;/strong&amp;gt; Server Console makes it easier than ever.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Managing connections&amp;lt;/strong&amp;gt; View and optionaly terminate both local and remote datasources.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Managing database properties&amp;lt;/strong&amp;gt; See an editable grid of database properties for both local and remote connections.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Viewing table and row locks&amp;lt;/strong&amp;gt; Server Console makes it easy to see what's happening with locks on both the local and remote server.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Viewing the database status log file&amp;lt;/strong&amp;gt; You exactly what's been going on with a server by viewing its server status file.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Failover&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;incremental backup&amp;lt;/strong&amp;gt; Use mirrors to protect against failures and to incrementally backup your data on a schedule of your choosing. Using Server Console, you can add &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Interactive SQL&amp;lt;/strong&amp;gt; A special SQL pane lets you run SQL or SQL scripts against connected datasources.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;What happened to the old JdsServer graphical interface?&amp;lt;/strong&amp;gt; It's still there, but it has been replaced by the new Server Console. You can still start the JDataStore server as an application by running the &amp;lt;code&amp;gt;JdsServer&amp;lt;/code&amp;gt; executable. However, it is now set to run without the GUI.  If you really need that deprecated interface back, you can invoke the GUI by executing the following command:&amp;lt;/p&amp;gt;&amp;lt;table class=&amp;quot;pre&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;jdsserver -ui [windows|motif|metal|none][other parameters]&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;p&amp;gt;Choose the interface that is appropriate for your platform. For more about starting the JDataStore server, see &amp;quot;Launching JdsServer&amp;quot; in the &amp;quot;JDataStore Administration&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;keywords&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New keywords&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The asterisk following a keyword indicates that the keyword is &amp;lt;em&amp;gt;reserved&amp;lt;/em&amp;gt;. Reserved keywords can be used as SQL identifiers only if they are enclosed in double quotation marks. When quoted in this fashion, they are case sensitive. The words that have no asterisk are &amp;lt;em&amp;gt;nonreserved&amp;lt;/em&amp;gt; keywords. They can be used with or without double quotes and are case insensitive when note in quotes.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For a complete list of keywords, see &amp;lt;strong&amp;gt;Keywords&amp;lt;/strong&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;ADMIN*&amp;lt;br&amp;gt;ADMINISTRATOR*&amp;lt;br&amp;gt;AUTHORIZATION*&amp;lt;br&amp;gt;BIT_LENGTH*&amp;lt;br&amp;gt;COALESCE*&amp;lt;br&amp;gt;CURRENT_ROLE*&amp;lt;br&amp;gt;CURRENT_USER*&amp;lt;br&amp;gt;EXECUTE*&amp;lt;br&amp;gt;GRANT*&amp;lt;br&amp;gt;ISOLATION*&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;LEVEL*&amp;lt;br&amp;gt;NONE*&amp;lt;br&amp;gt;NULLIF*&amp;lt;br&amp;gt;OCTET_LENGTH*&amp;lt;br&amp;gt;ONLY*&amp;lt;br&amp;gt;OPTION*&amp;lt;br&amp;gt;PRIVILEGES*&amp;lt;br&amp;gt;PUBLIC*&amp;lt;br&amp;gt;READ&amp;lt;br&amp;gt;RENAME*&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;RESOLVABLE*&amp;lt;br&amp;gt;REVOKE*&amp;lt;br&amp;gt;ROLE&amp;lt;br&amp;gt;SCHEMA*&amp;lt;br&amp;gt;STARTUP*&amp;lt;br&amp;gt;TO*&amp;lt;br&amp;gt;TRANSACTION*&amp;lt;br&amp;gt;VIEW*&amp;lt;br&amp;gt;WITH*&amp;lt;br&amp;gt;WRITE&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;new_funcs&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New SQL functions&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;bit_length&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;BIT_LENGTH&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;BIT_LENGTH&amp;lt;/code&amp;gt; function gives the length in bits of a &amp;lt;code&amp;gt;STRING&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INPUTSTREAM&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;OBJECT&amp;lt;/code&amp;gt; value. For more information, see &amp;lt;code&amp;gt;BIT_LENGTH&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;case_function&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CASE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CASE function;SQL functions:CASE&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt; function returns a conditional value. For more information, see &amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;coalesce&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;COALESCE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;COALESCE function;SQL functions:COALESCE;non-NULL values, returning&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;COALESCE&amp;lt;/code&amp;gt; function returns the first non-NULL value from the expression list. For more information, see &amp;lt;code&amp;gt;COALESCE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;current_role&amp;quot;&amp;gt;CURRENT_ROLE&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CURRENT_ROLE function;SQL functions:CURRENT_ROLE;roles&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CURRENT_ROLE&amp;lt;/code&amp;gt; function returns the current role, or NULL if no role has been set using the &amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt; statement. For more information, see &amp;lt;code&amp;gt;CURRENT_ROLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. &amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;current_user&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CURRENT_USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CURRENT_USER function;SQL functions:CURRENT_USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CURRENT_USER&amp;lt;/code&amp;gt; function returns the name of the current user. For more information, see &amp;lt;code&amp;gt;CURRENT_USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;db_admin&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DB_ADMIN: administration functions&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DB_ADMIN function;SQL functions:DB_ADMIN&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; is a new JDataStore Java class whose methods are implemented in SQL as built-in stored procedures. Use &amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; for various database administration tasks such as automatic failover, incremental backup, creating and managing datasources, viewing and managing connections, verifying tables, and displaying database privileges and properties, locks, status logs, procedure privileges, and roles granted.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; provides a brief description of each method, implemented as a SQL function. The description of each method includes a link to the exact implementation and &amp;lt;a href=&amp;quot;../apiref/com/borland/datastore/driver/DB_ADMIN.html#method_summary&amp;quot;&amp;gt;&amp;lt;code&amp;gt;com.borland.datastore.driver.DB_ADMIN.html&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt; in the API reference. (The preceding link works when this document is in the &amp;lt;code&amp;gt;&amp;lt;em&amp;gt;JDataStore_home&amp;lt;/em&amp;gt;\doc&amp;lt;/code&amp;gt; directory.) &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;You can call these methods from SQL using the &amp;lt;code&amp;gt;CALL&amp;lt;/code&amp;gt; statement. They can be called without creating a &amp;lt;code&amp;gt;JAVA_METHOD&amp;lt;/code&amp;gt; alias because JDataStore SQL recognizes the methods in &amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; as built-in java methods.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; provides the following methods:&amp;lt;/p&amp;gt;&amp;lt;table border=&amp;quot;0&amp;quot; cols=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;code&amp;gt;ALTER_DATABASE&amp;lt;br&amp;gt;ALTER_MIRROR&amp;lt;br&amp;gt;ALTER_MIRROR_SCHEDULE&amp;lt;br&amp;gt;CLOSE_CONNECTION&amp;lt;br&amp;gt;CREATE_MIRROR&amp;lt;br&amp;gt;CREATE_MIRROR_SCHEDULE&amp;lt;br&amp;gt;DROP_MIRROR&amp;lt;br&amp;gt;DROP_MIRROR_SCHEDULE&amp;lt;br&amp;gt;GET_CONNECTIONS&amp;lt;br&amp;gt;GET_DATABASE_PRIVILEGES&amp;lt;br&amp;gt;GET_DATABASE_PROPS&amp;lt;br&amp;gt;GET_DATABASE_STATUS_LOG_FILTER&amp;lt;br&amp;gt;GET_LOCKS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;code&amp;gt;GET_MIRRORS&amp;lt;br&amp;gt;GET_NEWEST_STATUS_LOG_ID&amp;lt;br&amp;gt;GET_OLDEST_STATUS_LOG_ID&amp;lt;br&amp;gt;GET_PROCEDURE_PRIVILEGES&amp;lt;br&amp;gt;GET_ROLE_GRANTS&amp;lt;br&amp;gt;GET_STATUS_LOG_FILTER&amp;lt;br&amp;gt;GET_STATUS_LOG&amp;lt;br&amp;gt;GET_THIS_MIRROR&amp;lt;br&amp;gt;SET_DATABASE_STATUS_LOG_FILTER&amp;lt;br&amp;gt;SET_PRIMARY_MIRROR&amp;lt;br&amp;gt;SET_STATUS_LOG_FILTER&amp;lt;br&amp;gt;SYNCH_MIRROR&amp;lt;br&amp;gt;VERIFY&amp;lt;/code&amp;gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt; &amp;lt;br&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;DB_UTIL&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DB_UTIL: numeric, string, and date/time functions&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DB_UTIL functions;SQL functions:DB_UTIL;math functions;string functions;date/time functions;utilities:DB_UTIL&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_UTIL&amp;lt;/code&amp;gt; is a new JDataStore Java class whose methods  are implemented in SQL as built-in stored procedures. They are a collection of SQL utility functions that perform numeric, string and date/time operations on data stored in database tables. &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_UTIL&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; provides a brief description of each method. The description of each method includes a link to the exact implementation in &amp;lt;a href=&amp;quot;../apiref/com/borland/datastore/driver/DB_ADMIN.html#method_summary&amp;quot;&amp;gt;&amp;lt;code&amp;gt;com.borland.datastore.driver.DB_ADMIN.html&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt; in the API reference. (The preceding link works when this document is in the &amp;lt;code&amp;gt;&amp;lt;em&amp;gt;JDataStore_home&amp;lt;/em&amp;gt;\doc&amp;lt;/code&amp;gt; directory.) &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;You can call these methods from SQL using the &amp;lt;code&amp;gt;CALL&amp;lt;/code&amp;gt; statement. They can be called without creating a &amp;lt;code&amp;gt;JAVA_METHOD&amp;lt;/code&amp;gt; alias because JDataStore SQL recognizes the methods in &amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; as built-in java methods.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_UTIL&amp;lt;/code&amp;gt; provides the following methods&amp;lt;/p&amp;gt;&amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;code&amp;gt;&amp;lt;br&amp;gt;ACOS&amp;lt;br&amp;gt;ASIN&amp;lt;br&amp;gt;ATAN&amp;lt;br&amp;gt;ATAN2&amp;lt;br&amp;gt;CEILING&amp;lt;br&amp;gt;COS&amp;lt;br&amp;gt;COT&amp;lt;br&amp;gt;DEGREES&amp;lt;br&amp;gt;EXP&amp;lt;br&amp;gt;FLOOR&amp;lt;br&amp;gt;LOG&amp;lt;br&amp;gt;LOG10&amp;lt;br&amp;gt;MOD&amp;lt;br&amp;gt;PI&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;POWER&amp;lt;br&amp;gt;RADIANS&amp;lt;br&amp;gt;RAND&amp;lt;br&amp;gt;ROUND&amp;lt;br&amp;gt;SIGN&amp;lt;br&amp;gt;SIN&amp;lt;br&amp;gt;SQRT&amp;lt;br&amp;gt;TAN&amp;lt;br&amp;gt;TRUNCATE&amp;lt;br&amp;gt;ASCII&amp;lt;br&amp;gt;TO_CHAR&amp;lt;br&amp;gt;DIFFERENCE&amp;lt;br&amp;gt;INSERT_STRING&amp;lt;br&amp;gt;LEFT_STRING&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;code&amp;gt;&amp;lt;br&amp;gt;REPEAT&amp;lt;br&amp;gt;REPLACE&amp;lt;br&amp;gt;RIGHT&amp;lt;br&amp;gt;SOUNDEX&amp;lt;br&amp;gt;SPACE&amp;lt;br&amp;gt;DAYNAME&amp;lt;br&amp;gt;DAYOFWEEK&amp;lt;br&amp;gt;DAYOFYEAR&amp;lt;br&amp;gt;MONTHNAME&amp;lt;br&amp;gt;QUARTER&amp;lt;br&amp;gt;TIMESTAMPADD&amp;lt;br&amp;gt;TIMESTAMPDIFF&amp;lt;br&amp;gt;WEEK&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt; &amp;lt;br&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;nullif&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;NULLIF&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;NULLIF function;SQL functions:NULLIF;expressions:comparing;comparisons:expressions with NULLIF&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;NULLIF&amp;lt;/code&amp;gt; function compares two expressions. It returns NULL if the expressions are equal. Otherwise, it returns the first expression. It is logically equivalent to the following &amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt; expression: &amp;lt;code&amp;gt;CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;For more information, see &amp;lt;code&amp;gt;NULLIF&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;octet_length&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;OCTET_LENGTH&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;OCTET_LENGTH function;SQL functions:OCTET_LENGTH;length of string, imput stream, or object&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;OCTET_LENGTH&amp;lt;/code&amp;gt; function gives the length in bytes of a &amp;lt;code&amp;gt;STRING&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INPUTSTREAM&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;OBJECT&amp;lt;/code&amp;gt; value. For more information, see &amp;lt;code&amp;gt;OCTET_LENGTH&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;user_function&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;USER function;SQL functions:USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;USER&amp;lt;/code&amp;gt; function returns the name of the current user; this function is the same as &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#current_user&amp;quot;&amp;gt;CURRENT_USER&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;. For more information, see &amp;lt;code&amp;gt;CURRENT_USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;new_sql&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New and updated SQL statements&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_schema&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE SCHEMA&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE SCHEMA statement;schemas:creating;SQL statements:CREATE SCHEMA&amp;quot;--&amp;gt;&amp;lt;!--BNDX=&amp;quot;statements, &amp;lt;em&amp;gt;see&amp;lt;/em&amp;gt; SQL statements&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt; statement creates a name space for tables, views, and methods. You can use &amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt; to create multiple objects in one SQL statement. For a discussion of how schemas work in JDataStore, see &amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DROP SCHEMA&amp;lt;/code&amp;gt;in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_schema&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP SCHEMA&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP SCHEMA statement;schemas:dropping;SQL statements:DROP SCHEMA&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP SCHEMA&amp;lt;/code&amp;gt; statement deletes the specified schema. If the command is used without options, it is the same as specifying the &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt; option: the schema to be dropped must be empty. The command fails if the schema contains any objects. &amp;lt;/p&amp;gt; &amp;lt;p class=&amp;quot;bscan&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;bscan&amp;quot;&amp;gt;Note: &amp;lt;/span&amp;gt;The &amp;lt;code&amp;gt;DROP SCHEMA&amp;lt;/code&amp;gt; command used with the &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; option is extremely powerful and should be used with caution. When this command is issued, it drops the schema and all of its objects and dependencies without any chance to change your mind. There is no undo.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_view&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE VIEW&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE VIEW statement;SQL statements:CREATE VIEW;views:creating&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE VIEW&amp;lt;/code&amp;gt; statement creates a derived table by selecting specified columns from existing tables. Views provide a way of accessing a consistent subcollection of the data stored in one or more tables. When the data in the underlying tables changes, the view reflects this change.&amp;lt;/p&amp;gt;For more information, see &amp;lt;code&amp;gt;CREATE VIEW&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;alter_view&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;ALTER VIEW&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;ALTER VIEW statement;SQL statements:ALTER VIEW;views:altering&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;ALTER VIEW&amp;lt;/code&amp;gt; statement modifies a view without losing dependent views and existing &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt;s. This statement can be used to change the name of a view, the columns that comprise the view, and whether the view has the &amp;lt;code&amp;gt;WITH CHECK OPTION&amp;lt;/code&amp;gt; constraint.  For more information, see &amp;lt;code&amp;gt;ALTER VIEW&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_view&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP VIEW&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP VIEW statement;SQL statements:DROP VIEW;views:dropping&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP VIEW&amp;lt;/code&amp;gt; statement drops the named view. By default, it fails if there are dependencies on the view. The &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; option drops the view and any dependent views. For more information, see &amp;lt;code&amp;gt;DROP VIEW&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_role&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE ROLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE ROLE statement;SQL statements:CREATE ROLE;roles:creating;privileges:roles&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE ROLE&amp;lt;/code&amp;gt; statement creates a named role. To complete this functionality, you must &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; privileges to the role, and &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; the role to one or more users. To make use of the privileges acquired in this fashion, the user issues a &amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt; statement.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;lt;code&amp;gt;CREATE ROLE&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; statement in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;set_role&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;SET ROLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;SET ROLE statement;SQL statements:SET ROLE;roles:activating;privileges:roles&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt; statement makes the named role active. The current user acquires all privileges assigned to that role. For more information, see &amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_role&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP ROLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP ROLE statement;SQL statements:DROP ROLE;roles:dropping&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP ROLE&amp;lt;/code&amp;gt; statement drops the specified role. For more information, see &amp;lt;code&amp;gt;DROP ROLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_table&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE TABLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE TABLE statement;JDataStore tables:creating;foreign keys;SQL statements:CREATE TABLE&amp;quot;--&amp;gt;&amp;lt;!--BNDX=&amp;quot;schemas:creating tables in;JDataStore tables:schemas&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;There are three new options for the &amp;lt;code&amp;gt;CREATE TABLE&amp;lt;/code&amp;gt; statement:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;The table name now incldues a schema name.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You have the option of specifying a position for each column.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You can use the [NOT] RESOLVABLE option to track data changes for DataExpress.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;lt;code&amp;gt;CREATE TABLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;alter_table&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;ALTER TABLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;ALTER TABLE statement;JDataStore tables:modifying;SQL statements:ALTER TABLE&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;There are several new options for the &amp;lt;code&amp;gt;ALTER TABLE&amp;lt;/code&amp;gt; statement:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;You can rename the entire table; this is how you assign a table to a different schema.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You can make the table &amp;lt;code&amp;gt;RESOLVABLE&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;NOT RESOLVABLE&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;At the column level you can:&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Change the datatype of a column&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Set whether a collumn is nullable&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Rename a column&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Change the position of a column within the table&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;lt;code&amp;gt;ALTER TABLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_table&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP TABLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP TABLE statement;SQL statements:DROP TABLE;JDataStore tables:deleting&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP TABLE&amp;lt;/code&amp;gt; statement deletes a table and its indexes from a JDataStore database. &amp;lt;code&amp;gt;DROP TABLE&amp;lt;/code&amp;gt; has two new options: &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_java_class&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE JAVA_CLASS&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE JAVA_CLASS statement;SQL statements:CREATE JAVA_CLASS;Java classes:creating;creating:java classes&amp;quot;--&amp;gt; &amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE JAVA_CLASS&amp;lt;/code&amp;gt; statement makes all public static methods of a Java class available to JDataStore SQL as stored procedures or UDFs. For more information, see &amp;lt;code&amp;gt;CREATE JAVA_CLASS&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_java_class&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP JAVA_CLASS&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP JAVA_CLASS statement;SQL statements:DROP JAVA_CLASS;Java classes:dropping;dropping:java classes&amp;quot;--&amp;gt;  &amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP JAVA_CLASS&amp;lt;/code&amp;gt; statement drops a stored class, making it unavailable for use in JDataStore SQL. For more information, see &amp;lt;code&amp;gt;DROP JAVA_CLASS&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;grant_statement&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;GRANT&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;GRANT statement;SQL statements:GRANT;database privileges, granting;privileges:granting;roles:granting privileges to;roles:granting to users&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; statement performs the following actions:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;It grants object privileges&amp;#8212;such as &amp;lt;code&amp;gt;INSERT&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;&amp;#8212;on tables or java methods to &amp;lt;code&amp;gt;PUBLIC&amp;lt;/code&amp;gt;, users, or roles.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It grants database privileges&amp;#8212;such as &amp;lt;code&amp;gt;STARTUP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RENAME&amp;lt;/code&amp;gt;&amp;#8212;to users or roles.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It grants roles to users or roles.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;For more information, see &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;revoke_statement&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;REVOKE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;REVOKE statement;SQL statements:REVOKE;database privileges, revoking;roles:revoking privileges&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;REVOKE&amp;lt;/code&amp;gt; statement performs a number of actions:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;It revokes object privileges&amp;#8212;such as &amp;lt;code&amp;gt;INSERT&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;&amp;#8212;on tables or java methods from &amp;lt;code&amp;gt;PUBLIC&amp;lt;/code&amp;gt;, users, or roles. It has &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt;,options.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It revokes database privileges&amp;#8212;such as &amp;lt;code&amp;gt;STARTUP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RENAME&amp;lt;/code&amp;gt;&amp;#8212;from users or roles.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It revokes roles from users or roles.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It revokes the &amp;lt;code&amp;gt;ADMIN&amp;lt;/code&amp;gt; option from a role without revoking the role itself.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It revokes the &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; option from a privilege without revoking the privilege itself.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;lt;code&amp;gt;REVOKE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_user&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE USER statement;SQL statements:CREATE USER;users:adding with CREATE USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE USER&amp;lt;/code&amp;gt; statement adds the named user and associated password to the database. The password is case sensitive, the user name is not. For more information, see &amp;lt;code&amp;gt;CREATE USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;alter_user&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;ALTER USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;ALTER USER statement;SQL statements:ALTER USER;users:editing with ALTER USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;ALTER USER&amp;lt;/code&amp;gt; statement sets a new password for an existing user.  For more information, see &amp;lt;code&amp;gt;ALTER USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_user&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP USER statement;SQL statements:DROP USER;users:removing with DROP USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP USER&amp;lt;/code&amp;gt; statement drops a user and all objects that the user owns. It has &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; options. For more information, see &amp;lt;code&amp;gt;DROP USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;set_transaction&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;SET TRANSACTION&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;SET TRANSACTION statement;SQL statements:SET TRANSACTION;transactions: setting; transaction isolation levels, overview;isolation levels:setting&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;SET TRANSACTION&amp;lt;/code&amp;gt; statement sets the properties for the following transaction. You can use it to specify the isolation level and whether the transaction is read-write or read-only. For more information, see &amp;lt;code&amp;gt;SET TRANSACTION&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. See &amp;lt;a href=&amp;quot;architecture.html#tx_management&amp;quot;&amp;gt;&amp;quot;Transaction management&amp;quot;&amp;lt;/a&amp;gt; in the &amp;quot;System Architecture&amp;quot; chapter for further discussion of JDataStore transaction management.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;tinyint&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New data type: TINYINT&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;JDataStore SQL now provides a one-byte integer data type, &amp;lt;code&amp;gt;TINYINT&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;BYTE&amp;lt;/code&amp;gt;). For more information, see &amp;quot;Datatypes&amp;quot; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;escape_functions&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;JDBC escape functions&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;JDBC escape functions;SQL functions:JDBC escape functions;functions:JDBC escape functions&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;JDataStore now provides a greatly expanded list of JDBC escape functions. For a complete list, see &amp;quot;JDBC escape functions&amp;quot; the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;isql&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;ISQL&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;JDataStore's new ISQL can be run in the SQL tab of the Server Console. These commands can also be issued from any system command console.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For a discussion of JDataStore new ISQL and a list of commands, see &amp;lt;code&amp;gt;ISQL&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;notes&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Product notes&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;choose&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Choosing between JdsExplorer and the Server Console&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The Server Console is a graphical interface that is new in JDataStore&amp;#160;7. In it, you can perform some of the tasks that you previously performed in JdsExplorer. In addition, Server Console provides access to many new features.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;From Server Console you can:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Create and edit datasources, connect to local or remote databases, and view and manage connections. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;View and manage database properties, and view database status logs, view table and row locks. and verify databases. You cannot create databases in Server Console.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Create and manage mirrors for incremental backup, auto failover, and load balancing.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Use the ISQL tab to execute all SQL and ISQL commands. There is a list of ISQL commands at the end of the SQL Reference chapter in the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. JdsExplorer off an environment for executing SQL commands, but you cannot execute ISQL commands there.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;You need JdsExplorer if you want to:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Perform user administration&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Manage license keys&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Work with and view table structure and content, including indexes.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Import tables from other databases and import text and images into a database&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Upgrade, downgrade, copy, encrypt/decrypt or pack a database. Database verification can be performed from either JdsExplorer or Server Console.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;Most of the tasks listed for JdsExplorer can be performed in the Server Console using the ISQL window.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;change_copy&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;A change to the &amp;quot;Copy JDataStore&amp;quot; menu item&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;JdsExplorer has a Copy JDataStore item on the Tools menu. Its function is different in JDataStore&amp;#160;7 then in earlier versions of the product. In previous versions of JDataStore, choosing Tools|Copy JDataStore brought up the Copy Streams dialog box, and made you select exactly which streams to copy. Now this menu item brings up a dialog in which you copy an entire database file.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;There is a new item on the JDataStore Tools menu: Copy Into Existing JDataStore. This item permits you to copy into an existing, empty JDataStore, which allows you to downgrade or encrypt databases.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;To copy individual tables between databases, use the Tools|Import chose in JdsExplorer.&amp;lt;/p&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;new_doc&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New and updated documentation&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;new_chaps&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New chapters&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;There are two new chapters in the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. &amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;The &amp;quot;What's New&amp;quot; chapter lists the new features and provides links into those topics in the book.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The &amp;quot;JDataStore Server Console&amp;quot; chapter provides details about the new Server Console interface and the things you can do with it.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;exapnd_sql&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Expanded SQL Reference&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The JDataStore implementation of the SQL language has been greatly enriched, and the SQL Reference chapter in the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; has been expanded and reorganized.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;escape&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;JDBC escape syntax&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;JDBC escape sequences;JDataStore tables:string functions;JDataStore tables:JDBC escape sequences;literals in JDBC escape sequences&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The JDBC escape syntax was not previously documented. It is now in the &amp;quot;JDBC escape syntax&amp;quot; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;jdbc_resultset&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Stored procedures and JDBC ResultSets&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;JDBC result set;result set, JDBC;returning a JDBC result set&amp;quot;--&amp;gt;&amp;lt;!--BNDX=&amp;quot;JDBC DataSets;DataSets, returning&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;A Java stored procedure can produce a &amp;lt;code&amp;gt;ResultSet&amp;lt;/code&amp;gt; on the client by returning either a &amp;lt;code&amp;gt;ResultSet&amp;lt;/code&amp;gt; or a DataExpress &amp;lt;code&amp;gt;DataSet&amp;lt;/code&amp;gt; from the Java implementation of the stored procedure. The &amp;lt;code&amp;gt;DataSet&amp;lt;/code&amp;gt; is automatically converted to a &amp;lt;code&amp;gt;ResultSet&amp;lt;/code&amp;gt; for the user of the stored procedure.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Documentation on the feature has been expanded in JDataStore&amp;#160;7. For more information, see &amp;quot;Stored procedures and JDBC ResultSets&amp;quot; in the &amp;quot;Stored Procedures and UDFs&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;start&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Getting started with JDataStore&amp;#160;7&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;migration&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Migrating older databases to JDataStore&amp;#160;7&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The big issue in migrating older databases to JDataStore 7 is that JdataStore&amp;#160;7 has the concept of schemas, and older databases do not. In JDataStore&amp;#160;7, every table belongs to a schema: the schema name is part of the table name. In general, when a user creates an object such as a table or a view, that object belongs to the user's own schema. There are a number of issues regarding the use of schemas. It will be helpful to you to read &amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; to understand how JDataStore&amp;#160;7 uses schemas before proceeding with migration.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For additional detail on migrating older JDataStore databases to JDataStore&amp;#160;7, see &amp;quot;Migrating older databases to JDataStore 7&amp;quot; in the &amp;quot;JDBC Quickstart&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;jb_bes&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;strong&amp;gt;Using JDataStore&amp;#160;7 with JBuilder and the Borland Enterprise Server&amp;lt;/strong&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;To make the latest version of JDataStore available to JBuilder and the Borland Enterprise Server (BES), you need to copy certain files form the JDataStore &amp;lt;em&amp;gt;lib&amp;lt;/em&amp;gt; directory to the &amp;lt;em&amp;gt;lib&amp;lt;/em&amp;gt; directory of the target product. The files are: &amp;lt;em&amp;gt;beandt.jar&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;dbtools.jar&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;dx.jar&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;jds.jar&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;jdsremote.jar&amp;lt;/em&amp;gt;, and &amp;lt;em&amp;gt;jdsserver.jar&amp;lt;/em&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;quot;Using JDataStore with JBuilder and the Borland Enterprise server&amp;quot; in the &amp;quot;JDBC Quickstart&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Field test note: For the field test, copying these files may cause some menu problems in JBuilder. These problems go away when you remove the copied files. This defect will be fixed for the final release.&amp;lt;/p&amp;gt;&amp;lt;h2&amp;gt;Change listing for each point release.&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_706&amp;quot;&amp;gt;Bugs Fixed in 7.06&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Mac installer has been replaced with an installer for intel Mac platform. PowerPC mac's are no longer supported.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Certain prepared queries with aggregators resulted in bad data.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Certain prepared queries with an IN operator resulted in a sporadic NullPointer exception. Safeguards have been added.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;If a range is specified in the WHERE clause for an autoincrement column, the wrong rows might be returned. This is also true for certain primary key columns that implicitly are converted into auto increment columns.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;JDataStore 7.006 has been certified for Microsoft Vista.  We recommend that the developer edition of JDataStore be installed outside of the &amp;#8220;Program Files&amp;#8221; directory.  The JDataStore .exe launchers depend on config files that are located in the same directory as the launcher.exe.  If the product is installed in the &amp;#8220;Program Files&amp;#8221; directory and Vista UAC is enabled, the changes to the config files will only take affect for the user that makes the modifications.  Note that this is mostly of concern to developers or server side installations that use one of the exe launchers.  These are the exe Launchers installed by the developer edition of JDataStore:  JdsServer*.exe, isql.exe, JdsExplorer*.exe, and ServerConsole*.exe.  Note that there are no issues for installing JDataStore jar files in the &amp;#8220;Program Files&amp;#8221; directory.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Data corruption from sql update statements under high concurrency environments has been fixed.&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;Thread deadlock in JdbcConnectionPool shutdown method that occurs when another thread is also returning a connection to the pool by calling java.sql.Connection.close method has been fixed.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;ArrayIndexOutOfBoundsException that occurs for descending sort operations on String columns&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Prepared statement with grouping criteria may produce incorrect results the second time it is executed when other statements that use the same table are prepared and executed.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Joins with range selection criteria for more than one table on columns with the same ordinal position can encounter value access errors indicating a type mismatch.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;DB_ADMIN.GET_CONNECTIONS() built in stored procedure will now include local connections in addition to remote connections.  This includes connections open with the DataStoreConnection and DataStore components.  Connections with a &amp;quot;USER&amp;quot; column that starts with &amp;quot;sys.&amp;quot; and connections that have a &amp;quot;REMARKS&amp;quot; column value of &amp;quot;Opener&amp;quot; are internal connections that do not keep a database from shutting down.&amp;lt;/li&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_705&amp;quot;&amp;gt;Bugs Fixed in 7.05&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;An UPDATE query which uses an aggregation of a subquery with an outer reference to set a column value could cause a NullPointerException.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;DatabaseMetaData.getIndexInfo() returned wrong information about auto increment columns.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;A combination of a 1-1 query of 2 tables with single integer column primary keys and an IN operator in the WHERE clause could cause an Exception.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Creating a table with a single integer column primary key and a different column as an auto increment column, will cause the auto increment column to not function.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Applications that close connections without closing open statements will incur a memory leak if the statements had executed queries that return ResultSets.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;SQL queries with an &amp;#8220;in clause&amp;#8221; selection criteria that references an indexed column may not return all rows that satisfy the in clause selection criteria.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Table open and close operations can fail if several connections are rapidly opening and closing connections.&amp;#160; This can also cause connection close operations to fail resulting in &amp;quot;lingering&amp;quot; connections in the DataStoreServer.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Statement caching provided by the connection pool does not properly cache or close statements.  Because resources and ResultSets are not closed until these unclosed statements are finalized, this can lead to out of memory conditions and large temporary database file sizes.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;For encrypted databases, the crash recovery system can encrypt modified blocks of the user table.  This is a mistake because the user table is the one table that cannot be encrypted in an encrypted database.  Note that this will only occur if some change is made to the user table since the last time the database was opened.  This problem can prevent the database from being opened or cause the user table to appear corrupt when database verification is performed.  We are working on a repair method for applications that have encountered this problem.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Support for opening encrypted databases that have part or all of the user table encrypted by the defect described above.  If the user table record for the user connecting is encrypted, the database cannot be opened.  In this case there is a new connection property called &amp;quot;priorFileName&amp;quot; that can be used to provide the name of a prior version of the encrypted database that can still be opened.  This can be specified as an extended JDBC property for JDBC connections.  There is also a DataStoreConnection.setPriorFileName as well.  Note that the prior database will only be used to unencrypt the user table that is not supposed to be encrypted in the first place.  If the user logging in does not have startup rights in both the prior and current database, the prior database will not be used for the open operation.  Once the database affected by this defect has been opened, it should be copied or packed into a new database file.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_704&amp;quot;&amp;gt;Bugs Fixed in 7.04&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;When &amp;quot;Tools | Encrypt JDataStore&amp;quot; or &amp;quot;Tools | Copy JDataStore&amp;quot; is selected from JdsExplorer, the resulting database has multiple entries for the SYSDBA user. This problem has been fixed.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;When combining an &amp;quot;order by&amp;quot; and an &amp;quot;in&amp;quot; and a sub select on a large set of records, it may result in an incorrect record count.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_703&amp;quot;&amp;gt;Bugs Fixed in 7.03&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;h4&amp;gt;Support for Hibernate&amp;lt;/h4&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Hibernate's automated test suites completed.  Hibernate dialect class provided in samples directory.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;h4&amp;gt;General defect corrections and improvements&amp;lt;/h4&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;ADMINISTRATOR is now a non reserved keyword in SQL. (It used to be a reserved keyword.)&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Corrected defect in remote driver where retrieving longer string or blob values sometimes caused the driver to hang. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Database check point events are now logged in the *STATUS * log files. These messages provide &amp;quot;remarks&amp;quot; on what is keeping a log file from being dropped. This can be useful when trying to diagnose why log files are not being automatically dropped. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New ExtendedProperties.REMARKS property.  This can be set to an informative string.  This is displayed in many of the contexts in which user name is displayed.  Many applications use the same user for many connections.  The remarks property makes it easier to distinguish connections that use the same user name.  Remarks is displayed for lock error reporting, DB_ADMIN.GET_CONNECTIONS() builtin stored procedure and the connections node of the ServerConsole. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;h4&amp;gt;SMP support&amp;lt;/h4&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Completion of all automated stress tests on dual processor Windows XP and Redhat Enterprise Linux 3. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;h4&amp;gt;High availability corrected defects and improvements&amp;lt;/h4&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;General stability improvements. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Improved performance for mirror synchronization. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Eliminated problems where log files would never drop for databases with mirrors in certain situations. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Mirrors with the INSTANT_SYNCH or AUTO_FAIL_OVER property set will automatically have a mirror schedule item added to the SYS.MIRROR_SCHEDULE table.  This mirror schedule item is added when the mirror is created or when the INSTANT_SYNCH or AUTO_FAIL_OVER property is altered for a mirror that does not already have a mirror schedule item. This default mirror schedule item will synchronize the mirror every 10 seconds. This mirror schedule item can be dropped or altered after the mirror is created if so desired.  However, it is probably best to keep a mirror schedule item for each mirror so that the read only mirror database is kept up to date with the primary mirror. When INSTANT_SYNCH or the AUTO_FAIL_OVER property is set for a read only mirror its log records are constantly kept in synch with the primary mirror. However, these log records are not replayed against the read only mirror database until a synch operation is performed. The mirror schedule item will synch the mirror on a regular basis keeping the state of the read only mirror database very close or equal to the state of the primary mirror.  Two key benefits of having the readonly mirror databases up to date with the primary mirror are:  1) Fail over (manual or automatic) is much faster because little or no log records need to be replayed before the fail over operation.  2) Readonly mirror databases will reflect a more recent state of the database.  This will be important for applications that off load readonly queries from the primary mirror to readonly mirrors. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;ISQL show ddl command now outputs the sql call statements to recreate any mirrors configured for the database. This is useful to see how mirrors are can be created from executing a sql script. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The last known replay column for the mirrors table and mirror status table in the ServerConsole now displays these values in hex. The high 32 bits are the log file and the low 32 bits are the offset into the log files. These values determine when log files can be automatically dropped. For example a primary mirror cannot drop a log if a read only mirror has not replayed the contents of that log file. So if the last known replay for a read only mirror as a low log file for its last replay column, this will keep this log file and all log files greater than this log file from being dropped. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_702&amp;quot;&amp;gt;Bugs Fixed in 7.02&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;There have been many significant improvements in High availability Mirrors as well as Read-Only Transactions. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Mirroring support now drops unneeded log files when it should. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cannot use export or show ddl command when a database has multiple schemas because there are no schema creation statements emitted.  Insert statements for export also need to prefix table names with schema name. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;DatabaseMetadata now show a foreign keys for other schemas when logging in as SYSDBA. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;ADMIN is still a keyword, but not a reserved one. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;When two separate threads are allocating a new log file at the same time, the potential for a deadlock  no longer occurs. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;SHOW DDL did not generate &amp;quot;CREATE SCHEMA&amp;quot; statements.  This is needed if the output is to be executed against another database. &amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;Foreign keys are now reported in show ddl for non-default schema when logged in as sysdba (administrator). &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Show ddl command now works for a table with an autoincrement column. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;An exception is reported when there are two tables with foreign keys that reference each other, and both tables are being updated by separate transactions a lock timeout error can occur. This has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Wrong result from running join query has been fixed. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_701&amp;quot;&amp;gt;Bugs Fixed in 7.01&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Modify output of date and time to include at least 2 digits for day, month, minute, second, hours. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Remote JDBC driver improved server exception handling. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;A prepared query with a parameterized LIKE operator in the where clause e.g. &amp;quot;SELECT * FROM PERSON WHERE LASTNAME LIKE ?&amp;quot;was mistakenly executed with the parameter given first time the query was executed; thus subsequent executions would receive wrong results. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;A SQL query which uses an auto-increment field for a lookup or join may in certain circumstances yield the wrong result. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Tables with a column named INTERNALROW, could not be exported using ISQL. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The data presented in the ServerConsole and the SQL tab in JdsExplorer for a query like: &amp;quot;SELECT * FROM MY_VIEW&amp;quot; could not be edited even if the view was updateable. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;TxException LOCK_TIMEOUT errors fixed for situations where table lock escalation is triggered to max row locks exceeded. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Problem when value from source cursor had a maxInline setting that was larger than the destination cursor.  Cursor now can convert inline into blob if necessary. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Drop column no longer fails to have any affect if another connection has a prepared statement that references the same table. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The command SHOW TABLE in ISQL required an explicit schema name. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cannot drop primary mirror. Problem is now fixed. &amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;ResultSetMetaData now returns the correct column count when an updateable ResultSet is used. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Column from Primary keys were sometimes reported to be nullable through DatabaseMetadata.getColumns().This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;If 2 timestamp values are given as 2 literals the first value is stored for both values. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The Date and Timestamp literal JDBC escape formats were incorrectly documented. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;</description>
      <link>http://cc.embarcadero.com/Item/25371</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=25371" type="application/zip" length="61260386" />
      <pubDate>2008-05-13T22:17:59</pubDate>
      <dc:date>2008-05-13T22:17:59</dc:date>
      <guid>http://cc.embarcadero.com/Item/25371</guid>
    </item>
    <item>
      <title>JDataStore 7.06 for Linux</title>
      <description>&amp;lt;h1 align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;a name=&amp;quot;_top_&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;JDataStore 7.06 (build 7.006.039) for Linux&amp;lt;br&amp;gt;Release Notes&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;These Release Notes provide a brief description of each new feature in JDataStore 7.The &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; includes a &amp;quot;What's New&amp;quot; chapter that provideslinks to the documentation for each new feature within the Developer's Guide.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Bug fix list&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.06 click &amp;lt;a href=&amp;quot;#fixed_706&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.05 click &amp;lt;a href=&amp;quot;#fixed_705&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.04 click &amp;lt;a href=&amp;quot;#fixed_704&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.03 click &amp;lt;a href=&amp;quot;#fixed_703&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.02 click &amp;lt;a href=&amp;quot;#fixed_702&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;To see bugs fixed in JDataStore 7.01 click &amp;lt;a href=&amp;quot;#fixed_701&amp;quot;&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;New Features&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#failsafe&amp;quot;&amp;gt;The JDataStore High Availability Server: incremental backup, automatic failover&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The new &amp;lt;a href=&amp;quot;#console&amp;quot;&amp;gt;Server Console&amp;lt;/a&amp;gt; graphical interface&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;New SQL functions&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#bit_length&amp;quot;&amp;gt;&amp;lt;code&amp;gt;BIT_LENGTH&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#case_function&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#coalesce&amp;quot;&amp;gt;&amp;lt;code&amp;gt;COALESCE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#current_role&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CURRENT_ROLE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#current_user&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CURRENT_USER&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#db_admin&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#DB_UTIL&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DB_UTIL&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#nullif&amp;quot;&amp;gt;&amp;lt;code&amp;gt;NULLIF&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#octet_length&amp;quot;&amp;gt;&amp;lt;code&amp;gt;OCTET_LENGTH&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#user_function&amp;quot;&amp;gt;&amp;lt;code&amp;gt;USER&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;New and updated SQL statements&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#create_schema&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#drop_schema&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DROP SCHEMA&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#create_view&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CREATE VIEW&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#alter_view&amp;quot;&amp;gt;&amp;lt;code&amp;gt;ALTER VIEW&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#drop_view&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DROP VIEW&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#create_role&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CREATE ROLE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#set_role&amp;quot;&amp;gt;&amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;a href=&amp;quot;#drop_role&amp;quot;&amp;gt;&amp;lt;code&amp;gt;DROP ROLE&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#create_table&amp;quot;&amp;gt;CREATE TABLE&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; options&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#alter_table&amp;quot;&amp;gt;ALTER TABLE&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; options&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#drop_table&amp;quot;&amp;gt;DROP TABLE&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; options: &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#create_java_class&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CREATE JAVA_CLASS&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#drop_java_class&amp;quot;&amp;gt;DROP JAVA_CLASS&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Security management&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#grant_statement&amp;quot;&amp;gt;GRANT&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#revoke_statement&amp;quot;&amp;gt;REVOKE&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#create_user&amp;quot;&amp;gt;CREATE USER&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#alter_user&amp;quot;&amp;gt;ALTER USER&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#drop_user&amp;quot;&amp;gt;DROP USER&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Transaction management&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#set_transaction&amp;quot;&amp;gt;SET TRANSACTION&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Other new SQL&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#keywords&amp;quot;&amp;gt;New keywords&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New data type: &amp;lt;a href=&amp;quot;#tinyint&amp;quot;&amp;gt;&amp;lt;code&amp;gt;TINYINT&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Many new &amp;lt;a href=&amp;quot;#escape_functions&amp;quot;&amp;gt;JDBC escape functions&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#isql&amp;quot;&amp;gt;ISQL cross-platform SQL command-line utility&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Product notes&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#choose&amp;quot;&amp;gt;Choosing between Server Console and JdsExplorer&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#change_copy&amp;quot;&amp;gt;A change to the &amp;quot;Copy JDataStore&amp;quot; menu item&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;New and updated documentation&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#new_chaps&amp;quot;&amp;gt;New chapters&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#escape&amp;quot;&amp;gt;Escape syntax for calling stored procedures&amp;lt;/a&amp;gt; is now documented.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Updated documentation on &amp;lt;a href=&amp;quot;#jdbc_resultset&amp;quot;&amp;gt;returning JDBC ResultSets&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Getting started with JDataStore 7&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#migration&amp;quot;&amp;gt;Migrating older databases to JDataStore 7&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#jb_bes&amp;quot;&amp;gt;Using JDataStore 7 with JBuilder and the Borland Enterprise server&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;!-- &amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;#bugs&amp;quot;&amp;gt;Defects fixed in JDataStore 7&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt; --&amp;gt;&amp;lt;!-- &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;features&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New features&amp;lt;/h2&amp;gt; --&amp;gt;&amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;features&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New features&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;failsafe&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;The JDataStore High Availability Server&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;JDataStore 7 provides tools for creating automatic or manual incremental backups and for creating automatic failover to a mirror of the original database in case of failure. In addition, there are tools for viewing and managing connections on a remote server, for managing datasources and connections graphically or with the new ISQL feature, for viewing database status logs and transactions logs, for viewing logs, and for verifying databases.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;The &amp;quot;High Availability Server&amp;quot; topic in the &amp;quot;Architecture&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; discusses the architecture of JDataStore's new failsafe server and its associated mirroring functionality. This section is well worth reading, because it will help you make the most of this new offerings. &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For a description of how to use JDataStore's new Server Console to access this new functionality, see the new &amp;quot;JDataStore Server Console&amp;quot; chapter in the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. &amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;console&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;The new Server Console graphical interface&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;There is a whole new graphical interface in JDataStore 7. The Server Console performs many server administration tasks, including several that are new in JDataStore 7, such as automatic failover and incremental backup.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Here is an overview of what you can do with the Server Console. The items in the following list are topics in the &amp;quot;JDataStore Server Console&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; for details.&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Overview&amp;lt;/strong&amp;gt; Get a quick overview of what you can do with Server Console&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;About datasources&amp;lt;/strong&amp;gt; If you're not familiar with how JDataStore uses dataasources to connect to databases, this is the place to find out.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;What you see and what you get&amp;lt;/strong&amp;gt; Get familiar with the new Server Console interface.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Starting/shutting down the server&amp;lt;/strong&amp;gt; You can use Server Console to start and stop the local server.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Connection settings&amp;lt;/strong&amp;gt; A detailed description of how to create, modify, and delete datasources, and how to connect to and disconnect from them.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Creating and managing  datasources&amp;lt;/strong&amp;gt; Create, rename, and modify datasources, connect to them, and disconnect from them.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Verifying a database&amp;lt;/strong&amp;gt; Server Console makes it easier than ever.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Managing connections&amp;lt;/strong&amp;gt; View and optionaly terminate both local and remote datasources.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Managing database properties&amp;lt;/strong&amp;gt; See an editable grid of database properties for both local and remote connections.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Viewing table and row locks&amp;lt;/strong&amp;gt; Server Console makes it easy to see what's happening with locks on both the local and remote server.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Viewing the database status log file&amp;lt;/strong&amp;gt; You exactly what's been going on with a server by viewing its server status file.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Failover&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;incremental backup&amp;lt;/strong&amp;gt; Use mirrors to protect against failures and to incrementally backup your data on a schedule of your choosing. Using Server Console, you can add &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Interactive SQL&amp;lt;/strong&amp;gt; A special SQL pane lets you run SQL or SQL scripts against connected datasources.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;What happened to the old JdsServer graphical interface?&amp;lt;/strong&amp;gt; It's still there, but it has been replaced by the new Server Console. You can still start the JDataStore server as an application by running the &amp;lt;code&amp;gt;JdsServer&amp;lt;/code&amp;gt; executable. However, it is now set to run without the GUI.  If you really need that deprecated interface back, you can invoke the GUI by executing the following command:&amp;lt;/p&amp;gt;&amp;lt;table class=&amp;quot;pre&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;jdsserver -ui [windows|motif|metal|none][other parameters]&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;p&amp;gt;Choose the interface that is appropriate for your platform. For more about starting the JDataStore server, see &amp;quot;Launching JdsServer&amp;quot; in the &amp;quot;JDataStore Administration&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;keywords&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New keywords&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The asterisk following a keyword indicates that the keyword is &amp;lt;em&amp;gt;reserved&amp;lt;/em&amp;gt;. Reserved keywords can be used as SQL identifiers only if they are enclosed in double quotation marks. When quoted in this fashion, they are case sensitive. The words that have no asterisk are &amp;lt;em&amp;gt;nonreserved&amp;lt;/em&amp;gt; keywords. They can be used with or without double quotes and are case insensitive when note in quotes.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For a complete list of keywords, see &amp;lt;strong&amp;gt;Keywords&amp;lt;/strong&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;ADMIN*&amp;lt;br&amp;gt;ADMINISTRATOR*&amp;lt;br&amp;gt;AUTHORIZATION*&amp;lt;br&amp;gt;BIT_LENGTH*&amp;lt;br&amp;gt;COALESCE*&amp;lt;br&amp;gt;CURRENT_ROLE*&amp;lt;br&amp;gt;CURRENT_USER*&amp;lt;br&amp;gt;EXECUTE*&amp;lt;br&amp;gt;GRANT*&amp;lt;br&amp;gt;ISOLATION*&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;LEVEL*&amp;lt;br&amp;gt;NONE*&amp;lt;br&amp;gt;NULLIF*&amp;lt;br&amp;gt;OCTET_LENGTH*&amp;lt;br&amp;gt;ONLY*&amp;lt;br&amp;gt;OPTION*&amp;lt;br&amp;gt;PRIVILEGES*&amp;lt;br&amp;gt;PUBLIC*&amp;lt;br&amp;gt;READ&amp;lt;br&amp;gt;RENAME*&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;RESOLVABLE*&amp;lt;br&amp;gt;REVOKE*&amp;lt;br&amp;gt;ROLE&amp;lt;br&amp;gt;SCHEMA*&amp;lt;br&amp;gt;STARTUP*&amp;lt;br&amp;gt;TO*&amp;lt;br&amp;gt;TRANSACTION*&amp;lt;br&amp;gt;VIEW*&amp;lt;br&amp;gt;WITH*&amp;lt;br&amp;gt;WRITE&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;new_funcs&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New SQL functions&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;bit_length&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;BIT_LENGTH&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;BIT_LENGTH&amp;lt;/code&amp;gt; function gives the length in bits of a &amp;lt;code&amp;gt;STRING&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INPUTSTREAM&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;OBJECT&amp;lt;/code&amp;gt; value. For more information, see &amp;lt;code&amp;gt;BIT_LENGTH&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;case_function&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CASE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CASE function;SQL functions:CASE&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt; function returns a conditional value. For more information, see &amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;coalesce&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;COALESCE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;COALESCE function;SQL functions:COALESCE;non-NULL values, returning&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;COALESCE&amp;lt;/code&amp;gt; function returns the first non-NULL value from the expression list. For more information, see &amp;lt;code&amp;gt;COALESCE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;current_role&amp;quot;&amp;gt;CURRENT_ROLE&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CURRENT_ROLE function;SQL functions:CURRENT_ROLE;roles&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CURRENT_ROLE&amp;lt;/code&amp;gt; function returns the current role, or NULL if no role has been set using the &amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt; statement. For more information, see &amp;lt;code&amp;gt;CURRENT_ROLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. &amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;current_user&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CURRENT_USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CURRENT_USER function;SQL functions:CURRENT_USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CURRENT_USER&amp;lt;/code&amp;gt; function returns the name of the current user. For more information, see &amp;lt;code&amp;gt;CURRENT_USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;db_admin&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DB_ADMIN: administration functions&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DB_ADMIN function;SQL functions:DB_ADMIN&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; is a new JDataStore Java class whose methods are implemented in SQL as built-in stored procedures. Use &amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; for various database administration tasks such as automatic failover, incremental backup, creating and managing datasources, viewing and managing connections, verifying tables, and displaying database privileges and properties, locks, status logs, procedure privileges, and roles granted.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; provides a brief description of each method, implemented as a SQL function. The description of each method includes a link to the exact implementation and &amp;lt;a href=&amp;quot;../apiref/com/borland/datastore/driver/DB_ADMIN.html#method_summary&amp;quot;&amp;gt;&amp;lt;code&amp;gt;com.borland.datastore.driver.DB_ADMIN.html&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt; in the API reference. (The preceding link works when this document is in the &amp;lt;code&amp;gt;&amp;lt;em&amp;gt;JDataStore_home&amp;lt;/em&amp;gt;\doc&amp;lt;/code&amp;gt; directory.) &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;You can call these methods from SQL using the &amp;lt;code&amp;gt;CALL&amp;lt;/code&amp;gt; statement. They can be called without creating a &amp;lt;code&amp;gt;JAVA_METHOD&amp;lt;/code&amp;gt; alias because JDataStore SQL recognizes the methods in &amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; as built-in java methods.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; provides the following methods:&amp;lt;/p&amp;gt;&amp;lt;table border=&amp;quot;0&amp;quot; cols=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;code&amp;gt;ALTER_DATABASE&amp;lt;br&amp;gt;ALTER_MIRROR&amp;lt;br&amp;gt;ALTER_MIRROR_SCHEDULE&amp;lt;br&amp;gt;CLOSE_CONNECTION&amp;lt;br&amp;gt;CREATE_MIRROR&amp;lt;br&amp;gt;CREATE_MIRROR_SCHEDULE&amp;lt;br&amp;gt;DROP_MIRROR&amp;lt;br&amp;gt;DROP_MIRROR_SCHEDULE&amp;lt;br&amp;gt;GET_CONNECTIONS&amp;lt;br&amp;gt;GET_DATABASE_PRIVILEGES&amp;lt;br&amp;gt;GET_DATABASE_PROPS&amp;lt;br&amp;gt;GET_DATABASE_STATUS_LOG_FILTER&amp;lt;br&amp;gt;GET_LOCKS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;code&amp;gt;GET_MIRRORS&amp;lt;br&amp;gt;GET_NEWEST_STATUS_LOG_ID&amp;lt;br&amp;gt;GET_OLDEST_STATUS_LOG_ID&amp;lt;br&amp;gt;GET_PROCEDURE_PRIVILEGES&amp;lt;br&amp;gt;GET_ROLE_GRANTS&amp;lt;br&amp;gt;GET_STATUS_LOG_FILTER&amp;lt;br&amp;gt;GET_STATUS_LOG&amp;lt;br&amp;gt;GET_THIS_MIRROR&amp;lt;br&amp;gt;SET_DATABASE_STATUS_LOG_FILTER&amp;lt;br&amp;gt;SET_PRIMARY_MIRROR&amp;lt;br&amp;gt;SET_STATUS_LOG_FILTER&amp;lt;br&amp;gt;SYNCH_MIRROR&amp;lt;br&amp;gt;VERIFY&amp;lt;/code&amp;gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt; &amp;lt;br&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;DB_UTIL&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DB_UTIL: numeric, string, and date/time functions&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DB_UTIL functions;SQL functions:DB_UTIL;math functions;string functions;date/time functions;utilities:DB_UTIL&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_UTIL&amp;lt;/code&amp;gt; is a new JDataStore Java class whose methods  are implemented in SQL as built-in stored procedures. They are a collection of SQL utility functions that perform numeric, string and date/time operations on data stored in database tables. &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_UTIL&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; provides a brief description of each method. The description of each method includes a link to the exact implementation in &amp;lt;a href=&amp;quot;../apiref/com/borland/datastore/driver/DB_ADMIN.html#method_summary&amp;quot;&amp;gt;&amp;lt;code&amp;gt;com.borland.datastore.driver.DB_ADMIN.html&amp;lt;/code&amp;gt;&amp;lt;/a&amp;gt; in the API reference. (The preceding link works when this document is in the &amp;lt;code&amp;gt;&amp;lt;em&amp;gt;JDataStore_home&amp;lt;/em&amp;gt;\doc&amp;lt;/code&amp;gt; directory.) &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;You can call these methods from SQL using the &amp;lt;code&amp;gt;CALL&amp;lt;/code&amp;gt; statement. They can be called without creating a &amp;lt;code&amp;gt;JAVA_METHOD&amp;lt;/code&amp;gt; alias because JDataStore SQL recognizes the methods in &amp;lt;code&amp;gt;DB_ADMIN&amp;lt;/code&amp;gt; as built-in java methods.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;DB_UTIL&amp;lt;/code&amp;gt; provides the following methods&amp;lt;/p&amp;gt;&amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;code&amp;gt;&amp;lt;br&amp;gt;ACOS&amp;lt;br&amp;gt;ASIN&amp;lt;br&amp;gt;ATAN&amp;lt;br&amp;gt;ATAN2&amp;lt;br&amp;gt;CEILING&amp;lt;br&amp;gt;COS&amp;lt;br&amp;gt;COT&amp;lt;br&amp;gt;DEGREES&amp;lt;br&amp;gt;EXP&amp;lt;br&amp;gt;FLOOR&amp;lt;br&amp;gt;LOG&amp;lt;br&amp;gt;LOG10&amp;lt;br&amp;gt;MOD&amp;lt;br&amp;gt;PI&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;POWER&amp;lt;br&amp;gt;RADIANS&amp;lt;br&amp;gt;RAND&amp;lt;br&amp;gt;ROUND&amp;lt;br&amp;gt;SIGN&amp;lt;br&amp;gt;SIN&amp;lt;br&amp;gt;SQRT&amp;lt;br&amp;gt;TAN&amp;lt;br&amp;gt;TRUNCATE&amp;lt;br&amp;gt;ASCII&amp;lt;br&amp;gt;TO_CHAR&amp;lt;br&amp;gt;DIFFERENCE&amp;lt;br&amp;gt;INSERT_STRING&amp;lt;br&amp;gt;LEFT_STRING&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;code&amp;gt;&amp;lt;br&amp;gt;REPEAT&amp;lt;br&amp;gt;REPLACE&amp;lt;br&amp;gt;RIGHT&amp;lt;br&amp;gt;SOUNDEX&amp;lt;br&amp;gt;SPACE&amp;lt;br&amp;gt;DAYNAME&amp;lt;br&amp;gt;DAYOFWEEK&amp;lt;br&amp;gt;DAYOFYEAR&amp;lt;br&amp;gt;MONTHNAME&amp;lt;br&amp;gt;QUARTER&amp;lt;br&amp;gt;TIMESTAMPADD&amp;lt;br&amp;gt;TIMESTAMPDIFF&amp;lt;br&amp;gt;WEEK&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt; &amp;lt;br&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;nullif&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;NULLIF&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;NULLIF function;SQL functions:NULLIF;expressions:comparing;comparisons:expressions with NULLIF&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;NULLIF&amp;lt;/code&amp;gt; function compares two expressions. It returns NULL if the expressions are equal. Otherwise, it returns the first expression. It is logically equivalent to the following &amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt; expression: &amp;lt;code&amp;gt;CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;For more information, see &amp;lt;code&amp;gt;NULLIF&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;octet_length&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;OCTET_LENGTH&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;OCTET_LENGTH function;SQL functions:OCTET_LENGTH;length of string, imput stream, or object&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;OCTET_LENGTH&amp;lt;/code&amp;gt; function gives the length in bytes of a &amp;lt;code&amp;gt;STRING&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;INPUTSTREAM&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;OBJECT&amp;lt;/code&amp;gt; value. For more information, see &amp;lt;code&amp;gt;OCTET_LENGTH&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;user_function&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;USER function;SQL functions:USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;USER&amp;lt;/code&amp;gt; function returns the name of the current user; this function is the same as &amp;lt;code&amp;gt;&amp;lt;a href=&amp;quot;#current_user&amp;quot;&amp;gt;CURRENT_USER&amp;lt;/a&amp;gt;&amp;lt;/code&amp;gt;. For more information, see &amp;lt;code&amp;gt;CURRENT_USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;new_sql&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New and updated SQL statements&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_schema&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE SCHEMA&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE SCHEMA statement;schemas:creating;SQL statements:CREATE SCHEMA&amp;quot;--&amp;gt;&amp;lt;!--BNDX=&amp;quot;statements, &amp;lt;em&amp;gt;see&amp;lt;/em&amp;gt; SQL statements&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt; statement creates a name space for tables, views, and methods. You can use &amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt; to create multiple objects in one SQL statement. For a discussion of how schemas work in JDataStore, see &amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DROP SCHEMA&amp;lt;/code&amp;gt;in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_schema&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP SCHEMA&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP SCHEMA statement;schemas:dropping;SQL statements:DROP SCHEMA&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP SCHEMA&amp;lt;/code&amp;gt; statement deletes the specified schema. If the command is used without options, it is the same as specifying the &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt; option: the schema to be dropped must be empty. The command fails if the schema contains any objects. &amp;lt;/p&amp;gt; &amp;lt;p class=&amp;quot;bscan&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;bscan&amp;quot;&amp;gt;Note: &amp;lt;/span&amp;gt;The &amp;lt;code&amp;gt;DROP SCHEMA&amp;lt;/code&amp;gt; command used with the &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; option is extremely powerful and should be used with caution. When this command is issued, it drops the schema and all of its objects and dependencies without any chance to change your mind. There is no undo.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_view&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE VIEW&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE VIEW statement;SQL statements:CREATE VIEW;views:creating&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE VIEW&amp;lt;/code&amp;gt; statement creates a derived table by selecting specified columns from existing tables. Views provide a way of accessing a consistent subcollection of the data stored in one or more tables. When the data in the underlying tables changes, the view reflects this change.&amp;lt;/p&amp;gt;For more information, see &amp;lt;code&amp;gt;CREATE VIEW&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;alter_view&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;ALTER VIEW&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;ALTER VIEW statement;SQL statements:ALTER VIEW;views:altering&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;ALTER VIEW&amp;lt;/code&amp;gt; statement modifies a view without losing dependent views and existing &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt;s. This statement can be used to change the name of a view, the columns that comprise the view, and whether the view has the &amp;lt;code&amp;gt;WITH CHECK OPTION&amp;lt;/code&amp;gt; constraint.  For more information, see &amp;lt;code&amp;gt;ALTER VIEW&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_view&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP VIEW&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP VIEW statement;SQL statements:DROP VIEW;views:dropping&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP VIEW&amp;lt;/code&amp;gt; statement drops the named view. By default, it fails if there are dependencies on the view. The &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; option drops the view and any dependent views. For more information, see &amp;lt;code&amp;gt;DROP VIEW&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_role&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE ROLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE ROLE statement;SQL statements:CREATE ROLE;roles:creating;privileges:roles&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE ROLE&amp;lt;/code&amp;gt; statement creates a named role. To complete this functionality, you must &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; privileges to the role, and &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; the role to one or more users. To make use of the privileges acquired in this fashion, the user issues a &amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt; statement.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;lt;code&amp;gt;CREATE ROLE&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; statement in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;set_role&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;SET ROLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;SET ROLE statement;SQL statements:SET ROLE;roles:activating;privileges:roles&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt; statement makes the named role active. The current user acquires all privileges assigned to that role. For more information, see &amp;lt;code&amp;gt;SET ROLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_role&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP ROLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP ROLE statement;SQL statements:DROP ROLE;roles:dropping&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP ROLE&amp;lt;/code&amp;gt; statement drops the specified role. For more information, see &amp;lt;code&amp;gt;DROP ROLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_table&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE TABLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE TABLE statement;JDataStore tables:creating;foreign keys;SQL statements:CREATE TABLE&amp;quot;--&amp;gt;&amp;lt;!--BNDX=&amp;quot;schemas:creating tables in;JDataStore tables:schemas&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;There are three new options for the &amp;lt;code&amp;gt;CREATE TABLE&amp;lt;/code&amp;gt; statement:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;The table name now incldues a schema name.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You have the option of specifying a position for each column.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You can use the [NOT] RESOLVABLE option to track data changes for DataExpress.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;lt;code&amp;gt;CREATE TABLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;alter_table&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;ALTER TABLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;ALTER TABLE statement;JDataStore tables:modifying;SQL statements:ALTER TABLE&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;There are several new options for the &amp;lt;code&amp;gt;ALTER TABLE&amp;lt;/code&amp;gt; statement:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;You can rename the entire table; this is how you assign a table to a different schema.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;You can make the table &amp;lt;code&amp;gt;RESOLVABLE&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;NOT RESOLVABLE&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;At the column level you can:&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Change the datatype of a column&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Set whether a collumn is nullable&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Rename a column&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Change the position of a column within the table&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;lt;code&amp;gt;ALTER TABLE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_table&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP TABLE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP TABLE statement;SQL statements:DROP TABLE;JDataStore tables:deleting&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP TABLE&amp;lt;/code&amp;gt; statement deletes a table and its indexes from a JDataStore database. &amp;lt;code&amp;gt;DROP TABLE&amp;lt;/code&amp;gt; has two new options: &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_java_class&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE JAVA_CLASS&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE JAVA_CLASS statement;SQL statements:CREATE JAVA_CLASS;Java classes:creating;creating:java classes&amp;quot;--&amp;gt; &amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE JAVA_CLASS&amp;lt;/code&amp;gt; statement makes all public static methods of a Java class available to JDataStore SQL as stored procedures or UDFs. For more information, see &amp;lt;code&amp;gt;CREATE JAVA_CLASS&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_java_class&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP JAVA_CLASS&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP JAVA_CLASS statement;SQL statements:DROP JAVA_CLASS;Java classes:dropping;dropping:java classes&amp;quot;--&amp;gt;  &amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP JAVA_CLASS&amp;lt;/code&amp;gt; statement drops a stored class, making it unavailable for use in JDataStore SQL. For more information, see &amp;lt;code&amp;gt;DROP JAVA_CLASS&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;grant_statement&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;GRANT&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;GRANT statement;SQL statements:GRANT;database privileges, granting;privileges:granting;roles:granting privileges to;roles:granting to users&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; statement performs the following actions:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;It grants object privileges&amp;#8212;such as &amp;lt;code&amp;gt;INSERT&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;&amp;#8212;on tables or java methods to &amp;lt;code&amp;gt;PUBLIC&amp;lt;/code&amp;gt;, users, or roles.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It grants database privileges&amp;#8212;such as &amp;lt;code&amp;gt;STARTUP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RENAME&amp;lt;/code&amp;gt;&amp;#8212;to users or roles.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It grants roles to users or roles.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;For more information, see &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;revoke_statement&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;REVOKE&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;REVOKE statement;SQL statements:REVOKE;database privileges, revoking;roles:revoking privileges&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;REVOKE&amp;lt;/code&amp;gt; statement performs a number of actions:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;It revokes object privileges&amp;#8212;such as &amp;lt;code&amp;gt;INSERT&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;&amp;#8212;on tables or java methods from &amp;lt;code&amp;gt;PUBLIC&amp;lt;/code&amp;gt;, users, or roles. It has &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt;,options.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It revokes database privileges&amp;#8212;such as &amp;lt;code&amp;gt;STARTUP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RENAME&amp;lt;/code&amp;gt;&amp;#8212;from users or roles.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It revokes roles from users or roles.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It revokes the &amp;lt;code&amp;gt;ADMIN&amp;lt;/code&amp;gt; option from a role without revoking the role itself.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;It revokes the &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; option from a privilege without revoking the privilege itself.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;lt;code&amp;gt;REVOKE&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;create_user&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;CREATE USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;CREATE USER statement;SQL statements:CREATE USER;users:adding with CREATE USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;CREATE USER&amp;lt;/code&amp;gt; statement adds the named user and associated password to the database. The password is case sensitive, the user name is not. For more information, see &amp;lt;code&amp;gt;CREATE USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;alter_user&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;ALTER USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;ALTER USER statement;SQL statements:ALTER USER;users:editing with ALTER USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;ALTER USER&amp;lt;/code&amp;gt; statement sets a new password for an existing user.  For more information, see &amp;lt;code&amp;gt;ALTER USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;drop_user&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;DROP USER&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;DROP USER statement;SQL statements:DROP USER;users:removing with DROP USER&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;DROP USER&amp;lt;/code&amp;gt; statement drops a user and all objects that the user owns. It has &amp;lt;code&amp;gt;RESTRICT&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;CASCADE&amp;lt;/code&amp;gt; options. For more information, see &amp;lt;code&amp;gt;DROP USER&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;set_transaction&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;SET TRANSACTION&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;SET TRANSACTION statement;SQL statements:SET TRANSACTION;transactions: setting; transaction isolation levels, overview;isolation levels:setting&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The &amp;lt;code&amp;gt;SET TRANSACTION&amp;lt;/code&amp;gt; statement sets the properties for the following transaction. You can use it to specify the isolation level and whether the transaction is read-write or read-only. For more information, see &amp;lt;code&amp;gt;SET TRANSACTION&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. See &amp;lt;a href=&amp;quot;architecture.html#tx_management&amp;quot;&amp;gt;&amp;quot;Transaction management&amp;quot;&amp;lt;/a&amp;gt; in the &amp;quot;System Architecture&amp;quot; chapter for further discussion of JDataStore transaction management.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;tinyint&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New data type: TINYINT&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;JDataStore SQL now provides a one-byte integer data type, &amp;lt;code&amp;gt;TINYINT&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;BYTE&amp;lt;/code&amp;gt;). For more information, see &amp;quot;Datatypes&amp;quot; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;escape_functions&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;JDBC escape functions&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;JDBC escape functions;SQL functions:JDBC escape functions;functions:JDBC escape functions&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;JDataStore now provides a greatly expanded list of JDBC escape functions. For a complete list, see &amp;quot;JDBC escape functions&amp;quot; the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;isql&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;ISQL&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;JDataStore's new ISQL can be run in the SQL tab of the Server Console. These commands can also be issued from any system command console.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For a discussion of JDataStore new ISQL and a list of commands, see &amp;lt;code&amp;gt;ISQL&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;notes&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Product notes&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;choose&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Choosing between JdsExplorer and the Server Console&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The Server Console is a graphical interface that is new in JDataStore 7. In it, you can perform some of the tasks that you previously performed in JdsExplorer. In addition, Server Console provides access to many new features.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;From Server Console you can:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Create and edit datasources, connect to local or remote databases, and view and manage connections. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;View and manage database properties, and view database status logs, view table and row locks. and verify databases. You cannot create databases in Server Console.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Create and manage mirrors for incremental backup, auto failover, and load balancing.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Use the ISQL tab to execute all SQL and ISQL commands. There is a list of ISQL commands at the end of the SQL Reference chapter in the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. JdsExplorer off an environment for executing SQL commands, but you cannot execute ISQL commands there.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;You need JdsExplorer if you want to:&amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Perform user administration&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Manage license keys&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Work with and view table structure and content, including indexes.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Import tables from other databases and import text and images into a database&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Upgrade, downgrade, copy, encrypt/decrypt or pack a database. Database verification can be performed from either JdsExplorer or Server Console.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;p&amp;gt;Most of the tasks listed for JdsExplorer can be performed in the Server Console using the ISQL window.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;change_copy&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;A change to the &amp;quot;Copy JDataStore&amp;quot; menu item&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;JdsExplorer has a Copy JDataStore item on the Tools menu. Its function is different in JDataStore 7 then in earlier versions of the product. In previous versions of JDataStore, choosing Tools|Copy JDataStore brought up the Copy Streams dialog box, and made you select exactly which streams to copy. Now this menu item brings up a dialog in which you copy an entire database file.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;There is a new item on the JDataStore Tools menu: Copy Into Existing JDataStore. This item permits you to copy into an existing, empty JDataStore, which allows you to downgrade or encrypt databases.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;To copy individual tables between databases, use the Tools|Import chose in JdsExplorer.&amp;lt;/p&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;new_doc&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New and updated documentation&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;new_chaps&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;New chapters&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;There are two new chapters in the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;. &amp;lt;/p&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;The &amp;quot;What's New&amp;quot; chapter lists the new features and provides links into those topics in the book.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The &amp;quot;JDataStore Server Console&amp;quot; chapter provides details about the new Server Console interface and the things you can do with it.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;exapnd_sql&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Expanded SQL Reference&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The JDataStore implementation of the SQL language has been greatly enriched, and the SQL Reference chapter in the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; has been expanded and reorganized.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;escape&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;JDBC escape syntax&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;JDBC escape sequences;JDataStore tables:string functions;JDataStore tables:JDBC escape sequences;literals in JDBC escape sequences&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;The JDBC escape syntax was not previously documented. It is now in the &amp;quot;JDBC escape syntax&amp;quot; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;jdbc_resultset&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Stored procedures and JDBC ResultSets&amp;lt;/h3&amp;gt;&amp;lt;!--BNDX=&amp;quot;JDBC result set;result set, JDBC;returning a JDBC result set&amp;quot;--&amp;gt;&amp;lt;!--BNDX=&amp;quot;JDBC DataSets;DataSets, returning&amp;quot;--&amp;gt;&amp;lt;p&amp;gt;A Java stored procedure can produce a &amp;lt;code&amp;gt;ResultSet&amp;lt;/code&amp;gt; on the client by returning either a &amp;lt;code&amp;gt;ResultSet&amp;lt;/code&amp;gt; or a DataExpress &amp;lt;code&amp;gt;DataSet&amp;lt;/code&amp;gt; from the Java implementation of the stored procedure. The &amp;lt;code&amp;gt;DataSet&amp;lt;/code&amp;gt; is automatically converted to a &amp;lt;code&amp;gt;ResultSet&amp;lt;/code&amp;gt; for the user of the stored procedure.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Documentation on the feature has been expanded in JDataStore 7. For more information, see &amp;quot;Stored procedures and JDBC ResultSets&amp;quot; in the &amp;quot;Stored Procedures and UDFs&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt; &amp;lt;h2&amp;gt;&amp;lt;a name=&amp;quot;start&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Getting started with JDataStore 7&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;migration&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;Migrating older databases to JDataStore 7&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The big issue in migrating older databases to JDataStore 7 is that JdataStore 7 has the concept of schemas, and older databases do not. In JDataStore 7, every table belongs to a schema: the schema name is part of the table name. In general, when a user creates an object such as a table or a view, that object belongs to the user's own schema. There are a number of issues regarding the use of schemas. It will be helpful to you to read &amp;lt;code&amp;gt;CREATE SCHEMA&amp;lt;/code&amp;gt; in the &amp;quot;SQL Reference&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt; to understand how JDataStore 7 uses schemas before proceeding with migration.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For additional detail on migrating older JDataStore databases to JDataStore 7, see &amp;quot;Migrating older databases to JDataStore 7&amp;quot; in the &amp;quot;JDBC Quickstart&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;jb_bes&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;strong&amp;gt;Using JDataStore 7 with JBuilder and the Borland Enterprise Server&amp;lt;/strong&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;To make the latest version of JDataStore available to JBuilder and the Borland Enterprise Server (BES), you need to copy certain files form the JDataStore &amp;lt;em&amp;gt;lib&amp;lt;/em&amp;gt; directory to the &amp;lt;em&amp;gt;lib&amp;lt;/em&amp;gt; directory of the target product. The files are: &amp;lt;em&amp;gt;beandt.jar&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;dbtools.jar&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;dx.jar&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;jds.jar&amp;lt;/em&amp;gt;, &amp;lt;em&amp;gt;jdsremote.jar&amp;lt;/em&amp;gt;, and &amp;lt;em&amp;gt;jdsserver.jar&amp;lt;/em&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;For more information, see &amp;quot;Using JDataStore with JBuilder and the Borland Enterprise server&amp;quot; in the &amp;quot;JDBC Quickstart&amp;quot; chapter of the &amp;lt;cite&amp;gt;JDataStore Developer's Guide&amp;lt;/cite&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Field test note: For the field test, copying these files may cause some menu problems in JBuilder. These problems go away when you remove the copied files. This defect will be fixed for the final release.&amp;lt;/p&amp;gt;&amp;lt;h2&amp;gt;Change listing for each point release.&amp;lt;/h2&amp;gt;&amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_706&amp;quot;&amp;gt;Bugs Fixed in 7.06&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Mac installer has been replaced with an installer for intel Mac platform. PowerPC mac's are no longer supported.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Certain prepared queries with aggregators resulted in bad data.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Certain prepared queries with an IN operator resulted in a sporadic NullPointer exception. Safeguards have been added.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;If a range is specified in the WHERE clause for an autoincrement column, the wrong rows might be returned. This is also true for certain primary key columns that implicitly are converted into auto increment columns.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;JDataStore 7.006 has been certified for Microsoft Vista.  We recommend that the developer edition of JDataStore be installed outside of the &amp;#8220;Program Files&amp;#8221; directory.  The JDataStore .exe launchers depend on config files that are located in the same directory as the launcher.exe.  If the product is installed in the &amp;#8220;Program Files&amp;#8221; directory and Vista UAC is enabled, the changes to the config files will only take affect for the user that makes the modifications.  Note that this is mostly of concern to developers or server side installations that use one of the exe launchers.  These are the exe Launchers installed by the developer edition of JDataStore:  JdsServer*.exe, isql.exe, JdsExplorer*.exe, and ServerConsole*.exe.  Note that there are no issues for installing JDataStore jar files in the &amp;#8220;Program Files&amp;#8221; directory.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Data corruption from sql update statements under high concurrency environments has been fixed.&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;Thread deadlock in JdbcConnectionPool shutdown method that occurs when another thread is also returning a connection to the pool by calling java.sql.Connection.close method has been fixed.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;ArrayIndexOutOfBoundsException that occurs for descending sort operations on String columns&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Prepared statement with grouping criteria may produce incorrect results the second time it is executed when other statements that use the same table are prepared and executed.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Joins with range selection criteria for more than one table on columns with the same ordinal position can encounter value access errors indicating a type mismatch.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;DB_ADMIN.GET_CONNECTIONS() built in stored procedure will now include local connections in addition to remote connections.  This includes connections open with the DataStoreConnection and DataStore components.  Connections with a &amp;quot;USER&amp;quot; column that starts with &amp;quot;sys.&amp;quot; and connections that have a &amp;quot;REMARKS&amp;quot; column value of &amp;quot;Opener&amp;quot; are internal connections that do not keep a database from shutting down.&amp;lt;/li&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_705&amp;quot;&amp;gt;Bugs Fixed in 7.05&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;An UPDATE query which uses an aggregation of a subquery with an outer reference to set a column value could cause a NullPointerException.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;DatabaseMetaData.getIndexInfo() returned wrong information about auto increment columns.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;A combination of a 1-1 query of 2 tables with single integer column primary keys and an IN operator in the WHERE clause could cause an Exception.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Creating a table with a single integer column primary key and a different column as an auto increment column, will cause the auto increment column to not function.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Applications that close connections without closing open statements will incur a memory leak if the statements had executed queries that return ResultSets.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;SQL queries with an &amp;#8220;in clause&amp;#8221; selection criteria that references an indexed column may not return all rows that satisfy the in clause selection criteria.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Table open and close operations can fail if several connections are rapidly opening and closing connections.  This can also cause connection close operations to fail resulting in &amp;quot;lingering&amp;quot; connections in the DataStoreServer.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Statement caching provided by the connection pool does not properly cache or close statements.  Because resources and ResultSets are not closed until these unclosed statements are finalized, this can lead to out of memory conditions and large temporary database file sizes.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;For encrypted databases, the crash recovery system can encrypt modified blocks of the user table.  This is a mistake because the user table is the one table that cannot be encrypted in an encrypted database.  Note that this will only occur if some change is made to the user table since the last time the database was opened.  This problem can prevent the database from being opened or cause the user table to appear corrupt when database verification is performed.  We are working on a repair method for applications that have encountered this problem.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Support for opening encrypted databases that have part or all of the user table encrypted by the defect described above.  If the user table record for the user connecting is encrypted, the database cannot be opened.  In this case there is a new connection property called &amp;quot;priorFileName&amp;quot; that can be used to provide the name of a prior version of the encrypted database that can still be opened.  This can be specified as an extended JDBC property for JDBC connections.  There is also a DataStoreConnection.setPriorFileName as well.  Note that the prior database will only be used to unencrypt the user table that is not supposed to be encrypted in the first place.  If the user logging in does not have startup rights in both the prior and current database, the prior database will not be used for the open operation.  Once the database affected by this defect has been opened, it should be copied or packed into a new database file.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_704&amp;quot;&amp;gt;Bugs Fixed in 7.04&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;When &amp;quot;Tools | Encrypt JDataStore&amp;quot; or &amp;quot;Tools | Copy JDataStore&amp;quot; is selected from JdsExplorer, the resulting database has multiple entries for the SYSDBA user. This problem has been fixed.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;When combining an &amp;quot;order by&amp;quot; and an &amp;quot;in&amp;quot; and a sub select on a large set of records, it may result in an incorrect record count.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_703&amp;quot;&amp;gt;Bugs Fixed in 7.03&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;h4&amp;gt;Support for Hibernate&amp;lt;/h4&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Hibernate's automated test suites completed.  Hibernate dialect class provided in samples directory.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;h4&amp;gt;General defect corrections and improvements&amp;lt;/h4&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;ADMINISTRATOR is now a non reserved keyword in SQL. (It used to be a reserved keyword.)&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Corrected defect in remote driver where retrieving longer string or blob values sometimes caused the driver to hang. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Database check point events are now logged in the *STATUS * log files. These messages provide &amp;quot;remarks&amp;quot; on what is keeping a log file from being dropped. This can be useful when trying to diagnose why log files are not being automatically dropped. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;New ExtendedProperties.REMARKS property.  This can be set to an informative string.  This is displayed in many of the contexts in which user name is displayed.  Many applications use the same user for many connections.  The remarks property makes it easier to distinguish connections that use the same user name.  Remarks is displayed for lock error reporting, DB_ADMIN.GET_CONNECTIONS() builtin stored procedure and the connections node of the ServerConsole. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;h4&amp;gt;SMP support&amp;lt;/h4&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Completion of all automated stress tests on dual processor Windows XP and Redhat Enterprise Linux 3. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;h4&amp;gt;High availability corrected defects and improvements&amp;lt;/h4&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;General stability improvements. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Improved performance for mirror synchronization. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Eliminated problems where log files would never drop for databases with mirrors in certain situations. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Mirrors with the INSTANT_SYNCH or AUTO_FAIL_OVER property set will automatically have a mirror schedule item added to the SYS.MIRROR_SCHEDULE table.  This mirror schedule item is added when the mirror is created or when the INSTANT_SYNCH or AUTO_FAIL_OVER property is altered for a mirror that does not already have a mirror schedule item. This default mirror schedule item will synchronize the mirror every 10 seconds. This mirror schedule item can be dropped or altered after the mirror is created if so desired.  However, it is probably best to keep a mirror schedule item for each mirror so that the read only mirror database is kept up to date with the primary mirror. When INSTANT_SYNCH or the AUTO_FAIL_OVER property is set for a read only mirror its log records are constantly kept in synch with the primary mirror. However, these log records are not replayed against the read only mirror database until a synch operation is performed. The mirror schedule item will synch the mirror on a regular basis keeping the state of the read only mirror database very close or equal to the state of the primary mirror.  Two key benefits of having the readonly mirror databases up to date with the primary mirror are:  1) Fail over (manual or automatic) is much faster because little or no log records need to be replayed before the fail over operation.  2) Readonly mirror databases will reflect a more recent state of the database.  This will be important for applications that off load readonly queries from the primary mirror to readonly mirrors. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;ISQL show ddl command now outputs the sql call statements to recreate any mirrors configured for the database. This is useful to see how mirrors are can be created from executing a sql script. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The last known replay column for the mirrors table and mirror status table in the ServerConsole now displays these values in hex. The high 32 bits are the log file and the low 32 bits are the offset into the log files. These values determine when log files can be automatically dropped. For example a primary mirror cannot drop a log if a read only mirror has not replayed the contents of that log file. So if the last known replay for a read only mirror as a low log file for its last replay column, this will keep this log file and all log files greater than this log file from being dropped. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_702&amp;quot;&amp;gt;Bugs Fixed in 7.02&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;There have been many significant improvements in High availability Mirrors as well as Read-Only Transactions. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Mirroring support now drops unneeded log files when it should. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cannot use export or show ddl command when a database has multiple schemas because there are no schema creation statements emitted.  Insert statements for export also need to prefix table names with schema name. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;DatabaseMetadata now show a foreign keys for other schemas when logging in as SYSDBA. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;ADMIN is still a keyword, but not a reserved one. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;When two separate threads are allocating a new log file at the same time, the potential for a deadlock  no longer occurs. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;SHOW DDL did not generate &amp;quot;CREATE SCHEMA&amp;quot; statements.  This is needed if the output is to be executed against another database. &amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;Foreign keys are now reported in show ddl for non-default schema when logged in as sysdba (administrator). &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Show ddl command now works for a table with an autoincrement column. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;An exception is reported when there are two tables with foreign keys that reference each other, and both tables are being updated by separate transactions a lock timeout error can occur. This has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Wrong result from running join query has been fixed. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;a name=&amp;quot;fixed_701&amp;quot;&amp;gt;Bugs Fixed in 7.01&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Modify output of date and time to include at least 2 digits for day, month, minute, second, hours. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Remote JDBC driver improved server exception handling. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;A prepared query with a parameterized LIKE operator in the where clause e.g. &amp;quot;SELECT * FROM PERSON WHERE LASTNAME LIKE ?&amp;quot;was mistakenly executed with the parameter given first time the query was executed; thus subsequent executions would receive wrong results. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;A SQL query which uses an auto-increment field for a lookup or join may in certain circumstances yield the wrong result. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Tables with a column named INTERNALROW, could not be exported using ISQL. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The data presented in the ServerConsole and the SQL tab in JdsExplorer for a query like: &amp;quot;SELECT * FROM MY_VIEW&amp;quot; could not be edited even if the view was updateable. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;TxException LOCK_TIMEOUT errors fixed for situations where table lock escalation is triggered to max row locks exceeded. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Problem when value from source cursor had a maxInline setting that was larger than the destination cursor.  Cursor now can convert inline into blob if necessary. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Drop column no longer fails to have any affect if another connection has a prepared statement that references the same table. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The command SHOW TABLE in ISQL required an explicit schema name. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cannot drop primary mirror. Problem is now fixed. &amp;lt;/li&amp;gt; &amp;lt;li&amp;gt;ResultSetMetaData now returns the correct column count when an updateable ResultSet is used. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Column from Primary keys were sometimes reported to be nullable through DatabaseMetadata.getColumns().This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;If 2 timestamp values are given as 2 literals the first value is stored for both values. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The Date and Timestamp literal JDBC escape formats were incorrectly documented. This problem has been fixed. &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;</description>
      <link>http://cc.embarcadero.com/Item/25372</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=25372" type="application/zip" length="64032932" />
      <pubDate>2008-05-13T22:14:54</pubDate>
      <dc:date>2008-05-13T22:14:54</dc:date>
      <guid>http://cc.embarcadero.com/Item/25372</guid>
    </item>
    <item>
      <title>Using JDataStore as a Mobile Database in Wireless Devices</title>
      <description>These files are the companion files for a white paper on using JDataStore for Mobile/Embedded database applications.</description>
      <link>http://cc.embarcadero.com/Item/18676</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=18676" type="application/zip" length="4416282" />
      <pubDate>2003-06-05T20:50:43</pubDate>
      <dc:date>2003-06-05T20:50:43</dc:date>
      <guid>http://cc.embarcadero.com/Item/18676</guid>
    </item>
  </channel>
</rss>