mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-23 19:23:03 +01:00
Comments.
This commit is contained in:
parent
f88649760e
commit
c58937d3c0
@ -160,8 +160,7 @@ void DYN_define_collation( Global* gbl, const UCHAR** ptr)
|
||||
GET_STRING(ptr, collation_name);
|
||||
|
||||
if (!collation_name.length())
|
||||
DYN_error_punt(false, 212);
|
||||
/* msg 212: "Zero length identifiers not allowed" */
|
||||
DYN_error_punt(false, 212); // msg 212: "Zero length identifiers not allowed"
|
||||
|
||||
DdlNode::executeDdlTrigger(tdbb, gbl->gbl_transaction, DdlNode::DTW_BEFORE,
|
||||
DDL_TRIGGER_CREATE_COLLATION, collation_name, gbl->sqlText);
|
||||
@ -495,8 +494,8 @@ void DYN_define_constraint(Global* gbl,
|
||||
relation_name->c_str(), referred_index_name.c_str());
|
||||
id = old_id;
|
||||
|
||||
/* check that we have references permissions on the table and
|
||||
fields that the index:referred_index_name is on. */
|
||||
// check that we have references permissions on the table and
|
||||
// fields that the index:referred_index_name is on.
|
||||
|
||||
SCL_check_index(tdbb, referred_index_name, 0, SCL_sql_references);
|
||||
}
|
||||
@ -576,8 +575,8 @@ void DYN_define_constraint(Global* gbl,
|
||||
|
||||
try {
|
||||
|
||||
/* Make sure unique field names were specified for UNIQUE/PRIMARY/FOREIGN */
|
||||
/* All fields must have the NOT NULL attribute specified for UNIQUE/PRIMARY. */
|
||||
// Make sure unique field names were specified for UNIQUE/PRIMARY/FOREIGN
|
||||
// All fields must have the NOT NULL attribute specified for UNIQUE/PRIMARY.
|
||||
|
||||
request = CMP_find_request(tdbb, drq_c_unq_nam, DYN_REQUESTS);
|
||||
id = drq_c_unq_nam;
|
||||
@ -617,7 +616,7 @@ void DYN_define_constraint(Global* gbl,
|
||||
|
||||
if (!not_null) {
|
||||
DYN_error_punt(false, 123, null_field_name.c_str());
|
||||
/* msg 123: "Field: %s not defined as NOT NULL - can't be used in PRIMARY KEY constraint definition" */
|
||||
// msg 123: "Field: %s not defined as NOT NULL - can't be used in PRIMARY KEY constraint definition"
|
||||
}
|
||||
|
||||
request = CMP_find_request(tdbb, drq_n_idx_seg, DYN_REQUESTS);
|
||||
@ -639,8 +638,8 @@ void DYN_define_constraint(Global* gbl,
|
||||
goto dyn_punt_false_124;
|
||||
}
|
||||
|
||||
/* For PRIMARY KEY/UNIQUE constraints, make sure same set of columns
|
||||
is not used in another constraint of either type */
|
||||
// For PRIMARY KEY/UNIQUE constraints, make sure same set of columns
|
||||
// is not used in another constraint of either type
|
||||
|
||||
if (!foreign_flag)
|
||||
{
|
||||
@ -699,7 +698,8 @@ void DYN_define_constraint(Global* gbl,
|
||||
}
|
||||
}
|
||||
else
|
||||
{ /* Foreign key being defined */
|
||||
{
|
||||
// Foreign key being defined
|
||||
|
||||
request = CMP_find_request(tdbb, drq_s_ref_con, DYN_REQUESTS);
|
||||
id = drq_s_ref_con;
|
||||
@ -736,7 +736,7 @@ void DYN_define_constraint(Global* gbl,
|
||||
else if (ri_action & FOR_KEY_UPD_NONE)
|
||||
strcpy(REF.RDB$UPDATE_RULE, RI_ACTION_NONE);
|
||||
else
|
||||
/* RESTRICT is the default value for this column */
|
||||
// RESTRICT is the default value for this column
|
||||
strcpy(REF.RDB$UPDATE_RULE, RI_RESTRICT);
|
||||
|
||||
|
||||
@ -750,7 +750,7 @@ void DYN_define_constraint(Global* gbl,
|
||||
else if (ri_action & FOR_KEY_DEL_NONE)
|
||||
strcpy(REF.RDB$DELETE_RULE, RI_ACTION_NONE);
|
||||
else
|
||||
/* RESTRICT is the default value for this column */
|
||||
// RESTRICT is the default value for this column
|
||||
strcpy(REF.RDB$DELETE_RULE, RI_RESTRICT);
|
||||
|
||||
END_FOR;
|
||||
@ -807,12 +807,12 @@ void DYN_define_constraint(Global* gbl,
|
||||
|
||||
dyn_punt_false_124:
|
||||
DYN_error_punt(false, 124, constraint_name.c_str());
|
||||
/* msg 124: "A column name is repeated in the definition of constraint: %s" */
|
||||
// msg 124: "A column name is repeated in the definition of constraint: %s"
|
||||
return;
|
||||
|
||||
dyn_punt_false_126:
|
||||
DYN_error_punt(false, 126);
|
||||
/* msg 126: "Same set of columns cannot be used in more than one PRIMARY KEY and/or UNIQUE constraint definition" */
|
||||
// msg 126: "Same set of columns cannot be used in more than one PRIMARY KEY and/or UNIQUE constraint definition"
|
||||
}
|
||||
|
||||
|
||||
@ -886,7 +886,7 @@ void DYN_define_dimension(Global* gbl,
|
||||
if (b_ending_store) {
|
||||
DYN_rundown_request(request, drq_s_dims);
|
||||
DYN_error_punt(true, 3);
|
||||
/* msg 3: "STORE RDB$FIELD_DIMENSIONS failed" */
|
||||
// msg 3: "STORE RDB$FIELD_DIMENSIONS failed"
|
||||
}
|
||||
throw;
|
||||
}
|
||||
@ -1220,13 +1220,13 @@ void DYN_define_difference(Global* gbl,
|
||||
{
|
||||
DYN_rundown_request(request, drq_s_difference);
|
||||
DYN_error_punt(true, 150);
|
||||
/* msg 150: STORE RDB$FILES failed */
|
||||
// msg 150: STORE RDB$FILES failed
|
||||
}
|
||||
else
|
||||
{
|
||||
DYN_rundown_request(request, drq_l_difference);
|
||||
DYN_error_punt(true, 156);
|
||||
/* msg 156: Difference file lookup failed */
|
||||
// msg 156: Difference file lookup failed
|
||||
}
|
||||
}
|
||||
|
||||
@ -1234,7 +1234,7 @@ void DYN_define_difference(Global* gbl,
|
||||
|
||||
dyn_punt_216:
|
||||
DYN_error_punt(false, 216);
|
||||
/* msg 216: "Difference file is already defined" */
|
||||
// msg 216: "Difference file is already defined"
|
||||
}
|
||||
|
||||
|
||||
@ -1259,7 +1259,7 @@ void DYN_define_filter( Global* gbl, const UCHAR** ptr)
|
||||
|
||||
if (filter_name.length() == 0) {
|
||||
DYN_error_punt(false, 212);
|
||||
/* msg 212: "Zero length identifiers not allowed" */
|
||||
// msg 212: "Zero length identifiers not allowed"
|
||||
}
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_s_filters, DYN_REQUESTS);
|
||||
@ -1325,7 +1325,7 @@ void DYN_define_filter( Global* gbl, const UCHAR** ptr)
|
||||
if (b_ending_store) {
|
||||
DYN_rundown_request(request, drq_s_filters);
|
||||
DYN_error_punt(true, 7);
|
||||
/* msg 7: "DEFINE BLOB FILTER failed" */
|
||||
// msg 7: "DEFINE BLOB FILTER failed"
|
||||
}
|
||||
throw;
|
||||
}
|
||||
@ -1388,7 +1388,7 @@ void DYN_define_function( Global* gbl, const UCHAR** ptr)
|
||||
X.RDB$RETURN_ARGUMENT.NULL = FALSE;
|
||||
if (X.RDB$RETURN_ARGUMENT > MAX_UDF_ARGUMENTS)
|
||||
DYN_error_punt(true, 10);
|
||||
/* msg 10: "DEFINE FUNCTION failed" */
|
||||
// msg 10: "DEFINE FUNCTION failed"
|
||||
break;
|
||||
|
||||
case isc_dyn_func_module_name:
|
||||
@ -1430,7 +1430,7 @@ void DYN_define_function( Global* gbl, const UCHAR** ptr)
|
||||
if (b_ending_store) {
|
||||
DYN_rundown_request(request, drq_s_funcs);
|
||||
DYN_error_punt(true, 10);
|
||||
/* msg 10: "DEFINE FUNCTION failed" */
|
||||
// msg 10: "DEFINE FUNCTION failed"
|
||||
}
|
||||
throw;
|
||||
}
|
||||
@ -1470,8 +1470,7 @@ void DYN_define_function_arg(Global* gbl, const UCHAR** ptr, Firebird::MetaName*
|
||||
X.RDB$ARGUMENT_POSITION = (SSHORT)DYN_get_number(ptr);
|
||||
|
||||
if (X.RDB$ARGUMENT_POSITION > MAX_UDF_ARGUMENTS)
|
||||
DYN_error_punt(true, 12);
|
||||
/* msg 12: "DEFINE FUNCTION ARGUMENT failed" */
|
||||
DYN_error_punt(true, 12); // msg 12: "DEFINE FUNCTION ARGUMENT failed"
|
||||
|
||||
if (function_name) {
|
||||
strcpy(X.RDB$FUNCTION_NAME, function_name->c_str());
|
||||
@ -1532,10 +1531,9 @@ void DYN_define_function_arg(Global* gbl, const UCHAR** ptr, Firebird::MetaName*
|
||||
X.RDB$FIELD_PRECISION.NULL = FALSE;
|
||||
break;
|
||||
|
||||
/* Ignore the field character length as the system UDF parameter
|
||||
* table has no place to store the information
|
||||
* But IB6/FB has the place for this information. CVC 2001.
|
||||
*/
|
||||
// Ignore the field character length as the system UDF parameter
|
||||
// table has no place to store the information
|
||||
// But IB6/FB has the place for this information. CVC 2001.
|
||||
case isc_dyn_fld_char_length:
|
||||
if (ENCODE_ODS(major_version, minor_version) < ODS_10_0)
|
||||
{
|
||||
@ -1565,7 +1563,7 @@ void DYN_define_function_arg(Global* gbl, const UCHAR** ptr, Firebird::MetaName*
|
||||
DYN_rundown_request(request, drq_s_func_args);
|
||||
}
|
||||
DYN_error_punt(true, 12);
|
||||
/* msg 12: "DEFINE FUNCTION ARGUMENT failed" */
|
||||
// msg 12: "DEFINE FUNCTION ARGUMENT failed"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1591,7 +1589,7 @@ void DYN_define_generator( Global* gbl, const UCHAR** ptr)
|
||||
|
||||
if (generator_name.length() == 0) {
|
||||
DYN_error_punt(false, 212);
|
||||
/* msg 212: "Zero length identifiers not allowed" */
|
||||
// msg 212: "Zero length identifiers not allowed"
|
||||
}
|
||||
|
||||
DdlNode::executeDdlTrigger(tdbb, gbl->gbl_transaction, DdlNode::DTW_BEFORE,
|
||||
@ -1658,7 +1656,7 @@ void DYN_define_generator( Global* gbl, const UCHAR** ptr)
|
||||
Firebird::stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
if (b_ending_store) {
|
||||
DYN_error_punt(true, 8);
|
||||
/* msg 8: "DEFINE GENERATOR failed" */
|
||||
// msg 8: "DEFINE GENERATOR failed"
|
||||
}
|
||||
throw;
|
||||
}
|
||||
@ -1666,7 +1664,7 @@ void DYN_define_generator( Global* gbl, const UCHAR** ptr)
|
||||
if (*(*ptr)++ != isc_dyn_end)
|
||||
{
|
||||
DYN_error_punt(true, 9);
|
||||
/* msg 9: "DEFINE GENERATOR unexpected dyn verb" */
|
||||
// msg 9: "DEFINE GENERATOR unexpected dyn verb"
|
||||
}
|
||||
|
||||
DdlNode::executeDdlTrigger(tdbb, gbl->gbl_transaction, DdlNode::DTW_AFTER,
|
||||
@ -1706,7 +1704,7 @@ void DYN_define_global_field(Global* gbl,
|
||||
if (global_field_name.length() == 0)
|
||||
{
|
||||
DYN_error_punt(false, 212);
|
||||
/* msg 212: "Zero length identifiers not allowed" */
|
||||
// msg 212: "Zero length identifiers not allowed"
|
||||
}
|
||||
|
||||
DdlNode::executeDdlTrigger(tdbb, gbl->gbl_transaction, DdlNode::DTW_BEFORE,
|
||||
@ -1937,7 +1935,7 @@ void DYN_define_global_field(Global* gbl,
|
||||
if (b_ending_store) {
|
||||
DYN_rundown_request(request, drq_s_gfields);
|
||||
DYN_error_punt(true, 13);
|
||||
/* msg 13: "STORE RDB$FIELDS failed" */
|
||||
// msg 13: "STORE RDB$FIELDS failed"
|
||||
}
|
||||
throw;
|
||||
}
|
||||
@ -1988,7 +1986,7 @@ void DYN_define_index(Global* gbl,
|
||||
}
|
||||
if (index_name.length() == 0) {
|
||||
DYN_error_punt(false, 212);
|
||||
/* msg 212: "Zero length identifiers not allowed" */
|
||||
// msg 212: "Zero length identifiers not allowed"
|
||||
}
|
||||
|
||||
DdlNode::executeDdlTrigger(tdbb, gbl->gbl_transaction, DdlNode::DTW_BEFORE,
|
||||
@ -2026,14 +2024,13 @@ void DYN_define_index(Global* gbl,
|
||||
else if (*(*ptr)++ == isc_dyn_rel_name)
|
||||
GET_STRING(ptr, IDX.RDB$RELATION_NAME);
|
||||
else
|
||||
DYN_error_punt(false, 14);
|
||||
/* msg 14: "No relation specified for index" */
|
||||
DYN_error_punt(false, 14); // msg 14: "No relation specified for index"
|
||||
|
||||
IDX.RDB$RELATION_NAME.NULL = FALSE;
|
||||
IDX.RDB$SYSTEM_FLAG = 0;
|
||||
IDX.RDB$SYSTEM_FLAG.NULL = FALSE;
|
||||
|
||||
/* Check if the table is actually a view */
|
||||
// Check if the table is actually a view
|
||||
|
||||
old_request = request;
|
||||
SSHORT old_id = id;
|
||||
@ -2048,8 +2045,7 @@ void DYN_define_index(Global* gbl,
|
||||
DYN_REQUEST(drq_l_view_idx) = request;
|
||||
|
||||
if (!VREL.RDB$VIEW_BLR.NULL)
|
||||
DYN_error_punt(false, 181);
|
||||
/* msg 181: "attempt to index a view" */
|
||||
DYN_error_punt(false, 181); // msg 181: "attempt to index a view"
|
||||
|
||||
END_FOR;
|
||||
if (!DYN_REQUEST(drq_l_view_idx))
|
||||
@ -2058,9 +2054,8 @@ void DYN_define_index(Global* gbl,
|
||||
request = old_request;
|
||||
id = old_id;
|
||||
|
||||
/* The previous 2 lines and the next two lines can be
|
||||
* deleted as long as no code is added in the middle.
|
||||
*/
|
||||
// The previous 2 lines and the next two lines can be
|
||||
// deleted as long as no code is added in the middle.
|
||||
|
||||
old_request = request;
|
||||
old_id = id;
|
||||
@ -2119,25 +2114,25 @@ void DYN_define_index(Global* gbl,
|
||||
if (GF.RDB$FIELD_TYPE == blr_blob)
|
||||
{
|
||||
DYN_error_punt(false, 116, IDX.RDB$INDEX_NAME);
|
||||
/* msg 116 "attempt to index blob field in index %s" */
|
||||
// msg 116 "attempt to index blob field in index %s"
|
||||
}
|
||||
else if (!GF.RDB$DIMENSIONS.NULL)
|
||||
{
|
||||
DYN_error_punt(false, 117, IDX.RDB$INDEX_NAME);
|
||||
/* msg 117 "attempt to index array field in index %s" */
|
||||
// msg 117 "attempt to index array field in index %s"
|
||||
}
|
||||
else if (!GF.RDB$COMPUTED_BLR.NULL)
|
||||
{
|
||||
DYN_error_punt(false, 179, IDX.RDB$INDEX_NAME);
|
||||
/* msg 179 "attempt to index COMPUTED BY field in index %s" */
|
||||
// msg 179 "attempt to index COMPUTED BY field in index %s"
|
||||
}
|
||||
else if (GF.RDB$FIELD_TYPE == blr_varying ||
|
||||
GF.RDB$FIELD_TYPE == blr_text)
|
||||
{
|
||||
/* Compute the length of the key segment allowing
|
||||
for international information. Note that we
|
||||
must convert a <character set, collation> type
|
||||
to an index type in order to compute the length */
|
||||
// Compute the length of the key segment allowing
|
||||
// for international information. Note that we
|
||||
// must convert a <character set, collation> type
|
||||
// to an index type in order to compute the length
|
||||
if (!F.RDB$COLLATION_ID.NULL)
|
||||
{
|
||||
length =
|
||||
@ -2180,7 +2175,7 @@ void DYN_define_index(Global* gbl,
|
||||
break;
|
||||
}
|
||||
|
||||
/* for expression indices, store the BLR and the source string */
|
||||
// for expression indices, store the BLR and the source string
|
||||
|
||||
case isc_dyn_fld_computed_blr:
|
||||
DYN_put_blr_blob(gbl, ptr, &IDX.RDB$EXPRESSION_BLR);
|
||||
@ -2192,13 +2187,13 @@ void DYN_define_index(Global* gbl,
|
||||
IDX.RDB$EXPRESSION_SOURCE.NULL = FALSE;
|
||||
break;
|
||||
|
||||
/* for foreign keys, point to the corresponding relation */
|
||||
// for foreign keys, point to the corresponding relation
|
||||
|
||||
case isc_dyn_idx_foreign_key:
|
||||
GET_STRING(ptr, referenced_relation);
|
||||
if (referenced_relation.length() == 0) {
|
||||
DYN_error_punt(false, 212);
|
||||
/* msg 212: "Zero length identifiers not allowed" */
|
||||
// msg 212: "Zero length identifiers not allowed"
|
||||
}
|
||||
break;
|
||||
|
||||
@ -2256,7 +2251,7 @@ void DYN_define_index(Global* gbl,
|
||||
(*ri_actionP) |= FOR_KEY_DEL_NONE;
|
||||
break;
|
||||
default:
|
||||
fb_assert(0); /* should not come here */
|
||||
fb_assert(0); // should not come here
|
||||
DYN_unsupported_verb();
|
||||
}
|
||||
break;
|
||||
@ -2302,7 +2297,7 @@ void DYN_define_index(Global* gbl,
|
||||
(*ri_actionP) |= FOR_KEY_UPD_NONE;
|
||||
break;
|
||||
default:
|
||||
fb_assert(0); /* should not come here */
|
||||
fb_assert(0); // should not come here
|
||||
DYN_unsupported_verb();
|
||||
}
|
||||
break;
|
||||
@ -2314,13 +2309,11 @@ void DYN_define_index(Global* gbl,
|
||||
|
||||
key_length = ROUNDUP(key_length, sizeof(SLONG));
|
||||
if (key_length >= MAX_KEY)
|
||||
DYN_error_punt(false, 118, IDX.RDB$INDEX_NAME);
|
||||
/* msg 118 "key size too big for index %s" */
|
||||
DYN_error_punt(false, 118, IDX.RDB$INDEX_NAME); // msg 118 "key size too big for index %s"
|
||||
|
||||
if (seg_count) {
|
||||
if (seg_count != fld_count)
|
||||
DYN_error_punt(false, 120, IDX.RDB$INDEX_NAME);
|
||||
/* msg 118 "Unknown fields in index %s" */
|
||||
DYN_error_punt(false, 120, IDX.RDB$INDEX_NAME); // msg 118 "Unknown fields in index %s"
|
||||
|
||||
old_request = request;
|
||||
old_id = id;
|
||||
@ -2347,14 +2340,14 @@ void DYN_define_index(Global* gbl,
|
||||
}
|
||||
|
||||
if (field_list.getCount()) {
|
||||
/* If referring columns count <> referred columns return error */
|
||||
// If referring columns count <> referred columns return error
|
||||
|
||||
if (seg_count != referred_cols)
|
||||
DYN_error_punt(true, 133);
|
||||
/* msg 133: "Number of referencing columns do not equal number of referenced columns */
|
||||
// msg 133: "Number of referencing columns do not equal number of referenced columns
|
||||
|
||||
/* lookup a unique index in the referenced relation with the
|
||||
referenced fields mentioned */
|
||||
// lookup a unique index in the referenced relation with the
|
||||
// referenced fields mentioned
|
||||
|
||||
old_request = request;
|
||||
old_id = id;
|
||||
@ -2390,8 +2383,8 @@ void DYN_define_index(Global* gbl,
|
||||
found = true;
|
||||
}
|
||||
|
||||
/* if there are no more fields or the field name doesn't
|
||||
match, then this is not the correct index */
|
||||
// if there are no more fields or the field name doesn't
|
||||
// match, then this is not the correct index
|
||||
|
||||
if (list_index >= 0) {
|
||||
fb_utils::exact_name_limit(ISEG.RDB$FIELD_NAME, sizeof(ISEG.RDB$FIELD_NAME));
|
||||
@ -2466,13 +2459,13 @@ void DYN_define_index(Global* gbl,
|
||||
if (!DYN_REQUEST(drq_l_primary))
|
||||
DYN_REQUEST(drq_l_primary) = request;
|
||||
|
||||
/* Number of columns in referred index should be same as number
|
||||
of columns in referring index */
|
||||
// Number of columns in referred index should be same as number
|
||||
// of columns in referring index
|
||||
|
||||
fb_assert(IND.RDB$SEGMENT_COUNT >= 0);
|
||||
if (seg_count != ULONG(IND.RDB$SEGMENT_COUNT))
|
||||
DYN_error_punt(true, 133);
|
||||
/* msg 133: "Number of referencing columns do not equal number of referenced columns" */
|
||||
// msg 133: "Number of referencing columns do not equal number of referenced columns"
|
||||
|
||||
fb_utils::exact_name_limit(IND.RDB$INDEX_NAME, sizeof(IND.RDB$INDEX_NAME));
|
||||
strcpy(IDX.RDB$FOREIGN_KEY, IND.RDB$INDEX_NAME);
|
||||
@ -2507,12 +2500,12 @@ void DYN_define_index(Global* gbl,
|
||||
if (id == drq_s_indices) {
|
||||
DYN_rundown_request(request, id);
|
||||
DYN_error_punt(true, 21);
|
||||
/* msg 21: "STORE RDB$INDICES failed" */
|
||||
// msg 21: "STORE RDB$INDICES failed"
|
||||
}
|
||||
else if (id == drq_s_idx_segs) {
|
||||
DYN_rundown_request(request, id);
|
||||
DYN_error_punt(true, 15);
|
||||
/* msg 15: "STORE RDB$INDEX_SEGMENTS failed" */
|
||||
// msg 15: "STORE RDB$INDEX_SEGMENTS failed"
|
||||
}
|
||||
|
||||
DYN_rundown_request(request, -1);
|
||||
@ -2521,23 +2514,23 @@ void DYN_define_index(Global* gbl,
|
||||
{
|
||||
case drq_l_idx_name:
|
||||
DYN_error_punt(true, 21);
|
||||
/* msg 21: "STORE RDB$INDICES failed" */
|
||||
// msg 21: "STORE RDB$INDICES failed"
|
||||
break;
|
||||
case drq_l_lfield:
|
||||
DYN_error_punt(true, 15);
|
||||
/* msg 15: "STORE RDB$INDEX_SEGMENTS failed" */
|
||||
// msg 15: "STORE RDB$INDEX_SEGMENTS failed"
|
||||
break;
|
||||
case drq_l_unq_idx:
|
||||
DYN_error_punt(true, 17);
|
||||
/* msg 17: "Primary Key field lookup failed" */
|
||||
// msg 17: "Primary Key field lookup failed"
|
||||
break;
|
||||
case drq_l_view_idx:
|
||||
DYN_error_punt(true, 180);
|
||||
/* msg 180: "Table Name lookup failed" */
|
||||
// msg 180: "Table Name lookup failed"
|
||||
break;
|
||||
case drq_l_primary:
|
||||
DYN_error_punt(true, 19);
|
||||
/* msg 19: "Primary Key lookup failed" */
|
||||
// msg 19: "Primary Key lookup failed"
|
||||
break;
|
||||
default:
|
||||
fb_assert(false);
|
||||
@ -2578,7 +2571,7 @@ void DYN_define_local_field(Global* gbl,
|
||||
|
||||
if (local_field_name.length() == 0) {
|
||||
DYN_error_punt(false, 212);
|
||||
/* msg 212: "Zero length identifiers not allowed" */
|
||||
// msg 212: "Zero length identifiers not allowed"
|
||||
}
|
||||
|
||||
jrd_req* request = NULL;
|
||||
@ -2871,12 +2864,12 @@ void DYN_define_local_field(Global* gbl,
|
||||
if (id == drq_s_lfields) {
|
||||
DYN_rundown_request(request, id);
|
||||
DYN_error_punt(true, 23);
|
||||
/* msg 23: "STORE RDB$RELATION_FIELDS failed" */
|
||||
// msg 23: "STORE RDB$RELATION_FIELDS failed"
|
||||
}
|
||||
else {
|
||||
DYN_rundown_request(request, id);
|
||||
DYN_error_punt(true, 22);
|
||||
/* msg 22: "STORE RDB$FIELDS failed" */
|
||||
// msg 22: "STORE RDB$FIELDS failed"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2905,7 +2898,7 @@ void DYN_define_relation(Global* gbl, const UCHAR** ptr, bool view)
|
||||
if (relation_name.length() == 0)
|
||||
{
|
||||
DYN_error_punt(false, 212);
|
||||
/* msg 212: "Zero length identifiers not allowed" */
|
||||
// msg 212: "Zero length identifiers not allowed"
|
||||
}
|
||||
|
||||
DdlNode::executeDdlTrigger(tdbb, gbl->gbl_transaction, DdlNode::DTW_BEFORE,
|
||||
@ -3036,8 +3029,7 @@ void DYN_define_relation(Global* gbl, const UCHAR** ptr, bool view)
|
||||
|
||||
if (sql_prot) {
|
||||
if (!get_who(tdbb, gbl, owner_name))
|
||||
DYN_error_punt(true, 115);
|
||||
/* msg 115: "CREATE VIEW failed" */
|
||||
DYN_error_punt(true, 115); // msg 115: "CREATE VIEW failed"
|
||||
|
||||
if (rel_type == rel_view) {
|
||||
jrd_req* old_request = request;
|
||||
@ -3052,8 +3044,8 @@ void DYN_define_relation(Global* gbl, const UCHAR** ptr, bool view)
|
||||
if (!DYN_REQUEST(drq_l_view_rels))
|
||||
DYN_REQUEST(drq_l_view_rels) = request;
|
||||
|
||||
/* CVC: This never matches so it causes unnecessary calls to verify,
|
||||
so I included a call to strip trailing blanks. */
|
||||
// CVC: This never matches so it causes unnecessary calls to verify,
|
||||
// so I included a call to strip trailing blanks.
|
||||
fb_utils::exact_name_limit(PREL.RDB$OWNER_NAME, sizeof(PREL.RDB$OWNER_NAME));
|
||||
if (owner_name != PREL.RDB$OWNER_NAME) {
|
||||
SecurityClass::flags_t priv;
|
||||
@ -3062,7 +3054,7 @@ void DYN_define_relation(Global* gbl, const UCHAR** ptr, bool view)
|
||||
// I think this should be the responsability of DFW
|
||||
// or the user will find ways to circumvent DYN.
|
||||
DYN_error_punt(true, 115);
|
||||
/* msg 115: "CREATE VIEW failed" */
|
||||
// msg 115: "CREATE VIEW failed"
|
||||
}
|
||||
|
||||
if (!(priv & SCL_read)) {
|
||||
@ -3071,9 +3063,9 @@ void DYN_define_relation(Global* gbl, const UCHAR** ptr, bool view)
|
||||
Arg::Str("TABLE/VIEW") << // Non-Translatable
|
||||
// We want to print the name of the base table or view.
|
||||
Arg::Str(PREL.RDB$RELATION_NAME));
|
||||
/* msg 32: no permission for %s access to %s %s */
|
||||
// msg 32: no permission for %s access to %s %s
|
||||
DYN_error_punt(true, 115);
|
||||
/* msg 115: "CREATE VIEW failed" */
|
||||
// msg 115: "CREATE VIEW failed"
|
||||
}
|
||||
}
|
||||
END_FOR;
|
||||
@ -3133,12 +3125,12 @@ void DYN_define_relation(Global* gbl, const UCHAR** ptr, bool view)
|
||||
if (id == drq_s_rels) {
|
||||
DYN_rundown_request(request, id);
|
||||
DYN_error_punt(true, 24);
|
||||
/* msg 24: "STORE RDB$RELATIONS failed" */
|
||||
// msg 24: "STORE RDB$RELATIONS failed"
|
||||
}
|
||||
else if (id == drq_s_usr_prvs) {
|
||||
DYN_rundown_request(request, id);
|
||||
DYN_error_punt(true, 25);
|
||||
/* msg 25: "STORE RDB$USER_PRIVILEGES failed defining a relation" */
|
||||
// msg 25: "STORE RDB$USER_PRIVILEGES failed defining a relation"
|
||||
}
|
||||
|
||||
DYN_rundown_request(request, -1);
|
||||
@ -3146,18 +3138,18 @@ void DYN_define_relation(Global* gbl, const UCHAR** ptr, bool view)
|
||||
switch (id)
|
||||
{
|
||||
case drq_l_rel_name:
|
||||
DYN_error_punt(true, 24); /* msg 24: "STORE RDB$RELATIONS failed" */
|
||||
DYN_error_punt(true, 24); // msg 24: "STORE RDB$RELATIONS failed"
|
||||
break;
|
||||
case drq_l_view_rels:
|
||||
DYN_error_punt(true, 115); /* msg 115: "CREATE VIEW failed" */
|
||||
DYN_error_punt(true, 115); // msg 115: "CREATE VIEW failed"
|
||||
break;
|
||||
case drq_l_rel_info2:
|
||||
ERR_punt();
|
||||
break;
|
||||
}
|
||||
|
||||
/* Control should never reach this point, because id should
|
||||
always have one of the values test-for above. */
|
||||
// Control should never reach this point, because id should
|
||||
// always have one of the values test-for above.
|
||||
fb_assert(false);
|
||||
DYN_error_punt(true, 0);
|
||||
}
|
||||
@ -3204,21 +3196,13 @@ void DYN_define_role( Global* gbl, const UCHAR** ptr)
|
||||
DDL_TRIGGER_CREATE_ROLE, role_name, gbl->sqlText);
|
||||
|
||||
if (role_name == owner_name) {
|
||||
/************************************************
|
||||
**
|
||||
** user name could not be used for SQL role
|
||||
**
|
||||
*************************************************/
|
||||
// user name could not be used for SQL role
|
||||
DYN_error(false, 193, SafeArg() << owner_name.c_str());
|
||||
ERR_punt();
|
||||
}
|
||||
|
||||
if (role_name == NULL_ROLE) {
|
||||
/************************************************
|
||||
**
|
||||
** keyword NONE could not be used as SQL role name
|
||||
**
|
||||
*************************************************/
|
||||
// keyword NONE could not be used as SQL role name
|
||||
DYN_error(false, 195, SafeArg() << role_name.c_str());
|
||||
ERR_punt();
|
||||
}
|
||||
@ -3226,22 +3210,14 @@ void DYN_define_role( Global* gbl, const UCHAR** ptr)
|
||||
try {
|
||||
|
||||
if (is_it_user_name(gbl, role_name, tdbb)) {
|
||||
/************************************************
|
||||
**
|
||||
** user name could not be used for SQL role
|
||||
**
|
||||
*************************************************/
|
||||
// user name could not be used for SQL role
|
||||
DYN_error(false, 193, SafeArg() << role_name.c_str());
|
||||
goto do_err_punt;
|
||||
}
|
||||
|
||||
Firebird::MetaName dummy_name;
|
||||
if (DYN_is_it_sql_role(gbl, role_name, dummy_name, tdbb)) {
|
||||
/************************************************
|
||||
**
|
||||
** SQL role already exist
|
||||
**
|
||||
*************************************************/
|
||||
// SQL role @1 already exists
|
||||
DYN_error(false, 194, SafeArg() << role_name.c_str());
|
||||
goto do_err_punt;
|
||||
}
|
||||
@ -3281,7 +3257,7 @@ void DYN_define_role( Global* gbl, const UCHAR** ptr)
|
||||
DYN_rundown_request(request, drq_role_gens);
|
||||
}
|
||||
DYN_error_punt(true, 8);
|
||||
/* msg 8: "DEFINE ROLE failed" */
|
||||
// msg 8: "DEFINE ROLE failed"
|
||||
}
|
||||
|
||||
DdlNode::executeDdlTrigger(tdbb, gbl->gbl_transaction, DdlNode::DTW_AFTER,
|
||||
@ -3295,7 +3271,7 @@ do_err_punt:
|
||||
|
||||
do_error_punt_9:
|
||||
DYN_error_punt(true, 9);
|
||||
/* msg 9: "DEFINE ROLE unexpected dyn verb" */
|
||||
// msg 9: "DEFINE ROLE unexpected dyn verb"
|
||||
}
|
||||
|
||||
|
||||
@ -3359,7 +3335,7 @@ void DYN_define_security_class( Global* gbl, const UCHAR** ptr)
|
||||
if (b_ending_store) {
|
||||
DYN_rundown_request(request, drq_s_classes);
|
||||
DYN_error_punt(true, 27);
|
||||
/* msg 27: "STORE RDB$RELATIONS failed" */
|
||||
// msg 27: "STORE RDB$RELATIONS failed"
|
||||
}
|
||||
throw;
|
||||
}
|
||||
@ -3394,7 +3370,7 @@ void DYN_define_sql_field(Global* gbl,
|
||||
|
||||
if (sql_field_name.length() == 0) {
|
||||
DYN_error_punt(false, 212);
|
||||
/* msg 212: "Zero length identifiers not allowed" */
|
||||
// msg 212: "Zero length identifiers not allowed"
|
||||
}
|
||||
|
||||
jrd_req* request = NULL;
|
||||
@ -3602,11 +3578,10 @@ void DYN_define_sql_field(Global* gbl,
|
||||
break;
|
||||
|
||||
case isc_dyn_fld_collation:
|
||||
/* Note: the global field's collation is not set, just
|
||||
* the local field. There is no full "domain"
|
||||
* created for the local field.
|
||||
* This is the same decision for items like NULL_FLAG
|
||||
*/
|
||||
// Note: the global field's collation is not set, just
|
||||
// the local field. There is no full "domain"
|
||||
// created for the local field.
|
||||
// This is the same decision for items like NULL_FLAG
|
||||
RFR.RDB$COLLATION_ID = DYN_get_number(ptr);
|
||||
RFR.RDB$COLLATION_ID.NULL = FALSE;
|
||||
break;
|
||||
@ -3661,12 +3636,12 @@ void DYN_define_sql_field(Global* gbl,
|
||||
if (id == drq_s_sql_lfld) {
|
||||
DYN_rundown_request(request, id);
|
||||
DYN_error_punt(true, 29);
|
||||
/* msg 29: "STORE RDB$RELATION_FIELDS failed" */
|
||||
// msg 29: "STORE RDB$RELATION_FIELDS failed"
|
||||
}
|
||||
else {
|
||||
DYN_rundown_request(request, id);
|
||||
DYN_error_punt(true, 28);
|
||||
/* msg 28: "STORE RDB$FIELDS failed" */
|
||||
// msg 28: "STORE RDB$FIELDS failed"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3692,8 +3667,7 @@ void DYN_define_shadow( Global* gbl, const UCHAR** ptr)
|
||||
|
||||
const SLONG shadow_number = DYN_get_number(ptr);
|
||||
|
||||
/* If a shadow set identified by the
|
||||
shadow number already exists return error. */
|
||||
// If a shadow set identified by the shadow number already exists return error.
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_l_shadow, DYN_REQUESTS);
|
||||
|
||||
@ -3712,12 +3686,12 @@ void DYN_define_shadow( Global* gbl, const UCHAR** ptr)
|
||||
Firebird::stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, drq_l_shadow);
|
||||
DYN_error_punt(true, 164);
|
||||
/* msg 164: "Shadow lookup failed" */
|
||||
// msg 164: "Shadow lookup failed"
|
||||
}
|
||||
|
||||
if (found) {
|
||||
DYN_error_punt(false, 165, SafeArg() << shadow_number);
|
||||
/* msg 165: "Shadow %ld already exists" */
|
||||
// msg 165: "Shadow %ld already exists"
|
||||
}
|
||||
|
||||
SLONG start = 0;
|
||||
@ -3776,7 +3750,7 @@ void DYN_define_trigger(Global* gbl,
|
||||
if (t.length() == 0)
|
||||
{
|
||||
DYN_error_punt(false, 212);
|
||||
/* msg 212: "Zero length identifiers not allowed" */
|
||||
// msg 212: "Zero length identifiers not allowed"
|
||||
}
|
||||
|
||||
if (trigger_name) {
|
||||
@ -3803,12 +3777,12 @@ void DYN_define_trigger(Global* gbl,
|
||||
X.RDB$ENTRYPOINT.NULL = TRUE;
|
||||
X.RDB$ENGINE_NAME.NULL = TRUE;
|
||||
|
||||
/* currently, we make no difference between ignoring permissions in
|
||||
order to define this trigger and ignoring permissions checks when the
|
||||
trigger fires. The RDB$FLAGS is used to indicate permissions checks
|
||||
when the trigger fires. Later, if we need to make a difference
|
||||
between these, then the caller should pass the required value
|
||||
of RDB$FLAGS as an extra argument to this func. */
|
||||
// Currently, we make no difference between ignoring permissions in
|
||||
// order to define this trigger and ignoring permissions checks when the
|
||||
// trigger fires. The RDB$FLAGS is used to indicate permissions checks
|
||||
// when the trigger fires. Later, if we need to make a difference
|
||||
// between these, then the caller should pass the required value
|
||||
// of RDB$FLAGS as an extra argument to this func.
|
||||
|
||||
X.RDB$FLAGS = ignore_perm ? TRG_ignore_perm : 0;
|
||||
X.RDB$FLAGS.NULL = FALSE;
|
||||
@ -3879,8 +3853,8 @@ void DYN_define_trigger(Global* gbl,
|
||||
case isc_dyn_system_flag:
|
||||
X.RDB$SYSTEM_FLAG = DYN_get_number(ptr);
|
||||
X.RDB$SYSTEM_FLAG.NULL = FALSE;
|
||||
/* fb_assert(!ignore_perm || ignore_perm &&
|
||||
X.RDB$SYSTEM_FLAG == fb_sysflag_referential_constraint); */
|
||||
// fb_assert(!ignore_perm || ignore_perm &&
|
||||
// X.RDB$SYSTEM_FLAG == fb_sysflag_referential_constraint);
|
||||
break;
|
||||
|
||||
case isc_dyn_debug_info:
|
||||
@ -3912,12 +3886,12 @@ void DYN_define_trigger(Global* gbl,
|
||||
|
||||
b_ending_store = true;
|
||||
|
||||
/* the END_STORE_SPECIAL adds the foll. lines of code to the END_STORE
|
||||
if (ignore_perm)
|
||||
request->req_flags |= req_ignore_perm;
|
||||
after the request is compiled and before the request is sent.
|
||||
It makes the current request (to define the trigger) go through
|
||||
without checking any permissions lower in the engine */
|
||||
// the END_STORE_SPECIAL adds the foll. lines of code to the END_STORE
|
||||
// if (ignore_perm)
|
||||
// request->req_flags |= req_ignore_perm;
|
||||
// after the request is compiled and before the request is sent.
|
||||
// It makes the current request (to define the trigger) go through
|
||||
// without checking any permissions lower in the engine
|
||||
|
||||
END_STORE_SPECIAL;
|
||||
|
||||
@ -3954,7 +3928,7 @@ void DYN_define_trigger(Global* gbl,
|
||||
if (b_ending_store) {
|
||||
DYN_rundown_request(request, drq_s_triggers);
|
||||
DYN_error_punt(true, 31);
|
||||
/* msg 31: "DEFINE TRIGGER failed" */
|
||||
// msg 31: "DEFINE TRIGGER failed"
|
||||
}
|
||||
throw;
|
||||
}
|
||||
@ -4028,7 +4002,7 @@ void DYN_define_trigger_msg(Global* gbl, const UCHAR** ptr, const Firebird::Meta
|
||||
if (b_ending_store) {
|
||||
DYN_rundown_request(request, drq_s_trg_msgs);
|
||||
DYN_error_punt(true, 33);
|
||||
/* msg 33: "DEFINE TRIGGER MESSAGE failed" */
|
||||
// msg 33: "DEFINE TRIGGER MESSAGE failed"
|
||||
}
|
||||
throw;
|
||||
}
|
||||
@ -4054,7 +4028,7 @@ void DYN_define_view_relation( Global* gbl, const UCHAR** ptr, const Firebird::M
|
||||
fb_assert(view);
|
||||
if (view->length() == 0) {
|
||||
DYN_error_punt(false, 212);
|
||||
/* msg 212: "Zero length identifiers not allowed" */
|
||||
// msg 212: "Zero length identifiers not allowed"
|
||||
}
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_s_view_rels, DYN_REQUESTS);
|
||||
@ -4063,11 +4037,11 @@ void DYN_define_view_relation( Global* gbl, const UCHAR** ptr, const Firebird::M
|
||||
bool b_ending_store = false;
|
||||
|
||||
try {
|
||||
/*
|
||||
* The below code has been added for ALTER VIEW support,
|
||||
* but implementation was definitely wrong,
|
||||
* so it's commented our till the better times
|
||||
*
|
||||
// The below code has been added for ALTER VIEW support,
|
||||
// but implementation was definitely wrong,
|
||||
// so it's commented our till the better times
|
||||
|
||||
/*
|
||||
const SSHORT old_id = id;
|
||||
jrd_req* old_request = request;
|
||||
|
||||
@ -4088,7 +4062,8 @@ void DYN_define_view_relation( Global* gbl, const UCHAR** ptr, const Firebird::M
|
||||
|
||||
request = old_request;
|
||||
id = old_id;
|
||||
*/
|
||||
*/
|
||||
|
||||
STORE(REQUEST_HANDLE request TRANSACTION_HANDLE gbl->gbl_transaction)
|
||||
VRL IN RDB$VIEW_RELATIONS
|
||||
strcpy(VRL.RDB$VIEW_NAME, view->c_str());
|
||||
@ -4137,12 +4112,12 @@ void DYN_define_view_relation( Global* gbl, const UCHAR** ptr, const Firebird::M
|
||||
if (id == drq_s_view_rels)
|
||||
{
|
||||
DYN_error_punt(true, 34);
|
||||
/* msg 34: "STORE RDB$VIEW_RELATIONS failed" */
|
||||
// msg 34: "STORE RDB$VIEW_RELATIONS failed"
|
||||
}
|
||||
else if (id == drq_e_view_rels)
|
||||
{
|
||||
DYN_error_punt(true, 59);
|
||||
/* msg 59: "ERASE RDB$VIEW_RELATIONS failed" */
|
||||
// msg 59: "ERASE RDB$VIEW_RELATIONS failed"
|
||||
}
|
||||
}
|
||||
throw;
|
||||
@ -4211,8 +4186,8 @@ bool is_it_user_name(Global* gbl, const Firebird::MetaName& role_name, thread_db
|
||||
|
||||
try {
|
||||
|
||||
/* If there is a user with privilege or a grantor on a relation we
|
||||
can infer there is a user with this name */
|
||||
// If there is a user with privilege or a grantor on a relation we
|
||||
// can infer there is a user with this name
|
||||
|
||||
request_id = drq_get_user_priv;
|
||||
request = CMP_find_request(tdbb, request_id, DYN_REQUESTS);
|
||||
@ -4234,9 +4209,9 @@ bool is_it_user_name(Global* gbl, const Firebird::MetaName& role_name, thread_db
|
||||
return found;
|
||||
}
|
||||
|
||||
/* We can infer that 'role_name' is a user name if it owns any relations
|
||||
Note we can only get here if a user creates a table and revokes all
|
||||
his privileges on the table */
|
||||
// We can infer that 'role_name' is a user name if it owns any relations
|
||||
// Note we can only get here if a user creates a table and revokes all
|
||||
// his privileges on the table
|
||||
|
||||
request_id = drq_get_rel_owner;
|
||||
request = CMP_find_request(tdbb, request_id, DYN_REQUESTS);
|
||||
|
@ -247,22 +247,20 @@ void DYN_delete_constraint (Global* gbl, const UCHAR** ptr, const Firebird::Meta
|
||||
**************************************/
|
||||
Firebird::MetaName rel_name, constraint;
|
||||
|
||||
/* GET name of the constraint to be deleted */
|
||||
// Get name of the constraint to be deleted
|
||||
|
||||
GET_STRING(ptr, constraint);
|
||||
|
||||
if (relation)
|
||||
rel_name = *relation;
|
||||
else if (*(*ptr)++ != isc_dyn_rel_name) {
|
||||
DYN_error_punt(false, 128);
|
||||
/* msg 128: "No relation specified in delete_constraint" */
|
||||
DYN_error_punt(false, 128); // msg 128: "No relation specified in delete_constraint"
|
||||
}
|
||||
else
|
||||
GET_STRING(ptr, rel_name);
|
||||
|
||||
if (!delete_constraint_records(gbl, constraint, rel_name))
|
||||
DYN_error_punt(false, 130, constraint.c_str());
|
||||
/* msg 130: "CONSTRAINT %s does not exist." */
|
||||
DYN_error_punt(false, 130, constraint.c_str()); // msg 130: "CONSTRAINT %s does not exist."
|
||||
}
|
||||
|
||||
|
||||
@ -348,7 +346,7 @@ void DYN_delete_exception( Global* gbl, const UCHAR** ptr)
|
||||
Firebird::stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(true, 143);
|
||||
/* msg 143: "ERASE EXCEPTION failed" */
|
||||
// msg 143: "ERASE EXCEPTION failed"
|
||||
}
|
||||
|
||||
if (found)
|
||||
@ -359,7 +357,7 @@ void DYN_delete_exception( Global* gbl, const UCHAR** ptr)
|
||||
else
|
||||
{
|
||||
DYN_error_punt(false, 144);
|
||||
/* msg 144: "Exception not found" */
|
||||
// msg 144: "Exception not found"
|
||||
}
|
||||
|
||||
if (*(*ptr)++ != isc_dyn_end) {
|
||||
@ -409,12 +407,12 @@ void DYN_delete_filter( Global* gbl, const UCHAR** ptr)
|
||||
Firebird::stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(true, 36);
|
||||
/* msg 36: "ERASE BLOB FILTER failed" */
|
||||
// msg 36: "ERASE BLOB FILTER failed"
|
||||
}
|
||||
|
||||
if (!found) {
|
||||
DYN_error_punt(false, 37, f.c_str());
|
||||
/* msg 37: "Blob Filter %s not found" */
|
||||
// msg 37: "Blob Filter %s not found"
|
||||
}
|
||||
|
||||
if (*(*ptr)++ != isc_dyn_end) {
|
||||
@ -472,7 +470,7 @@ void DYN_delete_generator(Global* gbl, const UCHAR**ptr)
|
||||
Firebird::stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(true, 213);
|
||||
/* msg 213: "ERASE GENERATOR failed" */
|
||||
// msg 213: "ERASE GENERATOR failed"
|
||||
}
|
||||
|
||||
if (found)
|
||||
@ -483,7 +481,7 @@ void DYN_delete_generator(Global* gbl, const UCHAR**ptr)
|
||||
else
|
||||
{
|
||||
DYN_error_punt(false, 214, t.c_str());
|
||||
/* msg 214: "Generator %s not found" */
|
||||
// msg 214: "Generator %s not found"
|
||||
}
|
||||
}
|
||||
|
||||
@ -574,7 +572,7 @@ void DYN_delete_global_field( Global* gbl, const UCHAR** ptr)
|
||||
Firebird::stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(true, 44);
|
||||
/* msg 44: "ERASE RDB$FIELDS failed" */
|
||||
// msg 44: "ERASE RDB$FIELDS failed"
|
||||
}
|
||||
|
||||
if (found)
|
||||
@ -644,7 +642,7 @@ void DYN_delete_index( Global* gbl, const UCHAR** ptr)
|
||||
Firebird::stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(true, 47);
|
||||
/* msg 47: "ERASE RDB$INDICES failed" */
|
||||
// msg 47: "ERASE RDB$INDICES failed"
|
||||
}
|
||||
|
||||
if (found)
|
||||
@ -655,14 +653,14 @@ void DYN_delete_index( Global* gbl, const UCHAR** ptr)
|
||||
else
|
||||
{
|
||||
DYN_error_punt(false, 48);
|
||||
/* msg 48: "Index not found" */
|
||||
// msg 48: "Index not found"
|
||||
}
|
||||
|
||||
if (!is_expression)
|
||||
if (!delete_index_segment_records(gbl, idx_name))
|
||||
{
|
||||
DYN_error_punt(false, 50);
|
||||
/* msg 50: "No segments found for index" */
|
||||
// msg 50: "No segments found for index"
|
||||
}
|
||||
|
||||
while (*(*ptr)++ != isc_dyn_end) {
|
||||
@ -723,7 +721,7 @@ void DYN_delete_local_field(Global* gbl,
|
||||
tbl_nm = *relation_name;
|
||||
else if (*(*ptr)++ != isc_dyn_rel_name) {
|
||||
DYN_error_punt(false, 51);
|
||||
/* msg 51: "No relation specified in ERASE RFR" */
|
||||
// msg 51: "No relation specified in ERASE RFR"
|
||||
}
|
||||
else
|
||||
GET_STRING(ptr, tbl_nm);
|
||||
@ -735,13 +733,8 @@ void DYN_delete_local_field(Global* gbl,
|
||||
|
||||
try {
|
||||
|
||||
/*
|
||||
** ================================================================
|
||||
** ==
|
||||
** == make sure that column is not referenced in any views
|
||||
** ==
|
||||
** ================================================================
|
||||
*/
|
||||
// make sure that column is not referenced in any views
|
||||
|
||||
FOR(REQUEST_HANDLE request TRANSACTION_HANDLE gbl->gbl_transaction)
|
||||
X IN RDB$RELATION_FIELDS CROSS Y IN RDB$RELATION_FIELDS CROSS
|
||||
Z IN RDB$VIEW_RELATIONS WITH
|
||||
@ -757,21 +750,16 @@ void DYN_delete_local_field(Global* gbl,
|
||||
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(false, 52, SafeArg() << col_nm.c_str() << tbl_nm.c_str() << Y.RDB$RELATION_NAME);
|
||||
/* msg 52: "field %s from relation %s is referenced in view %s" */
|
||||
// msg 52: "field %s from relation %s is referenced in view %s"
|
||||
END_FOR;
|
||||
if (!DYN_REQUEST(drq_l_dep_flds))
|
||||
DYN_REQUEST(drq_l_dep_flds) = request;
|
||||
|
||||
/*
|
||||
** ===============================================================
|
||||
** ==
|
||||
** == If the column to be dropped is being used as a foreign key
|
||||
** == and the column was not part of any compound foreign key,
|
||||
** == then we can drop the column. But we have to drop the foreign key
|
||||
** == constraint first.
|
||||
** ==
|
||||
** ===============================================================
|
||||
*/
|
||||
|
||||
// If the column to be dropped is being used as a foreign key
|
||||
// and the column was not part of any compound foreign key,
|
||||
// then we can drop the column. But we have to drop the foreign key
|
||||
// constraint first.
|
||||
|
||||
request = CMP_find_request(tdbb, drq_g_rel_constr_nm, DYN_REQUESTS);
|
||||
id = drq_g_rel_constr_nm;
|
||||
@ -799,7 +787,7 @@ void DYN_delete_local_field(Global* gbl,
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(false, 187, SafeArg() << col_nm.c_str() << tbl_nm.c_str() <<
|
||||
IDX.RDB$INDEX_NAME);
|
||||
/* msg 187: "field %s from relation %s is referenced in index %s" */
|
||||
// msg 187: "field %s from relation %s is referenced in index %s"
|
||||
}
|
||||
|
||||
END_FOR;
|
||||
@ -807,17 +795,11 @@ void DYN_delete_local_field(Global* gbl,
|
||||
if (!DYN_REQUEST(drq_g_rel_constr_nm))
|
||||
DYN_REQUEST(drq_g_rel_constr_nm) = request;
|
||||
|
||||
/*
|
||||
** ================================================================
|
||||
** ==
|
||||
** == make sure that column is not referenced in any user-defined indexes
|
||||
** ==
|
||||
** == NOTE: You still could see the system generated indices even though
|
||||
** == they were already been deleted when dropping column that was
|
||||
** == used as foreign key before "commit".
|
||||
** ==
|
||||
** ================================================================
|
||||
*/
|
||||
// make sure that column is not referenced in any user-defined indexes
|
||||
|
||||
// NOTE: You still could see the system generated indices even though
|
||||
// they were already been deleted when dropping column that was
|
||||
// used as foreign key before "commit".
|
||||
|
||||
request = CMP_find_request(tdbb, drq_e_l_idx, DYN_REQUESTS);
|
||||
id = drq_e_l_idx;
|
||||
@ -1238,7 +1220,7 @@ void DYN_delete_relation( Global* gbl, const UCHAR** ptr, const Firebird::MetaNa
|
||||
|
||||
dyn_punt_61:
|
||||
DYN_error_punt(false, 61);
|
||||
/* msg 61: "Relation not found" */
|
||||
// msg 61: "Relation not found"
|
||||
}
|
||||
|
||||
|
||||
@ -1321,8 +1303,8 @@ void DYN_delete_role( Global* gbl, const UCHAR** ptr)
|
||||
id = drq_del_role_1;
|
||||
|
||||
|
||||
/* The first OR clause Finds all members of the role
|
||||
The 2nd OR clause Finds all privileges granted to the role */
|
||||
// The first OR clause finds all members of the role.
|
||||
// The 2nd OR clause finds all privileges granted to the role
|
||||
FOR(REQUEST_HANDLE request TRANSACTION_HANDLE gbl->gbl_transaction)
|
||||
PRIV IN RDB$USER_PRIVILEGES WITH
|
||||
(PRIV.RDB$RELATION_NAME EQ role_name.c_str() AND
|
||||
@ -1397,7 +1379,7 @@ void DYN_delete_security_class( Global* gbl, const UCHAR** ptr)
|
||||
if (!DYN_delete_security_class2(gbl->gbl_transaction, security_class))
|
||||
{
|
||||
DYN_error_punt(false, 75);
|
||||
/* msg 75: "Security class not found" */
|
||||
// msg 75: "Security class not found"
|
||||
}
|
||||
|
||||
while (*(*ptr)++ != isc_dyn_end) {
|
||||
@ -1449,7 +1431,7 @@ void DYN_delete_shadow( Global* gbl, const UCHAR** ptr)
|
||||
Firebird::stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(true, 63);
|
||||
/* msg 63: "ERASE RDB$FILES failed" */
|
||||
// msg 63: "ERASE RDB$FILES failed"
|
||||
}
|
||||
|
||||
if (*(*ptr)++ != isc_dyn_end) {
|
||||
@ -1503,7 +1485,7 @@ static bool delete_constraint_records(Global* gbl,
|
||||
Firebird::stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(true, 129);
|
||||
/* msg 129: "ERASE RDB$RELATION_CONSTRAINTS failed" */
|
||||
// msg 129: "ERASE RDB$RELATION_CONSTRAINTS failed"
|
||||
}
|
||||
|
||||
return found;
|
||||
@ -1552,7 +1534,7 @@ static bool delete_dimension_records(Global* gbl,
|
||||
Firebird::stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(true, 35);
|
||||
/* msg 35: "ERASE RDB$FIELDS failed" */
|
||||
// msg 35: "ERASE RDB$FIELDS failed"
|
||||
}
|
||||
|
||||
return found;
|
||||
@ -1623,14 +1605,14 @@ static void delete_f_key_constraint(thread_db* tdbb,
|
||||
if (!found)
|
||||
{
|
||||
DYN_error_punt(false, 130, constraint_nm.c_str());
|
||||
/* msg 130: "CONSTRAINT %s does not exist." */
|
||||
// msg 130: "CONSTRAINT %s does not exist."
|
||||
}
|
||||
}
|
||||
catch (const Firebird::Exception& ex) {
|
||||
Firebird::stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(true, 129);
|
||||
/* msg 49: "ERASE RDB$RELATION_CONSTRAINTS failed" */
|
||||
// msg 49: "ERASE RDB$RELATION_CONSTRAINTS failed"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1717,7 +1699,7 @@ static bool delete_index_segment_records(Global* gbl,
|
||||
Firebird::stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(true, 49);
|
||||
/* msg 49: "ERASE RDB$INDEX_SEGMENTS failed" */
|
||||
// msg 49: "ERASE RDB$INDEX_SEGMENTS failed"
|
||||
}
|
||||
|
||||
return found;
|
||||
@ -1768,7 +1750,7 @@ bool DYN_delete_security_class2(jrd_tra* transaction, const Firebird::MetaName&
|
||||
Firebird::stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(true, 74);
|
||||
/* msg 74: "ERASE RDB$SECURITY_CLASSES failed" */
|
||||
// msg 74: "ERASE RDB$SECURITY_CLASSES failed"
|
||||
}
|
||||
|
||||
return found;
|
||||
|
@ -722,7 +722,7 @@ void DYN_modify_global_field(Global* gbl,
|
||||
orig_dom.dyn_collation = FLD.RDB$COLLATION_ID;
|
||||
orig_dom.dyn_null_flag = FLD.RDB$NULL_FLAG != 0;
|
||||
|
||||
/* If the original field type is an array, force its blr type to blr_blob */
|
||||
// If the original field type is an array, force its blr type to blr_blob
|
||||
bool has_dimensions = false;
|
||||
if (FLD.RDB$DIMENSIONS != 0)
|
||||
{
|
||||
@ -750,7 +750,7 @@ void DYN_modify_global_field(Global* gbl,
|
||||
FLD.RDB$FIELD_NAME.NULL = FALSE;
|
||||
jrd_req* old_request = request;
|
||||
request = NULL;
|
||||
/* CVC: Let's update the dimensions, too. */
|
||||
// CVC: Let's update the dimensions, too.
|
||||
if (has_dimensions)
|
||||
{
|
||||
FOR (REQUEST_HANDLE request TRANSACTION_HANDLE gbl->gbl_transaction)
|
||||
@ -764,7 +764,7 @@ void DYN_modify_global_field(Global* gbl,
|
||||
CMP_release (tdbb, request);
|
||||
request = NULL;
|
||||
}
|
||||
/* CVC: End modification. */
|
||||
// CVC: End modification.
|
||||
FOR(REQUEST_HANDLE request TRANSACTION_HANDLE gbl->gbl_transaction)
|
||||
DOM IN RDB$RELATION_FIELDS
|
||||
WITH DOM.RDB$FIELD_SOURCE EQ orig_dom.dyn_fld_name.c_str()
|
||||
@ -785,13 +785,13 @@ void DYN_modify_global_field(Global* gbl,
|
||||
{
|
||||
DYN_error_punt(false, 204, SafeArg() << orig_dom.dyn_fld_name.c_str() <<
|
||||
newfld.c_str());
|
||||
/* msg 204: Cannot rename domain %s to %s. A domain with that name already exists. */
|
||||
// msg 204: Cannot rename domain %s to %s. A domain with that name already exists.
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DYN_error_punt(false, 212);
|
||||
/* msg 212: "Zero length identifiers not allowed" */
|
||||
// msg 212: "Zero length identifiers not allowed"
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -800,9 +800,9 @@ void DYN_modify_global_field(Global* gbl,
|
||||
GET_STRING(ptr, new_dom.dyn_rel_name);
|
||||
break;
|
||||
|
||||
/* CVC: The syntax for DDL alter domain was accepting multiple
|
||||
changes in one command even to the same features, IE two length alterations.
|
||||
This repetitive type change will cause havoc so it should be stopped in the future. */
|
||||
// CVC: The syntax for DDL alter domain was accepting multiple
|
||||
// changes in one command even to the same features, IE two length alterations.
|
||||
// This repetitive type change will cause havoc so it should be stopped in the future.
|
||||
|
||||
case isc_dyn_fld_length:
|
||||
fldlen = true;
|
||||
@ -939,7 +939,7 @@ void DYN_modify_global_field(Global* gbl,
|
||||
if (single_validate) {
|
||||
EXE_unwind(tdbb, request);
|
||||
DYN_error_punt(false, 160);
|
||||
/* msg 160: "Only one constraint allowed for a domain" */
|
||||
// msg 160: "Only one constraint allowed for a domain"
|
||||
break;
|
||||
}
|
||||
|
||||
@ -950,7 +950,7 @@ void DYN_modify_global_field(Global* gbl,
|
||||
if (single_validate && (!FLD.RDB$VALIDATION_BLR.NULL)) {
|
||||
EXE_unwind(tdbb, request);
|
||||
DYN_error_punt(false, 160);
|
||||
/* msg 160: "Only one constraint allowed for a domain" */
|
||||
// msg 160: "Only one constraint allowed for a domain"
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1006,9 +1006,8 @@ void DYN_modify_global_field(Global* gbl,
|
||||
new_dom.dyn_dtype = blr_blob;
|
||||
break;
|
||||
|
||||
/* These should only be defined for BLOB types and should not come through with
|
||||
* any other types. Do nothing with them.
|
||||
*/
|
||||
// These should only be defined for BLOB types and should not come through with
|
||||
// any other types. Do nothing with them.
|
||||
|
||||
case isc_dyn_fld_segment_length:
|
||||
DYN_get_number(ptr);
|
||||
@ -1021,9 +1020,8 @@ void DYN_modify_global_field(Global* gbl,
|
||||
}
|
||||
|
||||
|
||||
/* Now that we have all of the information needed, let's check to see if the field type can be modifed.
|
||||
* Only do this, however, if we are actually modifying the datatype of the domain.
|
||||
*/
|
||||
// Now that we have all of the information needed, let's check to see if the field type can be modifed.
|
||||
// Only do this, however, if we are actually modifying the datatype of the domain.
|
||||
|
||||
if (dtype) {
|
||||
DSC_make_descriptor(&new_dom.dyn_dsc,
|
||||
@ -1043,7 +1041,7 @@ void DYN_modify_global_field(Global* gbl,
|
||||
FLD.RDB$FIELD_TYPE = new_dom.dyn_dtype;
|
||||
FLD.RDB$FIELD_TYPE.NULL = FALSE;
|
||||
|
||||
/* If the datatype was changed, update any indexes that involved the domain */
|
||||
// If the datatype was changed, update any indexes that involved the domain
|
||||
|
||||
jrd_req* old_request = request;
|
||||
request = NULL;
|
||||
@ -1091,7 +1089,7 @@ void DYN_modify_global_field(Global* gbl,
|
||||
}
|
||||
|
||||
if (fldlen) {
|
||||
/* CVC: Rescue from the wrong field_length with a helper. */
|
||||
// CVC: Rescue from the wrong field_length with a helper.
|
||||
if (new_dom.dyn_dsc.dsc_dtype <= dtype_varying && new_dom.dyn_charbytelen)
|
||||
FLD.RDB$FIELD_LENGTH = new_dom.dyn_charbytelen;
|
||||
else
|
||||
@ -1185,7 +1183,7 @@ void DYN_modify_global_field(Global* gbl,
|
||||
stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(true, 87);
|
||||
/* msg 87: "MODIFY RDB$FIELDS failed" */
|
||||
// msg 87: "MODIFY RDB$FIELDS failed"
|
||||
}
|
||||
|
||||
if (found)
|
||||
@ -1196,7 +1194,7 @@ void DYN_modify_global_field(Global* gbl,
|
||||
else
|
||||
{
|
||||
DYN_error_punt(false, 89);
|
||||
/* msg 89: "Global field not found" */
|
||||
// msg 89: "Global field not found"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1258,7 +1256,7 @@ void DYN_modify_index( Global* gbl, const UCHAR** ptr)
|
||||
IDX.RDB$DESCRIPTION.NULL = TRUE;
|
||||
break;
|
||||
|
||||
/* For V4 index selectivity can be set only to -1 */
|
||||
// For V4 index selectivity can be set only to -1
|
||||
|
||||
case isc_dyn_idx_statistic:
|
||||
IDX.RDB$STATISTICS = -1.0;
|
||||
@ -1290,7 +1288,7 @@ void DYN_modify_index( Global* gbl, const UCHAR** ptr)
|
||||
else
|
||||
{
|
||||
DYN_error_punt(false, 48);
|
||||
/* msg 48: "Index not found" */
|
||||
// msg 48: "Index not found"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1440,7 +1438,7 @@ void DYN_modify_local_field(Global* gbl,
|
||||
if (new_fld.length() == 0)
|
||||
{
|
||||
DYN_error_punt(false, 212);
|
||||
/* msg 212: "Zero length identifiers not allowed" */
|
||||
// msg 212: "Zero length identifiers not allowed"
|
||||
}
|
||||
|
||||
check_view_dependency(tdbb, gbl, r, f);
|
||||
@ -1452,7 +1450,7 @@ void DYN_modify_local_field(Global* gbl,
|
||||
else {
|
||||
DYN_error_punt(false, 205, SafeArg() << f.c_str() << new_fld.c_str() <<
|
||||
r.c_str());
|
||||
/* msg 205: Cannot rename field %s to %s. A field with that name already exists in table %s. */
|
||||
// msg 205: Cannot rename field %s to %s. A field with that name already exists in table %s.
|
||||
}
|
||||
}
|
||||
|
||||
@ -1500,7 +1498,7 @@ void DYN_modify_local_field(Global* gbl,
|
||||
stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(true, 95);
|
||||
/* msg 95: "MODIFY RDB$RELATION_FIELDS failed" */
|
||||
// msg 95: "MODIFY RDB$RELATION_FIELDS failed"
|
||||
}
|
||||
|
||||
if (!found)
|
||||
@ -1569,12 +1567,12 @@ void DYN_modify_relation( Global* gbl, const UCHAR** ptr)
|
||||
if (REL.RDB$EXTERNAL_FILE.NULL) {
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(false, 97);
|
||||
/* msg 97: "add EXTERNAL FILE not allowed" */
|
||||
// msg 97: "add EXTERNAL FILE not allowed"
|
||||
}
|
||||
if (!GET_STRING(ptr, REL.RDB$EXTERNAL_FILE)) {
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(false, 98);
|
||||
/* msg 98: "drop EXTERNAL FILE not allowed" */
|
||||
// msg 98: "drop EXTERNAL FILE not allowed"
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1600,7 +1598,7 @@ void DYN_modify_relation( Global* gbl, const UCHAR** ptr)
|
||||
stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(true, 99);
|
||||
/* msg 99: "MODIFY RDB$RELATIONS failed" */
|
||||
// msg 99: "MODIFY RDB$RELATIONS failed"
|
||||
}
|
||||
|
||||
if (found)
|
||||
@ -1611,7 +1609,7 @@ void DYN_modify_relation( Global* gbl, const UCHAR** ptr)
|
||||
else
|
||||
{
|
||||
DYN_error_punt(false, 101);
|
||||
/* msg 101: "Relation field not found" */
|
||||
// msg 101: "Relation field not found"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1713,8 +1711,7 @@ void DYN_modify_trigger_msg( Global* gbl, const UCHAR** ptr, MetaName* trigger_n
|
||||
else if (*(*ptr)++ == isc_dyn_trg_name)
|
||||
GET_STRING(ptr, t);
|
||||
else
|
||||
DYN_error_punt(false, 103);
|
||||
/* msg 103: "TRIGGER NAME expected" */
|
||||
DYN_error_punt(false, 103); // msg 103: "TRIGGER NAME expected"
|
||||
|
||||
FOR(REQUEST_HANDLE request TRANSACTION_HANDLE gbl->gbl_transaction)
|
||||
X IN RDB$TRIGGER_MESSAGES
|
||||
@ -1752,7 +1749,7 @@ void DYN_modify_trigger_msg( Global* gbl, const UCHAR** ptr, MetaName* trigger_n
|
||||
stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(true, 105);
|
||||
/* msg 105: "MODIFY TRIGGER MESSAGE failed" */
|
||||
// msg 105: "MODIFY TRIGGER MESSAGE failed"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1778,7 +1775,7 @@ void DYN_modify_view( Global* gbl, const UCHAR** ptr)
|
||||
if (view_name.length() == 0)
|
||||
{
|
||||
DYN_error_punt(false, 212);
|
||||
/* msg 212: "Zero length identifiers not allowed" */
|
||||
// msg 212: "Zero length identifiers not allowed"
|
||||
}
|
||||
|
||||
jrd_req* request = NULL;
|
||||
@ -1900,7 +1897,7 @@ void DYN_modify_view( Global* gbl, const UCHAR** ptr)
|
||||
stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, -1);
|
||||
DYN_error_punt(true, 99);
|
||||
/* msg 99: "MODIFY RDB$RELATIONS failed" */
|
||||
// msg 99: "MODIFY RDB$RELATIONS failed"
|
||||
}
|
||||
|
||||
if (found)
|
||||
@ -1911,7 +1908,7 @@ void DYN_modify_view( Global* gbl, const UCHAR** ptr)
|
||||
else
|
||||
{
|
||||
DYN_error_punt(false, 54, view_name.c_str());
|
||||
/* msg 54: "View %s not found" */
|
||||
// msg 54: "View %s not found"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1993,7 +1990,7 @@ static void change_backup_mode( Global* gbl, UCHAR verb)
|
||||
stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, drq_d_difference);
|
||||
DYN_error_punt(true, 63);
|
||||
/* msg 63: ERASE RDB$FILE failed */
|
||||
// msg 63: ERASE RDB$FILE failed
|
||||
}
|
||||
|
||||
if (!found && verb == isc_dyn_begin_backup) {
|
||||
@ -2021,21 +2018,21 @@ static void change_backup_mode( Global* gbl, UCHAR verb)
|
||||
stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_rundown_request(request, drq_s2_difference);
|
||||
DYN_error_punt(true, 150);
|
||||
/* msg 150: STORE RDB$FILES failed */
|
||||
// msg 150: STORE RDB$FILES failed
|
||||
}
|
||||
}
|
||||
|
||||
if (invalid_state) {
|
||||
DYN_error_punt(false, verb == isc_dyn_begin_backup ? 217 : 218);
|
||||
/* msg 217: "Database is already in the physical backup mode" */
|
||||
/* msg 218: "Database is not in the physical backup mode" */
|
||||
// msg 217: "Database is already in the physical backup mode"
|
||||
// msg 218: "Database is not in the physical backup mode"
|
||||
}
|
||||
|
||||
if (!found)
|
||||
{
|
||||
DYN_error_punt(false, verb == isc_dyn_end_backup ? 218 : 215);
|
||||
/* msg 218: "Database is not in the physical backup mode" */
|
||||
/* msg 215: "Difference file is not defined" */
|
||||
// msg 218: "Database is not in the physical backup mode"
|
||||
// msg 215: "Difference file is not defined"
|
||||
}
|
||||
}
|
||||
|
||||
@ -2077,22 +2074,20 @@ static void modify_lfield_position(thread_db* tdbb,
|
||||
|
||||
try {
|
||||
|
||||
/* Find the position of the last field in the relation */
|
||||
// Find the position of the last field in the relation
|
||||
SLONG max_position = -1;
|
||||
DYN_UTIL_generate_field_position(tdbb, gbl, relation_name, &max_position);
|
||||
|
||||
/* if the existing position of the field is less than the new position of
|
||||
* the field, subtract 1 to move the fields to their new positions otherwise,
|
||||
* increase the value in RDB$FIELD_POSITION by one
|
||||
*/
|
||||
// If the existing position of the field is less than the new position of
|
||||
// the field, subtract 1 to move the fields to their new positions otherwise,
|
||||
// increase the value in RDB$FIELD_POSITION by one
|
||||
|
||||
bool move_down = false;
|
||||
if (existing_position < new_position)
|
||||
move_down = true;
|
||||
|
||||
/* Retrieve the records for the fields which have a position between the
|
||||
* existing field position and the new field position
|
||||
*/
|
||||
// Retrieve the records for the fields which have a position between the
|
||||
// existing field position and the new field position
|
||||
|
||||
FOR(REQUEST_HANDLE request TRANSACTION_HANDLE gbl->gbl_transaction)
|
||||
FLD IN RDB$RELATION_FIELDS
|
||||
@ -2100,13 +2095,11 @@ static void modify_lfield_position(thread_db* tdbb,
|
||||
FLD.RDB$FIELD_POSITION >= MIN(new_position, existing_position) AND
|
||||
FLD.RDB$FIELD_POSITION <= MAX(new_position, existing_position)
|
||||
MODIFY FLD USING
|
||||
/* If the field is the one we want, change the position, otherwise
|
||||
* increase the value of RDB$FIELD_POSITION
|
||||
*/
|
||||
// If the field is the one we want, change the position, otherwise
|
||||
// increase the value of RDB$FIELD_POSITION
|
||||
if (field_name == FLD.RDB$FIELD_NAME) {
|
||||
if (new_position > max_position)
|
||||
/* This prevents gaps in the position sequence of the
|
||||
* fields */
|
||||
// This prevents gaps in the position sequence of the fields
|
||||
FLD.RDB$FIELD_POSITION = max_position;
|
||||
else
|
||||
FLD.RDB$FIELD_POSITION = new_position;
|
||||
@ -2125,9 +2118,9 @@ static void modify_lfield_position(thread_db* tdbb,
|
||||
CMP_release(tdbb, request);
|
||||
request = NULL;
|
||||
|
||||
/* Once the field position has been changed, make sure that there are no
|
||||
* duplicate field positions and no gaps in the position sequence (this can
|
||||
* not be guaranteed by the query above */
|
||||
// Once the field position has been changed, make sure that there are no
|
||||
// duplicate field positions and no gaps in the position sequence (this can
|
||||
// not be guaranteed by the query above
|
||||
|
||||
USHORT new_pos = 0;
|
||||
FOR(REQUEST_HANDLE request TRANSACTION_HANDLE gbl->gbl_transaction)
|
||||
@ -2147,7 +2140,7 @@ static void modify_lfield_position(thread_db* tdbb,
|
||||
catch (const Exception& ex) {
|
||||
stuff_exception(tdbb->tdbb_status_vector, ex);
|
||||
DYN_error_punt(true, 95);
|
||||
/* msg 95: "MODIFY RDB$RELATION_FIELDS failed" */
|
||||
// msg 95: "MODIFY RDB$RELATION_FIELDS failed"
|
||||
}
|
||||
}
|
||||
|
||||
@ -2192,7 +2185,7 @@ static bool check_view_dependency(thread_db* tdbb,
|
||||
if (retval)
|
||||
DYN_error_punt(false, 206, SafeArg() << field_name.c_str() <<
|
||||
relation_name.c_str() << view_name.c_str());
|
||||
/* msg 206: Column %s from table %s is referenced in %s. */
|
||||
// msg 206: Column %s from table %s is referenced in %s.
|
||||
|
||||
return retval;
|
||||
}
|
||||
@ -2231,7 +2224,7 @@ static bool check_sptrig_dependency(thread_db* tdbb,
|
||||
if (retval)
|
||||
DYN_error_punt(false, 206, SafeArg() << field_name.c_str() <<
|
||||
relation_name.c_str() << dep_name.c_str());
|
||||
/* msg 206: Column %s from table %s is referenced in %s. */
|
||||
// msg 206: Column %s from table %s is referenced in %s.
|
||||
|
||||
return retval;
|
||||
}
|
||||
@ -2260,12 +2253,12 @@ static void modify_lfield_index(thread_db* tdbb,
|
||||
IDX.RDB$INDEX_NAME EQ IDXS.RDB$INDEX_NAME AND
|
||||
IDX.RDB$RELATION_NAME EQ relation_name.c_str() AND
|
||||
IDXS.RDB$FIELD_NAME EQ field_name.c_str()
|
||||
/* Change the name of the field in the index */
|
||||
// Change the name of the field in the index
|
||||
MODIFY IDXS USING
|
||||
memcpy(IDXS.RDB$FIELD_NAME, new_fld_name.c_str(), sizeof(IDXS.RDB$FIELD_NAME));
|
||||
END_MODIFY;
|
||||
|
||||
/* Set the index name to itself to tell the index to rebuild */
|
||||
// Set the index name to itself to tell the index to rebuild
|
||||
MODIFY IDX USING
|
||||
// This is to fool both gpre and gcc.
|
||||
char* p = IDX.RDB$INDEX_NAME;
|
||||
@ -3229,10 +3222,10 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld,
|
||||
**************************************/
|
||||
|
||||
|
||||
/* Check to make sure that the old and new types are compatible */
|
||||
// Check to make sure that the old and new types are compatible
|
||||
switch (orig_fld.dyn_dtype)
|
||||
{
|
||||
/* CHARACTER types */
|
||||
// CHARACTER types
|
||||
case blr_text:
|
||||
case blr_varying:
|
||||
case blr_cstring:
|
||||
@ -3241,8 +3234,8 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld,
|
||||
case blr_blob:
|
||||
case blr_blob_id:
|
||||
return isc_dyn_dtype_invalid;
|
||||
/* Cannot change datatype for column %s.
|
||||
The operation cannot be performed on BLOB, or ARRAY columns. */
|
||||
// Cannot change datatype for column %s.
|
||||
// The operation cannot be performed on BLOB, or ARRAY columns.
|
||||
break;
|
||||
|
||||
case blr_sql_date:
|
||||
@ -3255,22 +3248,22 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld,
|
||||
case blr_double:
|
||||
case blr_float:
|
||||
return isc_dyn_dtype_conv_invalid;
|
||||
/* Cannot convert column %s from character to non-character data. */
|
||||
// Cannot convert column %s from character to non-character data.
|
||||
break;
|
||||
|
||||
/* If the original field is a character field and the new field is a character field,
|
||||
* is there enough space in the new field? */
|
||||
// If the original field is a character field and the new field is a character field,
|
||||
// is there enough space in the new field?
|
||||
case blr_text:
|
||||
case blr_varying:
|
||||
case blr_cstring:
|
||||
{
|
||||
/* CVC: Because our caller invoked DSC_make_descriptor() on new_fld previously,
|
||||
we should have the added bytes for varchar. For cstring, we are done, since
|
||||
DSC_make_descriptor(DSC_string_length) != DSC_string_length(DSC_make_descriptor). */
|
||||
// CVC: Because our caller invoked DSC_make_descriptor() on new_fld previously,
|
||||
// we should have the added bytes for varchar. For cstring, we are done, since
|
||||
// DSC_make_descriptor(DSC_string_length) != DSC_string_length(DSC_make_descriptor).
|
||||
|
||||
const USHORT maxflen = DSC_string_length(&orig_fld.dyn_dsc);
|
||||
|
||||
/* We can have this assertion since this case is for both string fields. */
|
||||
// We can have this assertion since this case is for both string fields.
|
||||
const ULONG new_len = DSC_string_length(&new_fld.dyn_dsc);
|
||||
fb_assert(new_len - maxflen == (ULONG) new_fld.dyn_charbytelen - orig_fld.dyn_charbytelen);
|
||||
// if (new_fld.dyn_dsc.dsc_length < maxflen)
|
||||
@ -3282,18 +3275,18 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld,
|
||||
|
||||
default:
|
||||
fb_assert(FALSE);
|
||||
return 87; /* MODIFY RDB$FIELDS FAILED */
|
||||
return 87; // MODIFY RDB$FIELDS FAILED
|
||||
}
|
||||
break;
|
||||
|
||||
/* BLOB and ARRAY types */
|
||||
// BLOB and ARRAY types
|
||||
case blr_blob:
|
||||
case blr_blob_id:
|
||||
return isc_dyn_dtype_invalid;
|
||||
/* Cannot change datatype for column %s.
|
||||
The operation cannot be performed on BLOB, or ARRAY columns. */
|
||||
// Cannot change datatype for column %s.
|
||||
// The operation cannot be performed on BLOB, or ARRAY columns.
|
||||
|
||||
/* DATE types */
|
||||
// DATE types
|
||||
case blr_sql_date:
|
||||
case blr_sql_time:
|
||||
case blr_timestamp:
|
||||
@ -3302,23 +3295,23 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld,
|
||||
case blr_sql_date:
|
||||
if (orig_fld.dyn_dtype == blr_sql_time)
|
||||
return isc_dyn_invalid_dtype_conversion;
|
||||
/* Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported. */
|
||||
// Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported.
|
||||
break;
|
||||
|
||||
case blr_sql_time:
|
||||
if (orig_fld.dyn_dtype == blr_sql_date)
|
||||
return isc_dyn_invalid_dtype_conversion;
|
||||
/* Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported. */
|
||||
// Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported.
|
||||
break;
|
||||
|
||||
case blr_timestamp:
|
||||
if (orig_fld.dyn_dtype == blr_sql_time)
|
||||
return isc_dyn_invalid_dtype_conversion;
|
||||
/* Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported. */
|
||||
// Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported.
|
||||
break;
|
||||
|
||||
/* If the original field is a date field and the new field is a character field,
|
||||
* is there enough space in the new field? */
|
||||
// If the original field is a date field and the new field is a character field,
|
||||
// is there enough space in the new field?
|
||||
case blr_text:
|
||||
case blr_text2:
|
||||
case blr_varying:
|
||||
@ -3339,11 +3332,11 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld,
|
||||
|
||||
default:
|
||||
return isc_dyn_invalid_dtype_conversion;
|
||||
/* Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported. */
|
||||
// Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported.
|
||||
}
|
||||
break;
|
||||
|
||||
/* NUMERIC types */
|
||||
// NUMERIC types
|
||||
case blr_int64:
|
||||
case blr_long:
|
||||
case blr_short:
|
||||
@ -3355,17 +3348,17 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld,
|
||||
case blr_blob:
|
||||
case blr_blob_id:
|
||||
return isc_dyn_dtype_invalid;
|
||||
/* Cannot change datatype for column %s.
|
||||
The operation cannot be performed on BLOB, or ARRAY columns. */
|
||||
// Cannot change datatype for column %s.
|
||||
// The operation cannot be performed on BLOB, or ARRAY columns.
|
||||
|
||||
case blr_sql_date:
|
||||
case blr_sql_time:
|
||||
case blr_timestamp:
|
||||
return isc_dyn_invalid_dtype_conversion;
|
||||
/* Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported. */
|
||||
// Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported.
|
||||
|
||||
/* If the original field is a numeric field and the new field is a numeric field,
|
||||
* is there enough space in the new field (do not allow the base type to decrease) */
|
||||
// If the original field is a numeric field and the new field is a numeric field,
|
||||
// is there enough space in the new field (do not allow the base type to decrease)
|
||||
|
||||
case blr_short:
|
||||
switch (orig_fld.dyn_dtype)
|
||||
@ -3375,7 +3368,7 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld,
|
||||
|
||||
default:
|
||||
return isc_dyn_invalid_dtype_conversion;
|
||||
/* Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported. */
|
||||
// Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported.
|
||||
}
|
||||
break;
|
||||
|
||||
@ -3388,7 +3381,7 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld,
|
||||
|
||||
default:
|
||||
return isc_dyn_invalid_dtype_conversion;
|
||||
/* Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported. */
|
||||
// Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported.
|
||||
}
|
||||
break;
|
||||
|
||||
@ -3401,7 +3394,7 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld,
|
||||
|
||||
default:
|
||||
return isc_dyn_invalid_dtype_conversion;
|
||||
/* Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported. */
|
||||
// Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported.
|
||||
}
|
||||
break;
|
||||
|
||||
@ -3415,7 +3408,7 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld,
|
||||
|
||||
default:
|
||||
return isc_dyn_invalid_dtype_conversion;
|
||||
/* Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported. */
|
||||
// Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported.
|
||||
}
|
||||
break;
|
||||
|
||||
@ -3432,12 +3425,12 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld,
|
||||
|
||||
default:
|
||||
return isc_dyn_invalid_dtype_conversion;
|
||||
/* Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported. */
|
||||
// Cannot change datatype for column %s. Conversion from base type %s to base type %s is not supported.
|
||||
}
|
||||
break;
|
||||
|
||||
/* If the original field is a numeric field and the new field is a character field,
|
||||
* is there enough space in the new field? */
|
||||
// If the original field is a numeric field and the new field is a character field,
|
||||
// is there enough space in the new field?
|
||||
case blr_text:
|
||||
case blr_varying:
|
||||
case blr_cstring:
|
||||
@ -3454,13 +3447,13 @@ static ULONG check_update_fld_type(const dyn_fld& orig_fld,
|
||||
|
||||
default:
|
||||
fb_assert(FALSE);
|
||||
return 87; /* MODIFY RDB$FIELDS FAILED */
|
||||
return 87; // MODIFY RDB$FIELDS FAILED
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
fb_assert(FALSE);
|
||||
return 87; /* MODIFY RDB$FIELDS FAILED */
|
||||
return 87; // MODIFY RDB$FIELDS FAILED
|
||||
}
|
||||
return FB_SUCCESS;
|
||||
}
|
||||
@ -3520,12 +3513,12 @@ static void modify_err_punt(thread_db* /*tdbb*/,
|
||||
{
|
||||
case isc_dyn_dtype_invalid:
|
||||
DYN_error_punt(false, errorcode, orig_fld_def.dyn_fld_name.c_str());
|
||||
/* Cannot change datatype for column %s.The operation cannot be performed on DATE, BLOB, or ARRAY columns. */
|
||||
// Cannot change datatype for column %s.The operation cannot be performed on DATE, BLOB, or ARRAY columns.
|
||||
break;
|
||||
|
||||
case isc_dyn_dtype_conv_invalid:
|
||||
DYN_error_punt(false, errorcode, orig_fld_def.dyn_fld_name.c_str());
|
||||
/* Cannot convert column %s from character to non-character data. */
|
||||
// Cannot convert column %s from character to non-character data.
|
||||
break;
|
||||
|
||||
case isc_dyn_char_fld_too_small:
|
||||
@ -3571,6 +3564,6 @@ static void modify_err_punt(thread_db* /*tdbb*/,
|
||||
|
||||
default:
|
||||
DYN_error_punt(true, 95);
|
||||
/* msg 95: "MODIFY RDB$RELATION_FIELDS failed" */
|
||||
// msg 95: "MODIFY RDB$RELATION_FIELDS failed"
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user