Login ProductsSalesSupportDownloadsAbout |
Home » Technical Support » ElevateDB Technical Support » Support Forums » ElevateDB General » View Thread |
Messages 1 to 10 of 25 total |
2.03 Preliminary Release Notes |
Mon, Sep 14 2009 11:23 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Here are the preliminary release notes for 2.03, which looks like it will
finally see daylight on Wednesday. We had to cut a couple of features out due to lack of time, but they will be addressed in 2.04 as quickly as possible. Most notably, the row value support had to be cut out, along with some new XML and replication features. 2.03 Breaking Changes ===================== - The catalog format has been modified, so updating a catalog will cause it to be unusable by any previous 2.02 or earlier version of ElevateDB. - The LIKE operator may now be slightly slower for partial wildcard searches (LIKE 'Test%' or LIKE 'Test_') when executed on a large table. 2.03 New Features ================= ElevateDB General ----------------- - The buffer manager in the engine has been updated so that buffer references are resolved much quicker, especially over much larger buffer sizes. This will allow multi-user, file-sharing applications (non-CS) to specify higher buffer sizes for tables without encountering performance penalties related to buffer management overhead. - All native (non-managed code) versions of ElevateDB now have much better index updating performance with indexed CHAR and VARCHAR columns. Internal tests here indicate a performance improvement of around 40% for bulk inserts. - Insensitive query result sets are now buffered more aggressively, especially for aggregate queries (GROUP BY), resulting in much better performance. - A SELECT statement containing sub-queries in the SELECT column expressions can now return a sensitive result set. This means that a query like the following can return a sensitive result set: SELECT CustNo, (SELECT Company FROM customer WHERE customer.custno=orders.custno) AS Company FROM orders Furthermore, this means that updating the sensitive result set in a way that changes the results of the sub-query will automatically cause the "looked-up" value to change as necessary. This is extremely useful for situations where, in the past, you would normally use a join and get an insensitive result set. - Views now automatically update their columns when the base tables or views involved in the view SELECT definition change. - The EXECUTE IMMEDIATE SQL/PSM statement can now accept parameters via a USING clause. This is useful for situations where data ia already in a variable and building a dynamic SQL statement is more difficult than using a parameter. The following function illustrates such a case: FUNCTION "GetTableVersion" (IN TableName VARCHAR) RETURNS DECIMAL(19,2) BEGIN DECLARE Version DECIMAL(19,2) DEFAULT 0; EXECUTE IMMEDIATE 'SELECT Version INTO ? FROM Information.Tables WHERE Name=?' USING Version,TableName; RETURN Version; END - There is a new INTO clause for SQL SELECT statements that allow you to specify one or more OUT parameters as the target of a SELECT statement. Such a statement doesn't return a result set at all, which is useful for situations where you only want one, or a few, values from a specific row in a table. However, the use of the INTO clause requires that the SELECT statement only return a single row. The following SQL statement shows how this works: SELECT Version INTO :Version FROM Information.Tables WHERE Name=:TableName - The operation of the LIKE operator has been modified to work properly for special collation exceptions present in certain languages like German ('ss' collates as a single character). The LIKE operator can now correctly handle wildcard searches that involve such collation exceptions. - There are now RENAME SQL statements for all configuration-level and database-level objects that simply allow you to rename a given object. - The ALTER TABLE SQL statement now includes a RENAME COLUMN clause that allows you to rename a column. - Triggers can now be enabled and disabled on a per-session basis via the ENABLE TRIGGER and DISABLE TRIGGER SQL statements. The status of a trigger can be queried via the Triggers Information schema table and the new Enabled column. - You can now specify the execution order of triggers by using the new AT clause for the CREATE TRIGGER and ALTER TRIGGER SQL statements. - SQL jobs, scripts, stored procedures, functions, and triggers can now declare and use arrays. There is now also a CARDINALITY() SQL function for determining the actual length of an array. - The SQL CAST() function can now include format specifiers in the same way that the IMPORT TABLE and EXPORT TABLE support them. For example, the following SQL statement will return a result set where the LastInvoiceDate TIMESTAMP column is in "m/dd/yyy h:mm:ss n" format: SELECT CAST(LastInvoiceDate AS VARCHAR(24) DATE FORMAT 'm/dd/yyyy' TIME FORMAT 'h:mm:ss n') FROM customer - The START TRANSACTION SQL statement now includes a TIMEOUT clause that allows you to specify the total amount of time, in milliseconds, that ElevateDB should wait for a successful transaction lock on the database or tables specified in the START TRANSACTION statement until it displays a lock error. - All error messages now include a reference to the container object of the object that is the target of the error message. If an index name is referenced that does not exist, the error message will indicate that the referenced index does not exist in the table associated with the reference. For example, the following SQL statement: DROP INDEX NonExistent FROM customer will cause the following error message: ElevateDB Error #401 The index NonExistent does not exist in the table customer whereas previously the error message would be: ElevateDB Error #401 The index NonExistent does not exist - There are two new Information schema tables: TemporaryTables TemporaryViews The TemporaryViews table is used to show all derived tables that are currently defined. - There is a new OrdinalPos column for the following Configuration database tables: MigratorParams - There is a new OrdinalPos column for the following Information schema tables: TableColumns IndexColumns ConstraintColumns TriggerColumns Triggers ViewColumns ProcedureParams FunctionParams - The BACKUP DATABASE and RESTORE DATABASE statements have been altered to now allow the backup or restore of the database catalog only. - The ElevateDB Server now logs all server starts/stops, invalid logins, and unauthorized IP address connection attempts to the logged events (LogEvents table). - All migrator modules now include a parameter called BlankNullStrings will cause any NULL strings to be migrated over as blank strings (non-NULL) instead. - The Unicode DBISAM migrator modules now properly map any string columns in the source table to the proper code page during the migration process. This ensures that any multi-byte characters are properly mapped to the appropriate Unicode characters. - Jobs can now be scheduled on a MINUTE basis in addition to on an HOUR basis. This is useful for incrementally backing up a database via replication every minute or every few minutes. - There is a new QUOTEDSTR() SQL function for escaping single or double quotes in a string. - There is a new INTRANSACTION() SQL function for determining whether the current database (or a specific table in the current database) is involved in a transaction. - The DROP STORE SQL statement now also removes the target folder if the store was local. - You can now specify user-defined functions in generated columns. However, there is still a restriction on using user-defined functions in computed columns. This is due to how each type of column is populated in the C/S architecture - generated columns are populated on the server during an update, whereas computed columns are populated on-demand in the client application. ElevateDB VCL ------------- - ElevateDB now includes support for Delphi and C++Builder 2010. - The TEDBSession component now includes the ExcludeFromLicensedSessions property that can be used to exclude a session from the TEDBEngine.LicensedSessions count. This is useful for situations where you have a utility session that you want to exclude from your own licensing restrictions, such as when a session is used in a thread for performance reasons. Note This property does not cause the session to be excluded from the ElevateDB licensed session count, which is lower for all non-CS products. - The TEDBSession component now includes the SaveStoreFileToStream, SaveStreamToStoreFile, and CalculateCRC32ForStream methods for loading and saving files to and from stores via streams. This is useful for situations where you are storing non-ElevateDB files in an ElevateDB store and want to manipulate them at the stream level. - The TEDBDatabase component now includes an extra parameter for the StartTransaction method that allows you to specify the total amount of time, in milliseconds, that ElevateDB should wait for a successful transaction lock on the database or tables specified in the StartTransaction method call until it displays a lock error. - The TEDBDatabase component now includes the TableInTransaction method that allows you to check to see if a specific table is currently involved in a transaction. - The TEDBStoredProc component now supports executing functions in addition to stored procedures. The result of the function is contained in a result (TParam.ParamType=ptResult) parameter called "Result" that is automatically created when the function is prepared via the Prepare method. ElevateDB Manager ----------------- - There is a new HTML help sub-system which currently contains the ElevateDB SQL Reference and will soon contain complete ElevateDB Manager help content. - You can now rename any object using the appropriate Rename task link. - You can now create a copy of any object by using the appropirate Create Copy task link. - The script debugger now allows you to see the entire contents of a long variable in the Variables tab, especially long SQL statements, by just moving the cursor over the variable value. The length of time that the variable contents is displayed has also been increased. - All modal dialogs that execute SQL DDL statements (CREATE DATABASE, ALTER TABLE, etc.) now immediately display any error messages and give you the option of copying the generated SQL statement to a new SQL window for further modification and/or execution after the cause of the error is corrected. - There is a new task for jobs called Execute Job as Script that allows you to execute a job immediately as a script in a new SQL script window. This is useful for testing a job in real-time instead of waiting for the scheduled job to execute. - There is a new Views button above the Explorer treeview that allows you to choose how each node of the treeview should display its sub-items in the Properties window. The view is specific to the node, but the global view for all nodes can be changed via the Explorer/Preferences menu item under the Default Object View option on the Explore tab of the Preferences dialog. - The Reverse-Engineer Database task now supports the generation of an upgrade script that will upgrade a source database to a specific target database. In addition, you can now specify collation conversions that will automatically convert source collation references to a new target collation reference during the reverse-engineering process. This is useful when reverse-engineering a Unicode database to a script that needs to be executed with the ANSI version of ElevateDB or the ElevateDB Manager. - Double-clicking on any Explorer treeview node now automatically brings forward the Properties window for that node. - You can now reverse-engineer any database object (excluding the databases themselves and similar configuration-level objects like jobs or stores) by dragging the object from the Explorer treeview to any SQL statement or script window. The ElevateDB Manager will automatically add any necessary EXECUTE IMMEDIATE statements if the object is being dragged and dropped on an SQL script. - There is now a Close All option for all folders in the Explorer tree view that will close all sub-objects that are contained within that folder. - You can now open any store file by clicking on the Open File task. The ElevateDB Manager will automatically use the Windows shell to launch the associated application (if one exists). This works for remote sessions also. Note The opened file is stored locally as a temporary file and you will be prompted to propogate any modifications to the file back to the source file. The ElevateDB Manager uses a CRC32 checksum to determine if the file has changed. - There is now an active index selection combo box for the table window, in addition to being able to select an index by clicking on a grid column header button. - You can now drag and drop the grid column headers in order to re-order the display of the columns in a table, including scrolling the column headers to move a column to a position that is outside of the currently-viewable set of columns. - The table window grid column layout saving/loading has been modified so that it automatically detects any changes in the base table columns and reverts the column layout to match the base table. Previously you would have to manually reset the column layout. - All combo boxes that offer selections of objects display their drop-down lists in alphabetical order for easier selection. - The Create/Edit session dialog will now offer to create a non-existent configuration folder, if such a folder is specified on the Local Configuration tab. - The F6 key now brings forward the Properties window for the currently-selected node in the Explorer treeview. - The parameters entry for SQL statements now allows you to specify the data type of any parameter. This is useful for situations where ElevateDB cannot determine the data type of a parameter, such as when a parameter is used in a CAST() SQL function. - INTERVAL types and BLOB/BYTE types are now displayed properly in grids and can be entered properly in their textual form. Note: some of the ElevateDB Manager improvements have been in place already in prior builds for 2.02. -- Tim Young Elevate Software www.elevatesoft.com |
Tue, Sep 15 2009 2:20 AM | Permanent Link |
"Sorin H" | Hello Tim
What about the cacheupdate issue? Thanks Sorin __________ Information from ESET NOD32 Antivirus, version of virus signature database 4425 (20090914) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com |
Tue, Sep 15 2009 2:43 AM | Permanent Link |
Uli Becker | Tim Young,
> Here are the preliminary release notes for 2.03, which looks like it will > finally see daylight on Wednesday. Great list of new features! Looking forward to it. Special thanks for the new "into"-extension. That's extremely useful. Uli |
Tue, Sep 15 2009 3:21 AM | Permanent Link |
Francisco Fernandez | Tim.
mmmmmmmmmmmm.... how many hands do you have? |
Tue, Sep 15 2009 4:00 AM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Tim
Looks good generally. I was hoping that the erase .old's would make it but I suppose that's what Windows Explorer is for Roy Lambert |
Tue, Sep 15 2009 4:50 AM | Permanent Link |
Charalampos Michael | Dear Sorin,
> What about the cacheupdate issue? Cached updates are already implement in the latest 2.02 build but i guess Tim forgot to mention. -- Charalampos Michael - [Creation Power] - http://www.creationpower.gr |
Tue, Sep 15 2009 4:51 AM | Permanent Link |
Charalampos Michael | Dear Tim,
> - The LIKE operator may now be slightly slower for partial wildcard searches > (LIKE 'Test%' or LIKE 'Test_') when executed on a large table. Why will be slower ? -- Charalampos Michael - [Creation Power] - http://www.creationpower.gr |
Tue, Sep 15 2009 8:53 AM | Permanent Link |
Uli Becker | Charalampos,
> Why will be slower ? Because of the necessary changes concerning this: << The operation of the LIKE operator has been modified to work properly for special collation exceptions present in certain languages like German ('ss' collates as a single character). The LIKE operator can now correctly handle wildcard searches that involve such collation exceptions. >> Uli |
Tue, Sep 15 2009 8:59 AM | Permanent Link |
"Mauro Botta" | Hi
the optimize for 2' field-index is already present in 2.03 build zero ? |
Tue, Sep 15 2009 12:57 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Sorin,
<< What about the cacheupdate issue? >> Oops, I knew that I missed something. I'll update the list. -- Tim Young Elevate Software www.elevatesoft.com |
Page 1 of 3 | Next Page » | |
Jump to Page: 1 2 3 |
This web page was last updated on Wednesday, May 15, 2024 at 08:40 PM | Privacy PolicySite Map © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? E-mail us at info@elevatesoft.com |