Commit Graph

1080 Commits (0df0e92ff041797f763ecfd8bb5c9c5c4e33a99b)

Author SHA1 Message Date
Justin Clark-Casey (justincc) 39a748b47a refactor: Use SOP.Flags rather than SOP.ObjectFlags 2010-08-13 20:23:53 +01:00
Diva Canto 7741143fb5 Enforce DB limits on region name to 32 chars, or else (not good). Removed a piece of code from Hyperlinker that didn't work anyway. Shortened the hyperlink region name. 2010-08-10 11:17:38 -07:00
Justin Clark-Casey (justincc) 3b26baf282 Even if all data migratios are up to date, still print the current revision to the log 2010-08-09 22:54:13 +01:00
Melanie a5e4a2bb3b Add distance sort for null, too 2010-08-08 18:18:42 +01:00
Melanie Thielker 1f25b9e8db Thank you, Marck00, for a patch that implemented region distance sorting
for fallback regions. Applied with changes.
2010-08-08 17:37:50 +01:00
Justin Clark-Casey (justincc) 1270727c96 Merge branch 'moap' 2010-08-06 18:29:30 +01:00
Justin Clark-Casey (justincc) 7f3f1bfe88 fix mysql/mssql prim serialization problem 2010-08-04 20:23:18 +01:00
Justin Clark-Casey (justincc) 2a0254f2da Implement MediaUrl persistence for MySQL and MsSQL
Not sure how I forgot this.  This may resolve problems with media textures not persisting over restart for these databases.
2010-08-03 17:54:40 +01:00
Justin Clark-Casey (justincc) 9d8a67fe13 get rid of PrimitiveBaseShape.MediaRaw staging post
using an OSD serialization rather than auto forces serialization code to be placed in OpenSim.Framework
this makes the media texture raw data staging post in PrimitiveBaseShape redundant, now we just directly call the code in PrimitiveBaseShape.MediaList itself
2010-08-03 16:26:27 +01:00
Diva Canto c4ecbd1fb1 White space from previous commit. 2010-07-31 16:40:58 -07:00
Marck f91ec19224 Implemented console command "show hyperlinks". 2010-07-31 16:38:23 -07:00
Justin Clark-Casey (justincc) 109ddd1bd5 add mssql support for media on a prim
compiles but not tested.  please test and correct if necessary!
2010-07-26 23:34:23 +01:00
Justin Clark-Casey (justincc) 849fc0483f add mysql support for media on a prim 2010-07-26 23:34:23 +01:00
Justin Clark-Casey (justincc) 412fed975f relocate serialization code from SQLiteRegionData to MoapModule using load and save events.
This is better modularity.  It also allows MoapModule to be replaced with some other media module that may behave completely differently in the future.
Remaining non-modularity:
PrimitiveBaseShape needs explicit Media and MediaRaw fields.  MediaRaw is required in order to shuttle the pre-serialization data back and forth from the database layer.
The database also needs to know about MediaRaw though not about Media.
IMO, it would be extremely nice to remove these hard codings but this is a bridge too far at the present time.
2010-07-26 23:34:23 +01:00
Justin Clark-Casey (justincc) afdbeba4e4 Put a wrapper around the media texture region serialization
THIS WILL BREAK EXISTING MEDIA TEXTURE PERSISTENCE.  Please delete your existing sqlite databases if you are experimenting with this branch.
This wrapper will make it easier to maintain compatibility if the media texture data evolves.
This will also make it easier to store non-sl media texture data.
2010-07-26 23:34:22 +01:00
Justin Clark-Casey (justincc) f872a2af11 add missing regionstore migration file for new fields. D'oh!
this should enable persistence now
2010-07-26 23:34:22 +01:00
Justin Clark-Casey (justincc) fc76ce0f46 fix bug where prim persistence would fail if media had never been set 2010-07-26 23:34:21 +01:00
Justin Clark-Casey (justincc) 43f480864b fix problem persisting when only one face had a media texture 2010-07-26 23:34:20 +01:00
Justin Clark-Casey (justincc) 9682e0c733 Implement media texture persistence over server restarts for sqlite
This is currently persisting media as an OSDArray serialized to LLSD XML.
2010-07-26 23:34:19 +01:00
Diva Canto 6afa55d446 Removed a few obsolete mono addin references. Mantis #4854 2010-07-14 14:47:01 -07:00
Justin Clark-Casey (justincc) 5d83b3f991 comment out obsolete assert that 'item has been passed to another user since it was last set' perms flag was set when a prim item was added to a scene object 2010-07-14 17:53:43 +01:00
Melanie dd14016885 Revamp the permissions propagation. This MAY mess up. Please test.
Change the slam bit from 3 to 4. Assume the old slam bit is always set.
The new slam bit is a "changed owner" bit, correcting a bug where an item
passed from the creator to another with less than full perms, then back (sale
test) would arrive back full perm. Lots of in-code docs.
2010-07-13 20:45:16 +01:00
Diva Canto fe60b6783d Hopefully fixes mantis #4852 2010-07-08 16:21:01 -07:00
Diva Canto 76d2f0f68e Same patch as before but for SQLite. 2010-06-27 12:40:17 -07:00
Diva Canto b0129b35f8 Added checks to XInventory DB layer to truncate names and descriptions. 2010-06-27 12:37:16 -07:00
Justin Clark-Casey (justincc) d399bd3eb7 minor: fix spelling mistake interupt -> interrupt in migrations
This is for  mantis 4783
2010-06-25 21:18:52 +01:00
Melanie a3ebd4db3f Revert "This is a HACK! Downright nasty. For some reason, the devs of the mysql"
Didn't do what it said on the package!

