3 ms·
Any sane library will just error when you pass a string to a function that expects a template though. And that library will have types too so your IDE tells you
by mcintyre1994 2y ago
Any sane library will just error when you pass a string to a function that expects a template though. And that library will have types too so your IDE tells you before you get that far.
- Dx5IQ 2y agoSuch library functions tend to also accept a string as a valid input. E.g. db.execute from the GP usually works with strings to allow non-parametrized SQL queries.
- kccqzy 2y agoThe library should just refuse strings. If a non parametrized query is desired, it could require the user to supply a t-string with no {}.
- dragonwriter 2y ago> Such library functions tend to also accept a string as a valid input. Also? They tend only to accept a string (possibly with some additional arguments, if there is an in-library way to handle parameterization) as input, because Template literally hasn't been an option. New APIs designed with Template available will look different.
- _Algernon_ 2y agoThis would break backwardcompatibility pretty hard. In many cases it may not be worth it.
- eichin 2y agoBut now at least the language has the necessary rope (and an opportunity for a cultural push to insist on it.)
- hombre_fatal 2y agoJavascript already has prior art here. A library can extend an existing database library like 'pg' so that PgClient#query() and PgPool#query() require string template statements. That way 'pg' can continue working with strings, and people who want nice templated strings can use the small extension library, and the small extension library makes it impossible to accidentally pass strings into the query functions.