]> mj.ucw.cz Git - pciids.git/commitdiff
New terminology, part 1 (database)
authorMichal Vaner <vorner@ucw.cz>
Fri, 29 Aug 2008 18:23:24 +0000 (20:23 +0200)
committerMichal Vaner <vorner@ucw.cz>
Fri, 29 Aug 2008 18:23:24 +0000 (20:23 +0200)
comment -> discussion
description -> note

PciIds/DBQ.pm
scripts/export.pl
scripts/feeddb.pl
scripts/importil.pl
scripts/importlog.pl
scripts/init
scripts/mailbot
scripts/transfer.pl
tables

index 02ca5c16d1fcbdb5410a8096fad19cc48414b3a9..7d4e6ef01d6a3a97ab4e16df36af4cc8c830107d 100644 (file)
@@ -5,8 +5,8 @@ use base 'PciIds::DBQAny';
 
 sub new( $ ) {
        my( $dbh ) = @_;
-       my $node = 'SELECT id, name, description, maincomment FROM locations WHERE parent = ? ORDER BY ';
-       my $noder = 'SELECT id, name, description, maincomment FROM locations WHERE parent = ? AND id LIKE ? ORDER BY ';
+       my $node = 'SELECT id, name, note, mainhistory FROM locations WHERE parent = ? ORDER BY ';
+       my $noder = 'SELECT id, name, note, mainhistory FROM locations WHERE parent = ? AND id LIKE ? ORDER BY ';
        return bless PciIds::DBQAny::new( $dbh, {
                'nodes-id' => $node.'id',
                'nodes-name' => $node.'name',
@@ -16,7 +16,7 @@ sub new( $ ) {
                'nodes-name-r' => $noder.'name',
                'nodes-rid-r' => $noder.'id DESC',
                'nodes-rname-r' => $noder.'name DESC',
-               'item' => 'SELECT parent, name, description, maincomment FROM locations WHERE id = ?',
+               'item' => 'SELECT parent, name, note, mainhistory FROM locations WHERE id = ?',
                'login' => 'SELECT id FROM users WHERE login = ?',
                'email' => 'SELECT id FROM users WHERE email = ?',
                'adduser' => 'INSERT INTO users (login, email, passwd) VALUES(?, ?, ?)',
@@ -28,25 +28,25 @@ sub new( $ ) {
                'setlastlog' => 'UPDATE users SET logtime = now(), lastlog = ? WHERE id = ?',
                'rights' => 'SELECT rightId FROM rights WHERE userId = ?',
                'newitem' => 'INSERT INTO locations (id, parent) VALUES(?, ?)',
-               'newcomment' => 'INSERT INTO history (location, owner, text, nodename, nodedescription) VALUES(?, ?, ?, ?, ?)',
-               'history' => 'SELECT history.id, history.text, history.time, history.nodename, history.nodedescription, history.seen, users.login FROM history LEFT OUTER JOIN users ON history.owner = users.id WHERE history.location = ? ORDER BY history.time',
+               'newcomment' => 'INSERT INTO history (location, owner, discussion, nodename, nodenote) VALUES(?, ?, ?, ?, ?)',
+               'history' => 'SELECT history.id, history.discussion, history.time, history.nodename, history.nodenote, history.seen, users.login FROM history LEFT OUTER JOIN users ON history.owner = users.id WHERE history.location = ? ORDER BY history.time',
                'admindump' => 'SELECT
-                       locations.id, locations.name, locations.description, locations.maincomment, musers.login, main.text,
-                       history.id, history.text, history.nodename, history.nodedescription, users.login
+                       locations.id, locations.name, locations.note, locations.mainhistory, musers.login, main.discussion,
+                       history.id, history.discussion, history.nodename, history.nodenote, users.login
                FROM
                        locations INNER JOIN history ON history.location = locations.id
                        LEFT OUTER JOIN users ON history.owner = users.id
-                       LEFT OUTER JOIN history AS main ON locations.maincomment = main.id
+                       LEFT OUTER JOIN history AS main ON locations.mainhistory = main.id
                        LEFT OUTER JOIN users AS musers ON main.owner = musers.id WHERE history.seen = "0"
                ORDER BY locations.id, history.id
-               LIMIT 15',#Dumps all new comments with their senders and corresponding main comments and names
+               LIMIT 15',#Dumps new comments with their senders and corresponding main comments and names
                'delete-hist' => 'DELETE FROM history WHERE id = ?',
                'mark-checked' => 'UPDATE history SET seen = 1 WHERE id = ?',
                'delete-item' => 'DELETE FROM locations WHERE id = ?',
                'set-maincomment' => 'UPDATE locations SET
-                               maincomment = ?,
+                               mainhistory = ?,
                                name = ( SELECT nodename FROM history WHERE id = ? ),
-                               description = ( SELECT nodedescription FROM history WHERE id = ? )
+                               note = ( SELECT nodenote FROM history WHERE id = ? )
                        WHERE
                                id = ?',
                'profiledata' => 'SELECT email, xmpp, login, mailgather, xmppgather FROM users WHERE id = ?',
@@ -56,17 +56,17 @@ sub new( $ ) {
                'notifdata' => 'SELECT recursive, type, notification FROM notifications WHERE user = ? AND location = ?',
                'drop-notif' => 'DELETE FROM notifications WHERE user = ? AND location = ?',
                'new-notif' => 'INSERT INTO notifications (user, location, recursive, type, notification) VALUES (?, ?, ?, ?, ?)',
-               'notify' => 'INSERT INTO pending (user, comment, notification, reason) SELECT DISTINCT user, ?, ?, ? FROM notifications WHERE ( notification = 2 OR notification = ? ) AND type <= ? AND ( location = ? OR ( SUBSTR( ?, 1, LENGTH( location ) ) = location ) )',
+               'notify' => 'INSERT INTO pending (user, history, notification, reason) SELECT DISTINCT user, ?, ?, ? FROM notifications WHERE ( notification = 2 OR notification = ? ) AND type <= ? AND ( location = ? OR ( SUBSTR( ?, 1, LENGTH( location ) ) = location ) )',
                'newtime-mail' => 'UPDATE users SET nextmail = FROM_UNIXTIME( UNIX_TIMESTAMP( NOW() ) + 60 * mailgather ) WHERE nextmail < NOW() AND EXISTS ( SELECT 1 FROM notifications WHERE ( notification = 0 OR notification = 2 ) AND type <= ? AND ( location = ? OR ( SUBSTR( ?, 1, LENGTH( location ) ) = location ) ) )',
                'newtime-xmpp' => 'UPDATE users SET nextxmpp = FROM_UNIXTIME( UNIX_TIMESTAMP( NOW() ) + 60 * xmppgather ) WHERE nextxmpp < NOW() AND EXISTS ( SELECT 1 FROM notifications WHERE ( notification = 1 OR notification = 2 ) AND type <= ? AND ( location = ? OR ( SUBSTR( ?, 1, LENGTH( location ) ) = location ) ) )',
                'mailout' => 'SELECT
                                pending.user, users.email,
-                               pending.reason, history.text, history.nodename, history.nodedescription, history.time,
-                               auth.login, history.location, locations.name, locations.description
+                               pending.reason, history.discussion, history.nodename, history.nodenote, history.time,
+                               auth.login, history.location, locations.name, locations.note
                        FROM
                                pending
                                INNER JOIN users ON users.id = pending.user
-                               INNER JOIN history ON history.id = pending.comment
+                               INNER JOIN history ON history.id = pending.history
                                INNER JOIN locations ON history.location = locations.id
                                INNER JOIN users AS auth ON auth.id = history.owner
                        WHERE
@@ -76,12 +76,12 @@ sub new( $ ) {
                                pending.user, pending.reason, history.time, history.location',
                'xmppout' => 'SELECT
                                pending.user, users.xmpp,
-                               pending.reason, history.text, history.nodename, history.nodedescription, history.time,
-                               auth.login, history.location, locations.name, locations.description
+                               pending.reason, history.discussion, history.nodename, history.nodenote, history.time,
+                               auth.login, history.location, locations.name, locations.note
                        FROM
                                pending
                                INNER JOIN users ON users.id = pending.user
-                               INNER JOIN history ON history.id = pending.comment
+                               INNER JOIN history ON history.id = pending.history
                                INNER JOIN locations ON history.location = locations.id
                                INNER JOIN users AS auth ON auth.id = history.owner
                        WHERE
index 1acf068b68292b41422b189709372344a4a9acc1..ac55810cafa108b8333bb96033ca341f0a67123c 100755 (executable)
@@ -9,7 +9,7 @@ use PciIds::Db;
 use PciIds::DBQAny;
 
 my $db = PciIds::DBQAny::new( connectDb(), {
-       'list' => 'SELECT id, name, description FROM locations WHERE name IS NOT NULL ORDER BY id'
+       'list' => 'SELECT id, name, note FROM locations WHERE name IS NOT NULL ORDER BY id'
 } );
 
 foreach( @{$db->query( 'list', [] )} ) {
index e3a71ca2b0950f3d0e2be185de5ecfab91222757..66d17dd15c9a1f53f2dee1df6d1de736a2e660b8 100755 (executable)
@@ -9,9 +9,9 @@ use PciIds::Db;
 use DBI;
 
 my $dbh = connectDb();
-my $query = $dbh->prepare( "INSERT INTO locations (id, name, description, parent) VALUES(?, ?, ?, ?);" ) or die "Could not create the query (".DBI->errstr.")\n";
-my $comment = $dbh->prepare( "INSERT INTO history (location, nodename, nodedescription, seen) VALUES(?, ?, ?, '1')" ) or die "Could not create query (".DBI->errstr.")\n";
-my $update = $dbh->prepare( "UPDATE locations SET maincomment = ? WHERE id = ?" ) or die "Could not create query (".DBI->errstr.")\n";
+my $query = $dbh->prepare( "INSERT INTO locations (id, name, note, parent) VALUES(?, ?, ?, ?);" ) or die "Could not create the query (".DBI->errstr.")\n";
+my $comment = $dbh->prepare( "INSERT INTO history (location, nodename, nodenote, seen) VALUES(?, ?, ?, '1')" ) or die "Could not create query (".DBI->errstr.")\n";
+my $update = $dbh->prepare( "UPDATE locations SET mainhistory = ? WHERE id = ?" ) or die "Could not create query (".DBI->errstr.")\n";
 my( $vendor, $type, $sub, $description, $name );
 
 $query->execute( "PC", undef, undef, undef ) or die "Could not add toplevel node\n";
index c149567bf0f819f63ccf7a50956cc4f9163e2af8..add02d1a8a4f0c3767fd646b6d686159ed3cdbb8 100755 (executable)
@@ -12,8 +12,8 @@ use PciIds::Users;
 my $dbh = connectDb();
 print "Deleting all PCI devices\n";
 $dbh->prepare( "DELETE FROM locations WHERE id like 'PC/%'" )->execute();
-my $newcomment = $dbh->prepare( 'INSERT INTO history (owner, location, time, nodename, nodedescription, text) VALUES (?, ?, FROM_UNIXTIME(?), ?, ?, ?)' );
-my $mismatch = $dbh->prepare( "INSERT INTO history (location, nodename, nodedescription, seen) VALUES(?, ?, ?, '1')" );
+my $newcomment = $dbh->prepare( 'INSERT INTO history (owner, location, time, nodename, nodenote, discussion) VALUES (?, ?, FROM_UNIXTIME(?), ?, ?, ?)' );
+my $mismatch = $dbh->prepare( "INSERT INTO history (location, nodename, nodenote, seen) VALUES(?, ?, ?, '1')" );
 my $db = PciIds::DBQ::new( $dbh );
 my @toMark;
 my %ids;
index df75d92b3b5a34000a4b7f4c59b63be4b301f61a..edb40a60f0782c6d5cea1e901a1c8c4d6fbdefd6 100755 (executable)
@@ -17,13 +17,13 @@ sub translateLoc( $ ) {
 my $dbh = connectDb();
 my $clearHist = $dbh->prepare( 'DELETE FROM history WHERE location = ?' );
 my %coms;
-my $com = $dbh->prepare( 'INSERT INTO history (owner, location, time, nodename, nodedescription) VALUES (?, ?, FROM_UNIXTIME(?), ?, ?)' );
+my $com = $dbh->prepare( 'INSERT INTO history (owner, location, time, nodename, nodenote) VALUES (?, ?, FROM_UNIXTIME(?), ?, ?)' );
 my $user = $dbh->prepare( 'SELECT id FROM users WHERE email = ?' );
 my $delHis = $dbh->prepare( 'DELETE FROM history WHERE id = ?' );
 my $markMain = $dbh->prepare( 'UPDATE locations SET
-                               maincomment = ?,
+                               mainhistory = ?,
                                name = ( SELECT nodename FROM history WHERE id = ? ),
-                               description = ( SELECT nodedescription FROM history WHERE id = ? )
+                               note = ( SELECT nodenote FROM history WHERE id = ? )
                        WHERE
                                id = ?' );
 my $markSeen = $dbh->prepare( "UPDATE history SET seen = '1' WHERE id = ?" );
index 30cc1a932b54eed0461d984ac99bea0a592d92ea..6bc8df3f1e9b3b04f16ed9614c76caa0da8f4147 100755 (executable)
@@ -1,6 +1,7 @@
 ./scripts/initdb.pl
 ./scripts/feeddb.pl pci.ids
-./scripts/transfer.pl pciidsold
-./scripts/importlog.pl iii.log
+#./scripts/transfer.pl pciidsold
+#./scripts/importlog.pl iii.log
+./scripts/importil.pl ~/iii.out
 echo 'Database is prepared, but it does not contain admins. Add them manually, please.'
 echo 'Just register like ordinary user and run ./scripts/rights.pl + username validate'
index e8a4a3be9c78e615bfecd91aaf2c03574b4288da..9b6bcfc8eae5a76ac0a0560fda49c27c20cadf91 100755 (executable)
@@ -37,7 +37,7 @@ my $hasAuth = $tables->dbh()->prepare( 'SELECT id FROM users WHERE email = ?' );
 my $addAuth = $tables->dbh()->prepare( "INSERT INTO users (email, passwd) VALUES(?, '')" );
 my $hasItem = $tables->dbh()->prepare( "SELECT 1 FROM locations WHERE id = ?" );
 my $addItem = $tables->dbh()->prepare( "INSERT INTO locations (id, parent) VALUES (?, ?)" );
-my $addComment = $tables->dbh()->prepare( "INSERT INTO history (owner, location, text, nodename, nodedescription) VALUES (?, ?, ?, ?, ?)" );
+my $addComment = $tables->dbh()->prepare( "INSERT INTO history (owner, location, discussion, nodename, nodenote) VALUES (?, ?, ?, ?, ?)" );
 
 sub getAuthor( $ ) {
        my( $mail ) = @_;
index 14c5a9af4674059036fda41213bb6275fa4d0bee..fde17ffc71a14dfd31999b3ff082048942977814 100755 (executable)
@@ -32,11 +32,11 @@ print "Submiting items from database\n";
 
 my $itemq = $olddb->prepare( "SELECT id, name, comment, author, status, type FROM ids ORDER BY LENGTH(id), id" );
 my $itemp = $newdb->prepare( "INSERT INTO locations (id, parent) VALUES (?, ?)" );
-my $comp = $newdb->prepare( "INSERT INTO history (owner, location, nodename, nodedescription, seen, time) VALUES (?, ?, ?, ?, ?, '2000-01-01 00:00:00')" );
+my $comp = $newdb->prepare( "INSERT INTO history (owner, location, nodename, nodenote, seen, time) VALUES (?, ?, ?, ?, ?, '2000-01-01 00:00:00')" );
 my $setMain = $newdb->prepare( 'UPDATE locations SET
-                               maincomment = ?,
+                               mainhistory = ?,
                                name = ( SELECT nodename FROM history WHERE id = ? ),
-                               description = ( SELECT nodedescription FROM history WHERE id = ? )
+                               note = ( SELECT nodenote FROM history WHERE id = ? )
                        WHERE
                                id = ?' );
 
diff --git a/tables b/tables
index f42c6118a130e7168d446d94e28465858b86331a..680780add77e8dd1fa91fb2d8f058fe69dc38de7 100644 (file)
--- a/tables
+++ b/tables
@@ -28,9 +28,9 @@ nextxmpp TIMESTAMP#When do we send pending xmpp notifications?
 #
 id VARCHAR(50) <<CHARSET>> NOT NULL UNIQUE PRIMARY KEY,#The name of the location, must be just node, no / at the end
 parent VARCHAR(50) <<CHARSET>>,#To allow selecting of all node's children
-maincomment INT UNSIGNED,#Reference for the main comment
-name TINYTEXT <<CHARSET>>,#Should match the one of main comment, if any (if no main comment, name can be set too)
-description TEXT <<CHARSET>>,#Should match the one of main comment (if no main comment, can be set too)
+mainhistory INT UNSIGNED,#Reference for the main history
+name TINYTEXT <<CHARSET>>,#Should match the one of main history, if any (if no main history, name can be set too)
+note TEXT <<CHARSET>>,#Should match the one of main history (if no main history, can be set too)
 CONSTRAINT parent_ref FOREIGN KEY (parent) REFERENCES locations(id) ON DELETE CASCADE
 
 @rights
@@ -42,14 +42,14 @@ CONSTRAINT right_user FOREIGN KEY (userId) REFERENCES users(id) ON DELETE CASCAD
 PRIMARY KEY (userId, rightId)
 
 @history
-#Contains the comments in the discussion
+#Contains the discussion and history of items
 id INT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE PRIMARY KEY,
 owner INT UNSIGNED,#Who posted it?
 location VARCHAR(50) <<CHARSET>> NOT NULL,#Where it belongs
-text TEXT <<CHARSET>>,
+discussion TEXT <<CHARSET>>,
 time TIMESTAMP NOT NULL DEFAULT NOW(),#When this was added
 nodename TINYTEXT <<CHARSET>>,#Modification of the location name
-nodedescription TEXT <<CHARSET>>,#Modification of the location comment
+nodenote TEXT <<CHARSET>>,#Modification of the location note
 seen BOOLEAN NOT NULL DEFAULT '0', #Did some admin see this, or is it still unseen?
 CONSTRAINT history_location FOREIGN KEY (location) REFERENCES locations(id) ON DELETE CASCADE,
 CONSTRAINT history_owner FOREIGN KEY (owner) REFERENCES users(id) ON DELETE SET NULL
@@ -60,9 +60,9 @@ user INT UNSIGNED NOT NULL,#Who wants it
 location VARCHAR(50) <<CHARSET>> NOT NULL,#Where
 recursive BOOLEAN NOT NULL DEFAULT '0',
 type SMALLINT NOT NULL,#When to send
-#0: Comment -- When a new comment is posted
-#1: Description -- Name or comment changed
-#2: MainComment -- The main comment changed
+#0: History -- When a new discussion is posted
+#1: Description -- Name or note changed
+#2: MainHistory -- The main history changed
 #All contains the less common events
 notification SMALLINT NOT NULL,
 #0: mail only
@@ -75,14 +75,14 @@ PRIMARY KEY (user, location)
 @pending
 #Contains the pending notifications
 user INT UNSIGNED NOT NULL,
-comment INT UNSIGNED NOT NULL,
+history INT UNSIGNED NOT NULL,
 notification SMALLINT NOT NULL,
 #0: mail
 #1: xmpp
 #If a notification generates both, it splits to 2 of them
 reason SMALLINT NOT NULL,
 #0: New item
-#1: New comment
+#1: New history
 #2: Changed main article
-CONSTRAINT pending_comment FOREIGN KEY (comment) REFERENCES history(id) ON DELETE CASCADE,
+CONSTRAINT pending_history FOREIGN KEY (history) REFERENCES history(id) ON DELETE CASCADE,
 CONSTRAINT pending_user FOREIGN KEY (user) REFERENCES users(id) ON DELETE CASCADE