Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Current Events
Join our developers event to win one of the valuable prizes!
posted 4 years ago
viewed 7865 times
Share this article

New CUBRID 2008 R3.0 Beta has been released!

Dear CUBRID users,

Over two months we have been working hard on bringing new features to our powerful CUBRID Database Server. We made every endeavor to increase its performance, ease-of-use, and functionality. And today we are happy to announce a new CUBRID 2008 Release 3.0 Beta! We achieved our commitment to deliver the new updates with new features and bug fixes within two months only.

Even though this is a beta release, it will be the only one. We are planning to release the stable version in a month, after we receive your feedbacks and reports for possible bugs. This 3.0 release brings great number of new features and extensions for the user convenience, which make CUBRID even more easy-to-use and more optimized database for the Web.

You can download CUBRID 2008 R3.0 Beta in source or binary form for Linux and Windows platforms from our download page at

http://www.cubrid.org/downloads

Below is a list of changes in this release and their brief explanations. For detailed overview of what is new in CUBRID 3.0, please see

http://www.cubrid.org/cubrid_r30_release_notes

Overall we have fixed 42 bugs, and introduced 62 new SQL syntax extensions and other enhancements.

New Features

SQL syntax extensions:

  1. CREATE TABLE statement extension and table replication

    1. Supporting the creation of a table which has the same schema as an existing table

      • CREATE TABLE new_tbl LIKE a_tbl;
    2. Supporting the creation of a table which includes SELECT subquery result records for an existing table

      • CREATE TABLE new_tbl1 AS SELECT * FROM a_tbl;
    3. Supporting the index creation feature during table creation

      • CREATE TABLE new_tbl ( id INT, name VARCHAR, CONSTRAINT INDEX (id DESC, name ASC) );
  2. Creating an index for the prefix part of a string corresponding to prefix_length and changing system catalog table

    • CREATE INDEX ON new_tbl(name(3)); // Creating an index on 3-byte prefix for a string type column
  3. Extending INSERT syntax and supporting REPLACE statement

    1. Extending INSERT syntax to allow the instant insertion of multiple records

      • INSERT INTO insert_tbl VALUES (1,1), (2,2), (NULL, 3);
    2. Extending a statement to allow the easy insertion of a default value

      • INSERT INTO insert_tbl DEFAULT VALUES;
      • INSERT INTO insert_tbl VALUES (DEFAULT, 4),(DEFAULT,5) ;
    3. Supporting SET clause to allow the easy insertion of a specific column value

      • INSERT INTO insert_tbl SET A=10;
    4. Supporting the ON DUPLICATE KEY UPDATE clause to allow the insertion of duplicate values into the UNIQUE column

      • INSERT INTO insert_tbl VALUES (DEFAULT, 5) ON DUPLICATE KEY UPDATE A=2;
    5. Supporting the REPLACE statement, which deletes and inserts a record

      • REPLACE INTO insert_tbl VALUES (3, 5);
  4. LIMIT clause, which limits the number of target records in the SELECT, DELETE, and UPDATE statements

    1. SELECT * FROM a_tbl ORDER BY a LIMIT 2,3;
    2. UPDATE a_tbl SET a=10, b=10 WHERE a IS NULL LIMIT 3;
    3. DELETE FROM a_tbl WHERE a IS NULL LIMIT 1;
  5. Omitting FROM clause in the SELECT statement

    1. SELECT 1+1;
    2. SELECT FALSE;
  6. Extending syntax of GROUP BY … HAVING clause in the SELECT statement

    1. SELECT dept_no, avg(sales_amount) FROM sales_tbl GROUP BY dept_no ORDER BY NULL;
    2. SELECT dept_no AS a1, name AS a2, avg(sales_amount) AS a3 FROM sales_tbl GROUP BY a1,a2 WITH ROLLUP;
  7. Extending ALTER TABLE syntax and specifying column location to add

    1. Adding and deleting index and constraint condition

      • ALTER TABLE a_tbl ADD INDEX (a ASC), ADD INDEX (b DESC);
      • ALTER TABLE a_tbl DROP INDEX i_a_tbl_a;
      • ALTER TABLE a_tbl DROP PRIMARY KEY;
      • ALTER TABLE a_tbl DROP FOREIGN KEY fk_a_tbl_a;
    2. Specifying a column location to add

      • ALTER TABLE a_tbl ADD COLUMN c INT DEFAULT 0 AFTER a;
  8. Deleting all records by using the TRUNCATE statement

    • TRUNCATE b_tbl;
  9. Adding trigger operation for ON UPDATE and ON DELETE operation when defining a foreign key

    1. ON UPDATE { RESTRICT | NO ACTION | SET NULL }
    2. ON DELETE { CASCADE | RESTRICT | NO ACTION | SET NULL }
  10. Supporting PREPARED STATEMENT execution at SQL level

    • PREPARE stmt1 FROM 'SELECT POWER(?,2)*PI()';
  11. Supporting additional parameters to apply extended SQL syntax

    • ONLY_FULL_GROUP_BY, ANSI_QUOTES, PIPES_AS_CONCAT
Operator and function extensions:

  1. Extending logical operators

    • &&, ||, XOR, !
  2. Extending comparison operators

    • <=>, !=, IS, IS NOT
  3. Supporting new bitwise operators and bit functions

    1. BIT ARRAY LITERAL

      • Binary (B'1010', 0b1010) and hexadecimal (X'a', 0xa)
    2. BITWISE OPERATOR

      • &, |, ^, ~, <<, >>
    3. BIT FUNCTION

      • BIT_AND(expr), BIT_OR(expr), BIT_XOR(expr), BIT_COUNT(expr)
  4. Extended numerical operation function

    1. Supporting additional trigonometric functions

      • COS(x), COT(x), SIN(x), TAN(x), ACOS(x), ASIN(x), ATAN(x[, y]), ATAN2(x[, y]), DEGRESS(x), RADIANS(x), PI(x)
    2. Supporting additional mathematical functions

      • POW(), SQRT(), LOG2(), LN(), LOG10()
    3. Extending random functions to enable specifying SEED value

      • RAND([seed]), RANDOM([seed]), DRANDOM([seed]) DRAND([seed])
    4. Supporting FORMAT( ) function, which converts a numerical value into a user-specified string format

      • FORMAT();
  5. Extending date/time functions and various output formats

    1. Adding a function which provides calculation by specifying the time interval unit for date/time value

      • ADDDATE(), SUBDATE(), DATEDIFF()
    2. Supporting a function that converts a date/time value into a user-specified string format

      • DATE_FORMAT(), TIME_FORMAT()
    3. Supporting a function that converts a string into a date/time value

      • STR_TO_DATE('June 20, 2010','%M %d,%Y'), TIMESTAMP('2010-06-20')
    4. Supporting a function which gets the current system date/time

      • CURDATE(), CURRENT_DATE(), CURRENT_DATE, SYSDATE, SYS_DATE, CURTIME(), CURRENT_TIME(), CURRENT_TIME, SYSTIME, SYS_TIME, CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP, LOCALTIME(), LOCALTIME, LOCALTIMESTAMP(), LOCALTIMESTAMP, SYSTIMESTAMP, SYS_TIMESTAMP, CURRENT_DATETIME(), CURRENT_DATETIME, NOW(), SYSDATETIME, SYS_DATETIME, UNIX_TIMESTAMP('2010-06-20')
  6. Extending string functions

    1. Supporting CONCAT( ) function which horizontally outputs a string that concatenates column values

      • CONCAT()
    2. Supporting string comparison and search functions

      • SELECT MID('12345abcde', 6, 4), LEFT('12345abcde', 4), RIGHT('12345abcde', 4);
      • SELECT LOCATE ('abc', '12345abcde');
      • SELECT FIELD('abc', 'a', 'ab', 'abc', 'abcd');
      • SELECT STRCMP('abc', 'abc'), STRCMP('abc', 'ab'), STRCMP('abc', 'abcd');
    3. Supporting additional functions that convert a string

      • SELECT UCASE('CUBrid'), LCASE('CUBrid'), REVERSE('CUBrid');
  7. Extending information functions

    1. Supporting a function which returns database related information

      • DATABASE(), SCHEMA(), LIST_DBS(), USER(), SYSTEM_USER()
    2. Supporting a function which returns a default value defined in a column

      • SELECT id, DEFAULT(id) FROM info_tbl;
    3. Supporting a function which returns the number of affected rows by a prior query

      • SELECT ROW_COUNT();
  8. Extending conditional operation functions

    1. Supporting ISNULL( ) and IFNULL( ) functions for NULL value comparison

      • SELECT ISNULL(a) FROM case_tbl;
      • SELECT IFNULL(a, 'UNKNOWN') FROM case_tbl;
    2. Supporting IF( ) and NULLIF( ) functions for parameter value comparison

      • SELECT IF(a=1, 'one', 'other') FROM case_tbl;
      • SELECT NULLIF(a, 1) FROM case_tbl;

Other extensions

  1. Supporting compactdb utility option which can perform compact database operation during database operation
  2. Supporting about 20 functions for PHP API
  3. insert_execution_mode Adding INSERT mode, which can be set up in the insert_execution_mode parameter

Enhancements

  1. The operation of cci_connect( ) function is changed
  2. The range of format specifier 'HH' or 'HH12' is changed in the TO_CHAR( ) function
  3. The interpretation of 2-digit year value is changed
  4. The result type of POWER( ) function is changed to DOUBLE
  5. Preventing a sequential scan from occurring at a specific query whose conditional clause is always FALSE
  6. Supporting the getPrimaryKeys( ) and getColumnDisplaySize( ) methods of the JDBC driver
  7. Supporting DataAccessException of Spring framework in the JDBC driver
  8. Supporting CUBRID execution script in the Linux environment
  9. Fixed to unload some tables specified in the input file even though there is no newline character
  10. Supporting a feature to reset a RW mode broker automatically after failback of the master server in HA environment
  11. Fixed to execute a index scan in hierarchy query
Bug Fixes

  1. Fixed an error in which CPU use was increased by the applylogdb process in the HA environment
  2. Fixed an error in which the applylogdb process was restarted repeatedly and replication was not performed in the HA environment
  3. Fixed an error that caused replication to be stopped because a specific commit log was lost
  4. Fixed an error that caused a task to be stopped when executing the backupdb utility in the client mode after configuring the HA environment
  5. Fixed an error in which there was a CUBRID heartbeat node status information mismatch in the HA environment
  6. Fixed an error that caused data mismatch when executing INSERT to a table where a foreign key is defined in the replication/HA environment
  7. Fixed an error that caused a data mismatch in the replication environment
  8. Fixed an error that caused the size of a replication log to be increased abnormally in the replication environment
  9. Fixed an error that caused a query to not be executed normally after restoring database in a specific situation
  10. Fixed an error in which duplicate values were inserted into the UNIQUE KEY column
  11. Fixed a problem in which OR operation is not applicable to a specific index key value in the join predicate
  12. Fixed query result error of outer join
  13. Fixed an error of the column name not being output in the inline-view type query results
  14. Fixed a query result error that occurs when a correlated sub-query that has ORDER BY clause is specified in the SELECT list
  15. Fixed a query result error that occurs when a subquery with FOR ORDERBY_NUM() is included
  16. Fixed level value error in a specific hierarchy query statement
  17. Fixed an error in which a reference value is not updated when defining a foreign key of a ON CACHE OBJECT option on an index column
  18. Fixed the START WITH option error of CREATE SERIAL and ALTER SERIAL statements
  19. Fixed an error in which the sub-query result is not sorted when one with an ORDER BY clause is in SEQUENCE type
  20. Fixed an error that created the column type incorrectly if the column name was not specified in the CREATE VIEW statement
  21. Fixed an error that occurs during explicit type casting using the CAST function
  22. Fixed an error that the trigger information could not be retrieved in the system catalog view if a table with a trigger was dropped
  23. Fixed an error in which a COMMIT or ROLLBACK event type trigger was not unloaded
  24. Fixed malfunction of the broker_log_top utility and changed the broker log format
  25. Fixed an error in which connection is failed where excessive server connections are requested through JDBC
  26. Fixed ResultSet return error and cci_cursor_update( ) operation error in the Java Stored Procedure
  27. Fixed getString( ) output value error of the JDBC driver for DATETIME type values
  28. Fixed malfunction of the cci_col_get() for collection type columns
  29. Fixed the cubrid backupdb –sp option to work normally even when tab is used as a separator in the databases.txt
  30. Fixed to validate connection requests only allowed by the cub_master process
  31. Fixed an output error of specific values during broker status monitoring
  32. Fixed an error that the process woud not be restarted if the memory size of the CAS process exceeded 2G
  33. Fixed an error in which the size of the temporary archive log increases infinitely if the setting is media_failure_support = no
  34. Fixed an error in reloading previous queries with more than 50 lines in the CSQL
  35. Fixed an error that occurs when executing the CSQL session command ;edit in a Windows Vista environment
  36. Fixed CUBRID installation error in a Windows 7 environment
  37. Fixed an error in which the results of the execution of cubrid service stop/start commands are not reflected in the CUBRID tray in a Windows environment
New Features in CUBRID Manager

  1. Extended HA features
  2. New keywords and UI menu support for added statements
  3. Supporting user configuration in [Add Status Monitor]
  4. Supporting configuration of remote broker host information when executing [New Query Editor]
  5. Supporting user login function to [Query Automation]
  6. Supporting equal sign to configure the parameter value of cm.conf
  7. Supporting an option to restore databases into a specific path
Fixed Bugs

  1. Fixed an error in which all the tables are unloaded when executing [Unload database]
  2. Fixed an error in which warning window for some query errors would be displayed repeatedly for subsequent queries
  3. Fixed an error in which you cannot stop retrieving when the retrieving result exceeds 5,000 in the Query Editor
  4. Fixed an error in which the CUBRID Manager would not terminate in a specific situation
  5. Fixed an error in which query result would be returned abnormally in the Query Editor in a JDK 1.5 environment.



comments powered by Disqus