Skip to content

Commit

Permalink
Fix bug 1722 : PosgtreSQL wants all fields in select to be in Group b…
Browse files Browse the repository at this point in the history
…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.