fix(core): avoid SQL aggregate function when testing table existence

This commit is contained in:
Francis Lachapelle
2022-01-07 11:39:13 -05:00
parent b81704860a
commit 66bac18558
4 changed files with 8 additions and 10 deletions

View File

@@ -1,5 +1,5 @@
/*
Copyright (C) 2005-2016 Inverse inc.
Copyright (C) 2005-2022 Inverse inc.
This file is part of SOGo
@@ -199,7 +199,7 @@ static BOOL debugLeaks;
/* FIXME: make use of [EOChannelAdaptor describeTableNames] instead */
tableName = [url lastPathComponent];
if ([tc evaluateExpressionX:
[NSString stringWithFormat: @"SELECT count(*) FROM %@",
[NSString stringWithFormat: @"SELECT 1 FROM %@ WHERE 1 = 2",
tableName]])
{
// We re-acquire the channel in case it was abruptly closed between statements
@@ -232,7 +232,7 @@ static BOOL debugLeaks;
tableName = [NSString stringWithFormat: @"sogo_quick_%@", typeName];
driver = [url substringToIndex: [url rangeOfString: @":"].location];
sql = [NSString stringWithFormat: @"SELECT count(*) FROM %@",
sql = [NSString stringWithFormat: @"SELECT 1 FROM %@ WHERE 1 = 2",
tableName];
if ([channel evaluateExpressionX: sql])
{

View File

@@ -39,7 +39,7 @@
didOpen = YES;
}
sql = [NSString stringWithFormat: @"SELECT COUNT(*) FROM %@ WHERE 1 = 2",
sql = [NSString stringWithFormat: @"SELECT 1 FROM %@ WHERE 1 = 2",
tableName];
ex = [self evaluateExpressionX: sql];
[self cancelFetch];

View File

@@ -1,6 +1,6 @@
/* GCSAlarmsFolder.m - this file is part of SOGo
*
* Copyright (C) 2010-2016 Inverse inc.
* Copyright (C) 2010-2022 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -182,7 +182,7 @@ static NSString *alarmsFolderURLString = nil;
queries = [tc specialQueries];
sql = [NSString stringWithFormat: @"SELECT count(*) FROM %@",
sql = [NSString stringWithFormat: @"SELECT 1 FROM %@ WHERE 1 = 2",
[self _storeTableName]];
if ([tc evaluateExpressionX: sql])
{

View File

@@ -1,8 +1,6 @@
/* GCSSessionsFolder.m - this file is part of SOGo
*
* Copyright (C) 2010-2011 Inverse inc.
*
* Author: Ludovic Marcotte <lmarcotte@inverse.ca>
* Copyright (C) 2010-2022 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -181,7 +179,7 @@ static NSString *sessionsFolderURLString = nil;
queries = [tc specialQueries];
sql = [NSString stringWithFormat: @"SELECT count(*) FROM %@", tableName];
sql = [NSString stringWithFormat: @"SELECT 1 FROM %@ WHERE 1 = 2", tableName];
if ([tc evaluateExpressionX: sql])
{
sql = [queries createSessionsFolderWithName: tableName];