PGSQL migrations for IM_Store, UserProfiles, removal of casting exception for UserProfiles and adding double precision to PGSQL Manager

PGSQL migrations for IM_Store, UserProfiles, removal of casting
exception for UserProfiles and adding double precision to PGSQL Manager.

Fixes the Offline IM to Email toggle and prepares for fixing Offline
IM.

Signed-off-by: Oren Hurvitz <orenh@kitely.com>
0.8.2-post-fixes
Geir Nøklebye 2015-07-27 14:25:28 +02:00 committed by Oren Hurvitz
parent e979a7e7f0
commit 1de8c3570d
5 changed files with 35 additions and 1 deletions

2
.gitignore vendored
View File

@ -108,3 +108,5 @@ OpenSim/Tests/test-results/
test-results/
doc/html
doc/doxygen.error.log
*.patch

View File

@ -249,6 +249,10 @@ namespace OpenSim.Data.PGSQL
{
return (DateTime)value;
}
if (PGFieldType == "double precision")
{
return (Double)value;
}
return CreateParameterValue(value);
}

View File

@ -877,7 +877,7 @@ namespace OpenSim.Data.PGSQL
{
string query = string.Empty;
query += "SELECT imviaemail,visible,email FROM ";
query += "SELECT imviaemail::VARCHAR,visible::VARCHAR,email FROM ";
query += "usersettings WHERE ";
query += "useruuid = :Id";

View File

@ -24,3 +24,22 @@ DELETE FROM `migrations` WHERE name='diva_im_Store';
*/
COMMIT;
:VERSION 3 # --------------------------
BEGIN;
-- dropping the table here as there most likely is only one record in the table at the time of migration
DROP TABLE IF EXISTS "public"."im_offline";
CREATE TABLE "public"."im_offline" (
"ID" serial,
"PrincipalID" uuid NOT NULL,
"Message" text NOT NULL COLLATE "default",
"TMStamp" timestamp(6) NOT NULL DEFAULT clock_timestamp(),
"FromID" uuid NOT NULL
)
WITH (OIDS=FALSE);
ALTER TABLE "public"."im_offline" ADD PRIMARY KEY ("ID","PrincipalID","FromID") NOT DEFERRABLE INITIALLY IMMEDIATE;
COMMIT;

View File

@ -143,4 +143,13 @@ ALTER TABLE usersettings ALTER COLUMN visible SET DATA TYPE boolean USING CASE W
ALTER TABLE usersettings ADD COLUMN email varchar(254) NOT NULL;
ALTER TABLE usersettings ADD PRIMARY KEY (useruuid);
COMMIT;
:VERSION 5 # -------------------------------
BEGIN;
ALTER TABLE usersettings ALTER COLUMN imviaemail SET DATA TYPE boolean USING CASE WHEN false THEN false ELSE true END;
COMMIT;