Fix bug 1722 : PosgtreSQL wants all fields in select to be in Group by clause
or agregate function Fix issue for lambda function (incorrect number of params) merge from trunk. git-svn-id: http://piwigo.org/svn/branches/2.1@6511 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
parent
54fc109f97
commit
a59d15b7b6
3 changed files with 30 additions and 12 deletions
|
@ -514,6 +514,10 @@ $conf['apache_authentication'] = false;
|
|||
// piwigo_users table.
|
||||
$conf['users_table'] = $prefixeTable.'users';
|
||||
|
||||
// If you decide to use external authentication
|
||||
// change conf below by $conf['external_authentification'] = true;
|
||||
$conf['external_authentification'] = false;
|
||||
|
||||
// Other tables can be changed, if you define associated constants
|
||||
// Example:
|
||||
// define('USER_INFOS_TABLE', 'pwg_main'.'user_infos');
|
||||
|
|
|
@ -314,7 +314,7 @@ UPDATE '.$tablename.'
|
|||
pwg_query($query);
|
||||
}
|
||||
} // foreach update
|
||||
} // if mysql_ver or count<X
|
||||
}
|
||||
else
|
||||
{
|
||||
$all_fields = array_merge($dbfields['primary'], $dbfields['update']);
|
||||
|
@ -326,7 +326,7 @@ CREATE TABLE '.$temporary_tablename.'
|
|||
pwg_query($query);
|
||||
mass_inserts($temporary_tablename, $all_fields, $datas);
|
||||
if ( $flags & MASS_UPDATES_SKIP_EMPTY )
|
||||
$func_set = create_function('$s, $t', 'return "$s = IFNULL(t2.$s, '.$tablename.'.$s)";');
|
||||
$func_set = create_function('$s', 'return "$s = NULLIF(t2.$s, '.$tablename.'.$s)";');
|
||||
else
|
||||
$func_set = create_function('$s', 'return "$s = t2.$s";');
|
||||
|
||||
|
@ -343,7 +343,7 @@ FROM '.$temporary_tablename.' AS t2
|
|||
implode(
|
||||
"\n AND ",
|
||||
array_map(
|
||||
create_function('$s, $t', 'return "'.$tablename.'.$s = t2.$s";'),
|
||||
create_function('$s', 'return "'.$tablename.'.$s = t2.$s";'),
|
||||
$dbfields['primary']
|
||||
)
|
||||
);
|
||||
|
@ -585,7 +585,7 @@ function pwg_db_get_weekday($date)
|
|||
}
|
||||
|
||||
// my_error returns (or send to standard output) the message concerning the
|
||||
// error occured for the last mysql query.
|
||||
// error occured for the last pgsql query.
|
||||
function my_error($header, $die)
|
||||
{
|
||||
$error = '[pgsql error]'.pg_last_error()."\n";
|
||||
|
|
|
@ -290,26 +290,40 @@ SELECT ';
|
|||
|
||||
$row = pwg_db_fetch_assoc(pwg_query($query));
|
||||
|
||||
// retrieve additional user data
|
||||
// retrieve user info
|
||||
$query = '
|
||||
SELECT
|
||||
COUNT(1) AS counter,
|
||||
ui.*,
|
||||
uc.*,
|
||||
t.name AS theme_name
|
||||
FROM '.USER_INFOS_TABLE.' AS ui
|
||||
LEFT JOIN '.USER_CACHE_TABLE.' AS uc ON ui.user_id = uc.user_id
|
||||
LEFT JOIN '.THEMES_TABLE.' AS t ON t.id = ui.theme
|
||||
WHERE ui.user_id = \''.$user_id.'\'
|
||||
GROUP BY ui.user_id
|
||||
WHERE ui.user_id = '.$user_id.'
|
||||
;';
|
||||
|
||||
$result = pwg_query($query);
|
||||
$user_infos_row = pwg_db_fetch_assoc($result);
|
||||
if (!isset($user_infos_row['counter']) or 0 == $user_infos_row['counter']) {
|
||||
create_user_infos($user_id);
|
||||
|
||||
// retrieve additional user data ?
|
||||
if ($conf['external_authentification'])
|
||||
{
|
||||
$query = '
|
||||
SELECT
|
||||
COUNT(1) AS counter,
|
||||
FROM '.USER_INFOS_TABLE.' AS ui
|
||||
LEFT JOIN '.USER_CACHE_TABLE.' AS uc ON ui.user_id = uc.user_id
|
||||
LEFT JOIN '.THEMES_TABLE.' AS t ON t.id = ui.theme
|
||||
WHERE ui.user_id = '.$user_id.'
|
||||
GROUP BY ui.user_id
|
||||
;';
|
||||
if (pwg_db_fetch_row(pwg_query($query))!=1)
|
||||
{
|
||||
create_user_infos($user_id);
|
||||
|
||||
$result = pwg_query($query);
|
||||
$user_infos_row = pwg_db_fetch_assoc($result);
|
||||
$result = pwg_query($user_info_query);
|
||||
$user_infos_row = pwg_db_fetch_assoc($result);
|
||||
}
|
||||
}
|
||||
|
||||
// then merge basic + additional user data
|
||||
|
|
Loading…
Add table
Reference in a new issue