Skip to content

Commit 76bac9b

Browse files
committed
Corrections and simplifications.
1 parent cf02c13 commit 76bac9b

File tree

2 files changed

+36
-34
lines changed

2 files changed

+36
-34
lines changed

src/burp/restore.epp

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3207,7 +3207,6 @@ static void commit_relation_data(BurpGlobals* tdgbl, burp_rel* relation)
32073207
case isc_sort_mem_err:
32083208
case isc_no_dup:
32093209
indexName = QualifiedMetaString::parseSchemaObject((TEXT*) tdgbl->status_vector[3]);
3210-
indexName.object = (TEXT*) tdgbl->status_vector[3];
32113210
BURP_print_status(false, &tdgbl->status_vector);
32123211

32133212
FOR(REQUEST_HANDLE req_handle)
@@ -8546,6 +8545,10 @@ bool get_schema(BurpGlobals* tdgbl)
85468545
eat_text(tdgbl);
85478546
break;
85488547

8548+
case att_schema_sql_security:
8549+
get_boolean(tdgbl);
8550+
break;
8551+
85498552
case att_schema_security_class:
85508553
eat_text(tdgbl);
85518554
break;
@@ -10915,8 +10918,7 @@ bool restore(BurpGlobals* tdgbl, Firebird::IProvider* provider, const TEXT* file
1091510918
X IN RDB$FIELDS WITH
1091610919
X.RDB$SYSTEM_FLAG EQ 1
1091710920
{
10918-
const QualifiedMetaString name(X.RDB$FIELD_NAME, (X.RDB$SCHEMA_NAME.NULL ? "" : X.RDB$SCHEMA_NAME));
10919-
tdgbl->systemFields.add(name);
10921+
tdgbl->systemFields.add(QualifiedMetaString(X.RDB$FIELD_NAME, X.RDB$SCHEMA_NAME));
1092010922
}
1092110923
END_FOR
1092210924
ON_ERROR
@@ -11545,10 +11547,7 @@ USHORT get_view_base_relation_count(BurpGlobals* tdgbl,
1154511547
{
1154611548
// Call recursive for VIEWS that are referenced in VIEWS
1154711549
result += get_view_base_relation_count(tdgbl,
11548-
QualifiedMetaString(
11549-
V.RDB$RELATION_NAME,
11550-
(V.RDB$RELATION_SCHEMA_NAME.NULL ? "" : V.RDB$RELATION_SCHEMA_NAME)
11551-
),
11550+
QualifiedMetaString(V.RDB$RELATION_NAME, V.RDB$RELATION_SCHEMA_NAME),
1155211551
depth, error);
1155311552

1155411553
if (*error)
@@ -11999,10 +11998,7 @@ void update_view_dbkey_lengths(BurpGlobals* tdgbl)
1199911998
{
1200011999
bool error = false;
1200112000
const USHORT result = get_view_base_relation_count(tdgbl,
12002-
QualifiedMetaString(
12003-
R.RDB$RELATION_NAME,
12004-
(R.RDB$SCHEMA_NAME.NULL ? "" : R.RDB$SCHEMA_NAME)
12005-
),
12001+
QualifiedMetaString(R.RDB$RELATION_NAME, R.RDB$SCHEMA_NAME),
1200612002
0, &error);
1200712003

1200812004
fb_utils::exact_name(R.RDB$RELATION_NAME);
@@ -12197,7 +12193,7 @@ void fix_plugins_schemas(BurpGlobals* tdgbl)
1219712193
};
1219812194

1219912195
const PluginMigration pluginsMigration[] = {
12200-
{"PROFILER", "RDB$PROFILER",
12196+
{"PROFILER", "PLG$PROFILER",
1220112197
R"""(
1220212198
select exists(
1220312199
select first 1 1
@@ -12825,7 +12821,7 @@ void fix_plugins_schemas(BurpGlobals* tdgbl)
1282512821
}
1282612822
},
1282712823

12828-
{"SRP", "RDB$SRP",
12824+
{"SRP", "PLG$SRP",
1282912825
R"""(
1283012826
select exists(
1283112827
select first 1 1
@@ -12913,7 +12909,7 @@ void fix_plugins_schemas(BurpGlobals* tdgbl)
1291312909
}
1291412910
},
1291512911

12916-
{"LEGACY_SEC", "RDB$LEGACY_SEC",
12912+
{"LEGACY_SEC", "PLG$LEGACY_SEC",
1291712913
R"""(
1291812914
select exists(
1291912915
select first 1 1

src/dsql/DdlNodes.epp

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4400,7 +4400,7 @@ void DropCollationNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratc
44004400
RF IN RDB$RELATION_FIELDS
44014401
CROSS F IN RDB$FIELDS
44024402
WITH RF.RDB$COLLATION_ID EQ COLL.RDB$COLLATION_ID AND
4403-
F.RDB$SCHEMA_NAME EQUIV RF.RDB$FIELD_SOURCE_SCHEMA_NAME AND
4403+
F.RDB$SCHEMA_NAME EQ RF.RDB$FIELD_SOURCE_SCHEMA_NAME AND
44044404
F.RDB$FIELD_NAME EQ RF.RDB$FIELD_SOURCE AND
44054405
F.RDB$CHARACTER_SET_ID EQ COLL.RDB$CHARACTER_SET_ID
44064406

@@ -4421,7 +4421,7 @@ void DropCollationNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratc
44214421
PRM IN RDB$PROCEDURE_PARAMETERS
44224422
CROSS F IN RDB$FIELDS
44234423
WITH PRM.RDB$COLLATION_ID EQ COLL.RDB$COLLATION_ID AND
4424-
F.RDB$SCHEMA_NAME EQUIV PRM.RDB$FIELD_SOURCE_SCHEMA_NAME AND
4424+
F.RDB$SCHEMA_NAME EQ PRM.RDB$FIELD_SOURCE_SCHEMA_NAME AND
44254425
F.RDB$FIELD_NAME EQ PRM.RDB$FIELD_SOURCE AND
44264426
F.RDB$CHARACTER_SET_ID EQ COLL.RDB$CHARACTER_SET_ID
44274427

@@ -4443,7 +4443,7 @@ void DropCollationNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratc
44434443
ARG IN RDB$FUNCTION_ARGUMENTS
44444444
CROSS F IN RDB$FIELDS
44454445
WITH ARG.RDB$COLLATION_ID EQ COLL.RDB$COLLATION_ID AND
4446-
F.RDB$SCHEMA_NAME EQUIV ARG.RDB$FIELD_SOURCE_SCHEMA_NAME AND
4446+
F.RDB$SCHEMA_NAME EQ ARG.RDB$FIELD_SOURCE_SCHEMA_NAME AND
44474447
F.RDB$FIELD_NAME EQ ARG.RDB$FIELD_SOURCE AND
44484448
F.RDB$CHARACTER_SET_ID EQ COLL.RDB$CHARACTER_SET_ID
44494449

@@ -5617,8 +5617,7 @@ void DropDomainNode::check(thread_db* tdbb, jrd_tra* transaction)
56175617
// msg 239: "Domain %s is used in procedure %s (parameter name %s) and cannot be dropped"
56185618
status_exception::raise(
56195619
Arg::PrivateDyn(239) << name.toQuotedString() <<
5620-
QualifiedName(X.RDB$PROCEDURE_NAME, X.RDB$SCHEMA_NAME,
5621-
(X.RDB$PACKAGE_NAME.NULL ? NULL : X.RDB$PACKAGE_NAME)).toQuotedString() <<
5620+
QualifiedName(X.RDB$PROCEDURE_NAME, X.RDB$SCHEMA_NAME, X.RDB$PACKAGE_NAME).toQuotedString() <<
56225621
MetaName(X.RDB$PARAMETER_NAME).toQuotedString());
56235622
}
56245623
END_FOR
@@ -5635,8 +5634,7 @@ void DropDomainNode::check(thread_db* tdbb, jrd_tra* transaction)
56355634
// msg 239: "Domain %s is used in function %s (parameter name %s) and cannot be dropped"
56365635
status_exception::raise(
56375636
Arg::Gds(isc_dyn_domain_used_function) << name.toQuotedString() <<
5638-
QualifiedName(X.RDB$FUNCTION_NAME, X.RDB$SCHEMA_NAME,
5639-
(X.RDB$PACKAGE_NAME.NULL ? NULL : X.RDB$PACKAGE_NAME)).toQuotedString() <<
5637+
QualifiedName(X.RDB$FUNCTION_NAME, X.RDB$SCHEMA_NAME, X.RDB$PACKAGE_NAME).toQuotedString() <<
56405638
MetaName(X.RDB$ARGUMENT_NAME).toQuotedString());
56415639
}
56425640
END_FOR
@@ -6612,15 +6610,15 @@ bool RelationNode::deleteLocalField(thread_db* tdbb, jrd_tra* transaction,
66126610

66136611
found = true;
66146612
DropRelationNode::deleteGlobalField(tdbb, transaction,
6615-
QualifiedName(RFR.RDB$FIELD_SOURCE, RFR.RDB$SCHEMA_NAME));
6613+
QualifiedName(RFR.RDB$FIELD_SOURCE, RFR.RDB$FIELD_SOURCE_SCHEMA_NAME));
66166614
}
66176615
END_FOR
66186616

66196617
request.reset(tdbb, drq_e_fld_prvs, DYN_REQUESTS);
66206618

66216619
FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
66226620
PRIV IN RDB$USER_PRIVILEGES
6623-
WITH PRIV.RDB$RELATION_SCHEMA_NAME EQUIV NULLIF(relationName.schema.c_str(), '') AND
6621+
WITH PRIV.RDB$RELATION_SCHEMA_NAME EQ relationName.schema.c_str() AND
66246622
PRIV.RDB$RELATION_NAME EQ relationName.object.c_str() AND
66256623
PRIV.RDB$FIELD_NAME EQ fieldName.c_str() AND
66266624
PRIV.RDB$OBJECT_TYPE = obj_relation AND
@@ -6774,7 +6772,9 @@ void RelationNode::defineField(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch
67746772
if (!desc.isExact() || desc.dsc_scale != 0)
67756773
{
67766774
// Identity column @1 of table @2 must be exact numeric with zero scale.
6777-
status_exception::raise(Arg::PrivateDyn(273) << field->fld_name << name.toQuotedString());
6775+
status_exception::raise(Arg::PrivateDyn(273) <<
6776+
field->fld_name.toQuotedString() <<
6777+
name.toQuotedString());
67786778
}
67796779

67806780
fieldDefinition.identitySequence.schema = fieldDefinition.relationName.schema;
@@ -7150,7 +7150,7 @@ void RelationNode::defineConstraint(thread_db* tdbb, DsqlCompilerScratch* dsqlSc
71507150
RFR.RDB$SCHEMA_NAME EQ IDS.RDB$SCHEMA_NAME AND
71517151
RFR.RDB$RELATION_NAME EQ name.object.c_str() AND
71527152
RFR.RDB$FIELD_NAME EQ IDS.RDB$FIELD_NAME AND
7153-
FLX.RDB$SCHEMA_NAME EQUIV RFR.RDB$FIELD_SOURCE_SCHEMA_NAME AND
7153+
FLX.RDB$SCHEMA_NAME EQ RFR.RDB$FIELD_SOURCE_SCHEMA_NAME AND
71547154
FLX.RDB$FIELD_NAME EQ RFR.RDB$FIELD_SOURCE
71557155
REDUCED TO RFR.RDB$SCHEMA_NAME, RFR.RDB$FIELD_NAME, IDS.RDB$INDEX_NAME, FLX.RDB$NULL_FLAG, RFR.RDB$NULL_FLAG
71567156
SORTED BY ASCENDING RFR.RDB$SCHEMA_NAME, RFR.RDB$FIELD_NAME
@@ -8459,7 +8459,7 @@ void AlterRelationNode::modifyField(thread_db* tdbb, DsqlCompilerScratch* dsqlSc
84598459
RFR.RDB$FIELD_NAME = field->fld_name.c_str() AND
84608460
REL.RDB$SCHEMA_NAME = RFR.RDB$SCHEMA_NAME AND
84618461
REL.RDB$RELATION_NAME = RFR.RDB$RELATION_NAME AND
8462-
FLD.RDB$SCHEMA_NAME EQUIV RFR.RDB$FIELD_SOURCE_SCHEMA_NAME AND
8462+
FLD.RDB$SCHEMA_NAME = RFR.RDB$FIELD_SOURCE_SCHEMA_NAME AND
84638463
FLD.RDB$FIELD_NAME = RFR.RDB$FIELD_SOURCE
84648464
{
84658465
found = true;
@@ -8512,7 +8512,9 @@ void AlterRelationNode::modifyField(thread_db* tdbb, DsqlCompilerScratch* dsqlSc
85128512
if (!RFR.RDB$GENERATOR_NAME.NULL)
85138513
{
85148514
// msg 275: Identity column @1 of table @2 cannot have default value
8515-
status_exception::raise(Arg::PrivateDyn(275) << field->fld_name << name.toQuotedString());
8515+
status_exception::raise(Arg::PrivateDyn(275) <<
8516+
field->fld_name.toQuotedString() <<
8517+
name.toQuotedString());
85168518
}
85178519

85188520
if (hasDimensions)
@@ -8557,7 +8559,7 @@ void AlterRelationNode::modifyField(thread_db* tdbb, DsqlCompilerScratch* dsqlSc
85578559
// msg 230: "Local column %s default belongs to domain %s"
85588560
status_exception::raise(
85598561
Arg::PrivateDyn(230) <<
8560-
field->fld_name <<
8562+
field->fld_name.toQuotedString() <<
85618563
QualifiedName(FLD.RDB$FIELD_NAME, FLD.RDB$SCHEMA_NAME).toQuotedString());
85628564
}
85638565
}
@@ -8759,7 +8761,9 @@ void AlterRelationNode::modifyField(thread_db* tdbb, DsqlCompilerScratch* dsqlSc
87598761
if (!newDom.dyn_dsc.isExact() || newDom.dyn_dsc.dsc_scale != 0)
87608762
{
87618763
// Identity column @1 of table @2 must be exact numeric with zero scale.
8762-
status_exception::raise(Arg::PrivateDyn(273) << field->fld_name << name.toQuotedString());
8764+
status_exception::raise(Arg::PrivateDyn(273) <<
8765+
field->fld_name.toQuotedString() <<
8766+
name.toQuotedString());
87638767
}
87648768
}
87658769
}
@@ -8860,7 +8864,9 @@ void AlterRelationNode::modifyField(thread_db* tdbb, DsqlCompilerScratch* dsqlSc
88608864
if (!found)
88618865
{
88628866
// msg 176: "column %s does not exist in table/view %s"
8863-
status_exception::raise(Arg::PrivateDyn(176) << field->fld_name << name.toQuotedString());
8867+
status_exception::raise(Arg::PrivateDyn(176) <<
8868+
field->fld_name.toQuotedString() <<
8869+
name.toQuotedString());
88648870
}
88658871

88668872
// Update any indices that exist.
@@ -8895,13 +8901,13 @@ void DropRelationNode::deleteGlobalField(thread_db* tdbb, jrd_tra* transaction,
88958901
FLD.RDB$DEFAULT_SOURCE MISSING AND
88968902
FLD.RDB$FIELD_NAME STARTING WITH IMPLICIT_DOMAIN_PREFIX AND
88978903
(NOT ANY RFR IN RDB$RELATION_FIELDS WITH
8898-
RFR.RDB$FIELD_SOURCE_SCHEMA_NAME EQUIV FLD.RDB$SCHEMA_NAME AND
8904+
RFR.RDB$FIELD_SOURCE_SCHEMA_NAME EQ FLD.RDB$SCHEMA_NAME AND
88998905
RFR.RDB$FIELD_SOURCE EQ FLD.RDB$FIELD_NAME) AND
89008906
(NOT ANY PRM IN RDB$PROCEDURE_PARAMETERS WITH
8901-
PRM.RDB$FIELD_SOURCE_SCHEMA_NAME EQUIV FLD.RDB$SCHEMA_NAME AND
8907+
PRM.RDB$FIELD_SOURCE_SCHEMA_NAME EQ FLD.RDB$SCHEMA_NAME AND
89028908
PRM.RDB$FIELD_SOURCE EQ FLD.RDB$FIELD_NAME) AND
89038909
(NOT ANY ARG IN RDB$FUNCTION_ARGUMENTS WITH
8904-
ARG.RDB$FIELD_SOURCE_SCHEMA_NAME EQUIV FLD.RDB$SCHEMA_NAME AND
8910+
ARG.RDB$FIELD_SOURCE_SCHEMA_NAME EQ FLD.RDB$SCHEMA_NAME AND
89058911
ARG.RDB$FIELD_SOURCE EQ FLD.RDB$FIELD_NAME)
89068912
{
89078913
DropDomainNode::deleteDimensionRecords(tdbb, transaction, globalName);
@@ -10100,7 +10106,7 @@ void CreateIndexNode::store(thread_db* tdbb, jrd_tra* transaction, QualifiedName
1010010106
F IN RDB$RELATION_FIELDS CROSS
1010110107
GF IN RDB$FIELDS
1010210108
WITH F.RDB$FIELD_NAME EQ definition.columns[i].c_str() AND
10103-
GF.RDB$SCHEMA_NAME EQUIV F.RDB$FIELD_SOURCE_SCHEMA_NAME AND
10109+
GF.RDB$SCHEMA_NAME EQ F.RDB$FIELD_SOURCE_SCHEMA_NAME AND
1010410110
GF.RDB$FIELD_NAME EQ F.RDB$FIELD_SOURCE AND
1010510111
IDX.RDB$SCHEMA_NAME EQ F.RDB$SCHEMA_NAME AND
1010610112
IDX.RDB$RELATION_NAME EQ F.RDB$RELATION_NAME

0 commit comments

Comments
 (0)