Improve select for files table by removing f.media_kind = 32 from the
queries (forked_daapd has no media_kind = 32).
This commit is contained in:
parent
46f770b52d
commit
1981237638
|
@ -69,11 +69,7 @@ expr returns [ pANTLR3_STRING result, int valid ]
|
||||||
@init { $result = NULL; $valid = 1; }
|
@init { $result = NULL; $valid = 1; }
|
||||||
: ^(OPAND a = expr b = expr)
|
: ^(OPAND a = expr b = expr)
|
||||||
{
|
{
|
||||||
if (!$a.valid || !$b.valid)
|
if ($a.valid && $b.valid)
|
||||||
{
|
|
||||||
$valid = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
$result = $a.result->factory->newRaw($a.result->factory);
|
$result = $a.result->factory->newRaw($a.result->factory);
|
||||||
$result->append8($result, "(");
|
$result->append8($result, "(");
|
||||||
|
@ -82,14 +78,24 @@ expr returns [ pANTLR3_STRING result, int valid ]
|
||||||
$result->appendS($result, $b.result);
|
$result->appendS($result, $b.result);
|
||||||
$result->append8($result, ")");
|
$result->append8($result, ")");
|
||||||
}
|
}
|
||||||
}
|
else if ($a.valid)
|
||||||
| ^(OPOR a = expr b = expr)
|
{
|
||||||
{
|
$result = $a.result->factory->newRaw($a.result->factory);
|
||||||
if (!$a.valid || !$b.valid)
|
$result->appendS($result, $a.result);
|
||||||
|
}
|
||||||
|
else if ($b.valid)
|
||||||
|
{
|
||||||
|
$result = $b.result->factory->newRaw($b.result->factory);
|
||||||
|
$result->appendS($result, $b.result);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
$valid = 0;
|
$valid = 0;
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
|
| ^(OPOR a = expr b = expr)
|
||||||
|
{
|
||||||
|
if ($a.valid && $b.valid)
|
||||||
{
|
{
|
||||||
$result = $a.result->factory->newRaw($a.result->factory);
|
$result = $a.result->factory->newRaw($a.result->factory);
|
||||||
$result->append8($result, "(");
|
$result->append8($result, "(");
|
||||||
|
@ -98,6 +104,20 @@ expr returns [ pANTLR3_STRING result, int valid ]
|
||||||
$result->appendS($result, $b.result);
|
$result->appendS($result, $b.result);
|
||||||
$result->append8($result, ")");
|
$result->append8($result, ")");
|
||||||
}
|
}
|
||||||
|
else if ($a.valid)
|
||||||
|
{
|
||||||
|
$result = $a.result->factory->newRaw($a.result->factory);
|
||||||
|
$result->appendS($result, $a.result);
|
||||||
|
}
|
||||||
|
else if ($b.valid)
|
||||||
|
{
|
||||||
|
$result = $b.result->factory->newRaw($b.result->factory);
|
||||||
|
$result->appendS($result, $b.result);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$valid = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
| STR
|
| STR
|
||||||
{
|
{
|
||||||
|
@ -201,8 +221,8 @@ expr returns [ pANTLR3_STRING result, int valid ]
|
||||||
|| strcmp((char *)field, "daap.songalbum") == 0))
|
|| strcmp((char *)field, "daap.songalbum") == 0))
|
||||||
{
|
{
|
||||||
DPRINTF(E_DBG, L_DAAP, "Ignoring clause '\%s\%s\%c'\n", field, (neg_op) ? "!" : "", op);
|
DPRINTF(E_DBG, L_DAAP, "Ignoring clause '\%s\%s\%c'\n", field, (neg_op) ? "!" : "", op);
|
||||||
$result->append8($result, "1 = 1");
|
$valid = 0;
|
||||||
goto STR_out;
|
goto STR_result_valid_0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Need to check against NULL too */
|
/* Need to check against NULL too */
|
||||||
|
@ -210,8 +230,6 @@ expr returns [ pANTLR3_STRING result, int valid ]
|
||||||
$result->append8($result, "(");
|
$result->append8($result, "(");
|
||||||
}
|
}
|
||||||
|
|
||||||
$result->append8($result, dqfm->db_col);
|
|
||||||
|
|
||||||
/* Int field: check integer conversion */
|
/* Int field: check integer conversion */
|
||||||
if (dqfm->as_int)
|
if (dqfm->as_int)
|
||||||
{
|
{
|
||||||
|
@ -236,6 +254,16 @@ expr returns [ pANTLR3_STRING result, int valid ]
|
||||||
}
|
}
|
||||||
|
|
||||||
*end = '\0'; /* Cut out potential garbage - we're being kind */
|
*end = '\0'; /* Cut out potential garbage - we're being kind */
|
||||||
|
|
||||||
|
/* forked-daapd only has media_kind = 1 for music - so remove media_kind = 32 to imporve select query performance. */
|
||||||
|
if (llval == 32
|
||||||
|
&& (strcmp((char *)field, "com.apple.itunes.mediakind") == 0
|
||||||
|
|| strcmp((char *)field, "com.apple.itunes.extended-media-kind") == 0))
|
||||||
|
{
|
||||||
|
DPRINTF(E_DBG, L_DAAP, "Ignoring clause '\%s\%s\%c\%s'\n", field, (neg_op) ? "!" : "", op, val);
|
||||||
|
$valid = 0;
|
||||||
|
goto STR_result_valid_0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/* String field: escape string, check for '*' */
|
/* String field: escape string, check for '*' */
|
||||||
else
|
else
|
||||||
|
@ -269,6 +297,8 @@ expr returns [ pANTLR3_STRING result, int valid ]
|
||||||
val[strlen((char *)val) - 1] = '\%';
|
val[strlen((char *)val) - 1] = '\%';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$result->append8($result, dqfm->db_col);
|
||||||
|
|
||||||
switch(op)
|
switch(op)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue