Este é realmente um bug no CodeIgniter. No driver ODBC (/system/database/drivers/odbc/odbc_driver.php) quando você seleciona uma tabela ela usa o seguinte método:
function _from_tables($tables)
{
if ( ! is_array($tables))
{
$tables = array($tables);
}
return '('.implode(', ', $tables).')';
}
Ele tenta agrupar várias seleções de tabela para impor a precedência do operador, isso deve funcionar bem se você estiver usando mais de uma tabela, no entanto, com uma tabela, ele ainda tenta agrupá-la, o que causa o erro que você está recebendo.
Infelizmente, não acredito que seja possível estender esses arquivos de driver, então talvez seja necessário editar o próprio arquivo principal. Tome nota disso caso você precise atualizar o CodeIgniter no futuro, você terá que alterar o método para algo como o seguinte:
function _from_tables($tables)
{
if ( ! is_array($tables))
{
return strstr($tables, ',') ? '('.$tables.')' : $tables;
}
else
{
return count($tables) > 1 ? '('.implode(', ', $tables).')' : end($tables);
}
}