Saturday, November 14, 2015
One small PostgreSQL 9.5 feature I worked on is the new hinting mechanism feature, which sometimes hints, based on a score, what you might have meant to type following misspelling a column name in an SQL query. The score heavily weighs Levenshtein distance. A HINT message is sent to the client, which psql and other client tools will display by default.
It's common to not quite recall offhand if a column name is pluralized, or where underscores are used to break up words that make up the name of a column. This feature is targeted at that problem, providing guidance that allows the user to quickly adjust their query without mental context switching. For example:
postgres=# select * from orders where order_id = 5;
ERROR: 42703: column "order_id" does not exist
LINE 1: select * from orders where order_id = 5;
HINT: Perhaps you meant to reference the column "orders"."orderid".