mirror of
https://github.com/netzbegruenung/circles.git
synced 2024-05-14 17:16:05 +02:00
Fix not using index on short id
This commit is contained in:
parent
6fb39a4b3e
commit
2edb05eb9e
|
@ -226,7 +226,7 @@ class CircleProviderRequestBuilder extends CoreRequestBuilder {
|
||||||
|
|
||||||
$tmpOrX = $expr->eq(
|
$tmpOrX = $expr->eq(
|
||||||
's.share_with',
|
's.share_with',
|
||||||
$qb->createFunction('SUBSTR(`c`.`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH . ')')
|
'c.unique_short_id'
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($shareId === -1) {
|
if ($shareId === -1) {
|
||||||
|
@ -257,7 +257,7 @@ class CircleProviderRequestBuilder extends CoreRequestBuilder {
|
||||||
'c', CoreRequestBuilder::TABLE_MEMBERS, 'mo', $expr->andX(
|
'c', CoreRequestBuilder::TABLE_MEMBERS, 'mo', $expr->andX(
|
||||||
$expr->eq(
|
$expr->eq(
|
||||||
'mo.circle_id',
|
'mo.circle_id',
|
||||||
$qb->createFunction('SUBSTR(`c`.`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH . ')')
|
'c.unique_short_id'
|
||||||
), $expr->eq('mo.user_type', $qb->createNamedParameter(Member::TYPE_USER)),
|
), $expr->eq('mo.user_type', $qb->createNamedParameter(Member::TYPE_USER)),
|
||||||
$expr->eq('mo.level', $qb->createNamedParameter(Member::LEVEL_OWNER))
|
$expr->eq('mo.level', $qb->createNamedParameter(Member::LEVEL_OWNER))
|
||||||
)
|
)
|
||||||
|
@ -307,9 +307,7 @@ class CircleProviderRequestBuilder extends CoreRequestBuilder {
|
||||||
$andX->add(
|
$andX->add(
|
||||||
$expr->eq(
|
$expr->eq(
|
||||||
'm.circle_id',
|
'm.circle_id',
|
||||||
$qb->createFunction(
|
'c.unique_short_id'
|
||||||
'SUBSTR(`c`.`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH . ')'
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -334,7 +332,7 @@ class CircleProviderRequestBuilder extends CoreRequestBuilder {
|
||||||
$expr->andX(
|
$expr->andX(
|
||||||
$expr->eq(
|
$expr->eq(
|
||||||
'g.circle_id',
|
'g.circle_id',
|
||||||
$qb->createFunction('SUBSTR(`c`.`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH . ')')
|
'c.unique_short_id'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
|
@ -143,7 +143,7 @@ class CirclesRequest extends CirclesRequestBuilder {
|
||||||
$qb = $this->getCirclesSelectSql();
|
$qb = $this->getCirclesSelectSql();
|
||||||
$this->leftJoinUserIdAsViewer($qb, $userId);
|
$this->leftJoinUserIdAsViewer($qb, $userId);
|
||||||
$this->leftJoinOwner($qb);
|
$this->leftJoinOwner($qb);
|
||||||
$this->leftJoinNCGroupAndUser($qb, $userId, '`c`.`unique_id`');
|
$this->leftJoinNCGroupAndUser($qb, $userId, 'c.unique_short_id');
|
||||||
|
|
||||||
if ($level > 0) {
|
if ($level > 0) {
|
||||||
$this->limitToLevel($qb, $level, ['u', 'g']);
|
$this->limitToLevel($qb, $level, ['u', 'g']);
|
||||||
|
@ -178,7 +178,7 @@ class CirclesRequest extends CirclesRequestBuilder {
|
||||||
|
|
||||||
$this->leftJoinUserIdAsViewer($qb, $viewerId);
|
$this->leftJoinUserIdAsViewer($qb, $viewerId);
|
||||||
$this->leftJoinOwner($qb);
|
$this->leftJoinOwner($qb);
|
||||||
$this->leftJoinNCGroupAndUser($qb, $viewerId, '`c`.`unique_id`');
|
$this->leftJoinNCGroupAndUser($qb, $viewerId, 'c.unique_short_id');
|
||||||
|
|
||||||
$this->limitRegardingCircleType($qb, $viewerId, $circleUniqueId, Circle::CIRCLES_ALL, '');
|
$this->limitRegardingCircleType($qb, $viewerId, $circleUniqueId, Circle::CIRCLES_ALL, '');
|
||||||
|
|
||||||
|
|
|
@ -180,9 +180,7 @@ class CirclesRequestBuilder extends CoreRequestBuilder {
|
||||||
->add(
|
->add(
|
||||||
$expr->eq(
|
$expr->eq(
|
||||||
$qb->createNamedParameter($circleUniqueId),
|
$qb->createNamedParameter($circleUniqueId),
|
||||||
$qb->createFunction(
|
'c.unique_short_id'
|
||||||
'SUBSTR(`c`.`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH . ')'
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -263,10 +261,7 @@ class CirclesRequestBuilder extends CoreRequestBuilder {
|
||||||
$expr->andX(
|
$expr->andX(
|
||||||
$expr->eq(
|
$expr->eq(
|
||||||
'u.circle_id',
|
'u.circle_id',
|
||||||
$qb->createFunction(
|
$this->default_select_alias . '.unique_short_id'
|
||||||
'SUBSTR(' . $pf . '`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH
|
|
||||||
. ')'
|
|
||||||
)
|
|
||||||
),
|
),
|
||||||
$expr->eq('u.user_id', $qb->createNamedParameter($userId)),
|
$expr->eq('u.user_id', $qb->createNamedParameter($userId)),
|
||||||
$expr->eq('u.user_type', $qb->createNamedParameter(Member::TYPE_USER))
|
$expr->eq('u.user_type', $qb->createNamedParameter(Member::TYPE_USER))
|
||||||
|
@ -297,11 +292,8 @@ class CirclesRequestBuilder extends CoreRequestBuilder {
|
||||||
$this->default_select_alias, CoreRequestBuilder::TABLE_MEMBERS, 'o',
|
$this->default_select_alias, CoreRequestBuilder::TABLE_MEMBERS, 'o',
|
||||||
$expr->andX(
|
$expr->andX(
|
||||||
$expr->eq(
|
$expr->eq(
|
||||||
$qb->createFunction(
|
$this->default_select_alias . '.unique_short_id',
|
||||||
'SUBSTR(' . $pf . '`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH
|
'o.circle_id'
|
||||||
. ')'
|
|
||||||
)
|
|
||||||
, 'o.circle_id'
|
|
||||||
),
|
),
|
||||||
$expr->eq('o.level', $qb->createNamedParameter(Member::LEVEL_OWNER)),
|
$expr->eq('o.level', $qb->createNamedParameter(Member::LEVEL_OWNER)),
|
||||||
$expr->eq('o.user_type', $qb->createNamedParameter(Member::TYPE_USER))
|
$expr->eq('o.user_type', $qb->createNamedParameter(Member::TYPE_USER))
|
||||||
|
@ -357,9 +349,7 @@ class CirclesRequestBuilder extends CoreRequestBuilder {
|
||||||
->where(
|
->where(
|
||||||
$qb->expr()
|
$qb->expr()
|
||||||
->eq(
|
->eq(
|
||||||
$qb->createFunction(
|
'unique_short_id',
|
||||||
'SUBSTR(`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH . ')'
|
|
||||||
),
|
|
||||||
$qb->createNamedParameter($circleUniqueId)
|
$qb->createNamedParameter($circleUniqueId)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
|
@ -149,12 +149,13 @@ class CoreRequestBuilder {
|
||||||
*/
|
*/
|
||||||
protected function limitToShortenUniqueId(IQueryBuilder &$qb, $circleUniqueId, $length) {
|
protected function limitToShortenUniqueId(IQueryBuilder &$qb, $circleUniqueId, $length) {
|
||||||
$expr = $qb->expr();
|
$expr = $qb->expr();
|
||||||
|
$unqoutedPf = ($qb->getType() === QueryBuilder::SELECT) ? $this->default_select_alias . '.' : '';
|
||||||
$pf = ($qb->getType() === QueryBuilder::SELECT) ? '`' . $this->default_select_alias . '`.' : '';
|
$pf = ($qb->getType() === QueryBuilder::SELECT) ? '`' . $this->default_select_alias . '`.' : '';
|
||||||
|
|
||||||
$qb->andWhere(
|
$qb->andWhere(
|
||||||
$expr->eq(
|
$expr->eq(
|
||||||
$qb->createNamedParameter($circleUniqueId),
|
$qb->createNamedParameter($circleUniqueId),
|
||||||
$qb->createFunction('SUBSTR(' . $pf . '`unique_id`' . ', 1, ' . $length . ')')
|
$unqoutedPf . 'unique_short_id'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -326,9 +327,7 @@ class CoreRequestBuilder {
|
||||||
->andWhere(
|
->andWhere(
|
||||||
$expr->eq(
|
$expr->eq(
|
||||||
$pf . 'circle_id',
|
$pf . 'circle_id',
|
||||||
$qb->createFunction(
|
'c.unique_short_id'
|
||||||
'SUBSTR(`c`.`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH . ')'
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -356,9 +355,7 @@ class CoreRequestBuilder {
|
||||||
$this->default_select_alias, CoreRequestBuilder::TABLE_CIRCLES, 'lc',
|
$this->default_select_alias, CoreRequestBuilder::TABLE_CIRCLES, 'lc',
|
||||||
$expr->eq(
|
$expr->eq(
|
||||||
$pf . 'circle_id',
|
$pf . 'circle_id',
|
||||||
$qb->createFunction(
|
'lc.unique_short_id'
|
||||||
'SUBSTR(`lc`.`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH . ')'
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -390,7 +387,7 @@ class CoreRequestBuilder {
|
||||||
$expr->eq('ncgu.gid', 'g.group_id'),
|
$expr->eq('ncgu.gid', 'g.group_id'),
|
||||||
$expr->eq(
|
$expr->eq(
|
||||||
'g.circle_id', $qb->createFunction(
|
'g.circle_id', $qb->createFunction(
|
||||||
'SUBSTR(' . $field . ', 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH . ')'
|
$field
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue