Re: patch for win32 dynloader

"Magnus Hagander" <[email protected]> Thu, 28 Jul 2005 22:10:42 +0200
Newsgroups gmane.comp.db.postgresql.devel.win32,gmane.comp.db.postgresql.devel.patches
Message-ID <[email protected]>
This is a multi-part message in MIME format.

------_=_NextPart_001_01C593B0.6F0410E0
Content-Type: text/plain;
	charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable

> >> 3) I restarted the postmaster both times. I got this error=20
> both times.
> >> :25: ERROR:  could not load library "C:/Program
> >> Files/PostgreSQL/8.0/lib/testtrigfuncs.dll": dynamic load error
>=20
> > Yes. We really need to look at fixing that error message. I had=20
> > forgotten it completely :-(
>=20
> > Bruce, you think we can sneak that in after feature freeze? I would=20
> > call it a bugfix :-)
>=20
> Me too.  That's been on the radar for awhile --- please do=20
> send in a patch.

Here we go, that wasn't too hard :-)

Apart from adding the error handling, it does one more thing: it changes
the errormode when loading the DLLs. Previously if a DLL was broken, or
referenced other DLLs that couldn't be found, a popup dialog box would
appear on the screen. Which had to be clicked before the backend could
continue. This patch also disables the popup error message for DLL
loads.


I think this is something we should consider doing for the entire
backend - disable those popups, and say we deal with it ourselves. What
do you other win32 hackers thinnk about this?

In the meantime, this patch fixes the error msgs. Please apply for 8.1
and please consider a backpatch to 8.0.


//Magnus

------_=_NextPart_001_01C593B0.6F0410E0
Content-Type: application/octet-stream;
	name="win32_dynloader_err.patch"
Content-Transfer-Encoding: base64
Content-Description: win32_dynloader_err.patch
Content-Disposition: attachment;
	filename="win32_dynloader_err.patch"