This reverts commit 8643db3ef0.
2010-06-19 23:45:56 +01:00
Melanie 8643db3ef0 This is a HACK! Downright nasty. For some reason, the devs of the mysql
connector have decided that their vision of timeouts is the only valid one.
This uses reflection to show them the finger. Please test.
2010-06-19 22:48:43 +01:00
Melanie e3432b8f63 Revert "Set command timeout to infinity on migrations"
This reverts commit 51d30fd34a.
2010-06-17 17:48:34 +01:00
Melanie 51d30fd34a Set command timeout to infinity on migrations 2010-06-17 17:43:40 +01:00
Diva Canto 9c9ce9e8dd * Deleted duplicated migration that was failing anyway.
* Added an error message in initial estate owner creation that makes it clear what needs to happen.
2010-06-14 11:50:42 -07:00
Melanie 008e840cf2 Add the BEGIN; I had missed 2010-06-09 16:37:20 +01:00
Melanie 668c3b4062 Re-add Migration version 32, which apparently got dropped completely. 2010-06-09 16:34:18 +01:00
Diva Canto 5c0068723f Changed XInventoryData's CreatorID to a string. 2010-06-08 15:52:26 -07:00
Diva Canto 9b9804a498 * Changed CreatorIDs consistently to varchar(128)
* Deleted redundant migration for assets in SQLite
* Rewrote XInventory migrations in SQLite in the new style
2010-06-08 15:47:14 -07:00
Melanie a246cbce8d Add a migration to adjust types in the WL table. The new connector likes that
better
2010-06-08 00:37:38 +01:00
Justin Clark-Casey (justincc) 75878c8f43 get TestSaveIarV0_1() working again by setting up an OpenSim.Data.Null.UserAuthenticationData plugin
additional tweaks to get this working properly
2010-06-04 20:43:05 +01:00
Justin Clark-Casey (justincc) 86f2339b6e remove estate stuff in sqlite region migrations since this also exists in estate migrations, change Sandbox to sandbox in sqlite region migrations
re-enabling the sqlite data tests revealed these errors!
2010-06-04 18:46:58 +01:00
Justin Clark-Casey (justincc) 5c322335e5 add sqlite database back to database tests
this appears to be okay even though we reuse it between runs without deleting it first.
size of the database appears not to be changing though that could be deceptive
2010-06-04 18:27:16 +01:00
Justin Clark-Casey (justincc) 55040a84a5 Fix bug where prim items were not loaded in the new sqlite database handler
This addresses mantis http://opensimulator.org/mantis/view.php?id=4739
2010-06-04 17:14:12 +01:00
Melanie 1c7f60ab49 Merge branch 'unitests'
Signed-off-by: Melanie <melanie@t-data.com>
2010-05-26 10:56:24 +01:00
AlexRa 5d65ef2db3 Minor correction to AssetTests.cs
(forgot to change test descriptions, has no effect on running the tests)
2010-05-26 10:25:56 +03:00
Diva Canto 1ab826d67c The 8th migration statement in AssetStore.migrations didn't look right. 2010-05-23 12:22:47 -07:00
AlexRa 57f4729eea Ensured that tests are skipped for wrong conn string, also m_log chng
The base test class now tries to connect to DB, ignores all tests in the
class if unable to.

Also m_log changed to instance field (which in this case shouldn't cause
any problems),  to avoid having to define it separately in each derived
class.  Here I touched things that I don't understand well (using log4net),
so please review this commit.
2010-05-23 12:46:33 +03:00
AlexRa b9b6d9c4ea Removed (unused?) empty SQL files from MSSQL resource dir
There was a whole bunch of these SQL files, all empty and apparently
unused.  Removing them is just a clean-up, if anybody has a reason for these
files to be there, feel free to revert.
2010-05-23 11:48:30 +03:00
AlexRa 05d9ca1b26 MySQL Migrations: Minor correcton to Region/Estate split
(some Estate SQL left behind in the Region migration)
2010-05-23 11:48:28 +03:00
AlexRa 52a3dbd076 MSSQL Migration: CreatorID in InventoryItems changed to VARCHAR(36)
Again, the same thing about potentially having non-GUID CreatorID.
2010-05-23 11:48:25 +03:00
AlexRa 89b7c64b6f Various minor changes in the data tests 2010-05-23 11:48:22 +03:00
AlexRa 9976cb93ce Further corrections to MS SQL stores (now passes all tests)
Besides, AssetData is slightly optimized to StoreAsset in one request
("IF EXISTS() UPDATE ... ELSE INSERT ...")

The main change in the MS SQL Inventory implem. is that it now return
empty list (or whatever) when called with UUID.Zero, which is consistent
with how the code for other DBs work.

I did no changes at all in XInventory, as there is no test set for them.
2010-05-23 11:48:19 +03:00
AlexRa ebc2b6d4f6 Split migrations for RegionStore and EstateStore (see WARNING!)
ok, so the estate stores now want their own migration files, but as it
happened the SQL definition were inside the Region migrations.
It seems better/cleaner to keep each 'store' separately updatable.

WARNING: any editing in the middle of the migration scripts (as opposite
to just appending to them) has the potential of messing up updates of
existing databases.  As far as I can see, this one is (probably) safe,
the worst that could happen is the EstateStore migration silently fail
if the estate the tables are already there.
2010-05-23 11:48:16 +03:00
AlexRa 2537acc04d Unitests: Asset, Estate, Region (the "legacy" one), Inventory
The tests have been modified to work under NUnit 2.4.6
(the one currently used in the project).

They will also work with NUnit 2.5+ as is, but will look better
if you #define NUNIT25 for them.
2010-05-23 11:48:10 +03:00
AlexRa 330ad501a5 Added MS SQL test conn to INI - only as an example, modify before use!!!
NOTE that this INI file is currently loaded as a embedded RESOURCE, which is weird and has a
disadvantage of having to rebuild the Tests whenever the conn strings are changed.
The only reason is that I couldn't figure out a reliable way to put this INI into the correct
dir at runtime. If somebody can do it, that would be cool.
2010-05-23 11:48:08 +03:00
AlexRa 40031e6d37 Removed MySql and SQLite-specific asset test files 2010-05-23 11:48:05 +03:00
AlexRa b1e6e99506 BasicAssetTest.cs replaced by AssetTests.cs
AssetTests: The name has changed to reflect the fact it is no longer a base class,
but the complete asset test for all supported databases.

The test can also check storing of CreatorID, but the feature is
disabled at this commit!
2010-05-23 11:48:02 +03:00
AlexRa 749cf0f6eb Bugfix in tests (must clear db before migrations, not after) 2010-05-23 11:47:59 +03:00
AlexRa f527584ed3 EstateData tests passing on all DBs 2010-05-23 11:47:56 +03:00
AlexRa 94f4c20866 Corrections in RegionTests.cs. It now fully works!
The problem was that some tests relied on prior tests
to leave the DB in a particular state, but the test class
cleared the DB every time. The affected tests have been
merged into one to remove the dependencies.

tested on all 3 Dbs, all tests green.
2010-05-23 11:47:54 +03:00
AlexRa 6322a085b3 Minor corrections in BasicDataServiceTest.cs
(added more functions for cleaning up DB from the
derived tests)
2010-05-23 11:47:51 +03:00
AlexRa 187a98615b MSSQL: added asset_flags, CreatorID to migrations 2010-05-23 11:47:48 +03:00
AlexRa 49f4cc4246 MSSQLAssetData updated to support [CreatorID], [asset_flags] 2010-05-23 11:47:45 +03:00
AlexRa f7bf3facff MSSQLAssetData: fixed some weirdness
Fixed unfinished SQL in FetchAssetMetadataSet, fixed SQL
in UpdateAsset (must not modify ID).

