mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-02-02 10:00:38 +01:00
Change error by warning in the case when isc_dpb_parallel_workers value is not at valid range.
gbak's restore now shows warnings after create database.
This commit is contained in:
parent
24d5c85a93
commit
333be4bfd4
@ -1054,6 +1054,11 @@ void create_database(BurpGlobals* tdgbl, Firebird::IProvider* provider, const TE
|
||||
// msg 33 failed to create database %s
|
||||
}
|
||||
|
||||
if (status_vector->getState() & Firebird::IStatus::STATE_WARNINGS)
|
||||
{
|
||||
BURP_print_warning(&status_vector);
|
||||
}
|
||||
|
||||
// get remote protocol version
|
||||
ProtocolVersion pv(&tdgbl->gbl_network_protocol);
|
||||
Firebird::UtilInterfacePtr()->getFbVersion(&status_vector, DB, &pv);
|
||||
|
@ -964,3 +964,4 @@ FB_IMPL_MSG(JRD, 962, wrong_proc_plan, -281, "HY", "000", "Procedures cannot spe
|
||||
FB_IMPL_MSG(JRD, 963, invalid_blob_util_handle, -402, "42", "000", "Invalid RDB$BLOB_UTIL handle")
|
||||
FB_IMPL_MSG(JRD, 964, bad_temp_blob_id, -402, "42", "000", "Invalid temporary BLOB ID")
|
||||
FB_IMPL_MSG(JRD, 965, ods_upgrade_err, -901, "HY", "000", "ODS upgrade failed while adding new system %s")
|
||||
FB_IMPL_MSG(JRD, 966, bad_par_workers, -924, "HY", "000", "Wrong parallel workers value @1, valid range are from 1 to @2")
|
||||
|
@ -325,6 +325,7 @@ namespace Jrd {
|
||||
{
|
||||
if (flags & CRYPT_HDR_INIT)
|
||||
{
|
||||
ThreadStatusGuard guard(tdbb);
|
||||
if (LCK_lock(tdbb, stateLock, CRYPT_INIT, LCK_NO_WAIT))
|
||||
{
|
||||
LCK_write_data(tdbb, stateLock, 1);
|
||||
@ -341,6 +342,7 @@ namespace Jrd {
|
||||
}
|
||||
else
|
||||
{
|
||||
ThreadStatusGuard guard(tdbb);
|
||||
if (!LCK_convert(tdbb, stateLock, CRYPT_NORMAL,
|
||||
(flags & CRYPT_HDR_NOWAIT) ? LCK_NO_WAIT : LCK_WAIT))
|
||||
{
|
||||
@ -351,7 +353,6 @@ namespace Jrd {
|
||||
else
|
||||
slowIO = 0;
|
||||
}
|
||||
tdbb->tdbb_status_vector->init();
|
||||
|
||||
PhysHdr hdr(tdbb);
|
||||
crypt = hdr->hdr_flags & Ods::hdr_encrypted;
|
||||
|
@ -1740,7 +1740,9 @@ JAttachment* JProvider::internalAttach(CheckStatusWrapper* user_status, const ch
|
||||
guardDbInit.leave();
|
||||
}
|
||||
|
||||
EngineContextHolder tdbb(user_status, jAtt, FB_FUNCTION, AttachmentHolder::ATT_DONT_LOCK);
|
||||
// Don't pass user_status into ctor to keep warnings
|
||||
EngineContextHolder tdbb(nullptr, jAtt, FB_FUNCTION, AttachmentHolder::ATT_DONT_LOCK);
|
||||
tdbb->tdbb_status_vector = user_status;
|
||||
|
||||
attachment->att_crypt_callback = getDefCryptCallback(cryptCallback);
|
||||
attachment->att_client_charset = attachment->att_charset = options.dpb_interp;
|
||||
@ -2909,7 +2911,9 @@ JAttachment* JProvider::createDatabase(CheckStatusWrapper* user_status, const ch
|
||||
Sync dbbGuard(&dbb->dbb_sync, "createDatabase");
|
||||
dbbGuard.lock(SYNC_EXCLUSIVE);
|
||||
|
||||
EngineContextHolder tdbb(user_status, jAtt, FB_FUNCTION, AttachmentHolder::ATT_DONT_LOCK);
|
||||
// Don't pass user_status into ctor to keep warnings
|
||||
EngineContextHolder tdbb(nullptr, jAtt, FB_FUNCTION, AttachmentHolder::ATT_DONT_LOCK);
|
||||
tdbb->tdbb_status_vector = user_status;
|
||||
|
||||
attachment->att_crypt_callback = getDefCryptCallback(cryptCallback);
|
||||
|
||||
@ -7240,13 +7244,20 @@ void DatabaseOptions::get(const UCHAR* dpb, USHORT dpb_length, bool& invalid_cli
|
||||
case isc_dpb_parallel_workers:
|
||||
dpb_parallel_workers = (SSHORT) rdr.getInt();
|
||||
|
||||
if (dpb_parallel_workers > Config::getMaxParallelWorkers() ||
|
||||
dpb_parallel_workers < 0)
|
||||
{
|
||||
string str;
|
||||
str.printf("Wrong parallel workers value %i, valid range are from 1 to %i",
|
||||
dpb_parallel_workers, Config::getMaxParallelWorkers());
|
||||
ERR_post(Arg::Gds(isc_bad_dpb_content) << Arg::Gds(isc_random) << Arg::Str(str));
|
||||
const auto maxWorkers = Config::getMaxParallelWorkers();
|
||||
if (dpb_parallel_workers > maxWorkers || dpb_parallel_workers < 0)
|
||||
{
|
||||
// "Wrong parallel workers value @1, valid range are from 1 to @2"
|
||||
ERR_post_warning(Arg::Warning(isc_bad_par_workers) <<
|
||||
Arg::Num(dpb_parallel_workers) <<
|
||||
Arg::Num(maxWorkers));
|
||||
|
||||
if (dpb_parallel_workers < 0)
|
||||
dpb_parallel_workers = 1;
|
||||
else
|
||||
dpb_parallel_workers = maxWorkers;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user