Re: Permute underscore separated components of columns before fuzzy matching - Mailing list pgsql-hackers
From | Mikhail Gribkov |
---|---|
Subject | Re: Permute underscore separated components of columns before fuzzy matching |
Date | |
Msg-id | CAMEv5_u4mBp7qfhitvXDBQWzgeuYfkYek5kU13=O7iB1VgKXKQ@mail.gmail.com Whole thread Raw |
In response to | Re: Permute underscore separated components of columns before fuzzy matching (Arne Roland <A.Roland@index.de>) |
Responses |
Re: Permute underscore separated components of columns before fuzzy matching
|
List | pgsql-hackers |
Hello Arne,
yep, now the warnings have gone. And I must thank you for quite a fun time I had here testing your patch :) I tried even some weird combinations like this:
postgres=# create table t("_ __ ___" int);
CREATE TABLE
postgres=# select "__ _ ___" from t;
ERROR: column "__ _ ___" does not exist
LINE 1: select "__ _ ___" from t;
^
HINT: Perhaps you meant to reference the column "t._ __ ___".
postgres=# select "___ __ _" from t;
ERROR: column "___ __ _" does not exist
LINE 1: select "___ __ _" from t;
^
HINT: Perhaps you meant to reference the column "t._ __ ___".
postgres=#
CREATE TABLE
postgres=# select "__ _ ___" from t;
ERROR: column "__ _ ___" does not exist
LINE 1: select "__ _ ___" from t;
^
HINT: Perhaps you meant to reference the column "t._ __ ___".
postgres=# select "___ __ _" from t;
ERROR: column "___ __ _" does not exist
LINE 1: select "___ __ _" from t;
^
HINT: Perhaps you meant to reference the column "t._ __ ___".
postgres=#
... and it still worked fine.
Honestly I'm not entirely sure fixing only two switched words is worth the effort, but the declared goal is clearly achieved.
I think the patch is good to go, although you need to fix code formatting. At least the char*-definition and opening "{" brackets are conspicuous. Maybe there are more: it is worth running pgindend tool.
And it would be much more convenient to work with your patch if every next version file will have a unique name (maybe something like "_v2", "_v3" etc. suffixes)
--
On Mon, Jul 17, 2023 at 1:42 AM Arne Roland <A.Roland@index.de> wrote:
Hello Mikhail,I'm sorry. Please try attached patch instead.Thank you for having a look!RegardsArneFrom: Mikhail Gribkov <youzhick@gmail.com>
Sent: Thursday, July 6, 2023 13:31
To: Arne Roland <A.Roland@index.de>
Cc: Pg Hackers <pgsql-hackers@lists.postgresql.org>
Subject: Re: Permute underscore separated components of columns before fuzzy matchingHello Arne,
The goal of supporting words-switching hints sounds interesting and I've tried to apply your patch.
The patch was applied smoothly to the latest master and check-world reported no problems. Although I had problems after trying to test the new functionality.
I tried to simply mix words in pg_stat_activity.wait_event_type:
postgres=# select wait_type_event from pg_stat_activity ;
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
2023-07-06 14:12:35.968 MSK [1480] ERROR: column "wait_type_event" does not exist at character 8
2023-07-06 14:12:35.968 MSK [1480] HINT: Perhaps you meant to reference the column "pg_stat_activity.wait_event_type".
2023-07-06 14:12:35.968 MSK [1480] STATEMENT: select wait_type_event from pg_stat_activity ;
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
WARNING: detected write past chunk end in MessageContext 0x559d668aaf30
ERROR: column "wait_type_event" does not exist
LINE 1: select wait_type_event from pg_stat_activity ;
^
HINT: Perhaps you meant to reference the column "pg_stat_activity.wait_event_type".
postgres=#
So the desired hint is really there, but thgether with looots of warnings. For sure these should not be be encountered.
And no, this is not some kind of side problem brought by some other commit. The same request on a plain master branch performs without these warnings:
postgres=# select wait_type_event from pg_stat_activity ;
2023-07-06 14:10:17.171 MSK [22431] ERROR: column "wait_type_event" does not exist at character 8
2023-07-06 14:10:17.171 MSK [22431] STATEMENT: select wait_type_event from pg_stat_activity ;
ERROR: column "wait_type_event" does not exist
LINE 1: select wait_type_event from pg_stat_activity ;--
pgsql-hackers by date: