projects
/
id3fs.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
317d434
)
tags(): self-join: postgres fixes
author
Ian Beckwith
<ianb@erislabs.net>
Thu, 23 Sep 2010 02:40:56 +0000
(
03:40
+0100)
committer
Ian Beckwith
<ianb@erislabs.net>
Thu, 23 Sep 2010 02:40:56 +0000
(
03:40
+0100)
lib/ID3FS/DB.pm
patch
|
blob
|
history
diff --git
a/lib/ID3FS/DB.pm
b/lib/ID3FS/DB.pm
index
d0382e8
..
ac84aa0
100644
(file)
--- a/
lib/ID3FS/DB.pm
+++ b/
lib/ID3FS/DB.pm
@@
-115,15
+115,17
@@
sub tags
" INNER JOIN tags ON tags.id=fxt2.tags_id\n" .
" WHERE fxt1.tags_id IN \n\t(");
my $main_sql_mid=")\n\tAND fxt2.tags_id NOT IN \n\t(";
" INNER JOIN tags ON tags.id=fxt2.tags_id\n" .
" WHERE fxt1.tags_id IN \n\t(");
my $main_sql_mid=")\n\tAND fxt2.tags_id NOT IN \n\t(";
- my $main_sql_end=")\n GROUP BY
fxt2.tags_id
;";
+ my $main_sql_end=")\n GROUP BY
tags.name
;";
while(my $constraint=shift @constraints)
{
print "CONSTRAINT: $constraint->{name}\n";
my $cid=$constraint->{id};
push(@tag_ids, $cid);
}
while(my $constraint=shift @constraints)
{
print "CONSTRAINT: $constraint->{name}\n";
my $cid=$constraint->{id};
push(@tag_ids, $cid);
}
- my $sql = ($main_sql_start . join(", ", map { "\"$_\""; } @tag_ids) .
- $main_sql_mid . join(", ", map { "\"$_\""; } @tag_ids) .
+ @tag_ids = map( { "\"$_\""; } @tag_ids) unless($self->{postgres});
+ my $tagstr=join(", ", @tag_ids);
+ my $sql = ($main_sql_start . $tagstr .
+ $main_sql_mid . $tagstr .
$main_sql_end);
print "SQL: $sql\n";
my $result=$self->cmd_rows($sql);
$main_sql_end);
print "SQL: $sql\n";
my $result=$self->cmd_rows($sql);