[mb-commits] r9856 - in mb_server/trunk: admin admin/cleanup admin/reports admin/sql admin/sql/updates admin/statistics cgi-bin cgi-bin/MusicBrainz/Server cgi-bin/MusicBrainz/Server/Moderation htdocs htdocs/MM htdocs/comp htdocs/comp/layout htdocs/comp/moderation htdocs/comp/release htdocs/comp/release_editor htdocs/comp/search htdocs/css htdocs/docs/specs htdocs/edit htdocs/edit/albumbatch htdocs/images htdocs/images/entity htdocs/search htdocs/show htdocs/show/artist htdocs/show/label htdocs/show/track htdocs/tagger

root at musicbrainz.org root at musicbrainz.org
Fri May 30 19:15:39 UTC 2008


Author: robert
Date: 2008-05-30 19:15:39 +0000 (Fri, 30 May 2008)
New Revision: 9856

Added:
   mb_server/trunk/admin/sql/updates/20080529.sql
Removed:
   mb_server/trunk/admin/cleanup/RemovePrunedTRMs
   mb_server/trunk/admin/reports/DuplicateTRMsPerAlbum
   mb_server/trunk/admin/reports/DuplicateTRMsPerAlbum.inc
   mb_server/trunk/admin/reports/TRMsWithManyTracks.inc
   mb_server/trunk/admin/reports/TRMsWithManyTracks.pl
   mb_server/trunk/admin/reports/TracksWithManyTRMs.inc
   mb_server/trunk/admin/reports/TracksWithManyTRMs.pl
   mb_server/trunk/cgi-bin/MusicBrainz/Server/Moderation/MOD_ADD_TRMS.pm
   mb_server/trunk/cgi-bin/MusicBrainz/Server/Moderation/MOD_REMOVE_TRMID.pm
   mb_server/trunk/cgi-bin/MusicBrainz/Server/TRM.pm
   mb_server/trunk/htdocs/MM/mm_examples.html
   mb_server/trunk/htdocs/MM/mq_examples.html
   mb_server/trunk/htdocs/comp/moderation/MOD_ADD_TRMS
   mb_server/trunk/htdocs/comp/moderation/MOD_REMOVE_TRMID
   mb_server/trunk/htdocs/edit/trm/
   mb_server/trunk/htdocs/images/entity/trm_small.gif
   mb_server/trunk/htdocs/images/trm.gif
   mb_server/trunk/htdocs/show/trm/
   mb_server/trunk/htdocs/showtrm.html
Modified:
   mb_server/trunk/admin/ExportAllTables
   mb_server/trunk/admin/MBImport.pl
   mb_server/trunk/admin/SetSequences.pl
   mb_server/trunk/admin/reports/AlbumsToConvert.inc
   mb_server/trunk/admin/reports/BadWin32CDTOCs.inc
   mb_server/trunk/admin/sql/CreateFKConstraints.sql
   mb_server/trunk/admin/sql/CreateFunctions.sql
   mb_server/trunk/admin/sql/CreateIndexes.sql
   mb_server/trunk/admin/sql/CreatePrimaryKeys.sql
   mb_server/trunk/admin/sql/CreateReplicationTriggers.sql
   mb_server/trunk/admin/sql/CreateTables.sql
   mb_server/trunk/admin/sql/CreateTriggers.sql
   mb_server/trunk/admin/sql/DropFKConstraints.sql
   mb_server/trunk/admin/sql/DropFunctions.sql
   mb_server/trunk/admin/sql/DropIndexes.sql
   mb_server/trunk/admin/sql/DropPrimaryKeys.sql
   mb_server/trunk/admin/sql/DropReplicationTriggers.sql
   mb_server/trunk/admin/sql/DropTables.sql
   mb_server/trunk/admin/sql/DropTriggers.sql
   mb_server/trunk/admin/statistics/GeneratePlot.pl
   mb_server/trunk/cgi-bin/Insert.pm
   mb_server/trunk/cgi-bin/MM.pm
   mb_server/trunk/cgi-bin/MM_2_0.pm
   mb_server/trunk/cgi-bin/MM_2_1.pm
   mb_server/trunk/cgi-bin/ModDefs.pm
   mb_server/trunk/cgi-bin/Moderation.pm
   mb_server/trunk/cgi-bin/MusicBrainz/Server/Artist.pm
   mb_server/trunk/cgi-bin/MusicBrainz/Server/DeferredUpdate.pm
   mb_server/trunk/cgi-bin/MusicBrainz/Server/Label.pm
   mb_server/trunk/cgi-bin/MusicBrainz/Server/Moderation/MOD_ADD_RELEASE.pm
   mb_server/trunk/cgi-bin/MusicBrainz/Server/Release.pm
   mb_server/trunk/cgi-bin/MusicBrainz/Server/Replication.pm
   mb_server/trunk/cgi-bin/MusicBrainz/Server/Track.pm
   mb_server/trunk/cgi-bin/QuerySupport.pm
   mb_server/trunk/cgi-bin/Statistic.pm
   mb_server/trunk/cgi-bin/TaggerSupport.pm
   mb_server/trunk/cgi-bin/mq.pl
   mb_server/trunk/cgi-bin/mq_2_1.pl
   mb_server/trunk/cgi-bin/rdf.pl
   mb_server/trunk/cgi-bin/rdf_2_1.pl
   mb_server/trunk/htdocs/MM/index.html
   mb_server/trunk/htdocs/browsevarious.html
   mb_server/trunk/htdocs/comp/album
   mb_server/trunk/htdocs/comp/layout/sidemenu-panel-stats
   mb_server/trunk/htdocs/comp/layout/topmenu
   mb_server/trunk/htdocs/comp/release/release_summary
   mb_server/trunk/htdocs/comp/release/release_track
   mb_server/trunk/htdocs/comp/release_editor/review
   mb_server/trunk/htdocs/comp/search/internal
   mb_server/trunk/htdocs/comp/trackinfo
   mb_server/trunk/htdocs/css/main.css
   mb_server/trunk/htdocs/docs/specs/metadata_tags.html
   mb_server/trunk/htdocs/edit/albumbatch/done.html
   mb_server/trunk/htdocs/index.html
   mb_server/trunk/htdocs/robots.txt
   mb_server/trunk/htdocs/search/oldsearch.html
   mb_server/trunk/htdocs/show/artist/index.html
   mb_server/trunk/htdocs/show/label/index.html
   mb_server/trunk/htdocs/show/track/index.html
   mb_server/trunk/htdocs/stats.html
   mb_server/trunk/htdocs/tagger/id-intro.html
   mb_server/trunk/htdocs/tagger/login.html
   mb_server/trunk/htdocs/taglookup.html
Log:
drop table trm;


Modified: mb_server/trunk/admin/ExportAllTables
===================================================================
--- mb_server/trunk/admin/ExportAllTables	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/ExportAllTables	2008-05-30 19:15:39 UTC (rev 9856)
@@ -212,10 +212,6 @@
 	track_tag
 	track_tag_raw
 	trackwords
-	trm
-	trmjoin
-	trmjoin_stat
-	trm_stat
 	url
 	vote_closed
 	vote_open
@@ -534,8 +530,6 @@
     tag
 	track
 	track_tag
-	trm
-	trmjoin
 	url
 	);
 
@@ -558,10 +552,6 @@
 	puid_stat
 	puidjoin_stat
 	puid_stat
-	trmjoin_stat
-	trm_stat
-	trmjoin_stat
-	trm_stat
 );
 
 my @group_moderation = qw(

Modified: mb_server/trunk/admin/MBImport.pl
===================================================================
--- mb_server/trunk/admin/MBImport.pl	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/MBImport.pl	2008-05-30 19:15:39 UTC (rev 9856)
@@ -419,10 +419,6 @@
 		track_tag
 		track_tag_raw
 		trackwords
-		trm
-		trmjoin
-		trmjoin_stat
-		trm_stat
 		url
 		vote_closed
 		vote_open

Modified: mb_server/trunk/admin/SetSequences.pl
===================================================================
--- mb_server/trunk/admin/SetSequences.pl	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/SetSequences.pl	2008-05-30 19:15:39 UTC (rev 9856)
@@ -138,10 +138,6 @@
 SetSequence($sql, "tag");
 SetSequence($sql, "track");
 # trackwords - no unique column
-SetSequence($sql, "trm");
-SetSequence($sql, "trmjoin");
-SetSequence($sql, "trmjoin_stat");
-SetSequence($sql, "trm_stat");
 SetSequence($sql, "url");
 # vote_closed - see below
 # vote_open - see below

Deleted: mb_server/trunk/admin/cleanup/RemovePrunedTRMs

Modified: mb_server/trunk/admin/reports/AlbumsToConvert.inc
===================================================================
--- mb_server/trunk/admin/reports/AlbumsToConvert.inc	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/reports/AlbumsToConvert.inc	2008-05-30 19:15:39 UTC (rev 9856)
@@ -20,8 +20,6 @@
 #   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 #____________________________________________________________________________
 #
-#   This report lists Releases with duplicate TRMs for different tracks.
-#
 #   $Id$
 #____________________________________________________________________________
 #

Modified: mb_server/trunk/admin/reports/BadWin32CDTOCs.inc
===================================================================
--- mb_server/trunk/admin/reports/BadWin32CDTOCs.inc	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/reports/BadWin32CDTOCs.inc	2008-05-30 19:15:39 UTC (rev 9856)
@@ -62,7 +62,7 @@
 
 <& /comp/sidebar-notitle, pagetitle => "Incorrect DiscIDs submitted by Windows clients " &>
 
-	<& /comp/tablebegin, title => "Releases with duplicate TRMs for different tracks" &>
+	<& /comp/tablebegin, title => "Incorrect DiscIDs submitted by Windows clients" &>
 		<ul>
 			<li> This report lists pairs of CD TOCs which are identical except for the
     			leadout offset, which differs by exactly two seconds.</li>

Deleted: mb_server/trunk/admin/reports/DuplicateTRMsPerAlbum

Deleted: mb_server/trunk/admin/reports/DuplicateTRMsPerAlbum.inc

Deleted: mb_server/trunk/admin/reports/TRMsWithManyTracks.inc

Deleted: mb_server/trunk/admin/reports/TRMsWithManyTracks.pl

Deleted: mb_server/trunk/admin/reports/TracksWithManyTRMs.inc

Deleted: mb_server/trunk/admin/reports/TracksWithManyTRMs.pl

Modified: mb_server/trunk/admin/sql/CreateFKConstraints.sql
===================================================================
--- mb_server/trunk/admin/sql/CreateFKConstraints.sql	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/sql/CreateFKConstraints.sql	2008-05-30 19:15:39 UTC (rev 9856)
@@ -591,33 +591,6 @@
     REFERENCES track (id)
     ON DELETE CASCADE;
 
-ALTER TABLE trm
-    ADD CONSTRAINT trm_fk_clientversion
-    FOREIGN KEY (version)
-    REFERENCES clientversion(id);
-
-ALTER TABLE trmjoin
-    ADD CONSTRAINT trmjoin_fk_track
-    FOREIGN KEY (track)
-    REFERENCES track(id);
-
-ALTER TABLE trmjoin
-    ADD CONSTRAINT trmjoin_fk_trm
-    FOREIGN KEY (trm)
-    REFERENCES trm(id);
-
-ALTER TABLE trmjoin_stat
-    ADD CONSTRAINT trmjoin_stat_fk_trmjoin
-    FOREIGN KEY (trmjoin_id)
-    REFERENCES trmjoin(id)
-    ON DELETE CASCADE;
-
-ALTER TABLE trm_stat
-    ADD CONSTRAINT trm_stat_fk_trm
-    FOREIGN KEY (trm_id)
-    REFERENCES trm(id)
-    ON DELETE CASCADE;
-
 ALTER TABLE vote_closed
     ADD CONSTRAINT vote_closed_fk_moderation
     FOREIGN KEY (moderation)

Modified: mb_server/trunk/admin/sql/CreateFunctions.sql
===================================================================
--- mb_server/trunk/admin/sql/CreateFunctions.sql	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/sql/CreateFunctions.sql	2008-05-30 19:15:39 UTC (rev 9856)
@@ -48,11 +48,6 @@
    create temporary table albummeta_discids as select album.id, count(album_cdtoc.album) 
                 from album left join album_cdtoc on album.id = album_cdtoc.album group by album.id;
 
-   raise notice ''Counting trmids'';
-   create temporary table albummeta_trmids as select album.id, count(trmjoin.track) 
-                from album, albumjoin left join trmjoin on albumjoin.track = trmjoin.track 
-                where album.id = albumjoin.album group by album.id;
-
    raise notice ''Counting puids'';
    create temporary table albummeta_puids as select album.id, count(puidjoin.track) 
                 from album, albumjoin left join puidjoin on albumjoin.track = puidjoin.track 
@@ -69,7 +64,6 @@
    select a.id,
             COALESCE(t.count, 0) AS tracks,
             COALESCE(d.count, 0) AS discids,
-            COALESCE(m.count, 0) AS trmids,
             COALESCE(p.count, 0) AS puids,
             r.firstreleasedate,
             aws.asin,
@@ -77,7 +71,6 @@
     FROM    album a
             LEFT JOIN albummeta_tracks t ON t.id = a.id
             LEFT JOIN albummeta_discids d ON d.id = a.id
-            LEFT JOIN albummeta_trmids m ON m.id = a.id
             LEFT JOIN albummeta_puids p ON p.id = a.id
             LEFT JOIN albummeta_firstreleasedate r ON r.id = a.id
             LEFT JOIN album_amazon_asin aws on aws.album = a.id
@@ -86,7 +79,6 @@
     ALTER TABLE albummeta ALTER COLUMN id SET NOT NULL;
     ALTER TABLE albummeta ALTER COLUMN tracks SET NOT NULL;
     ALTER TABLE albummeta ALTER COLUMN discids SET NOT NULL;
-    ALTER TABLE albummeta ALTER COLUMN trmids SET NOT NULL;
     ALTER TABLE albummeta ALTER COLUMN puids SET NOT NULL;
     -- firstreleasedate stays "WITH NULL"
     -- asin stays "WITH NULL"
@@ -96,7 +88,6 @@
 
    drop table albummeta_tracks;
    drop table albummeta_discids;
-   drop table albummeta_trmids;
    drop table albummeta_puids;
    drop table albummeta_firstreleasedate;
 
@@ -111,7 +102,7 @@
 
 create or replace function insert_album_meta () returns TRIGGER as '
 begin 
-    insert into albummeta (id, tracks, discids, trmids, puids) values (NEW.id, 0, 0, 0, 0); 
+    insert into albummeta (id, tracks, discids, puids) values (NEW.id, 0, 0, 0); 
     insert into album_amazon_asin (album, lastupdate) values (NEW.id, \'1970-01-01 00:00:00\'); 
     
     return NEW; 
@@ -138,14 +129,13 @@
 
 --'-----------------------------------------------------------------
 -- Changes to albumjoin could cause changes to albummeta.tracks
--- and/or albummeta.trmids and/org albummeta.puids
+-- and/or albummeta.puids and/org albummeta.puids
 --'-----------------------------------------------------------------
 
 create or replace function a_ins_albumjoin () returns trigger as '
 begin
     UPDATE  albummeta
     SET     tracks = tracks + 1,
-            trmids = trmids + (SELECT COUNT(*) FROM trmjoin WHERE track = NEW.track),
             puids = puids + (SELECT COUNT(*) FROM puidjoin WHERE track = NEW.track)
     WHERE   id = NEW.album;
 
@@ -162,13 +152,11 @@
 
     UPDATE  albummeta
     SET     tracks = tracks - 1,
-            trmids = trmids - (SELECT COUNT(*) FROM trmjoin WHERE track = OLD.track),
             puids = puids - (SELECT COUNT(*) FROM puidjoin WHERE track = OLD.track)
     WHERE   id = OLD.album;
 
     UPDATE  albummeta
     SET     tracks = tracks + 1,
-            trmids = trmids + (SELECT COUNT(*) FROM trmjoin WHERE track = NEW.track),
             puids = puids + (SELECT COUNT(*) FROM puidjoin WHERE track = NEW.track)
     WHERE   id = NEW.album;
 
@@ -180,7 +168,6 @@
 begin
     UPDATE  albummeta
     SET     tracks = tracks - 1,
-            trmids = trmids - (SELECT COUNT(*) FROM trmjoin WHERE track = OLD.track),
             puids = puids - (SELECT COUNT(*) FROM puidjoin WHERE track = OLD.track)
     WHERE   id = OLD.album;
 
@@ -231,52 +218,7 @@
 end;
 ' language 'plpgsql';
 
---'-----------------------------------------------------------------
--- Changes to trmjoin could cause changes to albummeta.trmids
---'-----------------------------------------------------------------
 
-create or replace function a_ins_trmjoin () returns trigger as '
-begin
-    UPDATE  albummeta
-    SET     trmids = trmids + 1
-    WHERE   id IN (SELECT album FROM albumjoin WHERE track = NEW.track);
-
-    return NULL;
-end;
-' language 'plpgsql';
---'--
-create or replace function a_upd_trmjoin () returns trigger as '
-begin
-    if NEW.track = OLD.track
-    then
-        return NULL;
-    end if;
-
-    UPDATE  albummeta
-    SET     trmids = trmids - 1
-    WHERE   id IN (SELECT album FROM albumjoin WHERE track = OLD.track);
-
-    UPDATE  albummeta
-    SET     trmids = trmids + 1
-    WHERE   id IN (SELECT album FROM albumjoin WHERE track = NEW.track);
-
-    return NULL;
-end;
-' language 'plpgsql';
---'--
-create or replace function a_del_trmjoin () returns trigger as '
-begin
-    UPDATE  albummeta
-    SET     trmids = trmids - 1
-    WHERE   id IN (SELECT album FROM albumjoin WHERE track = OLD.track);
-
-    return NULL;
-end;
-' language 'plpgsql';
-
-
-
-
 --'-----------------------------------------------------------------
 -- Changes to puidjoin could cause changes to albummeta.puids
 --'-----------------------------------------------------------------
@@ -474,50 +416,6 @@
 ' LANGUAGE 'plpgsql';
 
 --'-----------------------------------------------------------------------------------
--- Changes to trm_stat/trmjoin_stat causes changes to trm.lookupcount/trmjoin.usecount
---'-----------------------------------------------------------------------------------
-
-CREATE OR REPLACE FUNCTION a_idu_trm_stat () RETURNS trigger AS '
-BEGIN
-    IF (TG_OP = ''INSERT'' OR TG_OP = ''UPDATE'')
-    THEN
-        UPDATE trm SET lookupcount = (SELECT COALESCE(SUM(trm_stat.lookupcount), 0) FROM trm_stat WHERE trm_id = NEW.trm_id) WHERE id = NEW.trm_id;
-        IF (TG_OP = ''UPDATE'')
-        THEN
-            IF (NEW.trm_id != OLD.trm_id)
-            THEN
-                UPDATE trm SET lookupcount = (SELECT COALESCE(SUM(trm_stat.lookupcount), 0) FROM trm_stat WHERE trm_id = OLD.trm_id) WHERE id = OLD.trm_id;
-            END IF;
-        END IF;
-    ELSE
-        UPDATE trm SET lookupcount = (SELECT COALESCE(SUM(trm_stat.lookupcount), 0) FROM trm_stat WHERE trm_id = OLD.trm_id) WHERE id = OLD.trm_id;
-    END IF;
-
-    RETURN NULL;
-END;
-' LANGUAGE 'plpgsql';
-
-CREATE OR REPLACE FUNCTION a_idu_trmjoin_stat () RETURNS trigger AS '
-BEGIN
-    IF (TG_OP = ''INSERT'' OR TG_OP = ''UPDATE'')
-    THEN
-        UPDATE trmjoin SET usecount = (SELECT COALESCE(SUM(trmjoin_stat.usecount), 0) FROM trmjoin_stat WHERE trmjoin_id = NEW.trmjoin_id) WHERE id = NEW.trmjoin_id;
-        IF (TG_OP = ''UPDATE'')
-        THEN
-            IF (NEW.trmjoin_id != OLD.trmjoin_id)
-            THEN
-                UPDATE trmjoin SET usecount = (SELECT COALESCE(SUM(trmjoin_stat.usecount), 0) FROM trmjoin_stat WHERE trmjoin_id = OLD.trmjoin_id) WHERE id = OLD.trmjoin_id;
-            END IF;
-        END IF;
-    ELSE
-        UPDATE trmjoin SET usecount = (SELECT COALESCE(SUM(trmjoin_stat.usecount), 0) FROM trmjoin_stat WHERE trmjoin_id = OLD.trmjoin_id) WHERE id = OLD.trmjoin_id;
-    END IF;
-
-    RETURN NULL;
-END;
-' LANGUAGE 'plpgsql';
-
---'-----------------------------------------------------------------------------------
 -- Changes to puid_stat/puidjoin_stat causes changes to puid.lookupcount/puidjoin.usecount
 --'-----------------------------------------------------------------------------------
 

Modified: mb_server/trunk/admin/sql/CreateIndexes.sql
===================================================================
--- mb_server/trunk/admin/sql/CreateIndexes.sql	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/sql/CreateIndexes.sql	2008-05-30 19:15:39 UTC (rev 9856)
@@ -184,15 +184,6 @@
 
 CREATE INDEX trackwords_trackidindex ON trackwords (trackid);
 
-CREATE UNIQUE INDEX trm_trmindex ON trm (trm);
-
-CREATE UNIQUE INDEX trm_stat_trm_idindex ON trm_stat (trm_id, month_id);
-
-CREATE INDEX trmjoin_trackindex ON trmjoin (track);
-CREATE UNIQUE INDEX trmjoin_trmtrack ON trmjoin (trm, track);
-
-CREATE UNIQUE INDEX trmjoin_stat_trmjoin_idindex ON trmjoin_stat (trmjoin_id, month_id);
-
 CREATE UNIQUE INDEX url_idx_gid ON url (gid);
 CREATE UNIQUE INDEX url_idx_url ON url (url);
 

Modified: mb_server/trunk/admin/sql/CreatePrimaryKeys.sql
===================================================================
--- mb_server/trunk/admin/sql/CreatePrimaryKeys.sql	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/sql/CreatePrimaryKeys.sql	2008-05-30 19:15:39 UTC (rev 9856)
@@ -84,10 +84,6 @@
 ALTER TABLE track ADD CONSTRAINT track_pkey PRIMARY KEY (id);
 ALTER TABLE track_tag ADD CONSTRAINT track_tag_pkey PRIMARY KEY (track, tag);
 ALTER TABLE trackwords ADD CONSTRAINT trackwords_pkey PRIMARY KEY (wordid, trackid);
-ALTER TABLE trm ADD CONSTRAINT trm_pkey PRIMARY KEY (id);
-ALTER TABLE trm_stat ADD CONSTRAINT trm_stat_pkey PRIMARY KEY (id);
-ALTER TABLE trmjoin ADD CONSTRAINT trmjoin_pkey PRIMARY KEY (id);
-ALTER TABLE trmjoin_stat ADD CONSTRAINT trmjoin_stat_pkey PRIMARY KEY (id);
 ALTER TABLE url ADD CONSTRAINT url_pkey PRIMARY KEY (id);
 ALTER TABLE vote_closed ADD CONSTRAINT vote_closed_pkey PRIMARY KEY (id);
 ALTER TABLE vote_open ADD CONSTRAINT vote_open_pkey PRIMARY KEY (id);

Modified: mb_server/trunk/admin/sql/CreateReplicationTriggers.sql
===================================================================
--- mb_server/trunk/admin/sql/CreateReplicationTriggers.sql	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/sql/CreateReplicationTriggers.sql	2008-05-30 19:15:39 UTC (rev 9856)
@@ -278,14 +278,6 @@
 AFTER INSERT OR DELETE OR UPDATE ON "trackwords"
 FOR EACH ROW EXECUTE PROCEDURE "recordchange" ();
 
-CREATE TRIGGER "reptg_trm" 
-AFTER INSERT OR DELETE ON "trm"
-FOR EACH ROW EXECUTE PROCEDURE "recordchange" ();
-
-CREATE TRIGGER "reptg_trmjoin" 
-AFTER INSERT OR DELETE ON "trmjoin"
-FOR EACH ROW EXECUTE PROCEDURE "recordchange" ();
-
 CREATE TRIGGER "reptg_url"
 AFTER INSERT OR DELETE OR UPDATE ON "url"
 FOR EACH ROW EXECUTE PROCEDURE "recordchange" ();

Modified: mb_server/trunk/admin/sql/CreateTables.sql
===================================================================
--- mb_server/trunk/admin/sql/CreateTables.sql	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/sql/CreateTables.sql	2008-05-30 19:15:39 UTC (rev 9856)
@@ -62,7 +62,6 @@
     id                  INTEGER NOT NULL,
     tracks              INTEGER DEFAULT 0,
     discids             INTEGER DEFAULT 0,
-    trmids              INTEGER DEFAULT 0,
     puids               INTEGER DEFAULT 0,
     firstreleasedate    CHAR(10),
     asin                CHAR(10),
@@ -904,7 +903,6 @@
     albums              INTEGER NOT NULL, 
     tracks              INTEGER NOT NULL, 
     discids             INTEGER NOT NULL, 
-    trmids              INTEGER NOT NULL, 
     moderations         INTEGER NOT NULL, 
     votes               INTEGER NOT NULL, 
     moderators          INTEGER NOT NULL, 
@@ -942,38 +940,6 @@
     trackid             INTEGER NOT NULL
 );
 
-CREATE TABLE trm
-(
-    id                  SERIAL,
-    trm                 CHAR(36) NOT NULL,
-    lookupcount         INTEGER NOT NULL DEFAULT 0, -- updated via trigger
-    version             INTEGER NOT NULL -- references clientversion
-);
-
-CREATE TABLE trm_stat
-(
-    id                  SERIAL,
-    trm_id              INTEGER NOT NULL, -- references trm
-    month_id            INTEGER NOT NULL,
-    lookupcount         INTEGER NOT NULL DEFAULT 0
-);
-
-CREATE TABLE trmjoin
-(
-    id                  SERIAL,
-    trm                 INTEGER NOT NULL, -- references trm
-    track               INTEGER NOT NULL, -- references track
-    usecount            INTEGER DEFAULT 0 -- updated via trigger
-);
-
-CREATE TABLE trmjoin_stat
-(
-    id                  SERIAL,
-    trmjoin_id          INTEGER NOT NULL, -- references trmjoin
-    month_id            INTEGER NOT NULL,
-    usecount            INTEGER NOT NULL DEFAULT 0
-);
-
 CREATE TABLE url
 (
     id                  SERIAL,

Modified: mb_server/trunk/admin/sql/CreateTriggers.sql
===================================================================
--- mb_server/trunk/admin/sql/CreateTriggers.sql	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/sql/CreateTriggers.sql	2008-05-30 19:15:39 UTC (rev 9856)
@@ -22,16 +22,6 @@
 CREATE TRIGGER a_del_album_cdtoc AFTER DELETE ON album_cdtoc
     FOR EACH ROW EXECUTE PROCEDURE a_del_album_cdtoc();
 
-CREATE TRIGGER a_ins_trmjoin AFTER INSERT ON trmjoin
-    FOR EACH ROW EXECUTE PROCEDURE a_ins_trmjoin();
-CREATE TRIGGER a_del_trmjoin AFTER DELETE ON trmjoin
-    FOR EACH ROW EXECUTE PROCEDURE a_del_trmjoin();
-
-CREATE TRIGGER a_idu_trm_stat AFTER INSERT OR DELETE OR UPDATE ON trm_stat
-    FOR EACH ROW EXECUTE PROCEDURE a_idu_trm_stat();
-CREATE TRIGGER a_idu_trmjoin_stat AFTER INSERT OR DELETE OR UPDATE ON trmjoin_stat
-    FOR EACH ROW EXECUTE PROCEDURE a_idu_trmjoin_stat();
-
 CREATE TRIGGER a_upd_moderation_open AFTER UPDATE ON moderation_open
     FOR EACH ROW EXECUTE PROCEDURE after_update_moderation_open();
 

Modified: mb_server/trunk/admin/sql/DropFKConstraints.sql
===================================================================
--- mb_server/trunk/admin/sql/DropFKConstraints.sql	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/sql/DropFKConstraints.sql	2008-05-30 19:15:39 UTC (rev 9856)
@@ -125,11 +125,6 @@
 ALTER TABLE track_tag DROP CONSTRAINT fk_track_tag_track;
 ALTER TABLE track_tag DROP CONSTRAINT fk_track_tag_tag;
 ALTER TABLE trackwords DROP CONSTRAINT trackwords_fk_trackid;
-ALTER TABLE trm DROP CONSTRAINT trm_fk_clientversion;
-ALTER TABLE trm_stat DROP CONSTRAINT trm_stat_fk_trm;
-ALTER TABLE trmjoin DROP CONSTRAINT trmjoin_fk_track;
-ALTER TABLE trmjoin DROP CONSTRAINT trmjoin_fk_trm;
-ALTER TABLE trmjoin_stat DROP CONSTRAINT trmjoin_stat_fk_trmjoin;
 ALTER TABLE vote_closed DROP CONSTRAINT vote_closed_fk_moderation;
 ALTER TABLE vote_closed DROP CONSTRAINT vote_closed_fk_moderator;
 ALTER TABLE vote_open DROP CONSTRAINT vote_open_fk_moderation;

Modified: mb_server/trunk/admin/sql/DropFunctions.sql
===================================================================
--- mb_server/trunk/admin/sql/DropFunctions.sql	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/sql/DropFunctions.sql	2008-05-30 19:15:39 UTC (rev 9856)
@@ -11,9 +11,6 @@
 DROP FUNCTION a_ins_album_cdtoc();
 DROP FUNCTION a_upd_album_cdtoc();
 DROP FUNCTION a_del_album_cdtoc();
-DROP FUNCTION a_ins_trmjoin();
-DROP FUNCTION a_upd_trmjoin();
-DROP FUNCTION a_del_trmjoin();
 DROP FUNCTION after_update_moderation_open();
 DROP FUNCTION before_insertupdate_release();
 DROP FUNCTION set_album_firstreleasedate(INTEGER);

Modified: mb_server/trunk/admin/sql/DropIndexes.sql
===================================================================
--- mb_server/trunk/admin/sql/DropIndexes.sql	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/sql/DropIndexes.sql	2008-05-30 19:15:39 UTC (rev 9856)
@@ -124,11 +124,6 @@
 DROP INDEX track_gidindex;
 DROP INDEX track_nameindex;
 DROP INDEX trackwords_trackidindex;
-DROP INDEX trm_stat_trm_idindex;
-DROP INDEX trm_trmindex;
-DROP INDEX trmjoin_stat_trmjoin_idindex;
-DROP INDEX trmjoin_trackindex;
-DROP INDEX trmjoin_trmtrack;
 DROP INDEX url_idx_gid;
 DROP INDEX vote_closed_idx_moderation;
 DROP INDEX vote_closed_idx_moderator;

Modified: mb_server/trunk/admin/sql/DropPrimaryKeys.sql
===================================================================
--- mb_server/trunk/admin/sql/DropPrimaryKeys.sql	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/sql/DropPrimaryKeys.sql	2008-05-30 19:15:39 UTC (rev 9856)
@@ -79,10 +79,6 @@
 ALTER TABLE stats DROP CONSTRAINT stats_pkey;
 ALTER TABLE track DROP CONSTRAINT track_pkey;
 ALTER TABLE trackwords DROP CONSTRAINT trackwords_pkey;
-ALTER TABLE trm DROP CONSTRAINT trm_pkey;
-ALTER TABLE trm_stat DROP CONSTRAINT trm_stat_pkey;
-ALTER TABLE trmjoin DROP CONSTRAINT trmjoin_pkey;
-ALTER TABLE trmjoin_stat DROP CONSTRAINT trmjoin_stat_pkey;
 ALTER TABLE url DROP CONSTRAINT url_pkey;
 ALTER TABLE vote_closed DROP CONSTRAINT vote_closed_pkey;
 ALTER TABLE vote_open DROP CONSTRAINT vote_open_pkey;

Modified: mb_server/trunk/admin/sql/DropReplicationTriggers.sql
===================================================================
--- mb_server/trunk/admin/sql/DropReplicationTriggers.sql	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/sql/DropReplicationTriggers.sql	2008-05-30 19:15:39 UTC (rev 9856)
@@ -70,8 +70,6 @@
 DROP TRIGGER "reptg_stats" ON "stats";
 DROP TRIGGER "reptg_track" ON "track";
 DROP TRIGGER "reptg_trackwords" ON "trackwords";
-DROP TRIGGER "reptg_trm" ON "trm";
-DROP TRIGGER "reptg_trmjoin" ON "trmjoin";
 DROP TRIGGER "reptg_url" ON "url";
 DROP TRIGGER "reptg_gid_redirect" ON "gid_redirect";
 -- Not replicated: vote_closed, vote_open

Modified: mb_server/trunk/admin/sql/DropTables.sql
===================================================================
--- mb_server/trunk/admin/sql/DropTables.sql	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/sql/DropTables.sql	2008-05-30 19:15:39 UTC (rev 9856)
@@ -77,10 +77,6 @@
 DROP TABLE stats;
 DROP TABLE track;
 DROP TABLE trackwords;
-DROP TABLE trm;
-DROP TABLE trm_stat;
-DROP TABLE trmjoin;
-DROP TABLE trmjoin_stat;
 DROP TABLE url;
 DROP TABLE vote_closed;
 DROP TABLE vote_open;

Modified: mb_server/trunk/admin/sql/DropTriggers.sql
===================================================================
--- mb_server/trunk/admin/sql/DropTriggers.sql	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/sql/DropTriggers.sql	2008-05-30 19:15:39 UTC (rev 9856)
@@ -11,10 +11,6 @@
 DROP TRIGGER a_del_album_cdtoc ON album_cdtoc;
 DROP TRIGGER a_upd_album_cdtoc ON album_cdtoc;
 DROP TRIGGER a_ins_album_cdtoc ON album_cdtoc;
-DROP TRIGGER a_del_trmjoin ON trmjoin;
-DROP TRIGGER a_ins_trmjoin ON trmjoin;
-DROP TRIGGER a_idu_trm_stat ON trm_stat;
-DROP TRIGGER a_idu_trmjoin_stat ON trmjoin_stat;
 DROP TRIGGER a_upd_moderation_open ON moderation_open;
 DROP TRIGGER b_iu_release ON release;
 DROP TRIGGER a_ins_release ON release;

Added: mb_server/trunk/admin/sql/updates/20080529.sql

Modified: mb_server/trunk/admin/statistics/GeneratePlot.pl
===================================================================
--- mb_server/trunk/admin/statistics/GeneratePlot.pl	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/admin/statistics/GeneratePlot.pl	2008-05-30 19:15:39 UTC (rev 9856)
@@ -76,7 +76,7 @@
 	goto PLOT;
 
 	goto PLOT unless $statname =~ /
-		^count\.(artist|album|track|trm)$
+		^count\.(artist|album|track|puid)$
 		/ix;
 
 	# To avoid plotting spikes that result from culls,
@@ -179,7 +179,6 @@
 count_and_delta("count.track");
 count_and_delta("count.label");
 count_and_delta("count.ar.links");
-count_and_delta("count.trm");
 count_and_delta("count.puid");
 count_and_delta("count.discid");
 count_and_delta("count.moderator");

Modified: mb_server/trunk/cgi-bin/Insert.pm
===================================================================
--- mb_server/trunk/cgi-bin/Insert.pm	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/Insert.pm	2008-05-30 19:15:39 UTC (rev 9856)
@@ -81,7 +81,6 @@
 #				track => $name,
 #				tracknum => $seq,
 #				duration => $len, 
-#				trmid => $TRM,
 #				puid => $PUID,
 #				trackid => $mbid (optinal, only for mbid submitters)
 #			}
@@ -155,7 +154,6 @@
 #    trackid                                               [optional]
 #    artist or artistid                                    [MACs only]
 #    sortname                                              [MACs only]
-#    trmid                                                 [optional]
 #    puid                                                  [optional]
 #    duration                                              [optional]
 #    year                                                  [optional]
@@ -220,8 +218,6 @@
     my $al = MusicBrainz::Server::Release->new($this->{DBH});
 	require MusicBrainz::Server::Track;
     my $tr = MusicBrainz::Server::Track->new($this->{DBH});
-	require MusicBrainz::Server::TRM;
-    my $trm = MusicBrainz::Server::TRM->new($this->{DBH});
 	require MusicBrainz::Server::PUID;
     my $puid = MusicBrainz::Server::PUID->new($this->{DBH});
 	require MusicBrainz::Server::ReleaseEvent;
@@ -445,46 +441,26 @@
         {
             die "Skipped Insert: Invalid track number\n";
         }
-        if (exists $track->{trmid} && length($track->{trmid}) != 36)
-        {
-            die "Skipped Insert: Invalid trmid\n";
-        }
         if (exists $track->{puid} && length($track->{puid}) != 36)
         {
             die "Skipped Insert: Invalid puid\n";
         }
         delete $track->{track_insertid};
-        delete $track->{trm_insertid};
         delete $track->{puid_insertid};
         delete $track->{artist_insertid};
         delete $track->{track_artistid};
 
         #print STDERR "name: $track->{track}\n";
         #print STDERR "num: $track->{tracknum}\n";
-        #print STDERR "trm: $track->{trmid}\n" if (exists $track->{trmid});
         #print STDERR "artist: $track->{artist}\n" if (exists $track->{artist});
 
         for my $albumtrack (@albumtracks)
         {
             # Check to see if the given track exists. If so, check to
-            # see if a trm id was given. If it was, then insert the
-            # trmid for this track.
+            # see if a puid was given. If it was, then insert the
+            # puid for this track.
             if ($albumtrack->GetSequence() == $track->{tracknum} &&
                 $albumtrack->GetName() eq $track->{track} &&
-                exists $track->{trmid} && $track->{trmid} ne '')
-            {
-                my $newtrm;
-                
-                $newtrm = $trm->Insert($track->{trmid}, $albumtrack->GetId());
-                if (defined $newtrm)
-                {
-                    $track->{trm_insertid} = $newtrm if ($trm->GetNewInsert());
-                }
-                
-                next TRACK;
-            }
-            if ($albumtrack->GetSequence() == $track->{tracknum} &&
-                $albumtrack->GetName() eq $track->{track} &&
                 exists $track->{puid} && $track->{puid} ne '')
             {
                 my $newpuid;
@@ -588,16 +564,6 @@
         
         #print STDERR "Inserted track: $trackid, artist: $track_artistid\n";
         
-        # The track has been inserted. Now insert the TRM if there is one
-        if (exists $track->{trmid} && $track->{trmid} ne '')
-        {
-            my $newtrm = $trm->Insert($track->{trmid}, $trackid);
-            if (defined $newtrm)
-            {
-                $track->{trm_insertid} = $newtrm if ($trm->GetNewInsert());
-            }
-        }
-        
         # Now insert the PUID if there is one
         if (exists $track->{puid} && $track->{puid} ne '')
         {

Modified: mb_server/trunk/cgi-bin/MM.pm
===================================================================
--- mb_server/trunk/cgi-bin/MM.pm	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/MM.pm	2008-05-30 19:15:39 UTC (rev 9856)
@@ -247,14 +247,6 @@
     return $out;
 }
 
-sub CreateTRMList
-{
-    my ($this, @ids) = @_;
-
-    $this->{status} = "OK";
-    return $this->CreateOutputRDF('trmid', @ids);
-}
-
 # Check for duplicates, then add if not already in cache
 sub AddToCache
 {
@@ -436,21 +428,8 @@
     my ($this, $id, $mbid, $type) = @_;
     my $obj;
 
-    if ($type eq "trmid")
+    if ($type eq 'artist')
     {
-	require MusicBrainz::Server::TRM;
-	$obj = MusicBrainz::Server::TRM->new($this->{DBH});
-	$obj->SetTRM($id);
-	# Most of the code around here assumes that "GetId" or "GetMBId"
-	# return something sensible, so here we pretend that the TRM is
-	# actually the MB id.
-	# This also means that http://server/trmid/GUID works like all the
-	# other objects.
-	$obj->SetMBId($id);
-	return $obj;
-    }
-    elsif ($type eq 'artist')
-    {
        	require MusicBrainz::Server::Artist;
 	$obj = MusicBrainz::Server::Artist->new($this->{DBH});
     }
@@ -464,12 +443,6 @@
        	require MusicBrainz::Server::Track;
 	$obj = MusicBrainz::Server::Track->new($this->{DBH});
     }
-    elsif ($type eq 'trmid')
-    {
-       	# In this case, we already have the TRMID, so there is no need to
-	# load an object.
-	$obj = undef;
-    }
     return undef if (not defined $obj);
 
     if (defined $mbid)
@@ -526,7 +499,7 @@
 
     return () if not defined $ref;
 
-    # Artists and TRMIDs do not have any references, so they are not listed here
+    # Artists do not have any references, so they are not listed here
     return $this->_GetArtistReferences($ref, $ref->{obj}, $depth)
 	if ($ref->{type} eq 'artist');
     return $this->_GetAlbumReferences($ref, $ref->{obj}, $depth)
@@ -614,7 +587,6 @@
     my ($this, $ref, $track, $depth) = @_;
     my (@ret, %info);
 
-    # TODO: Should the TRM output also be a seperate depth?
     $info{type} = 'artist';
     $info{id} = $track->GetArtist();
     $info{tracknum} = $track->GetSequence();
@@ -644,10 +616,6 @@
     {
     	return $this->OutputTrackRDF($ref);
     }
-    elsif ($ref->{type} eq 'trmid')
-    {
-	return "";
-    }
 
     return "";
 }

Modified: mb_server/trunk/cgi-bin/MM_2_0.pm
===================================================================
--- mb_server/trunk/cgi-bin/MM_2_0.pm	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/MM_2_0.pm	2008-05-30 19:15:39 UTC (rev 9856)
@@ -160,7 +160,7 @@
 sub OutputTrackRDF
 {
     my ($this, $ref) = @_;
-    my ($out, $artist, @TRM, $gu, $track, $trm);
+    my ($out, $artist, $track);
 
     if (!defined $this->GetBaseURI())
     {
@@ -168,9 +168,6 @@
     }
 
     $track = $ref->{obj};
-    require MusicBrainz::Server::TRM;
-    $gu = MusicBrainz::Server::TRM->new($this->{DBH});
-    @TRM = $gu->GetTRMFromTrackId($track->GetId());
 
     $artist = $this->GetFromCache('artist', $track->GetArtist()); 
     return "" if (!defined $artist);
@@ -187,13 +184,8 @@
     {
         $out .=   $this->Element("mm:duration", $track->GetLength());
     }
-    foreach $trm (@TRM)
-    {
-        $out .= $this->Element("mm:trmid", $trm->{TRM});
-    }
     $out .= $this->EndDesc("mm:Track");
 
-
     return $out;
 }
 
@@ -213,8 +205,6 @@
        unless !defined $data[2] || $data[2] eq '';
    $rdf .= $this->Element("mm:trackNum", $data[3])
        unless !defined $data[3] || $data[3] == 0;
-   $rdf .= $this->Element("mm:trmid", "", TRM=>$data[4])
-       unless !defined $data[4] || $data[4] eq '';
    $rdf .= $this->Element("mm:issued", $data[6])
        unless !defined $data[6] || $data[6] == 0;
    $rdf .= $this->Element("mm:genre", $data[7])
@@ -300,16 +290,5 @@
    return $rdf;
 }
 
-sub GetTRMTrackIdPair
-{
-   my ($this, $parser, $uri, $i) = @_;
-   my $ns = $this->GetMMNamespace(); 
-
-   my $trackid = $parser->Extract($uri, "${ns}trmList [$i] ${ns}trackid");
-   my $trmid = $parser->Extract($uri, "${ns}trmList [$i] ${ns}trmid");
-
-   return ($trackid, $trmid);
-}
-
 1;
 # eof MM_2_0.pm

Modified: mb_server/trunk/cgi-bin/MM_2_1.pm
===================================================================
--- mb_server/trunk/cgi-bin/MM_2_1.pm	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/MM_2_1.pm	2008-05-30 19:15:39 UTC (rev 9856)
@@ -265,7 +265,7 @@
 sub OutputTrackRDF
 {
     my ($this, $ref, $album) = @_;
-    my ($out, $artist, @TRM, $gu, $track, $trm);
+    my ($out, $artist, $gu, $track);
 
     if (!defined $this->GetBaseURI())
     {
@@ -297,29 +297,8 @@
     $out .= $this->OutputRelationships($ref->{_relationships})
         if (exists $ref->{_relationships});
 
-    require MusicBrainz::Server::TRM;
-    $gu = MusicBrainz::Server::TRM->new($this->{DBH});
-    if ($track->GetId())
-    {
-	@TRM = $gu->GetTRMFromTrackId($track->GetId());
-	if (scalar(@TRM) > 0)
-	{
-	    $out .=   $this->BeginDesc("mm:trmidList");
-	    $out .=   $this->BeginBag();
-
-	    foreach $trm (@TRM)
-	    {
-		$out .= $this->Element("rdf:li", "", "rdf:resource", 
-			$this->{baseuri} . "/trmid/" . $trm->{TRM});
-	    }
-
-	    $out .=   $this->EndBag();
-	    $out .=   $this->EndDesc("mm:trmidList");
-	}
-    }
     $out .= $this->EndDesc("mm:Track");
 
-
     return $out;
 }
 
@@ -658,17 +637,6 @@
    return $out;
 }
 
-sub GetTRMTrackIdPair
-{
-    my ($this, $parser, $uri, $i) = @_;
-    my $ns = $this->GetMMNamespace(); 
-    
-    my $trackid = $parser->Extract($uri, "${ns}trmidList [$i] ${ns}trackid");
-    my $trmid = $parser->Extract($uri, "${ns}trmidList [$i] ${ns}trmid");
-    
-    return ($trackid, $trmid);
-}
-
 sub OutputRelationships
 {
     my ($this, $rels) = @_;

Modified: mb_server/trunk/cgi-bin/ModDefs.pm
===================================================================
--- mb_server/trunk/cgi-bin/ModDefs.pm	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/ModDefs.pm	2008-05-30 19:15:39 UTC (rev 9856)
@@ -65,8 +65,6 @@
 
 # Special TRMs
 use constant TRM_ID_SILENCE				=> "7d154f52-b536-4fae-b58b-0666826c2bac";
-use constant TRM_TOO_SHORT				=> "f9809ab1-2b0f-4d78-8862-fb425ade8ab9";
-use constant TRM_SIGSERVER_BUSY			=> "c457a4a8-b342-4ec9-8f13-b6bd26c0e400";
 
 use constant ANON_MODERATOR				=> 1;
 use constant FREEDB_MODERATOR			=> 2;
@@ -94,12 +92,10 @@
 use constant MOD_REMOVE_ARTIST			 => 19;
 use constant MOD_REMOVE_DISCID			 => 20;
 use constant MOD_MOVE_DISCID			 => 21;
-use constant MOD_REMOVE_TRMID			 => 22;
 use constant MOD_MERGE_RELEASE			 => 23;
 use constant MOD_REMOVE_RELEASES			 => 24;
 use constant MOD_MERGE_RELEASE_MAC		 => 25;
 use constant MOD_EDIT_RELEASE_ATTRS		 => 26;
-use constant MOD_ADD_TRMS				 => 27;
 use constant MOD_EDIT_ARTISTALIAS		 => 28;
 use constant MOD_EDIT_RELEASE_EVENTS_OLD			 => 29;
 use constant MOD_ADD_ARTIST_ANNOTATION	 => 30;
@@ -287,7 +283,6 @@
 	MOD_ADD_TRACK				. "" => {'category' => CAT_DEPENDS, 'criteria' => ""},
 	MOD_ADD_TRACK_ANNOTATION		. "" => {'category' => CAT_NONE, 'criteria' => ""},
 	MOD_ADD_TRACK_KV				. "" => {'category' => CAT_DEPENDS, 'criteria' => ""},
-	MOD_ADD_TRMS				. "" => {'category' => CAT_NONE, 'criteria' => ""},
 	MOD_CHANGE_ARTIST_QUALITY 	. "" => {'category' => CAT_ARTIST, 'criteria' => ""},
 	MOD_CHANGE_RELEASE_QUALITY	. "" => {'category' => CAT_RELEASE, 'criteria' => ""},
 	MOD_CHANGE_TRACK_ARTIST		. "" => {'category' => CAT_DEPENDS, 'criteria' => "Highest level of release, current artist or new artist"},
@@ -330,7 +325,6 @@
 	MOD_REMOVE_PUID				. "" => {'category' => CAT_DEPENDS, 'criteria' => ""},
 	MOD_REMOVE_RELEASE_EVENTS	. "" => {'category' => CAT_RELEASE, 'criteria' => ""},
 	MOD_REMOVE_TRACK			. "" => {'category' => CAT_RELEASE, 'criteria' => ""},
-	MOD_REMOVE_TRMID			. "" => {'category' => CAT_DEPENDS, 'criteria' => ""},
 	MOD_SAC_TO_MAC				. "" => {'category' => CAT_DEPENDS, 'criteria' => "Highest level of release or current artist"},
 	MOD_SET_RELEASE_DURATIONS	. "" => {'category' => CAT_RELEASE, 'criteria' => ""}
 );

Modified: mb_server/trunk/cgi-bin/Moderation.pm
===================================================================
--- mb_server/trunk/cgi-bin/Moderation.pm	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/Moderation.pm	2008-05-30 19:15:39 UTC (rev 9856)
@@ -52,7 +52,6 @@
 require MusicBrainz::Server::Moderation::MOD_ADD_RELEASE_EVENTS;
 require MusicBrainz::Server::Moderation::MOD_ADD_TRACK;
 require MusicBrainz::Server::Moderation::MOD_ADD_TRACK_KV;
-require MusicBrainz::Server::Moderation::MOD_ADD_TRMS;
 require MusicBrainz::Server::Moderation::MOD_CHANGE_ARTIST_QUALITY;
 require MusicBrainz::Server::Moderation::MOD_CHANGE_RELEASE_QUALITY;
 require MusicBrainz::Server::Moderation::MOD_CHANGE_TRACK_ARTIST;
@@ -96,7 +95,6 @@
 require MusicBrainz::Server::Moderation::MOD_REMOVE_PUID;
 require MusicBrainz::Server::Moderation::MOD_REMOVE_RELEASE_EVENTS;
 require MusicBrainz::Server::Moderation::MOD_REMOVE_TRACK;
-require MusicBrainz::Server::Moderation::MOD_REMOVE_TRMID;
 require MusicBrainz::Server::Moderation::MOD_SAC_TO_MAC;
 require MusicBrainz::Server::Moderation::MOD_SET_RELEASE_DURATIONS;
 
@@ -146,8 +144,6 @@
 		                                      name => &MusicBrainz::Server::Moderation::MOD_REMOVE_DISCID::Name() },  
 		MOD_MOVE_DISCID			     ."" => { duration => 4, votes => 1, expireaction => EXPIRE_ACCEPT, autoedit => 1,  
 		                                      name => &MusicBrainz::Server::Moderation::MOD_MOVE_DISCID::Name() },  
-		MOD_REMOVE_TRMID			 ."" => { duration => 4, votes => 1, expireaction => EXPIRE_ACCEPT, autoedit => 1,  
-		                                      name => &MusicBrainz::Server::Moderation::MOD_REMOVE_TRMID::Name() },  
 		MOD_MERGE_RELEASE			     ."" => { duration => 4, votes => 1, expireaction => EXPIRE_ACCEPT, autoedit => 0,  
 		                                      name => &MusicBrainz::Server::Moderation::MOD_MERGE_RELEASE::Name() },  
 		MOD_REMOVE_RELEASES			 ."" => { duration => 4, votes => 1, expireaction => EXPIRE_ACCEPT, autoedit => 1,  
@@ -156,8 +152,6 @@
 		                                      name => &MusicBrainz::Server::Moderation::MOD_MERGE_RELEASE_MAC::Name() },  
 		MOD_EDIT_RELEASE_ATTRS	    	 ."" => { duration => 4, votes => 1, expireaction => EXPIRE_ACCEPT, autoedit => 1,  
 		                                      name => &MusicBrainz::Server::Moderation::MOD_EDIT_RELEASE_ATTRS::Name() },  
-		MOD_ADD_TRMS				 ."" => { duration => 0, votes => 0, expireaction => EXPIRE_ACCEPT, autoedit => 1,  
-		                                      name => &MusicBrainz::Server::Moderation::MOD_ADD_TRMS::Name() },  
 		MOD_EDIT_ARTISTALIAS		 ."" => { duration => 4, votes => 1, expireaction => EXPIRE_ACCEPT, autoedit => 1,  
 		                                      name => &MusicBrainz::Server::Moderation::MOD_EDIT_ARTISTALIAS::Name() },  
 		MOD_EDIT_RELEASE_EVENTS_OLD			 ."" => { duration => 4, votes => 1, expireaction => EXPIRE_ACCEPT, autoedit => 1,  
@@ -270,8 +264,6 @@
 		                                      name => &MusicBrainz::Server::Moderation::MOD_REMOVE_DISCID::Name() },  
 		MOD_MOVE_DISCID			     ."" => { duration => 14, votes => 3, expireaction => EXPIRE_ACCEPT, autoedit => 1,  
 		                                      name => &MusicBrainz::Server::Moderation::MOD_MOVE_DISCID::Name() },  
-		MOD_REMOVE_TRMID			 ."" => { duration => 14, votes => 3, expireaction => EXPIRE_ACCEPT, autoedit => 1,  
-		                                      name => &MusicBrainz::Server::Moderation::MOD_REMOVE_TRMID::Name() },  
 		MOD_MERGE_RELEASE			     ."" => { duration => 14, votes => 3, expireaction => EXPIRE_ACCEPT, autoedit => 0,  
 		                                      name => &MusicBrainz::Server::Moderation::MOD_MERGE_RELEASE::Name() },  
 		MOD_REMOVE_RELEASES			 ."" => { duration => 14, votes => 3, expireaction => EXPIRE_ACCEPT, autoedit => 0,  
@@ -280,8 +272,6 @@
 		                                      name => &MusicBrainz::Server::Moderation::MOD_MERGE_RELEASE_MAC::Name() },  
 		MOD_EDIT_RELEASE_ATTRS	    	 ."" => { duration => 14, votes => 3, expireaction => EXPIRE_ACCEPT, autoedit => 1,  
 		                                      name => &MusicBrainz::Server::Moderation::MOD_EDIT_RELEASE_ATTRS::Name() },  
-		MOD_ADD_TRMS				 ."" => { duration => 0, votes => 0, expireaction => EXPIRE_ACCEPT, autoedit => 1,  
-		                                      name => &MusicBrainz::Server::Moderation::MOD_ADD_TRMS::Name() },  
 		MOD_EDIT_ARTISTALIAS		 ."" => { duration => 14, votes => 3, expireaction => EXPIRE_ACCEPT, autoedit => 1,  
 		                                      name => &MusicBrainz::Server::Moderation::MOD_EDIT_ARTISTALIAS::Name() },  
 		MOD_EDIT_RELEASE_EVENTS_OLD			 ."" => { duration => 14, votes => 3, expireaction => EXPIRE_ACCEPT, autoedit => 1,  
@@ -394,8 +384,6 @@
 		                                      name => &MusicBrainz::Server::Moderation::MOD_REMOVE_DISCID::Name() },  
 		MOD_MOVE_DISCID			     ."" => { duration => 14, votes => 4, expireaction => EXPIRE_REJECT, autoedit => 0,  
 		                                      name => &MusicBrainz::Server::Moderation::MOD_MOVE_DISCID::Name() },  
-		MOD_REMOVE_TRMID			 ."" => { duration => 14, votes => 4, expireaction => EXPIRE_REJECT, autoedit => 0,  
-		                                      name => &MusicBrainz::Server::Moderation::MOD_REMOVE_TRMID::Name() },  
 		MOD_MERGE_RELEASE			     ."" => { duration => 14, votes => 4, expireaction => EXPIRE_REJECT, autoedit => 0,  
 		                                      name => &MusicBrainz::Server::Moderation::MOD_MERGE_RELEASE::Name() },  
 		MOD_REMOVE_RELEASES			 ."" => { duration => 14, votes => 4, expireaction => EXPIRE_REJECT, autoedit => 0,  
@@ -404,8 +392,6 @@
 		                                      name => &MusicBrainz::Server::Moderation::MOD_MERGE_RELEASE_MAC::Name() },  
 		MOD_EDIT_RELEASE_ATTRS	    	 ."" => { duration => 14, votes => 4, expireaction => EXPIRE_REJECT, autoedit => 0,  
 		                                      name => &MusicBrainz::Server::Moderation::MOD_EDIT_RELEASE_ATTRS::Name() },  
-		MOD_ADD_TRMS				 ."" => { duration => 0, votes => 0, expireaction => EXPIRE_REJECT, autoedit => 0,  
-		                                      name => &MusicBrainz::Server::Moderation::MOD_ADD_TRMS::Name() },  
 		MOD_EDIT_ARTISTALIAS		 ."" => { duration => 14, votes => 4, expireaction => EXPIRE_REJECT, autoedit => 0,  
 		                                      name => &MusicBrainz::Server::Moderation::MOD_EDIT_ARTISTALIAS::Name() },  
 		MOD_EDIT_RELEASE_EVENTS_OLD			 ."" => { duration => 14, votes => 4, expireaction => EXPIRE_REJECT, autoedit => 0,  
@@ -1194,9 +1180,7 @@
 		                  and $level->{autoedit});
 
 		# If the editor is untrusted, undo the auto edit
-		$autoedit = 0 if ($ui->IsUntrusted($privs) and
-		                  ($this->GetType != &ModDefs::MOD_ADD_TRMS or
-		                   $this->GetType != &ModDefs::MOD_ADD_PUIDS));
+		$autoedit = 0 if ($ui->IsUntrusted($privs) and $this->GetType != &ModDefs::MOD_ADD_PUIDS);
 
 		# If it is autoedit, then approve the edit and credit the editor
 		if ($autoedit)
@@ -1950,15 +1934,12 @@
 	my ($this, $adjust) = @_;
 	my $table = lc $this->GetTable;
 
-	if ($table ne 'trm')
-	{
-		my $sql = Sql->new($this->{DBH});
-		$sql->Do(
-			"UPDATE $table SET modpending = modpending + ? WHERE id = ?",
-			$adjust,
-			$this->GetRowId,
-		);
-	}
+	my $sql = Sql->new($this->{DBH});
+	$sql->Do(
+		"UPDATE $table SET modpending = modpending + ? WHERE id = ?",
+		$adjust,
+		$this->GetRowId,
+	);
 }
 
 # Determine the current quality level that should be applied to this edit.

Modified: mb_server/trunk/cgi-bin/MusicBrainz/Server/Artist.pm
===================================================================
--- mb_server/trunk/cgi-bin/MusicBrainz/Server/Artist.pm	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/MusicBrainz/Server/Artist.pm	2008-05-30 19:15:39 UTC (rev 9856)
@@ -980,7 +980,7 @@
        if (defined $loadmeta && $loadmeta)
        {
            $query = qq/select album.id, name, modpending, GID, attributes,
-                              language, script, quality, modpending_qual, tracks, discids, trmids,
+                              language, script, quality, modpending_qual, tracks, discids, 
                               firstreleasedate, coverarturl, asin, puids
                        from Album, Albummeta 
                        where artist=$this->{id} and albummeta.id = album.id/;
@@ -1014,11 +1014,10 @@
                 {
                     $album->{trackcount} = $row[9];
                     $album->{discidcount} = $row[10];
-                    $album->{trmidcount} = $row[11];
-                    $album->{firstreleasedate} = $row[12]||"";
-                    $album->{coverarturl} = $row[13]||"";
-                    $album->{asin} = $row[14]||"";
-                    $album->{puidcount} = $row[15]||0;
+                    $album->{firstreleasedate} = $row[11]||"";
+                    $album->{coverarturl} = $row[12]||"";
+                    $album->{asin} = $row[13]||"";
+                    $album->{puidcount} = $row[14]||0;
                 }
 
                 push @albums, $album;
@@ -1034,7 +1033,7 @@
    if (defined $loadmeta && $loadmeta)
    {
        $query = qq/select album.id, album.artist, name, modpending, GID, attributes, language,
-                          script, quality, modpending_qual, tracks, discids, trmids, firstreleasedate, puids
+                          script, quality, modpending_qual, tracks, discids, firstreleasedate, puids
                          from album, albummeta 
                         where album.artist != $this->{id} and 
                               albummeta.id = album.id and
@@ -1077,9 +1076,8 @@
             {
                 $album->{trackcount} = $row[10];
                 $album->{discidcount} = $row[11];
-                $album->{trmidcount} = $row[12];
-                $album->{firstreleasedate} = $row[13]||"";
-                $album->{puidcount} = $row[14]||0;
+                $album->{firstreleasedate} = $row[12]||"";
+                $album->{puidcount} = $row[13]||0;
             }
 
             push @albums, $album;

Modified: mb_server/trunk/cgi-bin/MusicBrainz/Server/DeferredUpdate.pm
===================================================================
--- mb_server/trunk/cgi-bin/MusicBrainz/Server/DeferredUpdate.pm	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/MusicBrainz/Server/DeferredUpdate.pm	2008-05-30 19:15:39 UTC (rev 9856)
@@ -155,8 +155,6 @@
 
 	my %type;
 
-	my %trm;
-	my %trmusage;
 	my %artistalias;
 
 	while (<$fh>)
@@ -166,16 +164,8 @@
 
 		++$type{$type};
 
-		if ($type eq "TRM::IncrementLookupCount")
+		if ($type eq "Alias::UpdateLookupCount")
 		{
-			++$trm{$args[0]};
-		}
-		elsif ($type eq "TRM::IncrementUsageCount")
-		{
-			++$trmusage{"$args[0],$args[1]"};
-		}
-		elsif ($type eq "Alias::UpdateLookupCount")
-		{
 			my $table = lc $args[0];
 			lc($table) eq "artistalias" or die "table = $table";
 
@@ -196,16 +186,10 @@
 	print localtime() . " : Stopping at seek=$$newseekref (after $lines lines)\n";
 
 	my $sql = Sql->new($dbh);
-	$sql->Do("LOCK TABLE trm, trm_stat, trmjoin_stat IN EXCLUSIVE MODE");
+	my ($n, $i, $t0);
 
-	# ------------------------------------------------------
-	printf "%s : Applying updates - %d TRM lookups\n",
-		scalar(localtime),
-		scalar(keys %trm);
-
 	use Time::HiRes qw( gettimeofday tv_interval );
 
-	my ($n, $i, $t0);
 	my $p = sub {
 		my $t = tv_interval($t0);
 		printf "%s : %6d rows ; %3d%% ; %d rows/sec",
@@ -214,54 +198,7 @@
 			;
 	};
 
-	$n = keys %trm;
-	$i = 0;
-	$t0 = [ gettimeofday ];
-	require MusicBrainz::Server::TRM;
-	my $trmobj = MusicBrainz::Server::TRM->new($dbh);
-
-	while (my ($trm, $usecount) = each %trm)
-	{
-		# $trmobj->UpdateLookupCount($trm, $usecount);
-		++$i;
-		$i % 100 or $p->(), print "\r"
-			if -t STDOUT;
-	}
-
-	$p->(); print "\n";
-
 	# ------------------------------------------------------
-	printf "%s : Applying updates - %d TRM usage\n",
-		scalar(localtime),
-		scalar(keys %trmusage);
-
-	use Time::HiRes qw( gettimeofday tv_interval );
-
-	$p = sub {
-		my $t = tv_interval($t0);
-		printf "%s : %6d rows ; %3d%% ; %d rows/sec",
-			scalar(localtime),
-			$i, int(100 * $i / ($n||1)), $i/$t,
-			;
-	};
-
-	$n = keys %trmusage;
-	$i = 0;
-	$t0 = [ gettimeofday ];
-	$trmobj = MusicBrainz::Server::TRM->new($dbh);
-
-	while (my ($args, $usecount) = each %trmusage)
-	{
-		my ($trm, $trackid) = split /,/, $args;
-		# $trmobj->UpdateUsageCount($trm, $trackid, $usecount);
-		++$i;
-		$i % 100 or $p->(), print "\r"
-			if -t STDOUT;
-	}
-
-	$p->(); print "\n";
-
-	# ------------------------------------------------------
 	printf "%s : Applying updates - %d artist alias uses\n",
 		scalar(localtime),
 		scalar(keys %artistalias);

Modified: mb_server/trunk/cgi-bin/MusicBrainz/Server/Label.pm
===================================================================
--- mb_server/trunk/cgi-bin/MusicBrainz/Server/Label.pm	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/MusicBrainz/Server/Label.pm	2008-05-30 19:15:39 UTC (rev 9856)
@@ -884,7 +884,6 @@
 			catno,
 			tracks,
 			discids,
-			trmids,
 			puids,
 			artist.name as artistname
 		FROM
@@ -915,9 +914,8 @@
 			$album->{catno} = $row[9];
 			$album->{trackcount} = $row[10];
 			$album->{discidcount} = $row[11];
-			$album->{trmidcount} = $row[12];
-			$album->{puidcount} = $row[13] || 0;
-			$album->{artistname} = $row[14];
+			$album->{puidcount} = $row[12] || 0;
+			$album->{artistname} = $row[13];
 			push @albums, $album;
 		}
 	}

Modified: mb_server/trunk/cgi-bin/MusicBrainz/Server/Moderation/MOD_ADD_RELEASE.pm
===================================================================
--- mb_server/trunk/cgi-bin/MusicBrainz/Server/Moderation/MOD_ADD_RELEASE.pm	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/MusicBrainz/Server/Moderation/MOD_ADD_RELEASE.pm	2008-05-30 19:15:39 UTC (rev 9856)
@@ -208,7 +208,7 @@
 	$info{'releases'} = \@releases;
 
 	# Now we actually insert the album and tracks,
-	# and maybe also some artists, a disc ID, TRMs etc.
+	# and maybe also some artists, a disc ID etc.
 	{
 		require Insert;
 		my $in = Insert->new($self->{DBH});

Deleted: mb_server/trunk/cgi-bin/MusicBrainz/Server/Moderation/MOD_ADD_TRMS.pm

Deleted: mb_server/trunk/cgi-bin/MusicBrainz/Server/Moderation/MOD_REMOVE_TRMID.pm

Modified: mb_server/trunk/cgi-bin/MusicBrainz/Server/Release.pm
===================================================================
--- mb_server/trunk/cgi-bin/MusicBrainz/Server/Release.pm	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/MusicBrainz/Server/Release.pm	2008-05-30 19:15:39 UTC (rev 9856)
@@ -534,14 +534,13 @@
 	{
 		$this->{trackcount} = $row->{tracks};
 		$this->{discidcount} = $row->{discids};
-		$this->{trmidcount} = $row->{trmids};
 		$this->{puidcount} = $row->{puids};
 		$this->{firstreleasedate} = $row->{firstreleasedate} || "";
 		$this->{coverarturl} = $row->{coverarturl};
 		$this->{asin} = $row->{asin};
 	} else {
 		cluck "No albummeta row for album #".$this->GetId;
-		delete @$this{qw( trackcount discidcount trmidcount puidcount firstreleasedate )};
+		delete @$this{qw( trackcount discidcount puidcount firstreleasedate )};
 		return 0;
 	}
 
@@ -580,20 +579,6 @@
    return $this->{discidcount};
 }
 
-# Returns the number of TRM ids for this album or undef on error
-sub GetTrmidCount
-{
-   my ($this) = @_;
-   my ($sql);
-
-   return undef if (!exists $this->{id});
-   if (!exists $this->{trmidcount} || !defined $this->{trmidcount})
-   {
-       $this->LoadAlbumMetadata();
-   }
-
-   return $this->{trmidcount};
-}
 # Returns the number of PUIDs for this album or undef on error
 sub GetPuidCount
 {
@@ -677,7 +662,7 @@
 	my $row = $sql->SelectSingleRowArray(
 		"SELECT	a.id, name, gid, modpending, artist, attributes, "
 		. "       language, script, modpending_lang, quality, modpending_qual"
-		. ($loadmeta ? ", tracks, discids, trmids, firstreleasedate,coverarturl,asin,puids" : "")
+		. ($loadmeta ? ", tracks, discids, firstreleasedate,coverarturl,asin,puids" : "")
 		. " FROM album a"
 		. ($loadmeta ? " INNER JOIN albummeta m ON m.id = a.id" : "")
 		. " WHERE	a.$idcol = ?",
@@ -695,7 +680,7 @@
 		$row = $sql->SelectSingleRowArray(
 			"SELECT	a.id, name, gid, modpending, artist, attributes, "
 			. "       language, script, modpending_lang, quality, modpending_qual"
-			. ($loadmeta ? ", tracks, discids, trmids, firstreleasedate,coverarturl,asin,puids" : "")
+			. ($loadmeta ? ", tracks, discids, firstreleasedate,coverarturl,asin,puids" : "")
 			. " FROM album a"
 			. ($loadmeta ? " INNER JOIN albummeta m ON m.id = a.id" : "")
 			. " WHERE	a.id = ?",
@@ -715,18 +700,17 @@
 	$this->{quality}        	= $row->[9];
 	$this->{modpending_qual}	= $row->[10];
 
-	delete @$this{qw( trackcount discidcount trmidcount firstreleasedate asin coverarturl puidcount )};
+	delete @$this{qw( trackcount discidcount firstreleasedate asin coverarturl puidcount )};
 	delete @$this{qw( _discids _tracks )};
 
 	if ($loadmeta)
 	{
 		$this->{trackcount}		= $row->[11];
 		$this->{discidcount}	= $row->[12];
-		$this->{trmidcount}		= $row->[13];
-		$this->{firstreleasedate}=$row->[14] || "";
-		$this->{coverarturl}=$row->[15] || "";
-		$this->{asin}=$row->[16] || "";
-		$this->{puidcount}		= $row->[17];
+		$this->{firstreleasedate}=$row->[13] || "";
+		$this->{coverarturl}=$row->[14] || "";
+		$this->{asin}=$row->[15] || "";
+		$this->{puidcount}		= $row->[16];
 	}
 
 	1;
@@ -890,30 +874,6 @@
 	$self->{"_isva"} || undef;
 } 
 
-# Fetch TRM counts for each track of the current album.
-# Returns a reference to a hash, where the keys are track IDs and the values
-# are the TRM counts.  Tracks with no TRMs may or may not be in the hash.
-sub LoadTRMCount
-{
- 	my $this = shift;
-	my $sql = Sql->new($this->{DBH});
-
-	my $counts = $sql->SelectListOfLists(
-		"SELECT	albumjoin.track, COUNT(trmjoin.track) AS num_trm
-		FROM	albumjoin, trmjoin
-		WHERE	albumjoin.album = ?
-		AND		albumjoin.track = trmjoin.track
-	   	GROUP BY albumjoin.track",
-		$this->GetId,
-	);
-
-	+{
-		map {
-			$_->[0] => $_->[1]
-		} @$counts
-	};
-}
-
 # Fetch PUID counts for each track of the current album.
 # Returns a reference to a hash, where the keys are track IDs and the values
 # are the PUID counts.  Tracks with no PUIDs may or may not be in the hash.
@@ -964,7 +924,7 @@
 }
 
 # Given a list of albums, this function will merge the list of albums into
-# the current album. All Discids, TRM Ids and PUIDs are preserved in the process
+# the current album. All Discids and PUIDs are preserved in the process
 sub MergeReleases
 {
    my ($this, $opts) = @_;
@@ -1019,15 +979,11 @@
        {
            if (exists $merged{$tr->GetSequence()})
            {
-                # We already have that track. Move any existing TRMs/PUIDs
+                # We already have that track. Move any existing PUIDs
                 # to the existing track
 				my $old = $tr->GetId;
 				my $new = $merged{$tr->GetSequence()}->GetId;
 
-				require MusicBrainz::Server::TRM;
-				my $trm = MusicBrainz::Server::TRM->new($this->{DBH});
-				$trm->MergeTracks($old, $new);
-
 				require MusicBrainz::Server::PUID;
 				my $puid = MusicBrainz::Server::PUID->new($this->{DBH});
 				$puid->MergeTracks($old, $new);
@@ -1138,7 +1094,7 @@
 		SELECT	a.id, a.name as albumname, a.gid, a.modpending, 
 				a.artist as artistid, ar.name as artistname,
                 attributes, language, script, modpending_lang,
-				tracks, discids, trmids, firstreleasedate, coverarturl, 
+				tracks, discids, firstreleasedate, coverarturl, 
                 asin, puids, a.quality, a.modpending_qual
    		FROM	album a, albummeta m, artist ar
 	  	WHERE	a.page BETWEEN $page_min AND $page_max
@@ -1209,13 +1165,12 @@
 
 		$al->{trackcount}		= $row->[10];
 		$al->{discidcount}		= $row->[11];
-		$al->{trmidcount}		= $row->[12];
-		$al->{firstreleasedate}	= $row->[13] || "";
-		$al->{coverarturl}		= $row->[14] || "";
-		$al->{asin}				= $row->[15] || "";
-		$al->{puidcount}		= $row->[16] || 0;
-		$al->{quality}		    = $row->[17] || 0;
-		$al->{modpending_qual}  = $row->[18] || 0;
+		$al->{firstreleasedate}	= $row->[12] || "";
+		$al->{coverarturl}		= $row->[13] || "";
+		$al->{asin}				= $row->[14] || "";
+		$al->{puidcount}		= $row->[15] || 0;
+		$al->{quality}		    = $row->[16] || 0;
+		$al->{modpending_qual}  = $row->[17] || 0;
 
 		$al;
 	} @$rows;

Modified: mb_server/trunk/cgi-bin/MusicBrainz/Server/Replication.pm
===================================================================
--- mb_server/trunk/cgi-bin/MusicBrainz/Server/Replication.pm	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/MusicBrainz/Server/Replication.pm	2008-05-30 19:15:39 UTC (rev 9856)
@@ -44,8 +44,6 @@
 	moderator_subscribe_artist
 	puidjoin_stat
 	puid_stat
-	trmjoin_stat
-	trm_stat
 	vote_closed
 	vote_open
 );

Deleted: mb_server/trunk/cgi-bin/MusicBrainz/Server/TRM.pm

Modified: mb_server/trunk/cgi-bin/MusicBrainz/Server/Track.pm
===================================================================
--- mb_server/trunk/cgi-bin/MusicBrainz/Server/Track.pm	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/MusicBrainz/Server/Track.pm	2008-05-30 19:15:39 UTC (rev 9856)
@@ -249,7 +249,7 @@
 sub GetMetadataFromIdAndAlbum
 {
     my ($this, $id, $albumname) = @_;
-    my (@row, $sql, $artist, $album, $seq, @TRM);
+    my (@row, $sql, $artist, $album, $seq);
 
     $artist = "Unknown";
     $album = "Unknown";
@@ -269,14 +269,6 @@
          return ();
     }
 
-	require MusicBrainz::Server::TRM;
-    my $trm = MusicBrainz::Server::TRM->new($this->{DBH});
-    @TRM = $trm->GetTRMFromTrackId($id);
-    if (scalar(@TRM) == 0)
-    {
-         return ();
-    }
-
     $sql = Sql->new($this->{DBH});
     if ($sql->Select(qq/select name, sequence
                           from Album, AlbumJoin
@@ -314,7 +306,7 @@
     }
 	$sql->Finish;
 
-    return ($this->GetName(), $ar->GetName(), $album, $seq, $TRM[0]->{TRM});
+    return ($this->GetName(), $ar->GetName(), $album, $seq, "");
 }
 
 # This function inserts a new track. A properly initialized/loaded album
@@ -506,10 +498,6 @@
         return undef
     }
 
-	require MusicBrainz::Server::TRM;
-    my $trm = MusicBrainz::Server::TRM->new($this->{DBH});
-    $trm->RemoveByTrackId($this->GetId());
-
 	require MusicBrainz::Server::PUID;
     my $puid = MusicBrainz::Server::PUID->new($this->{DBH});
     $puid->RemoveByTrackId($this->GetId());

Modified: mb_server/trunk/cgi-bin/QuerySupport.pm
===================================================================
--- mb_server/trunk/cgi-bin/QuerySupport.pm	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/QuerySupport.pm	2008-05-30 19:15:39 UTC (rev 9856)
@@ -26,9 +26,6 @@
 package QuerySupport;
 
 use strict;
-use constant TRM_ID_SILENCE              => "7d154f52-b536-4fae-b58b-0666826c2bac";
-use constant TRM_TOO_SHORT               => "f9809ab1-2b0f-4d78-8862-fb425ade8ab9";
-use constant TRM_SIGSERVER_BUSY          => "c457a4a8-b342-4ec9-8f13-b6bd26c0e400";
 
 use MusicBrainz::Server::Release; # for constants
 use DBDefs;
@@ -45,8 +42,6 @@
 @ISA    = @ISA    = '';
 @EXPORT = @EXPORT = '';
 
-use constant DEBUG_TRM_LOOKUP => 1;
-
 sub GetCDInfoMM2
 {
    my ($dbh, $parser, $rdf, $id, $numtracks) = @_;
@@ -179,43 +174,6 @@
    return $rdf->CreateTrackList(@ids);
 }
 
-# returns TRMList
-sub FindDistinctTRM
-{
-    my ($dbh, $parser, $rdf, $name, $artist) = @_;
-
-    MusicBrainz::Server::Validation::TrimInPlace($name) if defined $name;
-    if (not defined $name or $name eq "")
-    {
-	carp "Missing name in FindDistinctTRM";
-	return $rdf->ErrorRDF("No name or artist search criteria given.");
-    }
-
-    MusicBrainz::Server::Validation::TrimInPlace($artist) if defined $artist;
-    if (not defined $artist or $artist eq "")
-    {
-	carp "Missing artist in FindDistinctTRM";
-	return $rdf->ErrorRDF("No name or artist search criteria given.");
-    }
-
-    my $sql = Sql->new($dbh);
-
-    # This query finds single track id by name and artist
-    my $ids = $sql->SelectSingleColumnArray(
-	"SELECT	trm.trm
-	FROM	track, artist, trmjoin, trm
-	WHERE	LOWER(track.name) = LOWER(?)
-	AND	LOWER(artist.name) = LOWER(?)
-	AND	track.artist = artist.id
-	AND	trmjoin.track = track.id
-	AND	trm.id = trmjoin.trm",
-	$name,
-	$artist,
-    );
-
-    $rdf->CreateTRMList(@$ids);
-}
-
 # returns artistList
 sub GetArtistByGlobalId
 {
@@ -276,358 +234,12 @@
     return $rdf->CreateTrackList(@$ids);
 }
 
-# returns trackList
-sub GetTrackByTRM
+sub GoodRiddance
 {
-    my ($dbh, $parser, $rdf, $id) = @_;
-
-    if (not defined $id or $id eq "")
-    {
-	carp "Missing TRM ID in GetTrackByTRM";
-	return $rdf->ErrorRDF("No TRM ID given");
-    }
-
-    my $sql = Sql->new($dbh);
-    my $ids = $sql->SelectSingleColumnArray(
-	"SELECT	trmjoin.track
-	FROM	trm, trmjoin
-	WHERE	trm.trm = ?
-	AND	trmjoin.trm = trm.id",
-	lc $id,
-    );
-
-    return $rdf->CreateTrackList(@$ids);
-}
-
-sub LookupMetadata
-{
    my ($dbh, $parser, $rdf, $id) = @_;
-   my (@ids, $gu, $tr);
-
-   #PrintData("Lookup:", $id);
-
-   require MusicBrainz::Server::TRM;
-   $gu = MusicBrainz::Server::TRM->new($dbh);
-   require MusicBrainz::Server::Track;
-   $tr = MusicBrainz::Server::Track->new($dbh);
-
-   # has this data been accepted into the database?
-   @ids = @{ $gu->GetTrackIdsFromTRM($id) };
-   if (scalar(@ids) > 0)
-   {
-      my (@data, $i);
-
-      # @data will contain 5 items, in the same order as shown above
-      @data = $tr->GetMetadataFromIdAndAlbum($ids[0]);
-      if (scalar(@data) > 0)
-      {
-          #PrintData("Matched database (outgoing):", @data);
-          return $rdf->CreateMetadataExchange(@data);
-      }
-   }
    return $rdf->CreateStatus(0);
 }
 
-sub PrintData
-{
-     my ($note, @data) = @_;
-
-     print STDERR "$note\n";
-     print STDERR "    Name: $data[0]\n";
-     print STDERR "  Artist: $data[1]\n";
-     print STDERR "   Album: $data[2]\n";
-     print STDERR "     Seq: $data[3]\n";
-     print STDERR "    TRM: $data[4]\n";
-     print STDERR "Filename: $data[5]\n";
-     print STDERR "    Year: $data[6]\n";
-     print STDERR "   Genre: $data[7]\n";
-     print STDERR " Comment: $data[8]\n";
-     print STDERR "Duration: $data[9]\n";
-     print STDERR "Bitprint: $data[10]\n";
-     print STDERR " First20: $data[11]\n" if (defined $data[11]);
-     print STDERR "  Length: $data[12]\n" if (defined $data[12]);
-     print STDERR "AudioSHA: $data[13]\n" if (defined $data[13]);
-     print STDERR "SampRate: $data[14]\n" if (defined $data[14]);
-     print STDERR " BitRate: $data[15]\n" if (defined $data[15]);
-     print STDERR "  Stereo: $data[16]\n" if (defined $data[16]);
-     print STDERR "     VBR: $data[17]\n\n" if (defined $data[17]);
-}
-
-# Data array cross reference
-#  0  Name
-#  1  Artist
-#  2  Album
-#  3  Sequence
-#  4  TRM
-#  5  Filename
-#  6  Year
-#  7  Genre
-#  8  Comment
-#  9  Duration (ms)
-#  10 Bitprint/Sha1
-#  Bitzi data items (not available on MetadataExchangeLite)
-#  11 First20
-#  12 Length (bytes)
-#  13 AudioSha1
-#  14 SampleRate
-#  15 BitRate
-#  16 Stereo
-#  17 VBR
-sub ExchangeMetadata
-{
-   my ($dbh, $parser, $rdf, @data) = @_;
-   my (@ids, $id, $gu, $pe, $tr, $rv, $ar);
-
-   #PrintData("Incoming:", @data);
-
-   if (!&DBDefs::DB_READ_ONLY)
-   {
-       require MusicBrainz::Server::Artist;
-       $ar = MusicBrainz::Server::Artist->new($dbh);
-       require MusicBrainz::Server::TRM;
-       $gu = MusicBrainz::Server::TRM->new($dbh);
-       require MusicBrainz::Server::Track;
-       $tr = MusicBrainz::Server::Track->new($dbh);
-
-       # has this data been accepted into the database?
-       @ids = @{ $gu->GetTrackIdsFromTRM($data[4]) };
-       if (scalar(@ids) > 0)
-       {
-           my (@db_data, $i);
-
-           # @db_data will contain 5 items, in the same order as shown above
-           @db_data = $tr->GetMetadataFromIdAndAlbum($ids[0], $data[2]);
-           if (scalar(@db_data) > 0)
-           {
-              for($i = 0; $i < 5;  $i++)
-              {
-                 if (defined $db_data[$i] &&
-                    (!defined $data[$i] || $data[$i] eq ''))
-                 {
-                     $data[$i] = $db_data[$i]
-                 }
-              }
-           }
-       }
-   }
-
-   return $rdf->CreateMetadataExchange(@data);
-}
-
-sub SubmitTrack
-{
-   my ($dbh, $parser, $rdf, $name, $TRM, $artist, $album, $seq,
-       $len, $year, $genre, $comment) = @_;
-   my (@albumids, %info, $in, $ret);
-
-   return $rdf->ErrorRDF("This feature is currently not enabled.");
-
-   if (!defined $name || $name eq '' ||
-       !defined $album || $album eq '' ||
-       !defined $seq || $seq eq '' ||
-       !defined $artist || $artist eq '')
-   {
-       return $rdf->ErrorRDF("Incomplete track information submitted.")
-   }
-
-   if (&DBDefs::DB_READ_ONLY)
-   {
-       return $rdf->ErrorRDF(&DBDefs::DB_READ_ONLY_MESSAGE)
-   }
-
-   require Insert;
-   $in = Insert->new($dbh);
-
-   $info{artist} = $artist;
-   $info{sortname} = $artist;
-   $info{album} = $album;
-   $info{tracks} =
-     [
-       {
-          track => $name,
-          tracknum => $seq,
-          duration => $len,
-          trmid => $TRM
-       }
-     ];
-
-   $ret = $in->Insert(\%info);
-   return $rdf->ErrorRDF($in->GetError())
-      if (!defined $ret);
-
-   return $rdf->CreateStatus(0);
-}
-
-sub SubmitTRMList
-{
-    my ($dbh, $parser, $rdf, $session) = @_;
-
-    return undef if (!defined $dbh);
-
-    if (&DBDefs::DB_READ_ONLY)
-    {
-      	return $rdf->ErrorRDF(&DBDefs::DB_READ_ONLY_MESSAGE)
-    }
-    if (&DBDefs::REPLICATION_TYPE == RT_SLAVE)
-    {
-      	return $rdf->ErrorRDF("You cannot submit TRM identifiers to a mirror server. Please submit them" .
-		              " to the main server at http://musicbrainz.org")
-    }
-
-    my $sql = Sql->new($dbh);
-
-    my $ns = $rdf->GetMQNamespace();
-
-    my $uri = $parser->GetBaseURI();
-    my $clientVer = $parser->Extract($uri, "${ns}clientVersion");
-    if (not defined $clientVer)
-    {
-     	return $rdf->ErrorRDF("Your MusicBrainz client must provide its version " .
-                             "id string when submitting data to MusicBrainz.")
-    }
-
-    my @links;
-
-    for (my $i = 1; ; $i++)
-    {
-       my ($trackid, $trmid) = $rdf->GetTRMTrackIdPair($parser, $uri, $i);
-       if (!defined $trackid || $trackid eq '' ||
-           !defined $trmid || $trmid eq '')
-       {
-            last if ($i > 1);
-            return $rdf->ErrorRDF("Incomplete trackid and trmid submitted.")
-       }
-
-       # We have to have a limit, I think.  It's only sensible.
-       # So far I've not seen anyone submit more that about 4,500 TRMs at once,
-       # so this limit won't affect anyone in a hurry.
-       if ($i > 5000)
-       {
-            return $rdf->ErrorRDF("Too many TRMs submitted at once - the limit is 5000.  Sorry.")
-       }
-
-       # Check to see if these trms represent silence or too short TRMs. If so, skip them.
-       if ($trmid eq &ModDefs::TRM_TOO_SHORT || $trmid eq &ModDefs::TRM_SIGSERVER_BUSY)
-       {
-	   next;
-       }
-       if (!MusicBrainz::Server::Validation::IsGUID($trmid) || !MusicBrainz::Server::Validation::IsGUID($trackid))
-       {
-           # print STDERR "Invalid track/trm combination:\n";
-           # print STDERR "trackid: $trackid\n";
-           # print STDERR "trmid: $trmid\n\n";
-           return $rdf->ErrorRDF("Invalid trackid or trmid submitted.")
-       }
-
-	#lookup the IDs associated with the $trackGID
-	require MusicBrainz::Server::Track;
-	my $trackobj = MusicBrainz::Server::Track->new($sql->{DBH});
-	$trackobj->SetMBId($trackid);
-	unless ($trackobj->LoadFromId)
-	{
-	    # print STDERR "Unknown MB Track Id: $trackid\n";
-	} else {
-	    push @links, { trmid => $trmid, trackid => $trackobj->GetId };
-	}
-   }
-
-   if (@links)
-   {
-       eval
-       {
-	    require Moderation;
-	    my @mods;
-
-	    # Break the list of TRMs up into 100 TRMs at a time.
-	    # This is so that each moderation is manageably small.
-	    while (@links)
-	    {
-	    	my @thistime;
-		if (@links > 100) { @thistime = splice(@links, 0, 100) }
-		else { @thistime = @links; @links = () }
-
-		my @mods = Moderation->InsertModeration(
-		    DBH => $dbh,
-		    uid => $session->{'uid'},
-		    privs => 0, # TODO
-		    type => &ModDefs::MOD_ADD_TRMS,
-		    # --
-		    client => $clientVer,
-		    links => \@thistime,
-		);
-	    }
-       };
-       if ($@)
-       {
-           print STDERR "Cannot insert TRM: $@\n";
-           return $rdf->ErrorRDF("Cannot write TRM Ids to database.")
-       }
-       return $rdf->CreateStatus(0);
-   }
-
-   return $rdf->ErrorRDF("No valid TRM ids were submitted.")
-}
-
-sub SubmitTRMFeedback
-{
-    my ($dbh, $parser, $rdf, $session) = @_;
-
-    return undef if (!defined $dbh);
-
-    if (&DBDefs::DB_READ_ONLY)
-    {
-      	return $rdf->ErrorRDF(&DBDefs::DB_READ_ONLY_MESSAGE)
-    }
-    if (&DBDefs::REPLICATION_TYPE == RT_SLAVE)
-    {
-      	return $rdf->ErrorRDF("You cannot submit TRM feedback to a mirror server. Please submit them" .
-		              " to the main server at http://musicbrainz.org")
-    }
-
-    my $sql = Sql->new($dbh);
-
-    my $ns = $rdf->GetMQNamespace();
-
-    my $uri = $parser->GetBaseURI();
-    for (my $i = 1; ; $i++)
-    {
-       my ($trackid, $trmid) = $rdf->GetTRMTrackIdPair($parser, $uri, $i);
-       if (!defined $trackid || $trackid eq '' ||
-           !defined $trmid || $trmid eq '')
-       {
-            last if ($i > 1);
-            return $rdf->ErrorRDF("Incomplete trackid and trmid feedback submitted.")
-       }
-       # Check to see if these trms represent silence or too short TRMs. If so, skip them.
-       if ($trmid eq &ModDefs::TRM_TOO_SHORT || $trmid eq &ModDefs::TRM_SIGSERVER_BUSY)
-       {
-	   next;
-       }
-       if (!MusicBrainz::Server::Validation::IsGUID($trmid) || !MusicBrainz::Server::Validation::IsGUID($trackid))
-       {
-           # print STDERR "Invalid track/trm combination:\n";
-           # print STDERR "trackid: $trackid\n";
-           # print STDERR "trmid: $trmid\n\n";
-           return $rdf->ErrorRDF("Invalid trackid or trmid submitted.")
-       }
-
-	#lookup the IDs associated with the $trackGID
-	require MusicBrainz::Server::Track;
-	my $trackobj = MusicBrainz::Server::Track->new($sql->{DBH});
-	$trackobj->SetMBId($trackid);
-	unless ($trackobj->LoadFromId)
-	{
-	    # print STDERR "Unknown MB Track Id: $trackid\n";
-	} else {
-	    require MusicBrainz::Server::TRM;
-	    my $trmobj = MusicBrainz::Server::TRM->new($sql->{DBH});
-	    $trmobj->IncrementUsageCount($trmid, $trackobj->GetId);
-	}
-   }
-
-   return $rdf->CreateStatus(0);
-}
-
 sub AuthenticateQuery
 {
    my ($dbh, $parser, $rdf, $username) = @_;
@@ -679,527 +291,6 @@
    return $rdf->CreateAuthenticateResponse($session_id, $challenge);
 }
 
-sub TrackInfoFromTRMId
-{
-   my ($dbh, $parser, $rdf, $id, $artist, $album, $track,
-       $tracknum, $duration, $filename)=@_;
-   my ($sql, @ids, $query);
-
-    my $ip = eval { Apache->request->connection->remote_ip } || "?";
-    lprint "trmlookup", "begin trm=".($id||'')." ip=$ip";
-
-   return $rdf->ErrorRDF("No trm id given.")
-      if (!defined $id || $id eq '');
-   return undef if (!defined $dbh);
-
-   lprintf("trmlookup", "TRM lookup, ip=$ip, TRM_SIGSERVER_BUSY"),
-   return $rdf->ErrorRDF("This special TRM indicates the TRM server is too busy and cannot be looked up.")
-       if ($id eq &ModDefs::TRM_SIGSERVER_BUSY);
-
-   lprintf("trmlookup", "TRM lookup, ip=$ip, TRM_TOO_SHORT"),
-   return $rdf->ErrorRDF("This is a special TRM Id associated to files that are too short for a full TRM.")
-       if ($id eq &ModDefs::TRM_TOO_SHORT);
-
-   lprintf("trmlookup", "TRM lookup, ip=$ip, TRM_ID_SILENCE"),
-   return $rdf->ErrorRDF("This TRM represents silence.  Sorry, you cannot look up this TRM.")
-       if ($id eq &ModDefs::TRM_ID_SILENCE);
-
-    # Analysis of recent log files shows that:
-    # - 44% of all requests to mb_server are for the TRM gateway.  However
-    # these don't hit the database so we'll ignore them.
-    # - 43% are for /mm-2.1/TrackInfoFromTRMId (i.e. this subroutine).  So
-    # that's approx 90% of all database sessions are handled by this code.
-
-    # This sub has three paths:
-    # - HIT: the trm given matches one or more tracks
-    # - MISS/HIT: the trm given did not match any tracks, but a TaggerSupport lookup found some tracks
-    # - MISS: the trm given did not match any tracks, and a TaggerSupport lookup didn't find anything either
-
-    # Of the calls made to this sub, 80% are "HIT", and approx 80% of all
-    # elapsed time in this sub is on the "HIT" path.  So we'll optimise that
-    # path.
-
-    use Time::HiRes qw( gettimeofday tv_interval );
-    my $t0 = [ gettimeofday ];
-
-   $sql = Sql->new($dbh);
-   $id =~ tr/A-Z/a-z/;
-
-    my $selmode;
-
-    if (my $r = Apache->request)
-    {
-	if ($r->pnotes("is-mbtagger") and $r->the_request =~ m/^POST \/mm-2.1\//)
-	{
-	    my $answer = run_optimised_trmlookup($sql, $id, $t0, $ip);
-	    return $answer if $answer;
-	    $selmode = "fast";
-	    goto DO_TSLOOKUP;
-	}
-    }
-    
-    $selmode = "slow";
-
-   $query = qq|select track.gid
-                 from TRM, TRMJoin, track
-                where TRM.TRM = ? and
-                      TRMJoin.TRM = TRM.id and
-                      TRMJoin.track = track.id
-		limit 101|;
-   if ($sql->Select($query, $id))
-   {
-       my @row;
-
-       if ($sql->Rows > 100)
-       {
-	    lprint "trmlookup", "TRM $id matches many tracks - results truncated";
-       }
-
-       # If this TRM generated any hits, update the lookup count
-       if ($sql->Rows >= 1)
-       {
-	   require MusicBrainz::Server::TRM;
-           MusicBrainz::Server::TRM->IncrementLookupCount($id);
-       }
-       while(@row = $sql->NextRow())
-       {
-           push @ids, $row[0];
-       }
-       $sql->Finish;
-
-	my $t1 = [ gettimeofday ];
-	my $out = $rdf->CreateDenseTrackList(0, \@ids);
-	lprintf "trmlookup", "TRM lookup, ip=%s, slow select=%.3f, HIT, RDF=%.3f, tracks=%d",
-		$ip,
-		tv_interval($t0, $t1),
-		tv_interval($t1),
-		scalar @ids,
-		if DEBUG_TRM_LOOKUP;
-	return $out;
-   }
-
-	$sql->Finish;
-DO_TSLOOKUP:
-	my $t1 = [ gettimeofday ];
-
-       my (%lookup, $ts);
-
-       $lookup{artist} = $artist;
-       $lookup{album} = $album;
-       $lookup{track} = $track;
-       $lookup{tracknum} = $tracknum;
-       $lookup{filename} = $filename;
-       $lookup{duration} = $duration;
-
-       require TaggerSupport;
-       $ts = TaggerSupport->new($dbh);
-       my ($error, $result, $flags, $list) = $ts->Lookup(\%lookup, 3);
-	my $t2 = [ gettimeofday ];
-
-       if ($flags & TaggerSupport::ALBUMTRACKLIST)
-       {
-           my ($id);
-
-           foreach $id (@$list)
-           {
-               if ($id->{sim} >= .9)
-               {
-		    my $out = $rdf->CreateDenseTrackList(1, [$id->{mbid}]);
-		    lprintf "trmlookup", "TRM lookup, ip=%s, $selmode select=%.3f, MISS, TSLookup=%.3f, HIT, RDF=%.3f",
-			    $ip,
-			    tv_interval($t0, $t1),
-			    tv_interval($t1, $t2),
-			    tv_interval($t2),
-			    if DEBUG_TRM_LOOKUP;
-		    return $out;
-               }
-           }
-       }
-
-	lprintf "trmlookup", "TRM lookup, ip=%s, $selmode select=%.3f, MISS, TSLookup=%.3f, MISS",
-		$ip,
-		tv_interval($t0, $t1),
-		tv_interval($t1, $t2),
-		if DEBUG_TRM_LOOKUP;
-       return $rdf->CreateStatus(0);
-}
-
-# This method is the on the optimised TrackInfoFromTRMId path, and is only
-# used if the client is (probably) MB Tagger 0.10.x
-sub run_optimised_trmlookup
-{
-    my ($sql, $trmid, $t0, $ip) = @_;
-    my $server = &DBDefs::RDF_SERVER;
-
-    my $rows = $sql->SelectListOfLists(
-	<<EOF,
-	    SELECT	t.gid, t.name, t.length, t.artist, j.sequence,
-			a.gid, a.name, a.attributes, a.artist
-	    FROM	trm, trmjoin tj, track t, albumjoin j, album a
-	    WHERE	trm.trm = ?
-	    AND	tj.trm = trm.id
-	    AND	t.id = tj.track
-	    AND	j.track = t.id
-	    AND	a.id = j.album
-	    LIMIT 101
-EOF
-	$trmid,
-    );
-    @$rows or return undef;
-
-    if (@$rows > 100)
-    {
-	lprint "trmlookup", "TRM $trmid matches many tracks - results truncated";
-    }
-
-    require MusicBrainz::Server::TRM;
-    MusicBrainz::Server::TRM->IncrementLookupCount($trmid);
- 
-    my %artists;
-    for my $artistid (map { $_->[3], $_->[8] } @$rows)
-    {
-	next if $artists{$artistid};
-	require MusicBrainz::Server::Artist;
-	my $ar = MusicBrainz::Server::Artist->newFromId($sql->{DBH}, $artistid);
-	$artists{$artistid} = $ar;
-    }
-
-    my $out = <<'EOF';
-<?xml version="1.0" encoding="UTF-8"?>
-<rdf:RDF xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-         xmlns:dc  = "http://purl.org/dc/elements/1.1/"
-         xmlns:mq  = "http://musicbrainz.org/mm/mq-1.1#"
-         xmlns:mm  = "http://musicbrainz.org/mm/mm-2.1#"
-         xmlns:ar  = "http://musicbrainz.org/ar/ar-1.0#"
-         xmlns:az  = "http://www.amazon.com/gp/aws/landing.html#">
-  <mq:Result>
-    <mq:status>OK</mq:status>
-    <mm:trackList>
-      <rdf:Bag>
-EOF
-	$out .= <<EOF
-        <rdf:li rdf:resource="http://$server/mm-2.1/track/$_->[0]"/>
-EOF
-	    for @$rows;
-	$out .= <<'EOF';
-      </rdf:Bag>
-    </mm:trackList>
-  </mq:Result>
-EOF
-
-    my %albums;
-
-    for my $row (@$rows)
-    {
-	my $ar = $artists{ $row->[3] }
-	    or next;
-	my $trackname = $row->[1]; RDF2::escape($trackname);
-	my $artistgid = $ar->GetMBId;
-
-	# Cheat: this is missing the trmidList
-	$out .= <<EOF;
-  <mm:Track rdf:about="http://$server/mm-2.1/track/$row->[0]">
-    <dc:title>$trackname</dc:title>
-    <dc:creator rdf:resource="http://$server/mm-2.1/artist/$artistgid"/>
-    <mm:duration>$row->[2]</mm:duration>
-    <mq:album rdf:resource="http://$server/mm-2.1/album/$row->[5]"/>
-  </mm:Track>
-EOF
-
-	push @{ $albums{ $row->[5] } }, $row;
-    }
-
-    for my $album (values %albums)
-    {
-	my $row = $album->[0];
-	my $ar = $artists{ $row->[8] }
-	    or next;
-	my $albumname = $row->[6]; RDF2::escape($albumname);
-	my $artistgid = $ar->GetMBId;
-
-	my $typehash = "";
-	my $statushash = "";
-
-	{
-	    my @attrs = $row->[7] =~ /(\d+)/g;
-	    shift @attrs;
-	    my ($type, $status) = MusicBrainz::Server::Release->GetReleaseTypeAndStatus(\@attrs);
-	    $typehash = "Type" . MusicBrainz::Server::Release->GetAttributeName($type) if $type;
-	    $statushash = "Status" . MusicBrainz::Server::Release->GetAttributeName($status) if $status;
-	}
-
-	# Cheat: this is missing the releaseDateList
-	$out .= <<EOF;
-  <mm:Album rdf:about="http://$server/mm-2.1/album/$row->[5]">
-    <dc:title>$albumname</dc:title>
-    <dc:creator rdf:resource="http://$server/mm-2.1/artist/$artistgid"/>
-EOF
-	$out .= <<EOF if $typehash;
-    <mm:releaseType rdf:resource="http://musicbrainz.org/mm/mm-2.1#$typehash"/>
-EOF
-	$out .= <<EOF if $statushash;
-    <mm:releaseStatus rdf:resource="http://musicbrainz.org/mm/mm-2.1#$statushash"/>
-EOF
-	$out .= <<EOF;
-    <mm:trackList>
-      <rdf:Seq>
-EOF
-	$out .= <<EOF for @$album;
-        <rdf:_$_->[4] rdf:resource="http://$server/mm-2.1/track/$_->[0]"/>
-EOF
-	$out .= <<EOF;
-      </rdf:Seq>
-    </mm:trackList>
-  </mm:Album>
-EOF
-    }
-
-    for my $ar (values %artists)
-    {
-	$ar or next;
-	# The "full" RDF code doesn't seem to spit out VARTIST_ID
-	my $artistname = $ar->GetName; RDF2::escape($artistname);
-	my $sortname = $ar->GetSortName; RDF2::escape($sortname);
-	my $artistgid = $ar->GetMBId;
-
-	# Cheat: this is missing artistType and beginDate
-	$out .= <<EOF;
-  <mm:Artist rdf:about="http://$server/mm-2.1/artist/$artistgid">
-    <dc:title>$artistname</dc:title>
-    <mm:sortName>$sortname</mm:sortName>
-  </mm:Artist>
-EOF
-    }
-
-    $out .= <<EOF;
-</rdf:RDF>
-EOF
-
-    lprintf "trmlookup", "TRM lookup, ip=%s, fast select=%.3f, HIT, tracks=%d",
-    	$ip,
-	tv_interval($t0),
-	scalar @$rows,
-	if DEBUG_TRM_LOOKUP;
-    return $out;
-}
-
-# This method is now deprecated
-sub QuickTrackInfoFromTRMId
-{
-   my ($dbh, $parser, $rdf, $id, $artist, $album, $track,
-       $tracknum, $duration, $filename)=@_;
-   my ($sql, @data, $out);
-
-   return $rdf->ErrorRDF("No trm id given.")
-      if (!defined $id || $id eq '');
-   return undef if (!defined $dbh);
-
-   $sql = Sql->new($dbh);
-   $id =~ tr/A-Z/a-z/;
-
-   my $query = qq|select Track.name, Artist.name, Album.name,
-                         AlbumJoin.sequence, Track.GID, Track.Length
-                    from TRM, TRMJoin, Track, AlbumJoin, Album, Artist
-                   where TRM.TRM = ? and
-                         TRMJoin.TRM = TRM.id and
-                         TRMJoin.track = Track.id and
-                         Track.id = AlbumJoin.track and
-                         Album.id = AlbumJoin.album and
-                         Track.Artist = Artist.id|;
-   if ($sql->Select($query, $id))
-   {
-       if ($sql->Rows == 1)
-       {
-           @data = $sql->NextRow();
-	   require MusicBrainz::Server::TRM;
-           MusicBrainz::Server::TRM->IncrementLookupCount($id);
-       }
-       else
-       {
-           lprint "trmlookup", "TRM collision on: $id";
-       }
-       $sql->Finish;
-   }
-   else
-   {
-       $sql->Finish;
-       my (%lookup, $ts);
-
-       $lookup{artist} = $artist;
-       $lookup{album} = $album;
-       $lookup{track} = $track;
-       $lookup{tracknum} = $tracknum;
-       $lookup{filename} = $filename;
-       $lookup{duration} = $duration;
-
-       require TaggerSupport;
-       $ts = TaggerSupport->new($dbh);
-       my ($error, $result, $flags, $list) = $ts->Lookup(\%lookup, 3);
-       if ($flags & TaggerSupport::ALBUMTRACKLIST)
-       {
-           my ($id);
-
-           foreach $id (@$list)
-           {
-               my $sim;
-
-               $sim = ($id->{sim_track} * .5) +
-                      ($id->{sim_album} * .5);
-
-               if ($sim >= .9)
-               {
-                   $data[0] = $id->{name};
-                   $data[1] = $id->{artist};
-                   $data[2] = $id->{album};
-                   $data[3] = $id->{tracknum};
-                   $data[4] = $id->{mbid};
-                   $data[5] = $id->{tracklen};;
-                   last;
-               }
-
-           }
-       }
-   }
-
-   $out = $rdf->BeginRDFObject;
-   $out .= $rdf->BeginDesc("mq:Result");
-   $out .= $rdf->Element("mq:status", "OK");
-   $out .= $rdf->Element("mq:artistName", $data[1]);
-   $out .= $rdf->Element("mq:albumName", $data[2]);
-   $out .= $rdf->Element("mq:trackName", $data[0]);
-   $out .= $rdf->Element("mm:trackNum", $data[3]);
-   $out .= $rdf->Element("mm:trackid", $data[4]);
-   if (defined $data[5] && $data[5] != 0)
-   {
-       $out .= $rdf->Element("mm:duration", $data[5]);
-   }
-   $out .= $rdf->EndDesc("mq:Result");
-   $out .= $rdf->EndRDFObject;
-
-   return $out;
-}
-
-# This function will also soon be depricated. As soon as MB Tagger 0.10.x becomes
-# completely irrelevant this function can go.
-sub QuickTrackInfoFromTrackId
-{
-   my ($dbh, $parser, $rdf, $tid, $aid) = @_;
-
-   return $rdf->ErrorRDF("No track and/or album id given.")
-      if (!defined $tid || $tid eq '' || !defined $aid || $aid eq '');
-   return undef if (!defined $dbh);
-
-    require MusicBrainz::Server::Release;
-    my $album = MusicBrainz::Server::Release->new($dbh);
-    $album->SetMBId($aid);
-    unless ($album->LoadFromId)
-    {
-        return $rdf->ErrorRDF("Cannot load given album.");
-    }
-
-    my $sql = Sql->new($dbh);
-    my $data = $sql->SelectSingleRowArray(
-	"SELECT track.name,
-	       	artist.name,
-		album.name,
-		albumjoin.sequence,
-		track.length,
-		album.artist,
-		artist.gid,
-		artist.sortname,
-		album.attributes
-	FROM	track, albumjoin, album, artist
-	WHERE	track.gid = ?
-	AND	album.gid = ?
-	AND	albumjoin.album = album.id
-	AND	albumjoin.track = track.id
-	AND	artist.id = track.artist",
-	$tid,
-	$aid,
-    );
-
-    unless ($data)
-    {
-     	return $rdf->ErrorRDF("Cannot load given album.");
-    }
-
-    my @data = @$data;
-   my @attrs = ( $data[8] =~ /(\d+)/g );
-   shift @attrs;
-
-   my $out = $rdf->BeginRDFObject;
-   $out .= $rdf->BeginDesc("mq:Result");
-   $out .= $rdf->Element("mq:status", "OK");
-   $out .= $rdf->Element("mq:artistName", $data[1]);
-   $out .= $rdf->Element("mm:artistid", $data[6]);
-   $out .= $rdf->Element("mm:sortName", $data[7]);
-   $out .= $rdf->Element("mq:albumName", $data[2]);
-   $out .= $rdf->Element("mq:trackName", $data[0]);
-   $out .= $rdf->Element("mm:trackNum", $data[3]);
-   if ($data[4] != 0)
-   {
-        $out .= $rdf->Element("mm:duration", $data[4]);
-   }
-
-   # This is a total hack, RDF wise speaking. This is to bridge the gap
-   # for the MB Tagger 0.10.0 series. Once the new cross platform tagger
-   # is out, this function will go away.
-   if ($data[5] == &ModDefs::VARTIST_ID)
-   {
-        $out .= $rdf->Element("mm:albumArtist", &ModDefs::VARTIST_MBID);
-   }
-
-   foreach my $attr (@attrs)
-   {
-       if ($attr >= MusicBrainz::Server::Release::RELEASE_ATTR_SECTION_TYPE_START &&
-           $attr <= MusicBrainz::Server::Release::RELEASE_ATTR_SECTION_TYPE_END)
-       {
-          $out .= $rdf->Element("mm:releaseType", "", "rdf:resource", $rdf->GetMMNamespace() .
-                                 "Type" . $album->GetAttributeName($attr));
-       }
-       elsif ($attr >= MusicBrainz::Server::Release::RELEASE_ATTR_SECTION_STATUS_START &&
-              $attr <= MusicBrainz::Server::Release::RELEASE_ATTR_SECTION_STATUS_END)
-       {
-          $out .= $rdf->Element("mm:releaseStatus", "", "rdf:resource", $rdf->GetMMNamespace() .
-                                 "Status" . $album->GetAttributeName($attr));
-       }
-   }
-
-   my (@releases, $releasedate);
-   @releases = $album->ReleaseEvents;
-   if (@releases)
-   {
-       require MusicBrainz::Server::Country;
-       my $country_obj = MusicBrainz::Server::Country->new($album->{DBH});
-
-       $out .= $rdf->BeginDesc("mm:releaseDateList");
-       $out .= $rdf->BeginSeq();
-       for my $rel (@releases)
-       {
-            my $cid = $rel->GetCountry;
-            my $c = $country_obj->newFromId($cid);
-            my ($year, $month, $day) = $rel->GetYMD();
-
-            $releasedate = $year;
-            $releasedate .= sprintf "-%02d", $month if ($month != 0);
-            $releasedate .= sprintf "-%02d", $day if ($day != 0);
-            $out .= $rdf->BeginElement("rdf:li");
-            $out .= $rdf->BeginElement("mm:ReleaseDate");
-            $out .= $rdf->Element("dc:date", $releasedate);
-            $out .= $rdf->Element("mm:country", $c ? $c->GetISOCode : "?");
-            $out .= $rdf->EndElement("mm:ReleaseDate");
-            $out .= $rdf->EndElement("rdf:li");
-        }
-        $out .= $rdf->EndSeq();
-        $out .= $rdf->EndDesc("mm:releaseDateList");
-   }
-
-   $out .= $rdf->EndDesc("mq:Result");
-   $out .= $rdf->EndRDFObject;
-
-   return $out;
-}
-
 # returns artistList
 sub GetArtistRelationships
 {

Modified: mb_server/trunk/cgi-bin/Statistic.pm
===================================================================
--- mb_server/trunk/cgi-bin/Statistic.pm	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/Statistic.pm	2008-05-30 19:15:39 UTC (rev 9856)
@@ -186,14 +186,6 @@
 		DESC => "Count of all tracks",
 		SQL => "SELECT COUNT(*) FROM track",
 	},
-	"count.trm" => {
-		DESC => "Count of all TRMs joined to tracks",
-		SQL => "SELECT COUNT(*) FROM trmjoin",
-	},
-	"count.trm.ids" => {
-		DESC => "Count of unique TRM IDs",
-		SQL => "SELECT COUNT(DISTINCT trm) FROM trmjoin",
-	},
 	"count.vote" => {
 		DESC => "Count of all votes",
 		SQL => "SELECT COUNT(*) FROM vote_all",
@@ -258,87 +250,6 @@
 		},
 	},
 
-
-	"count.trm.Ntracks" => {
-		DESC => "Distribution of tracks per TRM (collisions)",
-		CALC => sub {
-			my ($self, $sql) = @_;
-
-			my $max_dist_tail = 10;
-
-			my $data = $sql->SelectListOfLists(
-				"SELECT c, COUNT(*) AS freq
-				FROM (
-					SELECT trm, COUNT(*) AS c
-					FROM trmjoin
-					GROUP BY trm
-				) AS t
-				GROUP BY c
-				",
-			);
-
-			my %dist = map { $_ => 0 } 1 .. $max_dist_tail;
-
-			for (@$data)
-			{
-				$dist{ $_->[0] } = $_->[1], next
-					if $_->[0] < $max_dist_tail;
-
-				$dist{$max_dist_tail} += $_->[1];
-			}
-			
-			+{
-				map {
-					"count.trm.".$_."tracks" => $dist{$_}
-				} keys %dist
-			};
-		},
-	},
-
-	"count.track.has_trm" => {
-		DESC => "Count of tracks with at least one TRM",
-		SQL => "SELECT COUNT(DISTINCT track) FROM trmjoin",
-	},
-	"count.track.Ntrms" => {
-		DESC => "Distribution of TRMs per track (varying TRMs)",
-		PREREQ => [qw[ count.track count.track.has_trm ]],
-		CALC => sub {
-			my ($self, $sql) = @_;
-
-			my $max_dist_tail = 10;
-
-			my $data = $sql->SelectListOfLists(
-				"SELECT c, COUNT(*) AS freq
-				FROM (
-					SELECT track, COUNT(*) AS c
-					FROM trmjoin
-					GROUP BY track
-				) AS t
-				GROUP BY c
-				",
-			);
-
-			my %dist = map { $_ => 0 } 1 .. $max_dist_tail;
-
-			for (@$data)
-			{
-				$dist{ $_->[0] } = $_->[1], next
-					if $_->[0] < $max_dist_tail;
-
-				$dist{$max_dist_tail} += $_->[1];
-			}
-
-			$dist{0} = $self->Fetch("count.track")
-				- $self->Fetch("count.track.has_trm");
-			
-			+{
-				map {
-					"count.track.".$_."trms" => $dist{$_}
-				} keys %dist
-			};
-		},
-	},
-
 	"count.puid.Ntracks" => {
 		DESC => "Distribution of tracks per PUID (collisions)",
 		CALC => sub {

Modified: mb_server/trunk/cgi-bin/TaggerSupport.pm
===================================================================
--- mb_server/trunk/cgi-bin/TaggerSupport.pm	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/TaggerSupport.pm	2008-05-30 19:15:39 UTC (rev 9856)
@@ -67,7 +67,6 @@
    $data{track} = $trackName;
    $data{trackid} = $trackId;
    $data{tracknum} = $trackNum;
-   $data{tmid} = $trmId;
    $data{duration} = $duration;
    $data{filename} = $fileName;
 
@@ -195,27 +194,6 @@
    return ("", $data, $flags, undef);
 }
 
-# Called by taglookup.html
-sub LookupTRMCollisions
-{
-   my ($this, $trm) = @_;
-   my $sql = Sql->new($this->{DBH});
-
-   my $data = $sql->SelectListOfHashes(
-   	"SELECT DISTINCT
-		albumjoin.album,
-		trmjoin.track
-	FROM	trm
-		INNER JOIN trmjoin ON trmjoin.trm = trm.id
-		INNER JOIN albumjoin ON albumjoin.track = trmjoin.track
-	WHERE	trm.trm = ?
-	ORDER BY 1, 2",
-	$trm,
-   );
-
-   @$data;
-}
-
 sub LookupPUIDCollisions
 {
    my ($this, $puid) = @_;
@@ -524,7 +502,6 @@
                         mbid=>$al->GetMBId(),
                         album_tracks=>$al->GetTrackCount(),
                         album_discids=>$al->GetDiscidCount(),
-                        album_trmids=>$al->GetTrmidCount(),
                         albumtype=>$albumtype});
            $this->{album} = $al if (scalar(@ids) == 1);
            $this->{album} = undef if (scalar(@ids) > 1);
@@ -570,7 +547,6 @@
                         mbid=>$al->GetMBId(),
                         album_tracks=>$al->GetTrackCount(),
                         album_discids=>$al->GetDiscidCount(),
-                        album_trmids=>$al->GetTrmidCount(),
                         albumtype=>$albumtype});
            $this->{fuzzy} = 1;
        }
