mod_storage_sql: Dynamically replace backquotes with double quotes when connecting to PostgreSQL...

Mon, 27 Dec 2010 06:10:35 +0500

author
Waqas Hussain <waqas20@gmail.com>
date
Mon, 27 Dec 2010 06:10:35 +0500
changeset 3976
16170a66e140
parent 3975
aa5e93e61760
child 3977
6724853adb80

mod_storage_sql: Dynamically replace backquotes with double quotes when connecting to PostgreSQL...

plugins/mod_storage_sql.lua file | annotate | diff | comparison | revisions
--- a/plugins/mod_storage_sql.lua	Mon Dec 27 06:10:35 2010 +0500
+++ b/plugins/mod_storage_sql.lua	Mon Dec 27 06:10:35 2010 +0500
@@ -29,12 +29,13 @@
 
 local connection = ...;
 local host,user,store = module.host;
+local params = module:get_option("sql");
 
 do -- process options to get a db connection
 	local DBI = require "DBI";
 
-	local params = module:get_option("sql") or { driver = "SQLite3", database = "prosody.sqlite" };
-	assert(params and params.driver and params.database, "invalid params");
+	params = params or { driver = "SQLite3", database = "prosody.sqlite" };
+	assert(params.driver and params.database, "invalid params");
 	
 	prosody.unlock_globals();
 	local dbh, err = DBI.Connect(
@@ -85,6 +86,9 @@
 end
 
 local function getsql(sql, ...)
+	if params.driver == "PostgreSQL" then
+		sql = sql:gsub("`", "\"");
+	end
 	-- do prepared statement stuff
 	local stmt, err = connection:prepare(sql);
 	if not stmt then return nil, err; end

mercurial