Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fix bug 1722 : PosgtreSQL wants all fields in select to be in Group b…
…y clause

or agregate function
Fix issue for lambda function (incorrect number of params)

git-svn-id: http://piwigo.org/svn/trunk@6510 68402e56-0260-453c-a942-63ccdbb3a9ee
  • Loading branch information
nikrou committed Jun 9, 2010
1 parent 80f2c70 commit 175e9a1
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 12 deletions.
4 changes: 4 additions & 0 deletions include/config_default.inc.php
Expand Up @@ -514,6 +514,10 @@
// 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');
Expand Down
8 changes: 4 additions & 4 deletions include/dblayer/functions_pgsql.inc.php
Expand Up @@ -314,7 +314,7 @@ function mass_updates($tablename, $dbfields, $datas, $flags=0)
pwg_query($query);
}
} // foreach update
} // if mysql_ver or count<X
}
else
{
$all_fields = array_merge($dbfields['primary'], $dbfields['update']);
Expand All @@ -326,7 +326,7 @@ function mass_updates($tablename, $dbfields, $datas, $flags=0)
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";');

Expand All @@ -343,7 +343,7 @@ function mass_updates($tablename, $dbfields, $datas, $flags=0)
implode(
"\n AND ",
array_map(
create_function('$s, $t', 'return "'.$tablename.'.$s = t2.$s";'),
create_function('$s', 'return "'.$tablename.'.$s = t2.$s";'),
$dbfields['primary']
)
);
Expand Down Expand Up @@ -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";
Expand Down
30 changes: 22 additions & 8 deletions include/functions_user.inc.php
Expand Up @@ -290,26 +290,40 @@ function getuserdata($user_id, $use_cache)

$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
Expand Down

0 comments on commit 175e9a1

Please sign in to comment.