@@ -660,9 +636,7 @@
    @ids = (sort { $b->{sim} <=> $a->{sim} } @ids);
    @ids = splice @ids, 0, $this->{maxitems};
    $query = qq|select album.id, album.name, album.gid, albumjoin.sequence, track,
-                      albummeta.tracks, albummeta.discids, albummeta.trmids,
-		      album.artist,
-		      album.attributes
+                      albummeta.tracks, albummeta.discids, album.artist, album.attributes
                  from Album, AlbumJoin, albummeta
                 where albumjoin.album = album.id and 
                       album.id = albummeta.id and
@@ -710,9 +684,8 @@
            $id->{albumid} = $row[0];
            $id->{album_tracks} = $row[5];
            $id->{album_discids} = $row[6];
-           $id->{album_trmids} = $row[7];
-           $id->{album_artist} = $row[8];
-           $id->{album_attrs} = $row[9];
+           $id->{album_artist} = $row[7];
+           $id->{album_attrs} = $row[8];
            $id->{albumid} = $row[0];
            $id->{artist} = $ar->GetName();
            $id->{artistmbid} = $ar->GetMBId();

Modified: mb_server/trunk/cgi-bin/mq.pl
===================================================================
--- mb_server/trunk/cgi-bin/mq.pl	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/mq.pl	2008-05-30 19:15:39 UTC (rev 9856)
@@ -62,104 +62,24 @@
         'http://musicbrainz.org/mm/mq-1.0#trackName',
         'http://musicbrainz.org/mm/mq-1.0#maxItems'],
    FindDistinctTRMID => 
-      [\&QuerySupport::FindDistinctTRM, 0, 
-        'http://musicbrainz.org/mm/mq-1.0#trackName',
-        'http://musicbrainz.org/mm/mq-1.0#artistName'],
+      [\&QuerySupport::GoodRiddance, 0],
    ExchangeMetadata =>
-      [\&QuerySupport::ExchangeMetadata, 0, 
-        'http://musicbrainz.org/mm/mq-1.0#artistName',
-        'http://musicbrainz.org/mm/mq-1.0#albumName',
-        'http://musicbrainz.org/mm/mq-1.0#trackName',
-        'http://musicbrainz.org/mm/mm-2.0#trackNum',
-        'http://musicbrainz.org/mm/mm-2.0#trmid',
-        'http://musicbrainz.org/mm/mm-2.0#fileName',
-        'http://musicbrainz.org/mm/mm-2.0#issued',
-        'http://musicbrainz.org/mm/mm-2.0#genre',
-        'http://purl.org/dc/elements/1.1/description',
-        'http://musicbrainz.org/mm/mm-2.0#duration',
-        'http://musicbrainz.org/mm/mm-2.0#bitprint',
-        'http://musicbrainz.org/mm/mm-2.0#first20',
-        'http://musicbrainz.org/mm/mm-2.0#fileSize',
-        'http://musicbrainz.org/mm/mm-2.0#audioSha1',
-        'http://musicbrainz.org/mm/mm-2.0#sampleRate',
-        'http://musicbrainz.org/mm/mm-2.0#bitRate',
-        'http://musicbrainz.org/mm/mm-2.0#channels',
-        'http://musicbrainz.org/mm/mm-2.0#vbr'],
+      [\&QuerySupport::GoodRiddance, 0],
    ExchangeMetadataLite =>