NOT tested!  But apparently shouldn't work worse than the previous version,
esp. the FetchMetadata thing.
2010-05-23 11:47:42 +03:00
AlexRa 7f70ae0ebd All data tests made DBMS-independent 2010-05-23 11:47:39 +03:00
AlexRa 91ad1f4ee7 Added generic base classes for testing database services
These are some generic classes that simplify writing tests
for any of the data connectors and databases. Among other
things, configuring the connection strings is done once,
in a separate resource file.

Tests based on the new BasicDataServiceTest class require
NUnit 2.5 or better.
2010-05-23 11:47:36 +03:00
Diva Canto 213e372253 Cleaned up MySql migrations a bit more, got rid of all old-form migration files. Restored Presence table to its taboo-breaking form. 2010-05-20 20:24:50 -07:00
Melanie 859beaf830 Revert one of the previous patches' hunks. The new code looked better, but
was less efficient.
2010-05-20 11:03:38 +01:00
AlexRa ce787a4c41 Series of patches to include creator ID in assets.
Contains a migration.

SQLite: May contain nuts.

The SQLite migration copies the entire asset table. Be prepared for quite a wait. Don't interrupt it. Back up your assets db.

BasicAssetTest checks CreatorID storage, new test for weird CreatorID

(now also checks that non-GUID or empty CreatorID gets stored correctly)

Signed-off-by: Melanie <melanie@t-data.com>
2010-05-20 11:01:51 +01:00
AlexRa d6a6668bd7 Scrambled asset type in BasicAssetTest.cs!
The asset type wasn't in the list of "DontScramble" fields,
so the test assets were stored with randomized type, which
caused exception on reading them.

Also the scrambler was moved from local var to the class level,
so it could be used in the new tests I've added (see the next commit).
2010-05-19 21:50:34 +03:00
AlexRa 64fe823b92 MySQLAssetData.cs now supports asset_flags, CreatorID 2010-05-19 21:50:32 +03:00
AlexRa eacd8d0263 MySQL: added CreatorID, moved asset_flag to migration script 2010-05-19 21:50:30 +03:00
AlexRa accf8c420d SQLite: CreatorID added (and asset_flags moved) to the migration script 2010-05-19 21:49:30 +03:00
AlexRa c6977cbd4d Added CreatorID to SQLite asset data 2010-05-19 21:49:24 +03:00
AlexRa ccee95552f A bit of harmless refactoring in SQLiteAssetData.cs 2010-05-19 21:49:22 +03:00
AlexRa 527a257b9f Kind of fixed Melanie's "Exception(sql)" correction
Throwing an Ex. with SQL command in the message looks weird,
this is a bit better, but I'm still not sure if that's the
proper way to handle.  Also, there is a catch one level up,
so is this one necessary?
2010-05-19 21:49:18 +03:00
Melanie e4b8d76b10 Change appender to deal with line feeds more intelligently.
Change migration error reporting to not truncate the statement when
reporting. It's a bit messier than the old error reporting, but at least
one gets an idea of what could be wrong again. And things look a lot
neater now.
2010-05-19 04:17:56 +01:00
Melanie 0c209a469b Clean up output a bit 2010-05-19 03:48:03 +01:00
Melanie 20642f2f21 Fix the migration message to say "Continuing" again. Remove line feed, which
prevented the full message from displaying.
2010-05-19 03:26:37 +01:00
Melanie 9fa8013ca5 Remove the return that was inserted in the last merge to allow
migrations to continue in the face of an error
2010-05-19 03:07:31 +01:00
Melanie dedc0c0bd4 Revert "Allow migration steps to fail again without bringing down the house"
This reverts commit 167db50259.
2010-05-19 02:47:31 +01:00
Melanie 167db50259 Allow migration steps to fail again without bringing down the house 2010-05-19 02:33:23 +01:00
Melanie 298368dd99 Merge commit 'alex/mssql-estate-bugfix'
This fixes some type conversion bugs and also makes the estate lists
work properly for MSSQL. Strawberry, please check this.

Signed-off-by: Melanie <melanie@t-data.com>
2010-05-18 23:39:09 +01:00
Melanie d2bc673667 Make m_log in migrations private. Define new m_log in derived class 2010-05-18 23:33:05 +01:00
Melanie caf61ab7d8 Binary Guids are 16 chars long. Fix parser. 2010-05-18 23:22:30 +01:00
AlexRa deae030145 Some more corrections after MySQL connector update 2010-05-19 02:28:19 +03:00
AlexRa 8a0c5d14d4 All (?) MySQL stores fixed to use DBGuid.FromDB()
This was needed if we want to update to the latest MySQL
connector dll.  It automatically converts CHAR(36) to
Guids, so getting them as strings no longer works.

