Re:Write an SQL query builder in 150 lines of Python
by joshuamorton on Friday August 27, 2021 @04:30PM
(#28332654)
This is simpler than what gp is asking for, they want the ability to dynamically change which columns are requested too, so change it to "foo, bar, baz", but still do so with reasonable safety.
Re:Write an SQL query builder in 150 lines of Python
by agent327 on Saturday August 28, 2021 @03:28AM
(#28336283)
That's supported too:
fmt ("SELECT {:v}, {:v} FROM {:v} WHERE id = {}", colname1, colname2, tablename, id);
The :v means "don't quote this, insert this string exactly as specified." It also has specialized handling for NULL values (i.e. it can generate 'IS NULL' instead of '= ...' if the value passed on is intended as a NULL value).
fmt ("SELECT foo, bar FROM mytable WHERE id = {}", id);
'id' gets properly quoted, so that's not a concern anymore.