-      [\&QuerySupport::ExchangeMetadata, 0, 
-        'http://musicbrainz.org/mm/mq-1.0#artistName',
-        'http://musicbrainz.org/mm/mq-1.0#albumName',
-        'http://musicbrainz.org/mm/mq-1.0#trackName',
-        'http://musicbrainz.org/mm/mm-2.0#trackNum',
-        'http://musicbrainz.org/mm/mm-2.0#trmid',
-        'http://musicbrainz.org/mm/mm-2.0#fileName',
-        'http://musicbrainz.org/mm/mm-2.0#issued',
-        'http://musicbrainz.org/mm/mm-2.0#genre',
-        'http://purl.org/dc/elements/1.1/description',
-        'http://musicbrainz.org/mm/mm-2.0#duration',
-        'http://musicbrainz.org/mm/mm-2.0#sha1'],
+      [\&QuerySupport::GoodRiddance, 0],
    SubmitAndLookupMetadata =>
-      [\&QuerySupport::ExchangeMetadata, 0, 
-        'http://musicbrainz.org/mm/mq-1.0#trackName',
-        'http://musicbrainz.org/mm/mq-1.0#artistName',
-        'http://musicbrainz.org/mm/mq-1.0#albumName',
-        'http://musicbrainz.org/mm/mm-2.0#trackNum',
-        'http://musicbrainz.org/mm/mm-2.0#trmid',
-        'http://musicbrainz.org/mm/mm-2.0#fileName',
-        'http://musicbrainz.org/mm/mm-2.0#issued',
-        'http://musicbrainz.org/mm/mm-2.0#genre',
-        'http://purl.org/dc/elements/1.1/description',
-        'http://musicbrainz.org/mm/mm-2.0#duration',
-        'http://musicbrainz.org/mm/mm-2.0#bitprint',
-        'http://musicbrainz.org/mm/mm-2.0#first20',
-        'http://musicbrainz.org/mm/mm-2.0#fileSize',
-        'http://musicbrainz.org/mm/mm-2.0#audioSha1',
-        'http://musicbrainz.org/mm/mm-2.0#sampleRate',
-        'http://musicbrainz.org/mm/mm-2.0#bitRate',
-        'http://musicbrainz.org/mm/mm-2.0#channels',
-        'http://musicbrainz.org/mm/mm-2.0#vbr'],
+      [\&QuerySupport::GoodRiddance, 0],
    SubmitAndLookupMetadataLite =>
