Re: Doing better at HINTing an appropriate column within errorMissingColumn()
От | Peter Geoghegan |
---|---|
Тема | Re: Doing better at HINTing an appropriate column within errorMissingColumn() |
Дата | |
Msg-id | CAM3SWZT+7hH29Go6ZuY2OrCS40=6yPVM_nt9NjfovP3XwjixDw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Doing better at HINTing an appropriate column within errorMissingColumn() (Peter Geoghegan <pg@heroku.com>) |
Список | pgsql-hackers |
On Wed, Nov 19, 2014 at 10:33 AM, Peter Geoghegan <pg@heroku.com> wrote: > Maybe you'd prefer if there was a more gradual ramp-up to requiring a > distance of no greater than 50% of the string size (normalized to take > account of my non-default costings) I made this modification: diff --git a/src/backend/parser/parse_relation.c b/src/backend/parser/parse_relation.c index 40c69d7..cca075f 100644 --- a/src/backend/parser/parse_relation.c +++ b/src/backend/parser/parse_relation.c @@ -929,7 +929,8 @@ searchRangeTableForCol(ParseState *pstate, const char *alias, char *colname, * seen when 6 deletions are required against actual attribute name, or 3 * insertions/substitutions. */ - if (state->distance > 6 && state->distance > strlen(colname) / 2) + if ((state->distance > 3 && state->distance > strlen(colname)) || + (state->distance > 6 && state->distance > strlen(colname) / 2)) { state->rsecond = state->rfirst= NULL; state->second = state->first = InvalidAttrNumber; When I run the regression tests now, then all the cases that you found objectionable in the regression tests' previous expected output disappear, while all the cases I think are useful that were previously removed by applying a broad 50% standard remain. While I'm not 100% sure that this exact formulation is the best one, I think that we can reach a compromise on this point, that allows the costing to remain the same without offering particularly bad suggestions for short strings. -- Peter Geoghegan
В списке pgsql-hackers по дате отправления: