Open Source RDBMS - Seamless, Scalable, Stable and Free

English | Login |Register

CUBRID 2008 R2.2 Release Note

Below you will see the detailed overview of the new CUBRID 2008 R2.2 release.

Table of Contents

  1. Overview
  2. Information about CUBRID 2008 R2.2
  3. What's New in CUBRID 2008 R2.2
  4. What's new in CUBRID Manager 2008 R2.2
  5. Caution

1. Overview

Information

This release note contains information about the CUBRID 2008 R2.2 version. For the recent version of this release note, see the CUBRID Open Source Project site (http://www.cubrid.org/release_notes).

Revision History

Changes in this release note of CUBRID 2008 R2.2 are as follows:

Date

Description

May, 2010

CUBRID 2008 R2.2 Release

References

The documents that are distributed with the CUBRID 2008 R2.2 product are as follows:

Document

Description

Release Note

Contains new and changed features of this release of CUBRID.

Manual

Contains Quick Start Guide, CUBRID Architecture, SQL Guide, Performance Tuning Guide, Administrator's Guide, CUBRID Manager Guide and API references.

Note: You may need to log-in to access the manual links provided in this document.

(ID: anonsvn, PASSWORD: anonsvn)

Bug Report and User's Feedback

CUBRID welcomes your active participation in bug reporting and looks forward to your candid feedback. You can register your bug reports and feedbacks at the following sites.

Document

Description

Bug Report

CUBRID Open Source Project: https://sourceforge.net/projects/cubrid

User's Feedback

CUBRID Open Source Project: https://sourceforge.net/projects/cubrid

CUBRID web site: http://www.cubrid.org

Additional Information about CUBRID

You can find useful information about CUBRID in the following sites.

Information

Site

CUBRID Product

http://www.cubrid.org/about

CUBRID License

http://www.cubrid.org/license

CUBRID User Documents

http://www.cubrid.org/documentation

Information about CUBRID 2008 R2.2

Features of CUBRID 2008 R2.2 Release

CUBRID is an open source DBMS providing the high-performance, stability, scalability and availability required for web service applications. The features of this CUBRID 2008 R2.2 release are as follows:

Improved INSERT performance

The INSERT performance is improved by modifying an algorithm to achieve I/O load balancing when the INSERT operations are concentrated at a certain point of time. The following graph shows a change in Transactions per Second (TPS) over 3 hours in a workload, in which INSERT operations were made on 40 tables. You can see that the TPS is increased by more than 10% and the number of sections, in which the TPS is zero, also disappears as compared to CUBRID 2008 R2.0. image001.png

Increased space reusability

It is modified to make page spaces to be sufficiently reused in a workload where the INSERT and DELETE operations are repeated. The following table shows the number of pages left when executing the INSERT operation after executing the DELETE or DROP operation for a table in which 1.3 million records (500,000 pages) are stored. You can see that the space reusability for CUBRID 2008 R2.2 is dramatically increased as compared to its earlier version.

Workload

CUBRID 2008 R2.1

CUBRID 2008 R2.2

After DELETE

(pages)

After INSERT

(pages)

Reusability

(%)    

After DELETE

(pages)

After INSERT

(pages)

Reusability

(%)    

INSERT - DELETE ALL - INSERT

275362

57213

20.8

275362

254850

92.6

INSERT - DROP - CREATE - INSERT

275362

50746

18.4

275362

274483

99.7

Enhanced HA feature

Resource management and failure detection features are included for the CUBRID HA. Therefore, the dependence on Linux Heartbeat package used in the existing version of CUBRID is removed, and it becomes easier to configure HA environment and manage related resources. For more information on changes, see What’s New in CUBRID 2008 R2.2.

Supporting Platforms and System Requirements

The platforms compatible with the CUBRID 2008 R2.2 and hardware/software requirements for installation are as follows:

Supporting platform

Memory size

Disk space

Software requirement

Windows 32/64-bit  (XP, 2003, Vista)

1G or higher

500MB or higher

JRE 1.5 or higher

(required when CUBRID Manager or Java stored procedure is used)

.NET Framework 2.0 or higher

(required when CUBRID Service Tray is used)

Microsoft Visual C++ 2008 Redistributable Package

Linux 32/64-bit (Linux kernel 2.4/glibc 2.3.4 or higher)

1G or higher

500MB or higher

JRE 1.5 or higher

(required when CUBRID Manager or Java stored procedure is used)

You can download the Microsoft Visual C++ 2008 Redistributable Package at the following link. Check the installation language. For x86: http://www.microsoft.com/downloads/details.aspx?familyid=9b2da534-3e03-4391-8a4d-074b9f2bc1bf For x64: http://www.microsoft.com/downloads/details.aspx?familyid=bd2a6171-e2d6-4230-b809-9a8d7548c1b6

License

The GNU GPL v2 or later is applied to the CUBRID server engine and the BSD license is applied to the CUBRID Manager and interfaces (API). For more information, see the CUBRID web site. (http://www.cubrid.org/license)

Version Compatibility and Operability

Compatibility of applications and CUBRID Manager

CUBRID 2008 R2.2 ensures backward compatibility for applications. Therefore, you can access to the CUBRID 2008 R2.2 database without modifying applications that are used in its existing version. For the applications that use CUBRID C-API or CCI, they must be linked with libraries of CUBRID 2008 R2.2 version. However, CUBRID Manager only ensures backward compatibility for CUBRID 2008 R2.0 version servers or higher, so you cannot access to CUBRID 2008 R1.x version servers.

Database Compatibility

An old version database must be migrated if the old version is upgraded to CUBRID 2008 R2.2. Whether database migration is needed for each version is shown below.

From             To

CUBRID 2008 R1.x

CUBRID 2008 R2.0

CUBRID 2008 R2.1

CUBRID 2008 R2.2

CUBRID 2008 R1.x

Not necessary

Necessary

Necessary

Necessary

CUBRID 2008 R2.0

Necessary

Not necessary

Not necessary

Necessary

CUBRID 2008 R2.1

Necessary

Not necessary

Not necessary

Necessary

Interoperability

If the CUBRID DB server and its broker server are separately operated, their interoperability is guaranteed even when their operating systems are different. However, the CUBRID Bit version and the OS Bit version must be the same. For example, the 64-bit DB server for Linux is interoperable with the 64-bit broker server for Windows, but it is not interoperable with the 32-bit broker server.

How to install CUBRID 2008 R2.2

Installing on Linux

An installation package for Linux is provided as a script that includes Linux RPM, tar.gz and binaries. For more information about installation, see [Manual> Getting Started with CUBRID>Installing and Running>Installing and Running on Linux]. (anonsvn/anonsvn)

Installing on Windows

An installation guide for Windows is provided and you can simply install CUBRID using an installation wizard. For more information about installation, see [Manual> Getting Started with CUBRID>Installing and Running>Installing and Running on Windows]. (anonsvn/anonsvn)

Configuring CUBRID and OS environment variables

Before you start CUBRID, it is required to configure CUBRID and OS environment variables. Especially, before you start CUBRID Manager and Java stored procedures, it is required to configure JAVA environment variables. For more information about the configuration, see [Manual> Getting Started with CUBRID>Before You Start CUBRID> Configuring the Environment Variable] and [Manual> Java Stored Functions/Procedures>Environment Configuration for Java Stored Functions/Procedures]. (anonsvn/anonsvn)

How to upgrade to CUBRID 2008 R2.2

Cautions for upgrade

l Saving the existing configuration files Archive the existing configuration files(cubrid.conf, cubrid_broker.conf, cm.conf) that are in the $CUBRID/conf directory and the database location file (databases.txt) in the $CUBRID_DATABASES directory. l Migrating a Database A database of CUBRID 2008 R2.2 is not compatible with that of the existing version. Therefore, you need to migrate the existing database into that of CUBRID 2008 R2.2. See Migration Procedures in this document. l Checking parameter changes In CUBRID 2008 R2.2, parameters are changed as follows. Therefore, pay attention when you apply the existing configuration file.

 

Parameter Name

Related issues

Changed

INDEX_SCAN_OID_BUFFER_PAGES

CUBRIDSUS-2124

Added

MAX_FLUSH_PAGES_PER_SECOND, ADAPTIVE_FLUSH_CONTROL, SYNC_ON_NFLUSH

HA_PORT_ID, HA_NODE_LIST

SELECT_AUTO_COMMIT

ERROR_LOG_WARNING

PAGE_FLUSH_INTERVAL_IN_MSECS

CUBRIDSUS-2216

CUBRIDSUS-2024

CUBRIDSUS-1988

CUBRIDSUS-1955

CUBRIDSUS-2232

l Reconfiguring environments for replication or HA In a system where replication and HA features are used, it is required to reconfigure the environment after migrating a database.

Database Migration Procedures

CUBRID provides the [CUBRID installation directory]/bin/migrate_r22 utility to easily migrate a database. In addition, the cubrid unloaddb/loaddb utility can be used for migration. See [Manual> Administrator's Guide>Database Migration]. The procedures for migrating a database to the CUBRID 2008 R2.2 database using the migration tool are as follows:

Database migration procedures in HA environment

CUBRID 2008 R2.2 supports the CUBRID Heartbeat feature which makes it possible to detect a node failure and manage resources. Therefore, the Linux Heartbeat package used in the existing version is no longer used, and how to configure and operate the HA environment has been changed. If you use the HA feature, you must migrate a master database and then establish the HA environment using the backup file. image002.png Figure 1 Example of HA configuration in CUBRID 2008 R2.2 A scenario will be described below, in which the current service is stopped to perform upgrade in the environment where a broker, a master DB and a slave DB are operating respectively at different servers. For a scenario in which upgrade is performed without stopping the service, see a separate guide document. The database migration procedures in the HA environment are as follows:

Step

Linux Environment

Windows Environment

C1 step:

Stop CUBRID Service

% cubrid service stop

Select CUBRID Service Tray > [Exit].

C2 step:

Back up the existing DB

C2a: Back up DB in case you restore to the existing version while using CUBRID 2008 R2.2, and store the backup file in a specific directory (R21_backup).

% mkdir R21_backup

% cubrid backupdb -S ?D R21_backup <db_name>

C2b: Store the existing databases.txt file and the configuration files in a specific directory.

After performing C2a and C2b steps, delete the existing version of CUBRID. Note that when you are prompted with “Do you want to delete all the existing version of databases and the configuration files?" make sure to select "No" to protect the existing databases.

C3 step:

Install 2008 R2.2

See How to install CUBRID 2008 R2.2 in this document.

Same as in Linux environment

C4 step:

Run the migration tool

C4a: Copy the databases.txt, which is stored in C2b step, to the directory in which 2008 R2.2 is installed.

C4b: Run the migrate_r22 utility as follows:

% migrate_r22 <db_name>

Select CUBRID Service Tray > [CUBRID Server] > [Stop] to stop the server, and then execute C4a and C4b steps.

C5 step:

Back up 2008 R2.2 version of DB

Back up only when the database version is R1.x. If the existing version is R2.x, you may skip C5 step.

% cubrid backupdb -S <db_name>

Same as in Linux environment

C6 step:

Configure CUBRID environment and start CUBRID Service

Modify the configuration file. At this time, you can use the configuration file that is stored in C2b step.

% cubrid service start

% cubrid server start <db_name>

CUBRID Service Tray > [CUBRID Server] > [Start]

Step

Description

H1 step: Stop HA-related services and remove the existing Linux Heartbeat

% cubrid broker stop

% service heartbeat stop

% chkconfig --del heartbeat

% pkill -u user1 -f "cub_master"

H2-H5 steps: Execute C2-C5 steps in the master server

Upgrade CUBRID and migrate databases in the master server and then back up 2008 R2.2 databases.

H6 step: Install CUBRID 2008 R2.2 in the slave server

For more information about installation, see How to install CUBRID 2008 R2.2 in this document.

H7 step: Restore the backup copy of the master server in the slave server.

Restore the 2008 R2.2 database backup copy (testdb_bk*) of the master server, which is generated in H5 step, in the slave server.

% scp user1@m_server:~/DB/testdb/testdb_bk0v000 .

% scp user1@m_server:~/DB/testdb/log/testdb_bkvinf ./log/.

% cubrid restoredb testdb

H8 step: Reconfigure HA environment and start HA mode

Configure the HA start script (cubrid-ha) and the configuration file (cubrid.conf).

Start DB in the HA mode in the master and slave servers.

 [root@m_server~]# service cubrid-ha start

[root@s_server~]# service cubrid-ha start

H9 step: Install CUBRID 2008 R2.2 in the broker server and start a broker

For more information about installation, see How to install CUBRID 2008 R2.2 in this document.

Configure the broker and start the broker. See [Manual>Administrator's Guide>CUBRID HA Environment Configuration]. (anonsvn/anonsvn)

% cat cubrid_broker.conf

ACCESS_MODE=RW

% cubrid broker start

How to reconfigure replication

If you use the replication feature, you must migrate a master database and then establish the replication environment using the backup file. For more information about replication, see [Manual > Administrator's Guide > Database Replication]. (anonsvn/anonsvn)

3. What's New in CUBRID 2008 R2.2

New Features

CUBRIDSUS-2024 Enhanced HA feature with node failure detection and resource management

As added features to detect a node failure and manage resources to earlier HA feature, new parameters are added as following. In addition, cubrid heartbeat utility to manage HA resources and cubrid-ha script are provided to make it possible to establish HA environment in an easy-to-follow way. The following parameters are added for the feature. § HA_PORT_ID: A parameter that configures the UDP port for sending/receiving a cubrid heartbeat message § HA_NODE_LIST: A parameter that specifies an HA node group identifier and node member host #cubrid.conf [common] ... HA_MODE = on HA_PORT_ID = 41523 HA_NODE_LIST = group_id@server_s1:server_s2

CUBRIDSUS-2475 Added a table option for reusing OID

A table option for reusing an OID (REUSE_OID) is provided. If data of a table REUSE_OID option is applied is deleted, the corresponding object identifier (OID) is also deleted. Any new data inserted afterwards can reuse the OID. Note that OID reusable tables are non-referable and application program is not allowed to read the OIDs of the table. CREATE TABLE reuse_tbl (a INT PRIMARY KEY) REUSE_OID;

CUBRIDSUS-2216 Implemented a flush control method and added related parameters

2008 R2.2 supports a feature that controls flush actions to achieve I/O load balancing at a certain point of time in a service where massive amount of data is continuously inserted. The following parameters are added for this feature. § ADAPTIVE_FLUSH_CONTROL: A parameter that adjusts the flush capacity on a regular basis according to current workload. Its default is "yes." § MAX_FLUSH_PAGES_PER_SECOND: A parameter that configures the maximum flush capacity when flushing pages in a buffer to a disk. Its default is "10,000" in pages. § SYNC_ON_NFLUSH: A parameter that configures the interval between before the fsync execution and after flushing data pages or log pages. Its default is "200" in pages.

CUBRIDSUS-1961 Added SERIAL CACHE feature to improve serial performance

A CACHE option is supported, which can cache a specified number of serials when defining SERIAL objects. CREATE SERIAL order_no START WITH 10000 INCREMENT BY 2 MAXVALUE 20000 CACHE 100;

CUBRIDSUS-1897 Supported HA feature in CCI

The cci_connect_with_url ( ) function is provided for HA connection configuration to support the HA feature in CCI. cci_connect_with_url ("cci:cubrid:host:port:dbname:user:password:?althost=host1:port:host2:port&rctime=100", "dba", "") l Note: When an active node failure occurs, it is on standby for a response to check the node failure. Therefore, it may be delayed to make an initial connection to the standby broker.

CUBRIDSUS-1988 Supported auto commit for the SELECT statement in CCI

An auto commit feature for the SELECT query in the CCI is supported, and a new broker parameter for auto commit is provided. #cubrid_broker.conf ... SELECT_AUTO_COMMIT = ON ... l Note: The auto commit feature is supported only when the result sets are fetched for all the n query request handles.

CUBRIDSUS-1330 Added a feature to disable the HA mode for each DB

When configuring the HA environment, you can configure the HA mode for the [common] section, and disable the parameter (HA_MODE) in the [@<database>] section for a database you want to start not in the HA mode.

Changed and Enhanced Features

CUBRIDSUS-1218 Changed that a host to connect must be specified when executing a utility in a multi-host environment

If multi hosts are specified for the same DB in the database location file (databases.txt), a host to connect must be specified next to the target database name before executing a utility. If not, an error message is prompted. [user1@localhost~]$ backupdb testdb@localhost

CUBRIDSUS-2232 Added PAGE_FLUSH_INTERVAL_IN_MSECS parameter

A parameter is provided to configure the interval between actions of flushing the dirty pages that are in data buffer in the background. § PAGE_FLUSH_INTERVAL_IN_MSECS: A parameter that specifies background flush interval in milliseconds l Note: The background flush parameter (page_flush_thread_wakeup_interval_in_secs) in the existing versions is deleted.

CUBRIDSUS-2124 Expanded the range of INDEX_SCAN_OID_BUFFER_PAGES parameter

In order to improve the index scan performance, the value range of the related parameter (index_scan_oid_buffer_pages) is expanded by changing its type from INT to FLOAT and its minimum value from 1 to 0.05. § index_scan_oid_buffer_pages: A parameter that specifies the buffer size in which the OID list is temporarily saved during index scan

CUBRIDSUS-2167 Added an option to specify a log page size to the cubrid createdb utility

An option allowing a user to specify a log page size when creating a database (--log-page-size) is added, so it can be different from the data page size. % cubrid createdb -s 8192 --log-page-size 4096 testdb

CUBRIDSUS-2018 Added the output items and options of the cubrid statdump utility

The query execution related information is added to the monitoring item which is obtained when executing the cubrid statdump utility or the csql session command ;hist. The query execution related information includes the number of SELECT/UPDATE/INSERT/DELETE statements execution and also the number of scan and join execution. In addition, the --cumulative (or ?c) option, which displays the accumulated execution statistics information of the database server, is added. % cubrid statdump ?i 5 ?-cumulative testdb

CUBRIDSUS-1955 Provided ERROR_LOG_WARNING parameter

A warning message, whose severity is relatively low, can be configured not to be recorded into an error log file, and the parameter (ERROR_LOG_WARNING) is provided for the function. #cubrid.conf ... error_log_level = notification ERROR_LOG_WARNING = no ... l Note: Because its default is 'no', change the setting as ERROR_LOG_WARNING=yes to check warning messages.

CUBRIDSUS-1964 Added error messages that are displayed when an interrupt occurs

In this version, if an interrupt is set up during transaction execution, an error message is displayed, which includes the corresponding transaction information as well as time stamps for both the time when the interrupt is actually set up and the time when the interrupt is detected. Time: 02/16/10 03:30:29.466 - ERROR *** ERROR CODE = -981, Tran = 8, CLIENT = db001.ccs:cub_user (297), EID = 250 Set interrupt to the transaction(7). Time: 02/16/10 03:30:31.466 - ERROR *** ERROR CODE = -4, Tran = 7, CLIENT = db001.ccs:cub_user (297), EID = 250 Has been interrupted.

CUBRIDSUS-2077 Accumulated count of the operations reflected into the slave DB under the HA environment

Because the *_counter column value of db_ha_apply_info table, which shows the status of replication log reflection by applylogdb process, is not initialized even when the applylogdb process is restarted, a user can now check the accumulated count value in this version.

CUBRIDSUS-1963 Changed query plan generation method to select the primary key index in highest priority when a primary key is defined

In this version, if the columns where a primary key is defined are all specified in the equation predicate of a WHERE clause, the query plan generation method is modified that the primary key index is selected in highest priority. In the existing version, a query plan, which allows another index to be selected, could be created under the same situation.

CUBRIDSUS-2154 Added a feature that outputs heap information to the cubrid diagdb utility

You can check the page space information in a heap file by specifying '-d' option as '9' when executing the cubrid diagdb utility. % cubrid diagdb -d 9 testdb

Fixed errors

CUBRIDSUS-1967 Fixed data mismatch in the replication environment

There occurs an I/O error and data mismatch between the master DB and the slave DB when the repl_agent process is restarted while a very long transaction is being copied. This error is fixed.

CUBRIDSUS-2029 Fixed data mismatch in the HA environment

Some of the master DB data is lost and not reflected to the slave DB when the applylogdb process is abnormally stopped. This error is fixed.

CUBRIDSUS-2707, 2748 Fixed the deleting operation error for an overflow record and the error that the applylogdb process is abnormally stopped during replication

If an overflow record whose size is bigger than data page size is inserted, the data is just saved with a wrong page link. Therefore, when there is a try to delete the record, the Object buffer underflow while reading error is displayed. In addition, in the existing version, if such an overflow record is entered into the master DB in the HA environment, the applylogdb process is abnormally stopped because of the operational error of the applylogdb process. This error is fixed.

CUBRIDSUS-2207 Fixed the error that the applylogdb process is abnormally stopped in the HA environment

If an archive log is deleted in the HA environment, an error message is displayed and the process is abnormally stopped because of an error with the page search algorithm of the applylogdb process. This error is fixed. "Unable to mount log disk volume/file "/home/cubrid/CUBRID/databases/db_1/testdb_lgar000" l Note: In the HA environment, only a certain number of archive logs are maintained by configuration of the log_max_archives parameter and excessive archive logs are automatically deleted. It may be possible that the applylogdb process may not be able to search for a requested page when the parameter is configured too small. Therefore, it is recommended to configure this parameter big enough and not to remove archive logs manually in the HA environment. In addition, do not use '-r' option (removing unnecessary archive logs) or '-sp' option (removing safely) when doing DB backup.

CUBRIDSUS-2123 Fixed the error that only a part of the multiple update operation of the master DB is reflected to the slave DB in the HA environment

When multiple update (i.e. no change to a primary key) is executed for a table in the master DB under the HA environment, the columns in other rows except the last row are not updated in the slave DB. This error is fixed.

CUBRIDSUS-2468 Fixed the error that the connection to the Read Only broker is not initialized when executing the cubrid_broker reset command in the JDBC

When auto commit feature is used in the JDBC in the HA environment, the connection to the corresponding broker is not initialized even when the cubrid_broker reset command is executed. This error is fixed.

CUBRIDSUS-1811,2023 Fixed the error that the server becomes infinite waiting state when the cubrid server stops

Although the cubrid server stop or cubrid service stop command is executed, the server does not stop normally because of the operational error of the cub_server process. This error is fixed.

CUBRIDSUS-1938 Fixed the error that CAS becomes infinite waiting state in a particular situation

When the CAS application server is started to process new connection requests in an environment where resource loads are heavy, the CAS application server occupies CPU resource excessively and becomes infinite waiting state because of abnormal operation of the broker process. This error is fixed.

CUBRIDSUS-1670 Fixed the error that CAS becomes infinite waiting state when executing a particular query

After the SELECT statement which includes multiple sub-queries and accesses several tables is prepared, the CAS application server becomes infinite waiting state. This error is fixed. l Alternative plan: Modify the corresponding query statement to reduce its multiple nested level.

CUBRIDSUS-2112 Fixed the error of page search algorithm where data is saved when executing INSERT

Endless loop occurs and the DB server stops abnormally when inserting data because of the error with an algorithm which searches for empty space where data can be inserted. This error is fixed. l Alternative plan: Select and run one of the following plans. § Update page space information by executing cubrid compactdb in the existing version § Re-establish DB by executing cubrid unload/load in the existing version § Re-create a table

CUBRIDSUS-2099 Fixed the error that the connection to a broker is disconnected when executing queries in JDBC

The "Can’t communicate with broker" message is displayed and also connection socket is released when executing a query in a JDBC application or the CUBRID manager on Windows environment. This error is fixed. l Note: This occurs only when the network of the DB server and that of the broker server are separated on Windows environment.

CUBRIDSUS-2434 Fixed to make the index key value of a record that is already inserted to 'DEFAULT' when defining an index on a newly added DEFAULT property column

When creating multi column index on the existing column(col1) and the newly added DEFAULT property column(col2) in a table, the col2 column key value of the records which exist before adding the new column becomes 'DEFAULT'. In the existing version, because the col2 key value of records which are inserted before adding a new column is saved as 'NULL', index page is damaged and the error message "Unknown key {'N', NULL} referenced in B+tree index" is displayed when executing UPDATE/DELETE queries for the corresponding record because of the damage. This error is fixed.

CUBRIDSUS-2443 Fixed the error that the server is abnormally stopped when the column value of SYS_CONNECT_BY_PATH() function is 'NULL' in the hierarchical query statement

In the existing version, the server is abnormally stopped when the column value (i.e. argument) of the sys_connect_by_path() function is 'NULL'. However, it is fixed to return an empty string in this version. SELECT id, mgrid, name, SYS_CONNECT_BY_PATH(name,'/') FROM employee START WITH mgrid IS NULL CONNECT BY PRIOR id = mgrid ORDER BY id; ;xr id mgrid name hierarchy ============================================= 1 NULL Kim '/Kim' 2 NULL Moy '/Moy' 3 1 NULL '/Kim/' 4 2 NULL '/Moy/' 5 4 NULL '/Moy//'

CUBRIDSUS-2382 Fixed the error that an upcoming query in ready state is cancelled by JDBC query cancel

Not a current query but an upcoming query in ready-to-execute is cancelled when an interrupt is set up during JDBC SELECT query execution. This error is fixed. l Note: This happens only when a new interrupt is requested just before stopping an interrupt thread after the server generate a result set and CAS waits for a next query request.

CUBRIDSUS-2253 Fixed the error of returning wrong result set for the SELECT query in JDBC

The error no.447 is displayed and the corresponding query result is returned as '0' when SELECT query is executed in JDBC. This error is fixed. l Note: This happens only when an interrupt is requested at the moment when the server reads the list file page of SELECT query result.

CUBRIDSUS-1122 Fixed the error that the type of a next query result value is changed by the previously executed query when plan cache function is used

When plan cache function is used, the result value of a previously executed query statement is returned to a next query statement because they are considered as the same query statement even when a different type result value should be returned. This error is fixed to return a correct result value.

CUBRIDSUS-2125 Fixed the error that NCHAR type is not working

The NCHAR type works independently from a character set configured as an environment variable so that it works as if CHAR type in the existing version. This error is fixed.

CUBRIDSUS-2041 Fixed the error of loaddb failure when “;” is included in a query statement

If “;” is included in the middle of the query statement of a schema file for which cubrid loaddb will be executed, “;” is recognized as the end of the query statement and schema loading is failed. This error is fixed. l Alternative plan: Load a schema file in the query editor or CSQL interpreter.

CUBRIDSUS-2543 Fixed the error that loaddb failure with an error message when a record with an empty column is included in a schema for loaddb in Windows

An error message is displayed and there is no more progress when cubrid unloaddb is executed for a schema which includes a record with an empty column in Windows. This error is fixed. “Line 25745: Missing attribute values. Expected 4, found 1.” l Note: In Linux, there is a normal process, instead of an error message.

CUBRIDSUS-2190 Fixed a variable binding error in server-side INSERT mode

DB server is stopped abnormally while the server-side INSERT mode is activated and the INSERT statement is being executed which uses a bind variable in JDBC. This error is fixed.

CUBRIDSUS-2242 Fixed the error of mismatch between the number of records and COUNT(*) value after server is restarted

The number of records for the SELECT query result and the return value of SELECT COUNT(*) are different if a server process is restarted when a transaction is rolled back but not committed. This error is fixed. l Note: A result value before rollback work is returned in some aggregate functions(COUNT(*), COUNT(col), COUNT(DISTINCT col), MIN(col), MAX(col)) which execute operations for the index columns.

CUBRIDSUS-2490, 2542, 2584 Fixed the error of memory leak when executing operations for SET type in JDBC

The size of a memory which a server process occupies is abruptly increased because of memory leak which is caused when a query including SET type is executed in JDBC. This error is fixed. l Note1: JDBC (sync mode), CCI (sync mode is default), CSQL (async mode is default) l Note2: Because this error is fixed only for the sync mode which returns result set at once, be careful when executing the corresponding query in CSQL.

CUBRIDSUS-1900, 2193 Fixed the error that an error is displayed when executing type conversion (coerce) in C-API or JDBC

The "Data overflow error" error occurs when calling db_value_coerce() function in C-API and coercing integer data to CHAR type. This error is fixed. In addition, the "cannot coerce host var to type char" error occurs when binding data to the prepared SELECT statement which includes a condition clause comparing the CHAR type column and the bind variable. This error is also fixed.

CUBRIDSUS-2513 Fixed the error that the server is abnormally stopped when executing the SELECT statement which sub-query is a hierarchical query

The server is abnormally stopped because of an error that the initial value of pseudo column in a parent row cannot be set up when a hierarchical query is nested with another query and this error is fixed. A query pattern causing an error is shown below. select aa.col1, aa.col2, (select d.col3 from (select col4,substr(sys_connect_by_path(c.col3,','),2) from (select rownum rn, b.* from (select col5 from tmp_tbl a where col5 is not null) b )c start with c.rn=1 connect by prior c.rn+1=c.rn order by col4 desc )d where rownum=1 ) as disp_col3 from tmp_tbl aa;

CUBRIDSUS-1937 Fixed the error that invalid values of QPS and LQS are displayed for broker status information

The values of QPS (Query per Second) and LQS (Long Query per Second), which are broker status information obtained by executing cubrid broker status command, are negative. This error is fixed. l Note: This happens only when the value of MAX_NUM_APPL_SERVER parameter is different for each broker in an environment where multiple brokers are running.

CUBRIDSUS-2148 Fixed the error that GET TRIGGER statement is not working

The error that GET TRIGGER statement is not working is fixed.

CUBRIDSUS-2285 Supporting Microsoft Visual C++ 2008 Redistributable Package SP1

CUBRID installation wizard now support Microsoft Visual C++ 2008 Redistributable Package SP1 version, so SP1 version can be detected when installing.

4. What's new in CUBRID Manager 2008 R2.2

New Features

Supporting table partition to [Create/Edit Table]

In the create/edit table function, the creating, altering, and dropping a partitioned table is supported. The update of statistics information for a partitioned table can be done with the table pop-up menu.

image003.jpg

image004.jpg

Supporting CACHE option in [Create Serial]

A CACHE option can be specified when defining a serial object. However, this option is not available for CUBRID server version 2008 R2.1 or lower.
image005.jpg

Supporting query plan dump in [Plan Cache Dump]

The cubrid plandump utility is supported in the CUBRID Manager, and it can display query plan information which is cached in a server. It is available to check cached query plan information only when the database server is running. Selecting [Drop all plans in the server’s cache] option initializes the cache after displaying query plan information.
image006.png

Supporting [Used Parameter Dump] function

The cubrid paramdump utility is supported in the CUBRID Manager, and it can display parameter values configured in a server and a client. When you select [Dump both client and server parameters] option, both server and client parameters are displayed. If you do not select this option, only server parameters are displayed.

image007.png

Supporting an option to specify a log page size in [Create Database]

As an option (--log-page-size) which can specify a log page size when executing cubrid createdb utility is supported, it is also possible to specify the log page size in the [Create Database] in the CUBRID Manager. image008.png

Supporting REUSE_OID option to create an OID reusable table

As a table option (REUSE_OID) for an OID reusable table is supported, it is also possible to specify [Reuse OID] option in [Create Table] in the CUBRID Manager. Because a table that reuses OID does not return OID value, the OID navigator becomes disabled in the query result window even when [Get OID info] option is enabled and it is not possible to modify query result data directly.

image009.jpg

image010.jpg

Supporting using column names as the first line data when executing [Export Data]

When executing [Export Data], the column names in a table can be used as the first row of a target file. image011.jpg

Supporting displaying verbose information in [Compact Database]

The [Show verbose status message] option is supported in the [Compact Database] which executes the cubrid compactdb utility.

image012.jpg

image013.jpg

Supporting [Check Query] when executing query automation

The [Check Query] is supported in the [Query Automation], so it is possible to check a query to be executed automatically. This helps proactively find out any problem with a reserved query which will be executed on schedule.

Changed and Enhanced Features

Improved to execute a next query even when an error occurs on one of multiple queries

Even when an error occurs on one of multiple queries in the query editor, a next query can be continuously executed by ignoring the error occurred as shown in the below figure. When a query error occurs, you can choose to continue a next query or to stop.
image014.jpg

Improved an error message which is displayed in JDBC when connection to a broker is failed

When connection to a broker is failed or released, the obscure message “Version mismatch” is displayed in the existing version. However, a correct message with an error number from the broker is displayed in this version. image015.jpg

Added a feature to select monitoring items in [Broker Status]

A user can now configure some of the monitoring items in the [Broker Status] window by clicking the setting icon (setting-small.png) at the right side of the bar at the top. image017.png

Improved a feature to monitor broker and server status

Now, the broker and server status can be monitored in an integrated single chart. A user can set up monitoring items and chart types by using the setting icon (setting-small.png) at the right side of the bar at the top of status information window.

image018.jpg

image019.jpg

Fixed to display a warning message if the value of java_stored_procedure parameter is "Yes" and the Java environment is not configured

If the value of java_stored_procedure parameter is "YES" and the Java environment is not configured, a warning message indicating Java stored procedure cannot be executed is displayed in this version. image020.jpg

Added a feature to check on a regular basis for the connection status between database server and manager client

The connection to the database server is periodically checked to prevent forcible disconnection by an intermediate firewall even when the corresponding socket is not used for a long time.

Fixed to check a valid range when entering a port value in the [New Query] of the tool bar

When using the query editor through the [New Query] of the tool bar, the valid range of a broker port value is checked in this version.

Fixed to check the type conformity when defining DEFAULT property in [Create/Edit Table]

When entering DEFAULT value into a column in [Create Table] or [Edit Table], conformity is checked for all the data types the CUBRID supports.

Fixed the error that status window is overlapped when executing [Export Data]

When the progress status window and the result message window of the CUBRID Manager are displayed simultaneously, the progress status window is programmed to be displayed at the below status bar.

Fixed to delete a directory if there is no file in a directory when performing [Delete Database]

It is modified to be able to delete the directory by selecting [Delete database] If there is no file in a directory when deleting a database.

Changing a database user's password change policy

Only DBA user can change a database user's password in the previous version. However, database users can change their passwords in this version.

Fixed errors

Fixed to distinguish NULL and an empty space (") when displaying DEFAULT value in [Create/Edit Table}

NULL and an empty space (") is not distinguished when displaying DEFAULT value in [Create Table] or [Edit Table]. Now, an empty space is displayed with quotes (‘’).

Fixed the error that the output of the CUBRID Manager and that of CSQL are different for the FLOAT type data

The FLOAT type data format from the query result window of the CUBRID Manager is not the same as the data format from CSQL. This error is fixed.

Fixed a comment error such as “//” in the query editor

If “//” is included in the string of a query statement, it is regarded as a comment and converted to “--". The corresponding string is displayed correctly in this version.

Fixed the error that multi-byte table is not created

A multi-byte table is not created in the CUBRID Manager even when the intl_mbs_support parameter of cubrid.conf is configured as "YES". This error is fixed, so a user can create the table by using the character set in [Property > Connection Information > Character Set] of each database. In other words, you can create a table named by the UTF-8 characters if you set up the character set to UTF-8.

Fixed the error that the protocol between a client and a server is closed

The protocol is closed if a task is called without any information while communicating between a client and a server. This error is fixed.

Fixed the error that information about the basic JDBC driver still left even after it is deleted in [Basic Setting > JDBC Driver]

There is still information about the basic JDBC driver even when it is deleted in [Basic Setting > JDBC Driver]. This error is fixed.

Fixed the error that a specific character (“GLO”) is entered as NULL when importing data from an Excel file to DB

If there is a specific character (“GLO”) in an Excel file, the data is interpreted as a GLO object and it is saved as NULL in the DB. This error is fixed.

Fixed the error occurred when system trigger is opened by using the editing function

When opening system trigger by using the editing function in the CUBRID Manager, 'OK' button is enabled even when there is no change and there is an authorization failure error. This error is fixed.

Fixed the error that a user-defined primary key (PK) name is not displayed in [Edit Table>View SQL Statement]

Although a user specifies a primary key (PK) name when creating a table with a script, a name automatically assigned by the system is displayed in [Edit Table> SQL Statement]. In this version, the primary key (PK) name specified by a user is displayed.

Fixed not to start the wizard if there is an empty space in the path in which a database is created

If there is an empty space in the path in which a database is created, the [Create Database] wizard is not started. In addition, an error message is displayed when a root directory such as C: or D: is specified as the path of database to create. These errors are fixed.

Fixed the error that page sizes are not synchronized in the [Create Database] wizard

If a user specifies database page size several times while moving back and forth in the [Create Database] wizard, those sizes are not synchronized. This error is fixed.

Fixed the error occurred if a window is closed before all data completely loaded after executing [See Database Space Information]

If a user closes a window before all the data is loaded after executing [See Database Space Information], the SWTException error is displayed. This error is fixed.

Fixed the error that a Korean character is broken when modifying data directly in the query result window after selecting [Get OID info] option

A Korean character in a column data is broken when modification is attempted directly in the query result window because the Enter key value is not properly processed in the query result window. This error is fixed.

Fixed to be able to adjust the middle separation bar in the query editor by a user

The middle separation bar is located at a fixed ratio (3:7) in the existing version. Now, its location is adjustable by a user.

Fixed the error that partitioned table information is not correctly displayed in the table navigator

If MAXVALUE is included in the partitioning condition of a partitioned table, the node information in the table navigator is displayed as a general table. This error is fixed.

Fixed to work normally if a user multi-logged in to the CUBRID Manager with the same account

If there are multiple logins with the same account in the CUBRID Manager and they are executing queries, any changes by an earlier login affect a later login's query execution. This error is fixed.

Fixed the error that BETWEEN is added even when the [Search unit of search window] option of the query editor is disabled

BETWEEN is added even when the [Search unit of search window] option of the query editor is disabled. This error is fixed.

Fixed the error that font option of the query editor is not applied

The font setting of the query editor is only applied to the query result window, not to the editing window. This error is fixed.

Fixed the error that DISTINCT/UNIQUE keywords are not applied

If DISTINCT or UNIQUE keyword is included in the SELECT statement which does not have WHERE clause, the keyword is not applied and incorrect result is returned in the CUBRID Manager. This error is fixed.

Fixed the error that a database created by the cubrid createdb utility is not displayed in the navigation tree

If a database is created by cubrid createdb utility in a console, it is not displayed in a navigation tree even after refreshing it. This error is fixed.

Fixed an error message that is occurred when creating a database with an existing database name

An obscure message "Cannot connect to the server" is displayed when database name is duplicated when creating a new database. This error is fixed.

Fixed the error that a broker cannot be added if there is no broker

A broker cannot be added if there is no broker in the broker list in the existing version. This error is fixed.

5. Caution

Caution when executing

INSERT to a table where an foreign key is defined in the replication or HA environment

In the replication or HA environment, if an foreign key constraint is defined on the UNIQUE index column and the transaction 1 and 2 execute INSERT into a primary key table and an foreign key table respectively, there may be data mismatch between the master DB and the slave DB.

Caution when trying to restore a database from the backup file of existing version

When you attempt database restore by using a later version of the cubrid restoredb utility from a backup file which was created by the earlier version of cubrid backupdb utility, an error occurs with a message that the same version must be used.

Caution when using the '-r' option of cubrid backupdb utility

If you perform an incremental backup (backup level 1 or 2) with the -r option, there is the risk that normal recovery of the database will be impossible later on. Therefore, it is recommended that the -r option only be used when a full backup is performed.

Caution when installing CUBRID on Windows

If the directory path where the CUBRID is to be installed has an empty space on Windows environment, installation may not be successful.

Caution when configuring CUBRID environment variables on Windows

If a string that ends with backslash (“”) is used as a CUBRID environment variable on Windows environment, an error may occur during a CUBRID process operation. Therefore, be careful not to use (“”) at the end of a directory.

Caution adding a parameter to the *.conf file on Windows

Make sure to input 'Enter' key at the end of a line when adding a parameter to the environment configuration file (*.conf) on Windows environment. If not, it is assumed there is no 'Enter' (“ ”) and the parameters in the line are not used.

Caution when using the cubrid service stop command on Windows

On Windows, the cubrid service stop command is accessible only by a user whose authorization is "SYSTEM". Therefore, an administrator or general users can stop a process by clicking the CUBRID Service Tray icon that appears after installing the CUBRID Manager.

Caution when using the [Using automatic volume addition] option and creating a database in the CUBRID Manager

The [Using automatic volume addition] option automatically adds a volume when DB volume goes below user-defined “out of space warning rate". If this option is enabled, the cubrid spacedb utility is periodically (default: 5 sec.) executed to monitor free space, thus the size of an error log (_spacedb.err) may be increased. A user can adjust the monitoring interval by configuring the monitor_interval parameter in the cm.conf file..




You are either using a very old browser or a browser that is not supported.
In order to browse cubrid.org you need to have one of the following browsers:



Internet Explorer: Mozilla Firefox: Google Chrome: