-
Notifications
You must be signed in to change notification settings - Fork 190
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Basic support for prepared statements in postgres, sqlite3 and mysql. #99
Open
fcr--
wants to merge
7
commits into
lunarmodules:master
Choose a base branch
from
fcr--:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Commits on May 31, 2018
-
Basic support for prepared statements on sqlite3.
With this modification we can enjoy the security benefits of having prepared-statement-alike additional parameters. To do this, the additional parameters should be passed after the statement in the execute method. This means that a new prepared statement will be created on each execute call, so don't expect big a performance increase. Maybe in a distant future a LRU cache of prepared statements could be added.
Configuration menu - View commit details
-
Copy full SHA for d810625 - Browse repository at this point
Copy the full SHA d810625View commit details -
Basic input parameters support for PostgreSQL
As in SQLite3, we now support prepared-statements-alike passing of optional parameters by using the PQexecParams function, and since adding support for binary types is not an easy task, any argument is converted to a string before being sent and converted back to the expected type by PostgreSQL... in any case this is better than nothing. You may want to use a cast ``::type'' if it's not inferred. Example: > db = require'luasql.postgres'.postgres():connect('') > assert(db:execute('create table t(a int)')) > assert(db:execute('insert into t values($1)', 17)) > res = assert(db:execute('select $1+$2::int, a from t where a>$1', 3, 4)) > =res:fetch() 7 17
Configuration menu - View commit details
-
Copy full SHA for 65b6faa - Browse repository at this point
Copy the full SHA 65b6faaView commit details
Commits on Nov 22, 2018
-
Configuration menu - View commit details
-
Copy full SHA for a63e68e - Browse repository at this point
Copy the full SHA a63e68eView commit details -
Since sqlite3_bind_text is binary safe, binding as text can be done without worries.
Configuration menu - View commit details
-
Copy full SHA for 7928968 - Browse repository at this point
Copy the full SHA 7928968View commit details
Commits on Nov 23, 2018
-
This eliminates the need for escaping parameters, since now they can be specified as additional arguments to execute.
Configuration menu - View commit details
-
Copy full SHA for e970d8f - Browse repository at this point
Copy the full SHA e970d8fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2baecd2 - Browse repository at this point
Copy the full SHA 2baecd2View commit details -
Add a generic conn:execute(sql, ...) function.
This function can be used by all the drivers simplifying the logic, requiring only to implement conn:prepare(sql) and stmt:execute(...).
Configuration menu - View commit details
-
Copy full SHA for 6fea651 - Browse repository at this point
Copy the full SHA 6fea651View commit details
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.