Join Firebird!

Join Firebird Foundation to support Firebird SQL development and receive multiple bonuses

Follow Us

Select your media preference

Newsletter

Subscribe to Firebird’s Newsletter to receive the latest news

Developer's Report: Firebird INTL/DSQL Development
August to November 2010

November 2010

HEAD
  • Fixed CORE-3204 - Constraint violation error of CAST is not raised inside views.
  • Fixed CORE-3244 - POSITION: Wrong result with '' if third argument present
  • Fixed CORE-3228 - RIGHT() fails with multibyte text blobs > 1024 chars.
  • Fixed CORE-3227 - ASCII_VAL() fails if argument contains multi-byte character anywhere.
  • Fixed segfault after EXECUTE STATEMENT with invalid SQL.
  • Improvement CORE-3234 - Support for text BLOBs >= 32K as first argument for TRIM().
  • Cleanup: removed broken nod_total2 and nod_average2.
  • Refactored blr_via, blr_from, blr_maximum, blr_minimum, blr_count, blr_average and blr_total.
  • Cleanup: removed thisNode parameter from make and setParameterType methods.
  • Refactores nod_domain_validation, blr_derived_expr, blr_field, blr_stmt_expr, blr_index (nod_scalar), nod_dbkey and nod_record_version.
  • Frontported fix for CORE-3222 - View with 'WITH CHECK OPTION' doesn't like TRIM function in WHERE; Other related fix and cleanup.
  • Removed the dependency of jrd_nod in ExprNode.
  • Make ExprNodes and RecordSourceNodes reference others directly instead of via jrd_nod; Store ValueExprNodes instead of jrd_nod in the metadata cache; Make RecordSourceNode child of ExprNode as they share most operations; Get rid of the JRD visitors in favor of direct calls; Convert assignments statement lists created inside expressions to separate source and targets ValuesExprNodes.
  • Refactored the support for blr_handler, blr_loop, blr_exec_sql, blr_exec_into, blr_exec_stmt, blr_start_savepoint, blr_end_savepoint, blr_store, blr_store2, blr_erase, blr_modify, blr_modify2, blr_exec_proc, blr_exec_proc2, blr_exec_pid, blr_dcl_cursor, blr_cursor_stmt, blr_set_generator, blr_receive, blr_stall, blr_select, blr_block, blr_error_handler, blr_label, blr_leave, blr_continue and the source info node.
2.5 Branch
  • Fixed CORE-3211 - String truncation occurs when selecting from a view containing NOT IN inside.
  • Fixed CORE-3222 - View with 'WITH CHECK OPTION' doesn't like TRIM function in WHERE.
  • Backported fix for CORE-3227 - ASCII_VAL() fails if argument contains multi-byte character anywhere.
  • Backported fix for CORE-3228 - RIGHT() fails with multibyte text blobs < 1024 chars.
  • Backported fix for CORE-3244 - POSITION: Wrong result with '' if third argument present.
2.1 Branch
  • Backported fix for CORE-3227 - ASCII_VAL() fails if argument contains multi-byte character anywhere.
  • Backported fix for CORE-3228 - RIGHT() fails with multibyte text blobs < 1024 chars.
  • Backported fix for CORE-3244 - POSITION: Wrong result with '' if third argument present.
October 2010

HEAD
  • Fixed Sub-task CORE-3147 - Fix SUBSTRING(SIMILAR) in regard to initial and final shortest matching specified in the standard.
  • Refactored GEN_ID.
  • Refactored LOWER, UPPER and TRIM.
  • Fixed CORE-3174 - Expression index with TRIM may lead to incorrect indexed lookup.
  • Cleanup: remove blr_prot_mask and blr_lock_state support.
  • INTL cleanup.
  • Refactored SUBSTRING, *_LENGTH, EXTRACT, variables, NULL, literals and CAST.
  • Fixed CORE-3140 - Preserve comments for parameters after altering procedures.
  • Parse types cleanup.
  • Simplify the internal 'null replacement' logic.
2.5 Branch
  • Fixed CORE-3164 - Parameterized requests involving blob fields fails when connected using charset UTF8.
  • Fixed CORE-3180 - ALTER VIEW with not matched columns in declaration and selection crashes the server.
  • Fixed CORE-3157 - COMMENT ON PARAMETER - Statement leads in a consumption of 1.7 GB RAM and a runtime of more than 1 Minute.
2.1 Branch
  • Backported Improvement CORE-1453 - Allow usage of functions in LIST delimiter parameter.
  • Fix wrong backport of fix for CORE-3091 - Built-in function POWER(X, Y) does not work when the X argument is negative and the Y value is scaled numeric but integral.
September 2010

