Обсуждение: BUG #5755: Query Optimzer Bug
The following bug has been logged online: Bug reference: 5755 Logged by: Elliott Groszek Email address: elliott.groszek@navy.mil PostgreSQL version: 8.4.4 Operating system: RedHat Description: Query Optimzer Bug Details: The following SQL statements produce different query plans even though "phone" is not reference in the SQL! explain update customer set login_name = (select "NESSOuserName" from person,phone where person.cac_cert=customer.cac_cert); explain update customer set login_name = (select "NESSOuserName" from person where person.cac_cert=customer.cac_cert); Please advise, Elliott
"Elliott Groszek" <elliott.groszek@navy.mil> writes:
> The following SQL statements produce different query plans even though
> "phone" is not reference in the SQL!
> explain update customer set login_name =
> (select "NESSOuserName" from person,phone
> where person.cac_cert=customer.cac_cert);
> explain update customer set login_name =
> (select "NESSOuserName" from person
> where person.cac_cert=customer.cac_cert);
That's not a bug.
            regards, tom lane
			
		On 17.11.2010 18:05, Tom Lane wrote: > "Elliott Groszek"<elliott.groszek@navy.mil> writes: >> The following SQL statements produce different query plans even though >> "phone" is not reference in the SQL! > >> explain update customer set login_name = >> (select "NESSOuserName" from person,phone >> where person.cac_cert=customer.cac_cert); > >> explain update customer set login_name = >> (select "NESSOuserName" from person >> where person.cac_cert=customer.cac_cert); > > That's not a bug. Particularly, note that they produce different results if "phone" table is empty. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com