execute(): support passing parameters as keyword arguments #30
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR complements JuliaDatabases/SQLite.jl#223 by adding keyarg support to DBInterface (for execute(), executemultiple() and executemany()).
I've also added two other minor things:
@sql_str
macro, so that SQL queries could be written as@sql"...."
. This should allow embedded SQL highlighting in Julia scripts by IDE plugins as it is done for e.g.@r_str
strings of RCall.jl.execute(f, db, sql)
, which (asopen(f, file)
) allows applyingf
to the returned cursor and then closing the query (the query is also closed iff
throws).This pattern allows tighter control of the prepared statement lifetime, which does not rely on GC to finalize and close the statement object. It also allows DB-specific implementations that don't create prepared statements at all.