HEAD
  • Started a refactor of a number of expression nodes: nod_add, nod_divide, nod_multiply, nod_negate, nod_user_name, nod_subtract, nod_current_date, nod_current_time, nod_current_timestamp, nod_add2, nod_subtract2, nod_multiply2, nod_divide2, nod_current_role, nod_internal_info.
  • Refactored all types of boolean nodes.
  • Removed the scratch from the nodes.
  • Refactored nod_parameter.
  • Removed the dependency of jrd_nod in boolean nodes.
  • Refactored IIF expression.
  • Investigation of CORE-3133 - User has a record on Permission table but Firebird doesn't allow the update.
V2.5 branch
  • Fixed CORE-3101 - Cannot alter the domain after migrating from older versions.
August 2010

HEAD
  • Refactored CREATE/ALTER/CREATE OR ALTER/RECREATE VIEW.
  • Refactored nod_rse, nod_relation, nod_procedure, nod_union, nod_aggregate and nod_window.
  • Refactored DsqlCompilerScratch while removing BlockNode.
  • Refactored nod_map and nod_sort to type-safe MapNode and SortNode.
  • Refactored plan nodes to PlanNode.
  • Refactored nod_index and nod_bit_* to InversionNode.
  • Various code cleanups.
  • Better internal handling of dependencies.
  • Refactor RECREATE commands.
  • Corrections and FBTCS update.
  • Frontported fix for CORE-3090 - Incorrect LEFT JOIN result using table and derived constant subquery.
  • Fix DDL triggers.
  • DdlNodes simplification/cleanup.
  • Better organization between request and statement.
V2.5 branch
  • Fixed CORE-2893 - Regression introduced with fix for CORE-2893 causes double processing of nodes when preparing a statement. Debug build aborts.
  • Fixed CORE-3090 - Incorrect LEFT JOIN result using table and derived constant subquery.
  • Fixed CORE-3094 - Parameters doesn't work with NOT IN from a selectable procedure.
  • Fixed CORE-3109 - [Crash] isc_dql_exec_immed3_m for 'create database ...' and NULL transaction.
  • Backport fix for CORE-3091 - Built-in function POWER(X, Y) does not work when the X argument is negative and the Y value is scaled numeric but integral.
V2.1 branch
  • Backport fix for CORE-3091 - Built-in function POWER(X, Y) does not work when the X argument is negative and the Y value is scaled numeric but integral.
Adriano dos Santos Fernandes
Sao Paulo, Brazil
August to November 2010

November 2010

HEAD
  • Fixed CORE-3204 - Constraint violation error of CAST is not raised inside views.
  • Fixed CORE-3244 - POSITION: Wrong result with '' if third argument present
  • Fixed CORE-3228 - RIGHT() fails with multibyte text blobs > 1024 chars.
  • Fixed CORE-3227 - ASCII_VAL() fails if argument contains multi-byte character anywhere.
  • Fixed segfault after EXECUTE STATEMENT with invalid SQL.
  • Improvement CORE-3234 - Support for text BLOBs >= 32K as first argument for TRIM().
  • Cleanup: removed broken nod_total2 and nod_average2.
  • Refactored blr_via, blr_from, blr_maximum, blr_minimum, blr_count, blr_average and blr_total.
  • Cleanup: removed thisNode parameter from make and setParameterType methods.
  • Refactores nod_domain_validation, blr_derived_expr, blr_field, blr_stmt_expr, blr_index (nod_scalar), nod_dbkey and nod_record_version.
  • Frontported fix for CORE-3222 - View with 'WITH CHECK OPTION' doesn't like TRIM function in WHERE; Other related fix and cleanup.
  • Removed the dependency of jrd_nod in ExprNode.
  • Make ExprNodes and RecordSourceNodes reference others directly instead of via jrd_nod; Store ValueExprNodes instead of jrd_nod in the metadata cache; Make RecordSourceNode child of ExprNode as they share most operations; Get rid of the JRD visitors in favor of direct calls; Convert assignments statement lists created inside expressions to separate source and targets ValuesExprNodes.
  • Refactored the support for blr_handler, blr_loop, blr_exec_sql, blr_exec_into, blr_exec_stmt, blr_start_savepoint, blr_end_savepoint, blr_store, blr_store2, blr_erase, blr_modify, blr_modify2, blr_exec_proc, blr_exec_proc2, blr_exec_pid, blr_dcl_cursor, blr_cursor_stmt, blr_set_generator, blr_receive, blr_stall, blr_select, blr_block, blr_error_handler, blr_label, blr_leave, blr_continue and the source info node.
