@@ -2483,7 +2483,7 @@ bool get_character_set(BurpGlobals* tdgbl)
24832483 {
24842484 };
24852485
2486- QualifiedMetaString name ;
2486+ QualifiedMetaString charset, collate ;
24872487 att_type attribute;
24882488 scan_attr_t scan_next_attr;
24892489
@@ -2492,7 +2492,7 @@ bool get_character_set(BurpGlobals* tdgbl)
24922492 if (tdgbl->runtimeODS >= DB_VERSION_DDL12)
24932493 {
24942494 if (tdgbl->runtimeODS >= DB_VERSION_DDL14)
2495- name .schema = PUBLIC_SCHEMA;
2495+ collate.schema = charset .schema = PUBLIC_SCHEMA;
24962496
24972497 bool securityClass = false;
24982498
@@ -2522,14 +2522,14 @@ bool get_character_set(BurpGlobals* tdgbl)
25222522 case att_charset_schema_name:
25232523 X.RDB$SCHEMA_NAME.NULL = FALSE;
25242524 GET_TEXT(X.RDB$SCHEMA_NAME);
2525- name .schema = X.RDB$SCHEMA_NAME;
2525+ charset .schema = X.RDB$SCHEMA_NAME;
25262526 break;
25272527
25282528 case att_charset_name:
25292529 X.RDB$CHARACTER_SET_NAME.NULL = FALSE;
25302530 GET_TEXT(X.RDB$CHARACTER_SET_NAME);
2531- name .object = X.RDB$CHARACTER_SET_NAME;
2532- BURP_verbose(msgVerbose_restore_charset, name .toQuotedString());
2531+ charset .object = X.RDB$CHARACTER_SET_NAME;
2532+ BURP_verbose(msgVerbose_restore_charset, charset .toQuotedString());
25332533 break;
25342534
25352535 case att_charset_form:
@@ -2545,11 +2545,13 @@ bool get_character_set(BurpGlobals* tdgbl)
25452545 case att_charset_coll_schema_name:
25462546 X.RDB$DEFAULT_COLLATE_SCHEMA_NAME.NULL = FALSE;
25472547 GET_TEXT(X.RDB$DEFAULT_COLLATE_SCHEMA_NAME);
2548+ collate.schema = X.RDB$DEFAULT_COLLATE_SCHEMA_NAME;
25482549 break;
25492550
25502551 case att_charset_coll:
25512552 X.RDB$DEFAULT_COLLATE_NAME.NULL = FALSE;
25522553 GET_TEXT(X.RDB$DEFAULT_COLLATE_NAME);
2554+ collate.object = X.RDB$DEFAULT_COLLATE_NAME;
25532555 break;
25542556
25552557 case att_charset_id:
@@ -2609,10 +2611,7 @@ bool get_character_set(BurpGlobals* tdgbl)
26092611 if (X.RDB$CHARACTER_SET_ID.NULL && !X.RDB$DEFAULT_COLLATE_NAME.NULL &&
26102612 !X.RDB$CHARACTER_SET_NAME.NULL)
26112613 {
2612- tdgbl->defaultCollations.put(
2613- QualifiedMetaString(X.RDB$CHARACTER_SET_NAME, X.RDB$SCHEMA_NAME),
2614- QualifiedMetaString(X.RDB$DEFAULT_COLLATE_NAME, X.RDB$DEFAULT_COLLATE_SCHEMA_NAME));
2615-
2614+ tdgbl->defaultCollations.put(charset, collate);
26162615 throw AbortException(); // prevent the STORE
26172616 }
26182617 }
@@ -2621,7 +2620,7 @@ bool get_character_set(BurpGlobals* tdgbl)
26212620 general_on_error ();
26222621 END_ERROR
26232622
2624- collect_missing_privs(tdgbl, obj_charset, name , securityClass);
2623+ collect_missing_privs(tdgbl, obj_charset, charset , securityClass);
26252624 }
26262625 else
26272626 {
@@ -2646,8 +2645,8 @@ bool get_character_set(BurpGlobals* tdgbl)
26462645 case att_charset_name:
26472646 X.RDB$CHARACTER_SET_NAME.NULL = FALSE;
26482647 GET_TEXT(X.RDB$CHARACTER_SET_NAME);
2649- name .object = X.RDB$CHARACTER_SET_NAME;
2650- BURP_verbose(msgVerbose_restore_charset, name .toQuotedString());
2648+ charset .object = X.RDB$CHARACTER_SET_NAME;
2649+ BURP_verbose(msgVerbose_restore_charset, charset .toQuotedString());
26512650 break;
26522651
26532652 case att_charset_form:
@@ -2708,10 +2707,7 @@ bool get_character_set(BurpGlobals* tdgbl)
27082707 if (X.RDB$CHARACTER_SET_ID.NULL && !X.RDB$DEFAULT_COLLATE_NAME.NULL &&
27092708 !X.RDB$CHARACTER_SET_NAME.NULL)
27102709 {
2711- tdgbl->defaultCollations.put(
2712- QualifiedMetaString(X.RDB$CHARACTER_SET_NAME),
2713- QualifiedMetaString(X.RDB$DEFAULT_COLLATE_NAME));
2714-
2710+ tdgbl->defaultCollations.put(charset, collate);
27152711 throw AbortException(); // prevent the STORE
27162712 }
27172713
0 commit comments