|
From: <asf...@us...> - 2012-09-20 15:53:11
|
Revision: 57148
http://firebird.svn.sourceforge.net/firebird/?rev=57148&view=rev
Author: asfernandes
Date: 2012-09-20 15:53:04 +0000 (Thu, 20 Sep 2012)
Log Message:
-----------
Fixed CORE-3929 - Error "attempted update of read-only column" when trying select minvalue from list with more than 255 elements.
Modified Paths:
--------------
firebird/trunk/lang_helpers/gds_codes.ftn
firebird/trunk/lang_helpers/gds_codes.pas
firebird/trunk/src/dsql/ExprNodes.cpp
firebird/trunk/src/include/gen/codetext.h
firebird/trunk/src/include/gen/iberror.h
firebird/trunk/src/include/gen/msgs.h
firebird/trunk/src/include/gen/sql_code.h
firebird/trunk/src/include/gen/sql_state.h
firebird/trunk/src/msgs/facilities2.sql
firebird/trunk/src/msgs/messages2.sql
firebird/trunk/src/msgs/system_errors2.sql
Modified: firebird/trunk/lang_helpers/gds_codes.ftn
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.ftn 2012-09-19 17:21:00 UTC (rev 57147)
+++ firebird/trunk/lang_helpers/gds_codes.ftn 2012-09-20 15:53:04 UTC (rev 57148)
@@ -1502,6 +1502,8 @@
PARAMETER (GDS__no_providers = 335545044)
INTEGER*4 GDS__null_spb
PARAMETER (GDS__null_spb = 335545045)
+ INTEGER*4 GDS__max_args_exceeded
+ PARAMETER (GDS__max_args_exceeded = 335545046)
INTEGER*4 GDS__gfix_db_name
PARAMETER (GDS__gfix_db_name = 335740929)
INTEGER*4 GDS__gfix_invalid_sw
Modified: firebird/trunk/lang_helpers/gds_codes.pas
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.pas 2012-09-19 17:21:00 UTC (rev 57147)
+++ firebird/trunk/lang_helpers/gds_codes.pas 2012-09-20 15:53:04 UTC (rev 57148)
@@ -758,6 +758,7 @@
gds_decrypt_error = 335545043;
gds_no_providers = 335545044;
gds_null_spb = 335545045;
+ gds_max_args_exceeded = 335545046;
gds_gfix_db_name = 335740929;
gds_gfix_invalid_sw = 335740930;
gds_gfix_incmp_sw = 335740932;
Modified: firebird/trunk/src/dsql/ExprNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/ExprNodes.cpp 2012-09-19 17:21:00 UTC (rev 57147)
+++ firebird/trunk/src/dsql/ExprNodes.cpp 2012-09-20 15:53:04 UTC (rev 57148)
@@ -10123,6 +10123,12 @@
void SysFuncCallNode::genBlr(DsqlCompilerScratch* dsqlScratch)
{
+ if (args->items.getCount() > MAX_UCHAR)
+ {
+ status_exception::raise(
+ Arg::Gds(isc_max_args_exceeded) << Arg::Num(MAX_UCHAR) << function->name);
+ }
+
dsqlScratch->appendUChar(blr_sys_function);
dsqlScratch->appendMetaString(function->name.c_str());
dsqlScratch->appendUChar(args->items.getCount());
Modified: firebird/trunk/src/include/gen/codetext.h
===================================================================
--- firebird/trunk/src/include/gen/codetext.h 2012-09-19 17:21:00 UTC (rev 57147)
+++ firebird/trunk/src/include/gen/codetext.h 2012-09-20 15:53:04 UTC (rev 57148)
@@ -747,6 +747,7 @@
{"decrypt_error", 335545043},
{"no_providers", 335545044},
{"null_spb", 335545045},
+ {"max_args_exceeded", 335545046},
{"gfix_db_name", 335740929},
{"gfix_invalid_sw", 335740930},
{"gfix_incmp_sw", 335740932},
Modified: firebird/trunk/src/include/gen/iberror.h
===================================================================
--- firebird/trunk/src/include/gen/iberror.h 2012-09-19 17:21:00 UTC (rev 57147)
+++ firebird/trunk/src/include/gen/iberror.h 2012-09-20 15:53:04 UTC (rev 57148)
@@ -781,6 +781,7 @@
const ISC_STATUS isc_decrypt_error = 335545043L;
const ISC_STATUS isc_no_providers = 335545044L;
const ISC_STATUS isc_null_spb = 335545045L;
+const ISC_STATUS isc_max_args_exceeded = 335545046L;
const ISC_STATUS isc_gfix_db_name = 335740929L;
const ISC_STATUS isc_gfix_invalid_sw = 335740930L;
const ISC_STATUS isc_gfix_incmp_sw = 335740932L;
@@ -1225,7 +1226,7 @@
const ISC_STATUS isc_trace_switch_param_miss = 337182758L;
const ISC_STATUS isc_trace_param_act_notcompat = 337182759L;
const ISC_STATUS isc_trace_mandatory_switch_miss = 337182760L;
-const ISC_STATUS isc_err_max = 1169;
+const ISC_STATUS isc_err_max = 1170;
#else /* c definitions */
@@ -1976,6 +1977,7 @@
#define isc_decrypt_error 335545043L
#define isc_no_providers 335545044L
#define isc_null_spb 335545045L
+#define isc_max_args_exceeded 335545046L
#define isc_gfix_db_name 335740929L
#define isc_gfix_invalid_sw 335740930L
#define isc_gfix_incmp_sw 335740932L
@@ -2420,7 +2422,7 @@
#define isc_trace_switch_param_miss 337182758L
#define isc_trace_param_act_notcompat 337182759L
#define isc_trace_mandatory_switch_miss 337182760L
-#define isc_err_max 1169
+#define isc_err_max 1170
#endif
Modified: firebird/trunk/src/include/gen/msgs.h
===================================================================
--- firebird/trunk/src/include/gen/msgs.h 2012-09-19 17:21:00 UTC (rev 57147)
+++ firebird/trunk/src/include/gen/msgs.h 2012-09-20 15:53:04 UTC (rev 57148)
@@ -750,6 +750,7 @@
{335545043, "Missing crypt plugin, but page appears encrypted"}, /* decrypt_error */
{335545044, "No providers loaded"}, /* no_providers */
{335545045, "NULL data with non-zero SPB length"}, /* null_spb */
+ {335545046, "Maximum (@1) number of arguments exceeded for function @2"}, /* max_args_exceeded */
{335740929, "data base file name (@1) already given"}, /* gfix_db_name */
{335740930, "invalid switch @1"}, /* gfix_invalid_sw */
{335740932, "incompatible switch combination"}, /* gfix_incmp_sw */
Modified: firebird/trunk/src/include/gen/sql_code.h
===================================================================
--- firebird/trunk/src/include/gen/sql_code.h 2012-09-19 17:21:00 UTC (rev 57147)
+++ firebird/trunk/src/include/gen/sql_code.h 2012-09-20 15:53:04 UTC (rev 57148)
@@ -746,6 +746,7 @@
{335545043, -902}, /* 723 decrypt_error */
{335545044, -902}, /* 724 no_providers */
{335545045, -104}, /* 725 null_spb */
+ {335545046, -833}, /* 726 max_args_exceeded */
{335740929, -901}, /* 1 gfix_db_name */
{335740930, -901}, /* 2 gfix_invalid_sw */
{335740932, -901}, /* 4 gfix_incmp_sw */
Modified: firebird/trunk/src/include/gen/sql_state.h
===================================================================
--- firebird/trunk/src/include/gen/sql_state.h 2012-09-19 17:21:00 UTC (rev 57147)
+++ firebird/trunk/src/include/gen/sql_state.h 2012-09-20 15:53:04 UTC (rev 57148)
@@ -746,6 +746,7 @@
{335545043, "39000"}, // 723 decrypt_error
{335545044, "39000"}, // 724 no_providers
{335545045, "42818"}, // 725 null_spb
+ {335545046, "42000"}, // 726 max_args_exceeded
{335740929, "00000"}, // 1 gfix_db_name
{335740930, "00000"}, // 2 gfix_invalid_sw
{335740932, "00000"}, // 4 gfix_incmp_sw
Modified: firebird/trunk/src/msgs/facilities2.sql
===================================================================
--- firebird/trunk/src/msgs/facilities2.sql 2012-09-19 17:21:00 UTC (rev 57147)
+++ firebird/trunk/src/msgs/facilities2.sql 2012-09-20 15:53:04 UTC (rev 57148)
@@ -1,7 +1,7 @@
/* MAX_NUMBER is the next number to be used, always one more than the highest message number. */
set bulk_insert INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUMBER) VALUES (?, ?, ?, ?);
--
-('2012-06-29 16:14:26', 'JRD', 0, 726)
+('2012-09-20 12:25:00', 'JRD', 0, 727)
('2012-01-23 20:10:30', 'QLI', 1, 532)
('2009-07-16 05:26:11', 'GFIX', 3, 121)
('1996-11-07 13:39:40', 'GPRE', 4, 1)
Modified: firebird/trunk/src/msgs/messages2.sql
===================================================================
--- firebird/trunk/src/msgs/messages2.sql 2012-09-19 17:21:00 UTC (rev 57147)
+++ firebird/trunk/src/msgs/messages2.sql 2012-09-20 15:53:04 UTC (rev 57148)
@@ -833,6 +833,7 @@
('decrypt_error', NULL, 'CryptoManager.cpp', NULL, 0, 723, NULL, 'Missing crypt plugin, but page appears encrypted', NULL, NULL);
('no_providers', NULL, 'why.cpp', NULL, 0, 724, NULL, 'No providers loaded', NULL, NULL);
('null_spb', NULL, 'why.cpp', NULL, 0, 725, NULL, 'NULL data with non-zero SPB length', NULL, NULL);
+('max_args_exceeded', NULL, 'ExprNodes.cpp', NULL, 0, 726, NULL, 'Maximum (@1) number of arguments exceeded for function @2', NULL, NULL)
-- QLI
(NULL, NULL, NULL, NULL, 1, 0, NULL, 'expected type', NULL, NULL);
(NULL, NULL, NULL, NULL, 1, 1, NULL, 'bad block type', NULL, NULL);
Modified: firebird/trunk/src/msgs/system_errors2.sql
===================================================================
--- firebird/trunk/src/msgs/system_errors2.sql 2012-09-19 17:21:00 UTC (rev 57147)
+++ firebird/trunk/src/msgs/system_errors2.sql 2012-09-20 15:53:04 UTC (rev 57148)
@@ -732,6 +732,7 @@
(-902, '39', '000', 0, 723, 'decrypt_error', NULL, NULL)
(-902, '39', '000', 0, 724, 'no_providers', NULL, NULL)
(-104, '42', '818', 0, 725, 'null_spb', NULL, NULL)
+(-833, '42', '000', 0, 726, 'max_args_exceeded', NULL, NULL)
-- GFIX
(-901, '00', '000', 3, 1, 'gfix_db_name', NULL, NULL)
(-901, '00', '000', 3, 2, 'gfix_invalid_sw', NULL, NULL)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|