2.5 Branch
  • Fixed CORE-3211 - String truncation occurs when selecting from a view containing NOT IN inside.
  • Fixed CORE-3222 - View with 'WITH CHECK OPTION' doesn't like TRIM function in WHERE.
  • Backported fix for CORE-3227 - ASCII_VAL() fails if argument contains multi-byte character anywhere.
  • Backported fix for CORE-3228 - RIGHT() fails with multibyte text blobs < 1024 chars.
  • Backported fix for CORE-3244 - POSITION: Wrong result with '' if third argument present.
2.1 Branch
  • Backported fix for CORE-3227 - ASCII_VAL() fails if argument contains multi-byte character anywhere.
  • Backported fix for CORE-3228 - RIGHT() fails with multibyte text blobs < 1024 chars.
  • Backported fix for CORE-3244 - POSITION: Wrong result with '' if third argument present.
October 2010

HEAD
  • Fixed Sub-task CORE-3147 - Fix SUBSTRING(SIMILAR) in regard to initial and final shortest matching specified in the standard.
  • Refactored GEN_ID.
  • Refactored LOWER, UPPER and TRIM.
  • Fixed CORE-3174 - Expression index with TRIM may lead to incorrect indexed lookup.
  • Cleanup: remove blr_prot_mask and blr_lock_state support.
  • INTL cleanup.
  • Refactored SUBSTRING, *_LENGTH, EXTRACT, variables, NULL, literals and CAST.
  • Fixed CORE-3140 - Preserve comments for parameters after altering procedures.
  • Parse types cleanup.
  • Simplify the internal 'null replacement' logic.
2.5 Branch
  • Fixed CORE-3164 - Parameterized requests involving blob fields fails when connected using charset UTF8.
  • Fixed CORE-3180 - ALTER VIEW with not matched columns in declaration and selection crashes the server.
  • Fixed CORE-3157 - COMMENT ON PARAMETER - Statement leads in a consumption of 1.7 GB RAM and a runtime of more than 1 Minute.
2.1 Branch
  • Backported Improvement CORE-1453 - Allow usage of functions in LIST delimiter parameter.
  • Fix wrong backport of fix for CORE-3091 - Built-in function POWER(X, Y) does not work when the X argument is negative and the Y value is scaled numeric but integral.
September 2010

HEAD
  • Started a refactor of a number of expression nodes: nod_add, nod_divide, nod_multiply, nod_negate, nod_user_name, nod_subtract, nod_current_date, nod_current_time, nod_current_timestamp, nod_add2, nod_subtract2, nod_multiply2, nod_divide2, nod_current_role, nod_internal_info.
  • Refactored all types of boolean nodes.
  • Removed the scratch from the nodes.
  • Refactored nod_parameter.
  • Removed the dependency of jrd_nod in boolean nodes.
  • Refactored IIF expression.
  • Investigation of CORE-3133 - User has a record on Permission table but Firebird doesn't allow the update.
V2.5 branch
  • Fixed CORE-3101 - Cannot alter the domain after migrating from older versions.
August 2010

HEAD
  • Refactored CREATE/ALTER/CREATE OR ALTER/RECREATE VIEW.
  • Refactored nod_rse, nod_relation, nod_procedure, nod_union, nod_aggregate and nod_window.
  • Refactored DsqlCompilerScratch while removing BlockNode.
  • Refactored nod_map and nod_sort to type-safe MapNode and SortNode.
  • Refactored plan nodes to PlanNode.
  • Refactored nod_index and nod_bit_* to InversionNode.
  • Various code cleanups.
  • Better internal handling of dependencies.
  • Refactor RECREATE commands.
  • Corrections and FBTCS update.
  • Frontported fix for CORE-3090 - Incorrect LEFT JOIN result using table and derived constant subquery.
  • Fix DDL triggers.
  • DdlNodes simplification/cleanup.
  • Better organization between request and statement.
V2.5 branch
  • Fixed CORE-2893 - Regression introduced with fix for CORE-2893 causes double processing of nodes when preparing a statement. Debug build aborts.
  • Fixed CORE-3090 - Incorrect LEFT JOIN result using table and derived constant subquery.
  • Fixed CORE-3094 - Parameters doesn't work with NOT IN from a selectable procedure.
  • Fixed CORE-3109 - [Crash] isc_dql_exec_immed3_m for 'create database ...' and NULL transaction.
  • Backport fix for CORE-3091 - Built-in function POWER(X, Y) does not work when the X argument is negative and the Y value is scaled numeric but integral.
V2.1 branch
  • Backport fix for CORE-3091 - Built-in function POWER(X, Y) does not work when the X argument is negative and the Y value is scaled numeric but integral.
Adriano dos Santos Fernandes
Sao Paulo, Brazil