Remove unneeded left joins from psql

Started by Greg Sabino Mullaneover 21 years ago3 messagespatches
Jump to latest
#1Greg Sabino Mullane
greg@turnstep.com

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

In response to Bruce's recent question, and remembering the recent
scolding received about removing a "LEFT" from an unrelated patch :),
here's a patch that does that and nothing more: removes all
unnecessary left joins from psql. Done in the theory that we often
point people to psql -E, so our queries there should be as correct
as possible: if the joining column is not null, then we don't need
a left join.

- --
Greg Sabino Mullane greg@turnstep.com
PGP Key: 0x14964AC8 200504112254
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----

iD8DBQFCWzjVvJuQZxSWSsgRAkwLAKDRMAV3GK/mYEMYEkP4SGC6CWqGNgCg1yIf
oQf+YvYkHJRK1WDz11Hw1Oc=
=oZDp
-----END PGP SIGNATURE-----

Attachments:

describe.c.noleftjoin.patchtext/x-patch; charset=UTF-8; name=describe.c.noleftjoin.patchDownload+46-46
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Greg Sabino Mullane (#1)
Re: Remove unneeded left joins from psql

Greg Sabino Mullane <greg@turnstep.com> writes:

here's a patch that does that and nothing more: removes all
unnecessary left joins from psql. Done in the theory that we often
point people to psql -E, so our queries there should be as correct
as possible: if the joining column is not null, then we don't need
a left join.

I'm still not happy about this. "Joining column is not null" has
nothing to do with it --- what is at issue is whether there is certain
to be a match. Since we do not have foreign-key enforcement on the
system catalog interrelationships, it is possible for system bugs or
manual intervention to create non-matching situations.

We have seen enough failures associated with "can't happen" missing
links that I think it's just folly to remove error tolerance like this.
I mean, there are *many* thousands of lines of code that we can remove
if the only criterion is readability and robustness means nothing...
who needs WAL for example?

regards, tom lane

#3Greg Sabino Mullane
greg@turnstep.com
In reply to: Tom Lane (#2)
Re: Remove unneeded left joins from psql

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I'm still not happy about this. "Joining column is not null" has
nothing to do with it --- what is at issue is whether there is certain
to be a match. Since we do not have foreign-key enforcement on the
system catalog interrelationships, it is possible for system bugs or
manual intervention to create non-matching situations.

Yes, you are right about this: we should fail in a way that puts a null
schema rather than not matching at all. Must get more sleep before
blindly patching next time. :)

- --
Greg Sabino Mullane greg@turnstep.com
PGP Key: 0x14964AC8 200504122121
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8

-----BEGIN PGP SIGNATURE-----

iD8DBQFCXHRhvJuQZxSWSsgRAv8yAJ97xvvNVJ5Tvcwlr7f5mIDqtXBqpACgkvro
pvWsWqanqcTnfO9thU8n0j4=
=aYbU
-----END PGP SIGNATURE-----