--- fast_gallery.class.php 2009-04-08 11:26:56.000000000 -0300 +++ fast_gallery.class.php 2009-06-15 16:03:12.000000000 -0300 @@ -455,8 +455,8 @@ } // Form the appropriate SQL query for folders - if ($folder_sort_by == 'path') { - $sql_folders = "SELECT path, fg.folder, gid FROM {fast_gallery} AS fg " . + if ($folder_sort_by == 'path') { + $sql_folders = "SELECT fg.path, fg.folder, gid FROM {fast_gallery} AS fg " . "RIGHT JOIN " . "(SELECT DISTINCT folder FROM {fast_gallery} WHERE parent='%s') " . "AS fldrs " . @@ -464,16 +464,30 @@ "ORDER by path %s"; } else if ($folder_sort_by == 'date') { - $sql_folders = "SELECT path, fg.folder, fg.gid, fe.value FROM {fast_gallery} AS fg, " . - "{fast_gallery_exif} AS fe " . - "RIGHT JOIN " . - "(SELECT DISTINCT folder FROM {fast_gallery} WHERE parent='%s') " . - "AS fldrs " . - "ON 1 WHERE fg.folder=fldrs.folder " . - "AND fg.gid=fe.gid " . - "AND fe.field='dateTaken' " . - "GROUP by folder " . - "ORDER by value %s"; + + // fix for supporting postgresql + global $db_type; + if ($db_type == 'mysql') { + $sql_folders = "SELECT path, fg.folder, fg.gid, fe.value FROM {fast_gallery} AS fg, " . + "{fast_gallery_exif} AS fe " . + "RIGHT JOIN " . + "(SELECT DISTINCT folder FROM {fast_gallery} WHERE parent='%s') " . + "AS fldrs " . + "ON 1 WHERE fg.folder=fldrs.folder " . + "AND fg.gid=fe.gid " . + "AND fe.field='dateTaken' " . + "GROUP by folder " . + "ORDER by value %s"; + } else if ($db_type == 'pgsql') { + $sql_folders = "SELECT " . + "DISTINCT ON (fg.folder) fg.path, fg.folder, fg.gid, fe.value " . + "FROM fast_gallery fg, fast_gallery_exif AS fe " . + "WHERE fg.parent='%s' " . + "AND fg.gid=fe.gid " . + "AND fe.field='dateTaken'" . + "GROUP by fg.folder, fg.path, fg.gid, fe.value ORDER by fg.folder, fe.value %s"; + } + $sql_folders_noexif = "SELECT path, folder, gid, filetype FROM {fast_gallery} " . "WHERE parent='%s' " . "AND filetype <> 'jpg' " . @@ -484,7 +498,7 @@ "AND filetype <> 'asx' " . "AND filetype <> 'swf' " . "AND filetype <> 'pdf' " . - "GROUP by folder " . + "GROUP by folder,path,gid,filetype " . "ORDER by path %s"; } else if ($folder_sort_by == 'filec') {