By using DBGuid.FromDB(), we unlink from any particular
storage format of GUIDs, could even make them BINARY(16)
if we like.

Actually not all MySql units are touched, but the remaining ones don't
seem to be affected (they don't read GUIDs from DB)
2010-05-19 01:33:02 +03:00
AlexRa a27d49b188 Added DBGuids.cs (static func DBGuid.FromDB()
This DBMS-independent function to be used converting UUIDs
from whatever format used in the DB (string/binary/Guid).
This is mostly needed for MySQL, as in MSSQL they are always
UNIQUEIDENTIFIERs and in SQLite always strings (but would look
better if we use it there anyway).
2010-05-19 01:32:50 +03:00
AlexRa d95f232629 Massive bugfix in MSSQLEstateData (now works!) 2010-05-18 21:08:51 +03:00
AlexRa dfeb9a0b5c MS SQL migrations converted to the new format 2010-05-16 17:04:50 +03:00
AlexRa 1ad12851d0 Migrations for SQLite converted to new format 2010-05-16 17:04:39 +03:00
AlexRa ee713cb253 Converted MySQL migration history to the new format
Replaced all NNN_StoreName.sql migration resources with a more
readable, single-file-per-store
2010-05-16 17:04:13 +03:00
AlexRa b49fb3db7c Added MySqlMigrations.cs (supports stored proc/funcs)
Uses MySqlScript class to correctly run proc/func definitions
that need delimiter change. Requires MySql.Data.dll 6.2 or later.
2010-05-16 16:25:08 +03:00
AlexRa 8b6a295874 Migration.cs supports single-file migration history format
Scans for migration resources in either old-style "scattered" (one file per version)
or new-style "integrated" format (single file "Resources/{StoreName}.migrations[.nnn]") with ":VERSION nnn" sections).
In the new-style migrations it also recognizes ':GO' separators for parts of the SQL script
that must be sent to the server separately.  The old-style migrations are loaded each in one piece
and don't support the ':GO' feature.

Status:  TESTED and works fine in all modes!
2010-05-16 16:22:38 +03:00
Diva Canto 6f2f0fa0ca OK, this really fixes it, I promise. 2010-05-09 14:12:59 -07:00
Diva Canto 9cf6b81256 Yey for unit tests. The previous commit had a couple of bugs on SQL statements. Fixed here. 2010-05-09 14:02:02 -07:00
Diva Canto b233a4b2ca * Fixed spamming the assets table with map tiles. The tile image ID is now stored in regionsettings. Upon generation of a new tile image, the old one is deleted. Tested for SQLite and MySql standalone.
* Fixed small bug with map search where the local sim regions weren't found.
2010-05-09 13:39:56 -07:00
Melanie bc6995f921 Add Delete handler to SQLite (NG) 2010-05-09 18:02:36 +01:00
Melanie 60357d3778 Implement the "delete" path for assets. Adds a new option to allow remote asset deletion in robust handler. 2010-05-09 17:56:52 +01:00
Melanie 9b22393cf3 Add a field asset_flags and a corresponding enum to the asset database. This
CHANGES THE ASSET SERVER PROTOCOL and means you CAN NOT MIX PRIOR VERSIONS
WITH LATER ONES. It may also eat your babies, yada, yada, yada.
The usual cautions for migrations to the assets table apply.
Coding: Can not guarantee nut free.
2010-05-09 17:02:22 +01:00
Diva Canto 15562017f2 These files are part of the GridUserService write-up. 2010-05-07 21:32:02 -07:00
Diva Canto a58859a0d4 GridUserService in place. Replaces the contrived concept of storing user's home and position info in the presence service. WARNING: I violated a taboo by deleting 2 migration files and simplifying the original table creation for Presence. This should not cause any problems to anyone, though. Things will work with the new simplified table, as well as with the previous contrived one. If there are any problems, solving them is as easy as dropping the presence table and deleting its row in the migrations table. The presence info only exists during a user's session anyway.
BTW, the Meshing files want to be committed too -- EOFs.
2010-05-07 21:29:56 -07:00
Diva Canto 484584b83c Fixed: migration #2 for SQLite. Problem was that ATTACH cannot be done inside a transaction. 2010-05-04 09:44:30 -07:00