Re: [EXTERNAL] Re: COALESCE() does not short-circuit sometimes

Richard Hipp <[email protected]> Thu, 12 Mar 2020 06:08:41 -0400
Newsgroups gmane.comp.db.sqlite.general
Message-ID <CALwJ=MwPLET5CSLGCC7n3JoQ5MCtrwMP4sHXEa=9uBGH=cSv6Q@mail.gmail.com>
T24gMy8xMi8yMCwgSGljayBHdW50ZXIgPGhpY2tAc2NpZ2FtZXMuYXQ+IHdyb3RlOgo+IEV4YWN0
bHkgd2hhdCBJIGdhaW5lZCBmcm9tIHRoZSBFWFBMQUlOIG91dHB1dC4KPgo+IFRoZSBTUUwgImNv
bXBpbGVyIiBpcyBleHRyYWN0aW5nIHRoZSBjb25zdGFudCBleHByZXNzaW9uIEFCUyguLi4pIGFu
ZAo+IGV2YWx1YXRpbmcgaXQgaW4gdGhlIHByb2dyYW0gcHJvbG9nICh3aGVyZSBzY2hlbWEgaXMg
Y2hlY2tlZCBhbmQgbG9ja3MKPiB0YWtlbikuIFNlZSBpbnN0cnVjdGlvbnMgMTEgYW5kIDEyCgpF
eGFjdGx5LiAgU1FMaXRlIHRyaWVzIHRvIGZhY3RvciBvdXQgY29uc3RhbnQgZXhwcmVzc2lvbnMg
aW50byB0aGUKcHJvbG9ndWUgc28gdGhhdCB0aGV5IGFyZSBvbmx5IGV2YWx1YXRlZCBvbmNlLCBy
YXRoZXIgdGhhbiBvbmNlIGZvcgplYWNoIHJvdy4gIFRoaXMgaXMgYSBwZXJmb3JtYW5jZSBvcHRp
bWl6YXRpb24uCgpBIHRyYWRpdGlvbmFsIGNvbXBpbGVyIGxpa2UgZ2NjIG9yIGNsYW5nIHdvdWxk
IGRvIGFuIGVub3Jtb3VzIGFtb3VudApvZiBjb2RlIG1vdmVtZW50LCBzaW1pbGFyIHRvIHRoaXMs
IGFzIHdlbGwgYXMgb3RoZXIgc2ltcGxpZmljYXRpb25zLAp0byBtYWtlIHRoZSBjb2RlIHJ1biBm
YXN0ZXIsIGVzcGVjaWFsbHkgd2l0aCBvcHRpb25zIGxpa2UgLU8yLiAgQnV0CnRoZSBjb21waWxl
ciBmb3IgU1FMaXRlIGRvZXMgbm90IGhhdmUgdGhhdCBsdXh1cnkuICBEZXBlbmRpbmcgb24gdGhl
CnF1ZXJ5LCB0aGUgdGltZSBzcGVudCBjb21waWxpbmcgdGhlIHF1ZXJ5IGludG8gYnl0ZSBjb2Rl
IGNhbiBiZSBhCnNpZ25pZmljYW50IGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBydW5uaW5nIHRpbWUu
ICBIZW5jZSwgdGhlIGNvbXBpbGVyCm5lZWRzIHRvIGJlIHZlcnkgZmFzdC4gIFRoaXMgaXMgYW4g
b25nb2luZyBkZXNpZ24gc3RydWdnbGUgd2l0aApTUUxpdGU6ICBob3cgbWFueSBDUFUgY3ljbGVz
IGRvIHdlIGJ1cm4gdHJ5aW5nIHRvIG9wdGltaXplIHRoZQpieXRlY29kZSB3aXRoIHRoZSBob3Bl
cyBvZiBtYWtpbmcgdXAgdGhvc2UgbG9zdCBDUFUgY3ljbGVzIHdpdGggYQpzaG9ydGVyIHJ1bi10
aW1lPyAgT3B0aW1pemF0aW9uIGlzIGFsc28gY29uc3RyYWluZWQgYnkgdGhlIGRlc2lyZSB0bwpr
ZWVwIHRoZSBTUUxpdGUgY29kZSBzbWFsbC4gIEhlbmNlLCB0aGUgb3B0aW1pemF0aW9ucyBhcHBs
aWVkIGJ5IHRoZQpTUUxpdGUgYnl0ZS1jb2RlIGNvbXBpbGVyIGFyZSByZWxhdGl2ZWx5IHNpbXBs
ZSwgc28gdGhhdCB0aGV5IGNhbiBiZQppbXBsZW1lbnRlZCB3aXRoIGZldyBDUFUgY3ljbGVzIGFu
ZCB3aXRoIGZldyBieXRlcyBvZiBtYWNoaW5lIGNvZGUuCgpSZXR1cm5pbmcgdG8gdGhlIG9yaWdp
bmFsIGRpc2N1c3Npb246ICBUaGUgdW5kZXJseWluZyBwcm9ibGVtIGlzIHRoYXQKdGhlIGNvbnN0
YW50IGV4cHJlc3Npb25zIHRoYXQgZ2V0IG1vdmVkIGludG8gdGhlIHByb2xvZ3VlLCBpZiB0aGV5
Cmludm9sdmUgZnVuY3Rpb24gY2FsbHMsIG1pZ2h0IHRocm93IGFuIGV4Y2VwdGlvbi4gIFRoYXQg
aXMgd2hhdCBpcwpoYXBwZW5pbmcgd2l0aCBhYnMoLTkyMjMzNzIwMzY4NTQ3NzU4MDgpLiAgQW5k
IHRoYXQgZXhjZXB0aW9uIHByZXZlbnRzCnRoZSBtYWluIGJvZHkgb2YgdGhlIGNvZGUgZnJvbSBy
dW5uaW5nLCBldmVuIGlmIHRoZSBvZmZlbmRpbmcKZXhwcmVzc2lvbiB3YXMgbmV2ZXIgYWN0dWFs
bHkgZ29pbmcgdG8gYmUgdXNlZC4gIFRoZSBzb2x1dGlvbiBpcyB0bwpub3QgZmFjdG9yIG91dCBl
eHByZXNzaW9ucyB0aGF0IHVzZSBmdW5jdGlvbnMsIGJ1dCBpbnN0ZWFkIHVzZSB0aGUKT1BfT25j
ZSBvcGNvZGUgKGh0dHBzOi8vd3d3LnNxbGl0ZS5vcmcvb3Bjb2RlLmh0bWwjT25jZSkgdG8gcHJl
dmVudAp0aG9zZSBleHByZXNzaW9ucyBmcm9tIGJlaW5nIGV2YWx1YXRlZCBtb3JlIHRoYW4gb25j
ZS4gIFRoaXMgc2VlbXMgdG8KbWFrZSBDb2FsZXNjZSAoYW5kIENBU0UuLi5FTkQpIHNob3J0LWNp
cmN1aXQgYWdhaW4uICBBbmQgaXQgYWxzbyBmaXhlcwp0aWNrZXQgaHR0cHM6Ly93d3cuc3FsaXRl
Lm9yZy9zcmMvaW5mby8zYzllYWRkMmE2YmEwYWE1CgpUaGF0IGNoYW5nZSBpcyBpbXBsZW1lbnRl
ZCBieSBjaGVjay1pbgpodHRwczovL3d3dy5zcWxpdGUub3JnL3NyYy9pbmZvL2M1Zjk2YTA4NWRi
OTY4OGEKCgo+Cj4gYXNxbD4gZXhwbGFpbiBzZWxlY3QgY29hbGVzY2UoKFNFTEVDVCAnaGVsbG8n
KSxBQlMoLTkyMjMzNzIwMzY4NTQ3NzU4MDgpKTsKPiBhZGRyICBvcGNvZGUgICAgICAgICBwMSAg
ICBwMiAgICBwMyAgICBwNCAgICAgICAgICAgICBwNSAgY29tbWVudAo+IC0tLS0gIC0tLS0tLS0t
LS0tLS0gIC0tLS0gIC0tLS0gIC0tLS0gIC0tLS0tLS0tLS0tLS0gIC0tICAtLS0tLS0tLS0tLS0t
Cj4gMCAgICAgSW5pdCAgICAgICAgICAgMCAgICAgMTEgICAgMCAgICAgICAgICAgICAgICAgICAg
MDAgIFN0YXJ0IGF0IDExCj4gMSAgICAgT25jZSAgICAgICAgICAgMCAgICAgNiAgICAgMCAgICAg
ICAgICAgICAgICAgICAgMDAKPiAyICAgICBOdWxsICAgICAgICAgICAwICAgICAyICAgICAyICAg
ICAgICAgICAgICAgICAgICAwMCAgclsyLi4yXT1OVUxMOyBJbml0Cj4gc3VicXVlcnkgcmVzdWx0
Cj4gMyAgICAgSW50ZWdlciAgICAgICAgMSAgICAgMyAgICAgMCAgICAgICAgICAgICAgICAgICAg
MDAgIHJbM109MTsgTElNSVQKPiBjb3VudGVyCj4gNCAgICAgU3RyaW5nOCAgICAgICAgMCAgICAg
MiAgICAgMCAgICAgaGVsbG8gICAgICAgICAgMDAgIHJbMl09J2hlbGxvJwo+IDUgICAgIERlY3JK
dW1wWmVybyAgIDMgICAgIDYgICAgIDAgICAgICAgICAgICAgICAgICAgIDAwICBpZiAoLS1yWzNd
KT09MAo+IGdvdG8gNgo+IDYgICAgIFNDb3B5ICAgICAgICAgIDIgICAgIDEgICAgIDAgICAgICAg
ICAgICAgICAgICAgIDAwICByWzFdPXJbMl0KPiA3ICAgICBOb3ROdWxsICAgICAgICAxICAgICA5
ICAgICAwICAgICAgICAgICAgICAgICAgICAwMCAgaWYgclsxXSE9TlVMTCBnb3RvCj4gOQo+IDgg
ICAgIFNDb3B5ICAgICAgICAgIDQgICAgIDEgICAgIDAgICAgICAgICAgICAgICAgICAgIDAwICBy
WzFdPXJbNF0KPiA5ICAgICBSZXN1bHRSb3cgICAgICAxICAgICAxICAgICAwICAgICAgICAgICAg
ICAgICAgICAwMCAgb3V0cHV0PXJbMV0KPiAxMCAgICBIYWx0ICAgICAgICAgICAwICAgICAwICAg
ICAwICAgICAgICAgICAgICAgICAgICAwMAo+IDExICAgIEludDY0ICAgICAgICAgIDAgICAgIDUg
ICAgIDAgICAgIC05MjIzMzcyMDM2ODU0Nzc1ODA4ICAwMAo+IHJbNV09LTkyMjMzNzIwMzY4NTQ3
NzU4MDgKPiAxMiAgICBGdW5jdGlvbjAgICAgICAxICAgICA1ICAgICA0ICAgICBhYnMoMSkgICAg
ICAgICAwMSAgcls0XT1mdW5jKHJbNV0pCj4gMTMgICAgR290byAgICAgICAgICAgMCAgICAgMSAg
ICAgMCAgICAgICAgICAgICAgICAgICAgMDAKPgo+IC0tLS0tVXJzcHLDvG5nbGljaGUgTmFjaHJp
Y2h0LS0tLS0KPiBWb246IHNxbGl0ZS11c2VycyBbbWFpbHRvOnNxbGl0ZS11c2Vycy1ib3VuY2Vz
QG1haWxpbmdsaXN0cy5zcWxpdGUub3JnXSBJbQo+IEF1ZnRyYWcgdm9uIEpheSBLcmVpYmljaAo+
IEdlc2VuZGV0OiBNaXR0d29jaCwgMTEuIE3DpHJ6IDIwMjAgMjA6NTMKPiBBbjogU1FMaXRlIG1h
aWxpbmcgbGlzdCA8c3FsaXRlLXVzZXJzQG1haWxpbmdsaXN0cy5zcWxpdGUub3JnPgo+IENjOiAz
ODg2NjQyNGY4ZjZmYzQyOTE3NGZmMWFiMjM1NWYwYkBtYWlsLmRlc3N1cy5jb20KPiBCZXRyZWZm
OiBbRVhURVJOQUxdIFJlOiBbc3FsaXRlXSBDT0FMRVNDRSgpIGRvZXMgbm90IHNob3J0LWNpcmN1
aXQKPiBzb21ldGltZXMKPgo+Cj4+IE9uIE1hciAxMSwgMjAyMCwgYXQgMjoxNiBQTSwgSnVzdGlu
IE5nIDxqdXN0aW4ubmcuMTk5NEBvdXRsb29rLmNvbT4KPj4gd3JvdGU6Cj4+Cj4+IFRoZXkgZ2Vu
ZXJhbGx5IGRvIHNob3J0LWNpcmN1aXQgYnV0IHRoZXJlIGFyZSBlZGdlIGNhc2VzIHdoZXJlIHRo
ZXkgZG9uJ3QuCj4+IEl0IGlzbid0IGVudGlyZWx5IGludHVpdGl2ZSB0byBtZSB3aGF0IHRoZSBj
b25kaXRpb25zIGFyZSwgdGhvdWdoLgo+Pgo+Cj4KPiAiQUJTKC05MjIzMzcyMDM2ODU0Nzc1ODA4
KSIgaXMgYSBjb25zdGFudCBleHByZXNzaW9uLCBhbmQgYXMgc3VjaCwgaXQgbWFrZXMKPiBzZW5z
ZSB0aGF0IGl0IGlzIGV2YWx1YXRlIGR1cmluZyB0aGUgcGFyc2UvcHJlcGFyZSBwaGFzZSBvZiB0
aGUgcHJvY2Vzc2luZywKPiBub3QgdGhlIGV4ZWN1dGlvbi4gIFRoZXJlIGFyZSBzaW1pbGFyIHBy
b2JsZW1zIGluIG1vcmUgdHJhZGl0aW9uYWwgbGFuZ3VhZ2VzCj4gKGVzcGVjaWFsbHkgc2NyaXB0
aW5nIGxhbmd1YWdlcykgdGhhdCBhdHRlbXB0IHRvIG9wdGltaXplIG91dCBvciBwcmUtY29tcHV0
ZQo+IGNvbnN0YW50IGV4cHJlc3Npb25zLgo+Cj4gSWYgdGhhdOKAmXMgdGhlIGNhc2UsIHRoZW4g
dGhlIGlzc3VlIGlzIG5vdCBzbyBtdWNoIHRoYXQgdGhlIENPQUxFU0NFKCkgaXMKPiBmYWlsaW5n
IHRvIHNob3J0LWNpcmN1aXQsIGJ1dCByYXRoZXIgdGhhbiB0aGUgU1FMIHN0YXRlbWVudCBmYWls
aW5nIHRvCj4g4oCcY29tcGlsaW5n4oCdIGFuIGludmFsaWQgc3RhdGVtZW50Lgo+Cj4gSWYgeW91
4oCZcmUgZG9pbmcgdGhpcyBpbiBjb2RlIGFzIHNlcGFyYXRlIHByZXBhcmUvc3RlcC9maW5hbGl6
ZSwgaXQgd291bGQgYmUKPiBpbnRlcmVzdGluZyB0byBzZWUgd2hlcmUgaXQgZmFpbHMuICBNeSBn
dWVzcyBpcyBwcmVwYXJlLCBub3Qgc3RlcC4KPgo+ICAgLWoKPgo+IF9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gc3FsaXRlLXVzZXJzIG1haWxpbmcgbGlz
dAo+IHNxbGl0ZS11c2Vyc0BtYWlsaW5nbGlzdHMuc3FsaXRlLm9yZwo+IGh0dHA6Ly9tYWlsaW5n
bGlzdHMuc3FsaXRlLm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vc3FsaXRlLXVzZXJzCj4K
Pgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiAgR3VudGVy
IEhpY2sgfCBTb2Z0d2FyZSBFbmdpbmVlciB8IFNjaWVudGlmaWMgR2FtZXMgSW50ZXJuYXRpb25h
bCBHbWJIIHwKPiBLbGl0c2NoZ2Fzc2UgMi00LCBBLTExMzAgVmllbm5hIHwgRk4gMTU3Mjg0IGEs
IEhHIFdpZW4sIERWUjogMDQzMDAxMyB8IChPKQo+ICs0MyAxIDgwMTAwIC0gMAo+Cj4gTWF5IGJl
IHByaXZpbGVnZWQuIE1heSBiZSBjb25maWRlbnRpYWwuIFBsZWFzZSBkZWxldGUgaWYgbm90IHRo
ZSBhZGRyZXNzZWUuCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KPiBzcWxpdGUtdXNlcnMgbWFpbGluZyBsaXN0Cj4gc3FsaXRlLXVzZXJzQG1haWxpbmds
aXN0cy5zcWxpdGUub3JnCj4gaHR0cDovL21haWxpbmdsaXN0cy5zcWxpdGUub3JnL2NnaS1iaW4v
bWFpbG1hbi9saXN0aW5mby9zcWxpdGUtdXNlcnMKPgoKCi0tIApELiBSaWNoYXJkIEhpcHAKZHJo
QHNxbGl0ZS5vcmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18Kc3FsaXRlLXVzZXJzIG1haWxpbmcgbGlzdApzcWxpdGUtdXNlcnNAbWFpbGluZ2xpc3RzLnNx
bGl0ZS5vcmcKaHR0cDovL21haWxpbmdsaXN0cy5zcWxpdGUub3JnL2NnaS1iaW4vbWFpbG1hbi9s
aXN0aW5mby9zcWxpdGUtdXNlcnMK