SW5kZXg6IGJhY2tlbmQvcG9ydC9keW5sb2FkZXIvd2luMzIuYw0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9wcm9qZWN0cy9jdnNyb290
L3Bnc3FsL3NyYy9iYWNrZW5kL3BvcnQvZHlubG9hZGVyL3dpbjMyLmMsdg0K
cmV0cmlldmluZyByZXZpc2lvbiAxLjUNCmRpZmYgLWMgLXIxLjUgd2luMzIu
Yw0KKioqIGJhY2tlbmQvcG9ydC9keW5sb2FkZXIvd2luMzIuYwkyIERlYyAy
MDA0IDE5OjM4OjUwIC0wMDAwCTEuNQ0KLS0tIGJhY2tlbmQvcG9ydC9keW5s
b2FkZXIvd2luMzIuYwkyOCBKdWwgMjAwNSAyMDowNzowNyAtMDAwMA0KKioq
KioqKioqKioqKioqDQoqKiogMSwzMiAqKioqDQogIC8qICRQb3N0Z3JlU1FM
OiBwZ3NxbC9zcmMvYmFja2VuZC9wb3J0L2R5bmxvYWRlci93aW4zMi5jLHYg
MS41IDIwMDQvMTIvMDIgMTk6Mzg6NTAgbW9tamlhbiBFeHAgJCAqLw0KICAN
CiAgI2luY2x1ZGUgPHdpbmRvd3MuaD4NCiAgDQogIGNoYXIgKmRsZXJyb3Io
dm9pZCk7DQogIGludCBkbGNsb3NlKHZvaWQgKmhhbmRsZSk7DQogIHZvaWQg
KmRsc3ltKHZvaWQgKmhhbmRsZSwgY29uc3QgY2hhciAqc3ltYm9sKTsNCiAg
dm9pZCAqZGxvcGVuKGNvbnN0IGNoYXIgKnBhdGgsIGludCBtb2RlKTsNCiAg
DQogIGNoYXIgKg0KICBkbGVycm9yKHZvaWQpDQogIHsNCiEgCXJldHVybiAi
ZHluYW1pYyBsb2FkIGVycm9yIjsNCiAgfQ0KICANCiAgaW50DQogIGRsY2xv
c2Uodm9pZCAqaGFuZGxlKQ0KICB7DQohIAlyZXR1cm4gRnJlZUxpYnJhcnko
KEhNT0RVTEUpIGhhbmRsZSkgPyAwIDogMTsNCiAgfQ0KICANCiAgdm9pZCAq
DQogIGRsc3ltKHZvaWQgKmhhbmRsZSwgY29uc3QgY2hhciAqc3ltYm9sKQ0K
ICB7DQohIAlyZXR1cm4gKHZvaWQgKikgR2V0UHJvY0FkZHJlc3MoKEhNT0RV
TEUpIGhhbmRsZSwgc3ltYm9sKTsNCiAgfQ0KICANCiAgdm9pZCAqDQogIGRs
b3Blbihjb25zdCBjaGFyICpwYXRoLCBpbnQgbW9kZSkNCiAgew0KISAJcmV0
dXJuICh2b2lkICopIExvYWRMaWJyYXJ5KHBhdGgpOw0KICB9DQotLS0gMSw4
NCAtLS0tDQogIC8qICRQb3N0Z3JlU1FMOiBwZ3NxbC9zcmMvYmFja2VuZC9w
b3J0L2R5bmxvYWRlci93aW4zMi5jLHYgMS41IDIwMDQvMTIvMDIgMTk6Mzg6
NTAgbW9tamlhbiBFeHAgJCAqLw0KICANCiAgI2luY2x1ZGUgPHdpbmRvd3Mu
aD4NCisgI2luY2x1ZGUgPHN0ZGlvLmg+DQogIA0KICBjaGFyICpkbGVycm9y
KHZvaWQpOw0KICBpbnQgZGxjbG9zZSh2b2lkICpoYW5kbGUpOw0KICB2b2lk
ICpkbHN5bSh2b2lkICpoYW5kbGUsIGNvbnN0IGNoYXIgKnN5bWJvbCk7DQog
IHZvaWQgKmRsb3Blbihjb25zdCBjaGFyICpwYXRoLCBpbnQgbW9kZSk7DQog
IA0KKyBzdGF0aWMgY2hhciBsYXN0X2R5bl9lcnJvcls1MTJdOw0KKyANCisg
c3RhdGljIHZvaWQgc2V0X2RsX2Vycm9yKHZvaWQpDQorIHsNCisgCURXT1JE
IGVyciA9IEdldExhc3RFcnJvcigpOw0KKyANCisgCWlmIChGb3JtYXRNZXNz
YWdlKEZPUk1BVF9NRVNTQUdFX0lHTk9SRV9JTlNFUlRTIHwNCisgCQkJCUZP
Uk1BVF9NRVNTQUdFX0ZST01fU1lTVEVNLA0KKyAJCQkJTlVMTCwNCisgCQkJ
CWVyciwNCisgCQkJCU1BS0VMQU5HSUQoTEFOR19ORVVUUkFMLCBTVUJMQU5H
X0RFRkFVTFQpLA0KKyAJCQkJbGFzdF9keW5fZXJyb3IsDQorIAkJCQlzaXpl
b2YobGFzdF9keW5fZXJyb3IpLTEsDQorIAkJCQlOVUxMKSA9PSAwKQ0KKyAJ
ew0KKyAJCXNucHJpbnRmKGxhc3RfZHluX2Vycm9yLCBzaXplb2YobGFzdF9k
eW5fZXJyb3IpLTEsDQorIAkJCQkidW5rbm93biBlcnJvciAlbHUiLCBlcnIp
Ow0KKyAJfQkNCisgfQ0KKyANCiAgY2hhciAqDQogIGRsZXJyb3Iodm9pZCkN
CiAgew0KISAJaWYgKGxhc3RfZHluX2Vycm9yWzBdKQ0KISAJCXJldHVybiBs
YXN0X2R5bl9lcnJvcjsNCiEgCWVsc2UNCiEgCQlyZXR1cm4gTlVMTDsNCiAg
fQ0KICANCiAgaW50DQogIGRsY2xvc2Uodm9pZCAqaGFuZGxlKQ0KICB7DQoh
IAlpZiAoIUZyZWVMaWJyYXJ5KChITU9EVUxFKSBoYW5kbGUpKQ0KISAJew0K
ISAJCXNldF9kbF9lcnJvcigpOw0KISAJCXJldHVybiAxOw0KISAJfQ0KISAJ
bGFzdF9keW5fZXJyb3JbMF0gPSAwOw0KISAJcmV0dXJuIDA7DQogIH0NCiAg
DQogIHZvaWQgKg0KICBkbHN5bSh2b2lkICpoYW5kbGUsIGNvbnN0IGNoYXIg
KnN5bWJvbCkNCiAgew0KISAJdm9pZCAqcHRyOw0KISAJcHRyID0gR2V0UHJv
Y0FkZHJlc3MoKEhNT0RVTEUpIGhhbmRsZSwgc3ltYm9sKTsNCiEgCWlmICgh
cHRyKSANCiEgCXsNCiEgCQlzZXRfZGxfZXJyb3IoKTsNCiEgCQlyZXR1cm4g
TlVMTDsNCiEgCX0NCiEgCWxhc3RfZHluX2Vycm9yWzBdID0gMDsNCiEgCXJl
dHVybiBwdHI7DQogIH0NCiAgDQogIHZvaWQgKg0KICBkbG9wZW4oY29uc3Qg
Y2hhciAqcGF0aCwgaW50IG1vZGUpDQogIHsNCiEgCUhNT0RVTEUgaDsNCiEg
CWludCBwcmV2bW9kZTsNCiEgDQohIAkvKiBEaXNhYmxlIHBvcHVwIGVycm9y
IG1lc3NhZ2VzIHdoZW4gbG9hZGluZyBETExzICovDQohIAlwcmV2bW9kZSA9
IFNldEVycm9yTW9kZShTRU1fRkFJTENSSVRJQ0FMRVJST1JTIHwgU0VNX05P
T1BFTkZJTEVFUlJPUkJPWCk7DQohIAloID0gTG9hZExpYnJhcnkocGF0aCk7
DQohIAlTZXRFcnJvck1vZGUocHJldm1vZGUpOw0KISAJDQohIAlpZiAoIWgp
IA0KISAJew0KISAJCXNldF9kbF9lcnJvcigpOw0KISAJCXJldHVybiBOVUxM
Ow0KISAJfQ0KISAJbGFzdF9keW5fZXJyb3JbMF0gPSAwOw0KISAJcmV0dXJu
ICh2b2lkICopIGg7DQogIH0NCg==

------_=_NextPart_001_01C593B0.6F0410E0
Content-Type: text/plain
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0


---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

------_=_NextPart_001_01C593B0.6F0410E0--