aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Data
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Data/MySQL/MySQLGenericTableHandler.cs28
-rw-r--r--OpenSim/Data/MySQL/MySQLUserProfilesData.cs2
-rw-r--r--OpenSim/Data/MySQL/Resources/XMute.migrations16
-rw-r--r--OpenSim/Data/PGSQL/PGSQLUserProfilesData.cs2
-rw-r--r--OpenSim/Data/SQLite/Resources/MuteListStore.migrations16
-rw-r--r--OpenSim/Data/SQLite/SQLiteMuteListData.cs71
-rw-r--r--OpenSim/Data/SQLite/SQLiteUserProfilesData.cs4
7 files changed, 105 insertions, 34 deletions
diff --git a/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs b/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs
index 9bd3c0c..1564140 100644
--- a/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs
+++ b/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs
@@ -29,11 +29,9 @@ using System;
29using System.Collections.Generic; 29using System.Collections.Generic;
30using System.Data; 30using System.Data;
31using System.Reflection; 31using System.Reflection;
32using log4net; 32using System.Text;
33using MySql.Data.MySqlClient; 33using MySql.Data.MySqlClient;
34using OpenMetaverse; 34using OpenMetaverse;
35using OpenSim.Framework;
36using OpenSim.Region.Framework.Interfaces;
37 35
38namespace OpenSim.Data.MySQL 36namespace OpenSim.Data.MySQL
39{ 37{
@@ -129,25 +127,27 @@ namespace OpenSim.Data.MySQL
129 127
130 public virtual T[] Get(string[] fields, string[] keys, string options) 128 public virtual T[] Get(string[] fields, string[] keys, string options)
131 { 129 {
132 if (fields.Length != keys.Length) 130 int flen = fields.Length;
131 if (flen == 0 || flen != keys.Length)
133 return new T[0]; 132 return new T[0];
134 133
135 List<string> terms = new List<string>(); 134 int flast = flen - 1;
135 StringBuilder sb = new StringBuilder(1024);
136 sb.AppendFormat("select * from {0} where ", m_Realm);
136 137
137 using (MySqlCommand cmd = new MySqlCommand()) 138 using (MySqlCommand cmd = new MySqlCommand())
138 { 139 {
139 for (int i = 0 ; i < fields.Length ; i++) 140 for (int i = 0 ; i < flen ; i++)
140 { 141 {
141 cmd.Parameters.AddWithValue(fields[i], keys[i]); 142 cmd.Parameters.AddWithValue(fields[i], keys[i]);
142 terms.Add("`" + fields[i] + "` = ?" + fields[i]); 143 if(i< flast)
144 sb.AppendFormat("`{0}` = ?{0} and ", fields[i]);
145 else
146 sb.AppendFormat("`{0}` = ?{0} ", fields[i]);
143 } 147 }
144 148
145 string where = String.Join(" and ", terms.ToArray()); 149 sb.Append(options);
146 150 cmd.CommandText = sb.ToString();
147 string query = String.Format("select * from {0} where {1} {2}",
148 m_Realm, where, options);
149
150 cmd.CommandText = query;
151 151
152 return DoQuery(cmd); 152 return DoQuery(cmd);
153 } 153 }
@@ -204,7 +204,7 @@ namespace OpenSim.Data.MySQL
204 if (m_Fields[name].FieldType == typeof(bool)) 204 if (m_Fields[name].FieldType == typeof(bool))
205 { 205 {
206 int v = Convert.ToInt32(reader[name]); 206 int v = Convert.ToInt32(reader[name]);
207 m_Fields[name].SetValue(row, v != 0 ? true : false); 207 m_Fields[name].SetValue(row, v != 0);
208 } 208 }
209 else if (m_Fields[name].FieldType == typeof(UUID)) 209 else if (m_Fields[name].FieldType == typeof(UUID))
210 { 210 {
diff --git a/OpenSim/Data/MySQL/MySQLUserProfilesData.cs b/OpenSim/Data/MySQL/MySQLUserProfilesData.cs
index 16637c3..2669aca 100644
--- a/OpenSim/Data/MySQL/MySQLUserProfilesData.cs
+++ b/OpenSim/Data/MySQL/MySQLUserProfilesData.cs
@@ -836,7 +836,7 @@ namespace OpenSim.Data.MySQL
836 836
837 const string queryB = "SELECT `profileImage`, `profileFirstImage` FROM `userprofile` WHERE `useruuid` = ?Id"; 837 const string queryB = "SELECT `profileImage`, `profileFirstImage` FROM `userprofile` WHERE `useruuid` = ?Id";
838 838
839 using (MySqlCommand cmd = new MySqlCommand(string.Format (queryB,"`userpicks`"), dbcon)) 839 using (MySqlCommand cmd = new MySqlCommand(queryB, dbcon))
840 { 840 {
841 cmd.Parameters.AddWithValue("?Id", avatarId.ToString()); 841 cmd.Parameters.AddWithValue("?Id", avatarId.ToString());
842 842
diff --git a/OpenSim/Data/MySQL/Resources/XMute.migrations b/OpenSim/Data/MySQL/Resources/XMute.migrations
deleted file mode 100644
index 4ac7f82..0000000
--- a/OpenSim/Data/MySQL/Resources/XMute.migrations
+++ /dev/null
@@ -1,16 +0,0 @@
1:VERSION 1
2
3BEGIN;
4
5CREATE TABLE `XMute` (
6 `AgentID` char(36) NOT NULL,
7 `MuteID` char(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
8 `MuteName` varchar(64) NOT NULL DEFAULT '',
9 `MuteType` int(11) NOT NULL DEFAULT '1',
10 `MuteFlags` int(11) NOT NULL DEFAULT '0',
11 `Stamp` int(11) NOT NULL,
12 UNIQUE KEY `AgentID_2` (`AgentID`,`MuteID`,`MuteName`),
13 KEY `AgentID` (`AgentID`)
14);
15
16COMMIT;
diff --git a/OpenSim/Data/PGSQL/PGSQLUserProfilesData.cs b/OpenSim/Data/PGSQL/PGSQLUserProfilesData.cs
index 75a51e2..5800de9 100644
--- a/OpenSim/Data/PGSQL/PGSQLUserProfilesData.cs
+++ b/OpenSim/Data/PGSQL/PGSQLUserProfilesData.cs
@@ -845,7 +845,7 @@ namespace OpenSim.Data.PGSQL
845 845
846 query = "SELECT \"profileImage\", \"profileFirstImage\" FROM \"userprofile\" WHERE \"useruuid\" = :Id"; 846 query = "SELECT \"profileImage\", \"profileFirstImage\" FROM \"userprofile\" WHERE \"useruuid\" = :Id";
847 847
848 using (NpgsqlCommand cmd = new NpgsqlCommand(string.Format(query, "\"userpicks\""), dbcon)) 848 using (NpgsqlCommand cmd = new NpgsqlCommand(query, dbcon))
849 { 849 {
850 cmd.Parameters.Add(m_database.CreateParameter("Id", avatarId)); 850 cmd.Parameters.Add(m_database.CreateParameter("Id", avatarId));
851 851
diff --git a/OpenSim/Data/SQLite/Resources/MuteListStore.migrations b/OpenSim/Data/SQLite/Resources/MuteListStore.migrations
new file mode 100644
index 0000000..f981ded
--- /dev/null
+++ b/OpenSim/Data/SQLite/Resources/MuteListStore.migrations
@@ -0,0 +1,16 @@
1:VERSION 1
2
3BEGIN TRANSACTION;
4
5CREATE TABLE MuteList (
6 AgentID char(36) NOT NULL,
7 MuteID char(36) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
8 MuteName varchar(64) NOT NULL DEFAULT '',
9 MuteType int(11) NOT NULL DEFAULT '1',
10 MuteFlags int(11) NOT NULL DEFAULT '0',
11 Stamp int(11) NOT NULL,
12 UNIQUE (AgentID, MuteID, MuteName),
13 PRIMARY KEY(AgentID)
14);
15
16COMMIT;
diff --git a/OpenSim/Data/SQLite/SQLiteMuteListData.cs b/OpenSim/Data/SQLite/SQLiteMuteListData.cs
new file mode 100644
index 0000000..80fd019
--- /dev/null
+++ b/OpenSim/Data/SQLite/SQLiteMuteListData.cs
@@ -0,0 +1,71 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections;
30using System.Collections.Generic;
31using System.Data;
32using OpenMetaverse;
33using OpenSim.Framework;
34#if CSharpSqlite
35 using Community.CsharpSqlite.Sqlite;
36#else
37 using Mono.Data.Sqlite;
38#endif
39
40namespace OpenSim.Data.SQLite
41{
42 public class SQLiteMuteListData : SQLiteGenericTableHandler<MuteData>, IMuteListData
43 {
44 public SQLiteMuteListData(string connectionString)
45 : base(connectionString, "MuteList", "MuteListStore")
46 {
47 }
48
49 public MuteData[] Get(UUID agentID)
50 {
51 MuteData[] data = base.Get("AgentID", agentID.ToString());
52 return data;
53 }
54
55 public bool Delete(UUID agentID, UUID muteID, string muteName)
56 {
57 using (SqliteCommand cmd = new SqliteCommand())
58 {
59 cmd.CommandText = "delete from MuteList where `AgentID` = :AgentID and `MuteID` = :MuteID and `MuteName` = :MuteName";
60
61 cmd.Parameters.AddWithValue(":AgentID", agentID.ToString());
62 cmd.Parameters.AddWithValue(":MuteID", muteID.ToString());
63 cmd.Parameters.AddWithValue(":MuteName", muteName);
64
65 if (ExecuteNonQuery(cmd, m_Connection) > 0)
66 return true;
67 return false;
68 }
69 }
70 }
71} \ No newline at end of file
diff --git a/OpenSim/Data/SQLite/SQLiteUserProfilesData.cs b/OpenSim/Data/SQLite/SQLiteUserProfilesData.cs
index 13aac79..2f22d54 100644
--- a/OpenSim/Data/SQLite/SQLiteUserProfilesData.cs
+++ b/OpenSim/Data/SQLite/SQLiteUserProfilesData.cs
@@ -926,7 +926,7 @@ namespace OpenSim.Data.SQLite
926 { 926 {
927 using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand()) 927 using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand())
928 { 928 {
929 cmd.CommandText = query; 929 cmd.CommandText = string.Format(query, "\"classifieds\"");
930 cmd.Parameters.AddWithValue(":Id", avatarId.ToString()); 930 cmd.Parameters.AddWithValue(":Id", avatarId.ToString());
931 931
932 using (reader = cmd.ExecuteReader(CommandBehavior.SingleRow)) 932 using (reader = cmd.ExecuteReader(CommandBehavior.SingleRow))
@@ -940,7 +940,7 @@ namespace OpenSim.Data.SQLite
940 940
941 using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand()) 941 using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand())
942 { 942 {
943 cmd.CommandText = query; 943 cmd.CommandText = string.Format(query, "\"userpicks\"");
944 cmd.Parameters.AddWithValue(":Id", avatarId.ToString()); 944 cmd.Parameters.AddWithValue(":Id", avatarId.ToString());
945 945
946 using (reader = cmd.ExecuteReader(CommandBehavior.SingleRow)) 946 using (reader = cmd.ExecuteReader(CommandBehavior.SingleRow))