-      [\&QuerySupport::ExchangeMetadata, 0, 
-        'http://musicbrainz.org/mm/mq-1.0#trackName',
-        'http://musicbrainz.org/mm/mq-1.0#artistName',
-        'http://musicbrainz.org/mm/mq-1.0#albumName',
-        'http://musicbrainz.org/mm/mm-2.0#trackNum',
-        'http://musicbrainz.org/mm/mm-2.0#trmid',
-        'http://musicbrainz.org/mm/mm-2.0#fileName',
-        'http://musicbrainz.org/mm/mm-2.0#issued',
-        'http://musicbrainz.org/mm/mm-2.0#genre',
-        'http://purl.org/dc/elements/1.1/description',
-        'http://musicbrainz.org/mm/mm-2.0#duration',
-        'http://musicbrainz.org/mm/mm-2.0#sha1'],
+      [\&QuerySupport::GoodRiddance, 0],
    LookupMetadata =>
-      [\&QuerySupport::LookupMetadata, 0, 
-        'http://musicbrainz.org/mm/mm-2.0#trmid'],
-   SubmitTrack =>
-      [\&QuerySupport::SubmitTrack, 1, 
-        'http://musicbrainz.org/mm/mq-1.0#artistName',
-        'http://musicbrainz.org/mm/mq-1.0#albumName',
-        'http://musicbrainz.org/mm/mq-1.0#trackName',
-        'http://musicbrainz.org/mm/mm-2.0#trmid',
-        'http://musicbrainz.org/mm/mm-2.0#trackNum',
-        'http://musicbrainz.org/mm/mm-2.0#duration',
-        'http://musicbrainz.org/mm/mm-2.0#issued',
-        'http://musicbrainz.org/mm/mm-2.0#genre',
-        'http://purl.org/dc/elements/1.1/description',
-        'http://musicbrainz.org/mm/mm-2.0#link'],
+      [\&QuerySupport::GoodRiddance, 0],
    SubmitTRMList =>
