aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Data/PGSQL
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2014-05-15 22:45:01 +0100
committerJustin Clark-Casey (justincc)2014-05-15 22:45:01 +0100
commit6dc1b113d0a7cdf3d7b6d567728d39568f1ed982 (patch)
tree32c9c2199baa31a9464465c25b23fe25afa6ca6e /OpenSim/Data/PGSQL
parentEscape find string in MySQL core groups plugin (diff)
downloadopensim-SC-6dc1b113d0a7cdf3d7b6d567728d39568f1ed982.zip
opensim-SC-6dc1b113d0a7cdf3d7b6d567728d39568f1ed982.tar.gz
opensim-SC-6dc1b113d0a7cdf3d7b6d567728d39568f1ed982.tar.bz2
opensim-SC-6dc1b113d0a7cdf3d7b6d567728d39568f1ed982.tar.xz
Escape find string in PgSQL core groups plugin
Diffstat (limited to 'OpenSim/Data/PGSQL')
-rw-r--r--OpenSim/Data/PGSQL/PGSQLGenericTableHandler.cs18
-rw-r--r--OpenSim/Data/PGSQL/PGSQLGroupsData.cs10
2 files changed, 25 insertions, 3 deletions
diff --git a/OpenSim/Data/PGSQL/PGSQLGenericTableHandler.cs b/OpenSim/Data/PGSQL/PGSQLGenericTableHandler.cs
index 2151568..826c6fc 100644
--- a/OpenSim/Data/PGSQL/PGSQLGenericTableHandler.cs
+++ b/OpenSim/Data/PGSQL/PGSQLGenericTableHandler.cs
@@ -300,9 +300,27 @@ namespace OpenSim.Data.PGSQL
300 m_Realm, where); 300 m_Realm, where);
301 cmd.Connection = conn; 301 cmd.Connection = conn;
302 cmd.CommandText = query; 302 cmd.CommandText = query;
303 //m_log.WarnFormat("[PGSQLGenericTable]: SELECT {0} WHERE {1}", m_Realm, where);
304
305 conn.Open();
306 return DoQuery(cmd);
307 }
308 }
303 309
310 public virtual T[] Get(string where, NpgsqlParameter parameter)
311 {
312 using (NpgsqlConnection conn = new NpgsqlConnection(m_ConnectionString))
313 using (NpgsqlCommand cmd = new NpgsqlCommand())
314 {
315
316 string query = String.Format("SELECT * FROM {0} WHERE {1}",
317 m_Realm, where);
318 cmd.Connection = conn;
319 cmd.CommandText = query;
304 //m_log.WarnFormat("[PGSQLGenericTable]: SELECT {0} WHERE {1}", m_Realm, where); 320 //m_log.WarnFormat("[PGSQLGenericTable]: SELECT {0} WHERE {1}", m_Realm, where);
305 321
322 cmd.Parameters.Add(parameter);
323
306 conn.Open(); 324 conn.Open();
307 return DoQuery(cmd); 325 return DoQuery(cmd);
308 } 326 }
diff --git a/OpenSim/Data/PGSQL/PGSQLGroupsData.cs b/OpenSim/Data/PGSQL/PGSQLGroupsData.cs
index ed75b63..15c965b 100644
--- a/OpenSim/Data/PGSQL/PGSQLGroupsData.cs
+++ b/OpenSim/Data/PGSQL/PGSQLGroupsData.cs
@@ -83,11 +83,15 @@ namespace OpenSim.Data.PGSQL
83 public GroupData[] RetrieveGroups(string pattern) 83 public GroupData[] RetrieveGroups(string pattern)
84 { 84 {
85 if (string.IsNullOrEmpty(pattern)) // True for where clause 85 if (string.IsNullOrEmpty(pattern)) // True for where clause
86 {
86 pattern = " true ORDER BY lower(\"Name\") LIMIT 100"; 87 pattern = " true ORDER BY lower(\"Name\") LIMIT 100";
88 return m_Groups.Get(pattern);
89 }
87 else 90 else
88 pattern = string.Format(" lower(\"Name\") LIKE lower('%{0}%') ORDER BY lower(\"Name\") LIMIT 100", pattern); 91 {
89 92 pattern = string.Format(" lower(\"Name\") LIKE lower('%:pattern%') ORDER BY lower(\"Name\") LIMIT 100");
90 return m_Groups.Get(pattern); 93 return m_Groups.Get(pattern, new NpgsqlParameter("pattern", pattern));
94 }
91 } 95 }
92 96
93 public bool DeleteGroup(UUID groupID) 97 public bool DeleteGroup(UUID groupID)