projects
/
id3fs.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e008120
)
tidy DB
author
Ian Beckwith
<ianb@erislabs.net>
Tue, 19 Oct 2010 06:43:22 +0000
(07:43 +0100)
committer
Ian Beckwith
<ianb@erislabs.net>
Tue, 19 Oct 2010 06:43:22 +0000
(07:43 +0100)
lib/ID3FS/DB.pm
patch
|
blob
|
history
diff --git
a/lib/ID3FS/DB.pm
b/lib/ID3FS/DB.pm
index
74a82b5
..
273f6dc
100644
(file)
--- a/
lib/ID3FS/DB.pm
+++ b/
lib/ID3FS/DB.pm
@@
-23,7
+23,7
@@
use ID3FS::AudioFile;
use Cwd;
our $SCHEMA_VERSION=1;
use Cwd;
our $SCHEMA_VERSION=1;
-my $dbfile=".id3fs";
+my $dbfile=".id3fs";
# default
sub new
{
sub new
{
@@
-60,6
+60,7
@@
sub new
return $self;
}
return $self;
}
+# search parent directories for db
sub find_db
{
# class method
sub find_db
{
# class method
@@
-163,7
+164,6
@@
sub tags_with_values
my $sql=("SELECT p.name, t.name FROM tags t\n" .
"INNER JOIN tags p ON t.parents_id=p.id\n" .
"GROUP BY p.name, t.name\n");
my $sql=("SELECT p.name, t.name FROM tags t\n" .
"INNER JOIN tags p ON t.parents_id=p.id\n" .
"GROUP BY p.name, t.name\n");
-# print "SQL: $sql\n";
my $result=$self->cmd_rows($sql);
my $tags={};
for my $pair (@$result)
my $result=$self->cmd_rows($sql);
my $tags={};
for my $pair (@$result)
@@
-206,9
+206,7
@@
sub relativise
{
shift(@path);
shift(@rel);
{
shift(@path);
shift(@rel);
-# print "POP ";
}
}
-# print "\n";
my $upcount=scalar(@rel);
my $result="../" x $upcount;
$result .= join("/",@path);
my $upcount=scalar(@rel);
my $result="../" x $upcount;
$result .= join("/",@path);
@@
-350,7
+348,6
@@
sub files_in
my $sql=("SELECT files.name FROM files\n" .
"INNER JOIN paths ON files.paths_id=paths.id\n" .
"WHERE paths.name=?\n");
my $sql=("SELECT files.name FROM files\n" .
"INNER JOIN paths ON files.paths_id=paths.id\n" .
"WHERE paths.name=?\n");
-# print "files_in: SQL: $sql\n";
return($self->cmd_firstcol($sql, $dir));
}
return($self->cmd_firstcol($sql, $dir));
}
@@
-390,7
+387,6
@@
sub prune_paths
return unless(@ids);
my $sql=("DELETE FROM files WHERE paths_id IN (\n\t" .
join(', ', map { "\"$_\""; } @ids). "\n\t)");
return unless(@ids);
my $sql=("DELETE FROM files WHERE paths_id IN (\n\t" .
join(', ', map { "\"$_\""; } @ids). "\n\t)");
-# print "SQL: \n", $sql, "\n";
$self->cmd($sql);
}
$self->cmd($sql);
}
@@
-452,6
+448,7
@@
sub ok
return(defined($thing) && length($thing) && $thing =~ /\S+/);
}
return(defined($thing) && length($thing) && $thing =~ /\S+/);
}
+# actually call the database
sub cmd_sth
{
my($self, $sql, @params)=@_;
sub cmd_sth
{
my($self, $sql, @params)=@_;
@@
-466,6
+463,7
@@
sub cmd_sth
return $sth;
}
return $sth;
}
+# pass cmd to db, ignore response
sub cmd
{
my ($self, @args)=@_;
sub cmd
{
my ($self, @args)=@_;
@@
-473,6
+471,7
@@
sub cmd
$self->cmd_sth(@args);
}
$self->cmd_sth(@args);
}
+# return one row
sub cmd_onerow
{
my ($self, @args)=@_;
sub cmd_onerow
{
my ($self, @args)=@_;
@@
-480,6
+479,7
@@
sub cmd_onerow
return($sth->fetchrow_array());
}
return($sth->fetchrow_array());
}
+# returns all rows
sub cmd_rows
{
my ($self, @args)=@_;
sub cmd_rows
{
my ($self, @args)=@_;
@@
-487,12
+487,14
@@
sub cmd_rows
return $sth->fetchall_arrayref();
}
return $sth->fetchall_arrayref();
}
+# returns just the first column
sub cmd_firstcol
{
my ($self, @args)=@_;
return(map { $_->[0] } @{$self->cmd_rows(@args)});
}
sub cmd_firstcol
{
my ($self, @args)=@_;
return(map { $_->[0] } @{$self->cmd_rows(@args)});
}
+# runs cmd, returns id of last insert
sub cmd_id
{
my ($self, @args)=@_;
sub cmd_id
{
my ($self, @args)=@_;
@@
-506,6
+508,7
@@
sub last_insert_id
return $self->{dbh}->last_insert_id("","","","");
}
return $self->{dbh}->last_insert_id("","","","");
}
+# lookup id of $name in $table, also matching on $parent if needed
sub lookup_id
{
my($self, $table, $name, $parent)=@_;
sub lookup_id
{
my($self, $table, $name, $parent)=@_;