-      [\&QuerySupport::SubmitTRMList, 1],
+      [\&QuerySupport::GoodRiddance, 0],
    AuthenticateQuery =>
       [\&QuerySupport::AuthenticateQuery, 0, 
         'http://musicbrainz.org/mm/mq-1.0#username'],
    QuickTrackInfoFromTRMId =>
-      [\&QuerySupport::QuickTrackInfoFromTRMId, 0, 
-        'http://musicbrainz.org/mm/mm-2.0#trmid',
-        'http://musicbrainz.org/mm/mq-1.0#artistName',
-        'http://musicbrainz.org/mm/mq-1.0#albumName',
-        'http://musicbrainz.org/mm/mq-1.0#trackName',
-        'http://musicbrainz.org/mm/mm-2.0#trackNum',
-        'http://musicbrainz.org/mm/mm-2.0#duration',
-        'http://musicbrainz.org/mm/mq-1.0#fileName'],
+      [\&QuerySupport::GoodRiddance, 0],
    QuickTrackInfoFromTrackId =>
       [\&QuerySupport::QuickTrackInfoFromTrackId, 0, 
         'http://musicbrainz.org/mm/mm-2.0#trackid',

Modified: mb_server/trunk/cgi-bin/mq_2_1.pl
===================================================================
--- mb_server/trunk/cgi-bin/mq_2_1.pl	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/mq_2_1.pl	2008-05-30 19:15:39 UTC (rev 9856)
@@ -62,40 +62,18 @@
         'http://musicbrainz.org/mm/mq-1.1#trackName',
         'http://musicbrainz.org/mm/mq-1.1#maxItems'],
    FindDistinctTRMID => 
-      [\&QuerySupport::FindDistinctTRM, 0, 
-        'http://musicbrainz.org/mm/mq-1.1#trackName',
-        'http://musicbrainz.org/mm/mq-1.1#artistName'],
+      [\&QuerySupport::GoodRiddance, 0],
    LookupMetadata =>
-      [\&QuerySupport::LookupMetadata, 0, 
-        'http://musicbrainz.org/mm/mm-2.1#trmid'],
-   SubmitTrack =>
-      [\&QuerySupport::SubmitTrack, 1, 
-        'http://musicbrainz.org/mm/mq-1.1#artistName',
-        'http://musicbrainz.org/mm/mq-1.1#albumName',
-        'http://musicbrainz.org/mm/mq-1.1#trackName',
-        'http://musicbrainz.org/mm/mm-2.1#trmid',
-        'http://musicbrainz.org/mm/mm-2.1#trackNum',
-        'http://musicbrainz.org/mm/mm-2.1#duration',
-        'http://musicbrainz.org/mm/mm-2.1#issued',
-        'http://musicbrainz.org/mm/mm-2.1#genre',
-        'http://purl.org/dc/elements/1.1/description',
-        'http://musicbrainz.org/mm/mm-2.1#link'],
+      [\&QuerySupport::GoodRiddance, 0],
    SubmitTRMList =>
-      [\&QuerySupport::SubmitTRMList, 1],
+      [\&QuerySupport::GoodRiddance, 1],
    SubmitTRMFeedback=>
-      [\&QuerySupport::SubmitTRMFeedback, 1],
+      [\&QuerySupport::GoodRiddance, 1],
    AuthenticateQuery =>
       [\&QuerySupport::AuthenticateQuery, 0, 
         'http://musicbrainz.org/mm/mq-1.1#username'],
    TrackInfoFromTRMId =>
-      [\&QuerySupport::TrackInfoFromTRMId, 0, 
-        'http://musicbrainz.org/mm/mm-2.1#trmid',
-        'http://musicbrainz.org/mm/mq-1.1#artistName',
-        'http://musicbrainz.org/mm/mq-1.1#albumName',
-        'http://musicbrainz.org/mm/mq-1.1#trackName',
-        'http://musicbrainz.org/mm/mm-2.1#trackNum',
-        'http://musicbrainz.org/mm/mm-2.1#duration',
-        'http://musicbrainz.org/mm/mq-1.1#fileName'],
+      [\&QuerySupport::GoodRiddance, 0],
    QuickTrackInfoFromTrackId =>
       [\&QuerySupport::QuickTrackInfoFromTrackId, 0, 
         'http://musicbrainz.org/mm/mm-2.1#trackid',
@@ -340,7 +318,6 @@
 if ($r)
 {
 	my $uri = "/mm-2.1/$queryname";
-	$uri .= "?$queryargs[0]" if $queryname eq "TrackInfoFromTRMId";
 	$r->the_request($r->method . " $uri " . $r->protocol);
 }
 

Modified: mb_server/trunk/cgi-bin/rdf.pl
===================================================================
--- mb_server/trunk/cgi-bin/rdf.pl	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/rdf.pl	2008-05-30 19:15:39 UTC (rev 9856)
@@ -37,7 +37,7 @@
    artist => \&QuerySupport::GetArtistByGlobalId,
    album => \&QuerySupport::GetAlbumByGlobalId,
    track => \&QuerySupport::GetTrackByGlobalId,
-   trmid => \&QuerySupport::GetTrackByTRM,
+   trmid => \&QuerySupport::GoodRiddance,
 );
 
 $depth = 2;

Modified: mb_server/trunk/cgi-bin/rdf_2_1.pl
===================================================================
--- mb_server/trunk/cgi-bin/rdf_2_1.pl	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/cgi-bin/rdf_2_1.pl	2008-05-30 19:15:39 UTC (rev 9856)
@@ -37,8 +37,8 @@
    artist => \&QuerySupport::GetArtistByGlobalId,
    album => \&QuerySupport::GetAlbumByGlobalId,
    track => \&QuerySupport::GetTrackByGlobalId,
-   trmid => \&QuerySupport::GetTrackByTRM,
-   trm => \&QuerySupport::GetTrackByTRM,
+   trmid => \&QuerySupport::GoodRiddance,
+   trm => \&QuerySupport::GoodRiddance,
    artistrel => \&QuerySupport::GetArtistRelationships,
    albumrel => \&QuerySupport::GetAlbumRelationships,
    trackrel => \&QuerySupport::GetTrackRelationships,

Modified: mb_server/trunk/htdocs/MM/index.html
===================================================================
--- mb_server/trunk/htdocs/MM/index.html	2008-05-29 22:41:36 UTC (rev 9855)
+++ mb_server/trunk/htdocs/MM/index.html	2008-05-30 19:15:39 UTC (rev 9856)
@@ -1,437 +1,7 @@
 <& /comp/sidebar, title=>'MusicBrainz Metadata Initiative 2.1' &>
 
-<table width="420">
-<tr><td>
-
-<center>
-Last revision: 2003-02-06 by <a href="mailto&#x3a;rob&#x0040;eorbit.net">Mayhem &amp; 
-Chaos</a>
-</center>
 <p>
+This Initiative has been replaced with <a href="/doc/MusicBrainzXMLMetaData">MusicBrainz XML MetaData</a>.
+</p>
 
-<font size="+1" color=990000>Table of Contents</font><p>
-
-<ul>
-<li><a href="#intro">Introduction</a>
-<li><a href="#protocol">General Protocol Definition</a>
-<li><a href="#mm">MusicBrainz Metadata Namespace</a>
-<li><a href="