View Issue Details

IDProjectCategoryView StatusLast Update
0014398mantisbtdb postgresqlpublic2021-01-01 19:25
Reporterdregad Assigned Todregad  
PrioritynormalSeverityblockReproducibilityalways
Status closedResolutionfixed 
Product Version1.3.0dev 
Target Version1.3.0-beta.1 
Summary0014398: Support for PostgreSQL broken in 1.3
Description

Following the upgrade of AdoDB library to unpatched upstream version which reverted several custom MantisBT fixes, it is no longer possible to install MantisBT on PostgreSQL.

Steps To Reproduce

Error occurs at step: Schema AlterColumnSQL ( mantis_user_pref_table )

BAD
ALTER TABLE mantis_user_pref_table ALTER COLUMN redirect_delay TYPE INTEGER
ALTER TABLE mantis_user_pref_table ALTER COLUMN redirect_delay SET DEFAULT 0
ALTER TABLE mantis_user_pref_table ALTER COLUMN INTEGER SET NOT NULL
ERROR: column "integer" of relation "mantis_user_pref_table" does not exist

TagsTravisCI

Relationships

related to 0013713 closeddregad Upgrade ADOdb library to latest version 
related to 0014385 closeddregad Impossible to create a new project with fresh install on PostgreSQL 
parent of 0009701 closeddregad Install/upgrade shouldn't need admin user when DB already exists 
parent of 0012248 closeddregad Problem updating from 1.1.8 to 1.2.0 
parent of 0015589 closeddregad Upgrade fails with postgresql 
parent of 0015699 closeddregad Upgrade 1.2.10 to 1.2.14 Issues 
parent of 0016392 closeddregad Bool columns in pgsql system created before MantisBT 1.1.0 have smallint type in DB 
has duplicate 0009720 closeddregad Error upgrading from 1.1.x (PostgreSQL) 
related to 0020479 closeddregad Error 401 db_query bind params starts with $2 
related to 0020894 closeddregad APPLICATION ERROR 401 @ user_edit_page when changing Accesslevel 
child of 0014088 closedvboctor Mantis 1.3.0 blocking issues 

Activities

dregad

dregad

2012-06-20 07:59

developer   ~0032124

Attaching the commits related to fixing this behavior in the 1.2.x branch

This is the original bug report on AdoDB forums - apparently Paul's fixes never made it into an upstream release.
http://phplens.com/lens/lensforum/msgs.php?id=17397

As the AdoDB developer seems to be actively supporting the library again, I'll submit new bug fix requests to him.

dregad

dregad

2012-06-21 12:21

developer   ~0032134

Work in progress, built on top of latest ADOdb version 5.17
https://github.com/dregad/mantisbt/tree/adodb-upg-master

With this at least Mantis installs successfully, but this required several changes to ADOdb library, all reported upstream:

http://phplens.com/lens/lensforum/msgs.php?id=19202
http://phplens.com/lens/lensforum/msgs.php?id=19204
http://phplens.com/lens/lensforum/msgs.php?id=19186

dregad

dregad

2012-06-22 05:11

developer   ~0032142

It's worth noting that several of these issues also affect 1.2 branch, so these changes should probably be back-ported when ready.

dregad

dregad

2013-07-14 12:08

developer   ~0037461

When this issue is fixed, Travis builds for pgsql should be enabled again.

dregad

dregad

2014-01-14 11:30

developer   ~0039047

This is not yet fully resolved.

Travis builds still errors out, need to fix issue reported in 0015699

dregad

dregad

2014-01-22 12:46

developer   ~0039141

It appears that the errors are caused by multiple queries being built simultaneously. PostgreSQL uses positional parameters, and triggers an error when db_query_bound is called with a query having params not matching the parameter array keys.

Need to find a clean way to reset the parameter number before executing the query.

dregad

dregad

2014-02-24 18:37

developer   ~0039517

Pull request https://github.com/mantisbt/mantisbt/pull/143

Related Changesets

MantisBT: master 10871e5a

2007-11-03 09:08

Paul Richards


Details Diff
ADODB PGSQL DATADICT FIX:

a) AlterColumnSQL appears to pass the type instead of column name to the NULL/NOT NULL query
b) If you are converting from a BOOL->INT in sql, whilst select (1::INT4)::BOOL is valid, you can not cast in the ALTER TABLE syntax without a USING clause. In addition, it appears one needs to drop then readd any default value.

git-svn-id: http://mantisbt.svn.sourceforge.net/svnroot/mantisbt/trunk@4715 <a class="text" href="/?p=mantisbt.git;a=object;h=f5dc347c">f5dc347c</a>-c33d-0410-90a0-b07cc1902cb9
Affected Issues
0014398
mod - core/adodb/datadict/datadict-postgres.inc.php Diff File

MantisBT: master 156910b5

2008-04-20 11:17

Paul Richards


Details Diff
Allow Quoted Default Values in Postgres DataDict - patch posted to adodb forum

git-svn-id: http://mantisbt.svn.sourceforge.net/svnroot/mantisbt/trunk@5179 <a class="text" href="/?p=mantisbt.git;a=object;h=f5dc347c">f5dc347c</a>-c33d-0410-90a0-b07cc1902cb9
Affected Issues
0014398
mod - core/adodb/datadict/datadict-postgres.inc.php Diff File

MantisBT: master b086fe40

2013-06-20 07:19

dregad


Details Diff
Update ADOdb to v5.18a (released 6 Sep 2012)

Changes vs upstream release[1]:

- removed following dirs and files:
contrib/ cute_icons_for_site/ docs/ pear/ tests/ server.php
- converted CRLF to LF
- trimmed trailing whitespace

[1] http://phplens.com/lens/lensforum/msgs.php?id=19268

Fixes 0013713, 0014398
Affected Issues
0013713, 0014398
mod - library/adodb/adodb-active-record.inc.php Diff File
mod - library/adodb/adodb-csvlib.inc.php Diff File
mod - library/adodb/adodb-datadict.inc.php Diff File
mod - library/adodb/adodb-error.inc.php Diff File
mod - library/adodb/adodb-errorhandler.inc.php Diff File
mod - library/adodb/adodb-errorpear.inc.php Diff File
mod - library/adodb/adodb-exceptions.inc.php Diff File
mod - library/adodb/adodb-iterator.inc.php Diff File
mod - library/adodb/adodb-lib.inc.php Diff File
mod - library/adodb/adodb-memcache.lib.inc.php Diff File
mod - library/adodb/adodb-pager.inc.php Diff File
mod - library/adodb/adodb-pear.inc.php Diff File
mod - library/adodb/adodb-perf.inc.php Diff File
mod - library/adodb/adodb-php4.inc.php Diff File
mod - library/adodb/adodb.inc.php Diff File
mod - library/adodb/datadict/datadict-access.inc.php Diff File
mod - library/adodb/datadict/datadict-db2.inc.php Diff File
mod - library/adodb/datadict/datadict-firebird.inc.php Diff File
mod - library/adodb/datadict/datadict-generic.inc.php Diff File
mod - library/adodb/datadict/datadict-ibase.inc.php Diff File
mod - library/adodb/datadict/datadict-informix.inc.php Diff File
mod - library/adodb/datadict/datadict-mssql.inc.php Diff File
mod - library/adodb/datadict/datadict-mssqlnative.inc.php Diff File
mod - library/adodb/datadict/datadict-mysql.inc.php Diff File
mod - library/adodb/datadict/datadict-oci8.inc.php Diff File
mod - library/adodb/datadict/datadict-postgres.inc.php Diff File
mod - library/adodb/datadict/datadict-sqlite.inc.php Diff File
mod - library/adodb/datadict/datadict-sybase.inc.php Diff File
mod - library/adodb/drivers/adodb-access.inc.php Diff File
mod - library/adodb/drivers/adodb-ado.inc.php Diff File
mod - library/adodb/drivers/adodb-ado5.inc.php Diff File
mod - library/adodb/drivers/adodb-ado_access.inc.php Diff File
mod - library/adodb/drivers/adodb-ado_mssql.inc.php Diff File
mod - library/adodb/drivers/adodb-borland_ibase.inc.php Diff File
mod - library/adodb/drivers/adodb-csv.inc.php Diff File
mod - library/adodb/drivers/adodb-db2.inc.php Diff File
mod - library/adodb/drivers/adodb-db2oci.inc.php Diff File
mod - library/adodb/drivers/adodb-db2ora.inc.php Diff File
mod - library/adodb/drivers/adodb-fbsql.inc.php Diff File
mod - library/adodb/drivers/adodb-firebird.inc.php Diff File
mod - library/adodb/drivers/adodb-ibase.inc.php Diff File
mod - library/adodb/drivers/adodb-informix.inc.php Diff File
mod - library/adodb/drivers/adodb-informix72.inc.php Diff File
mod - library/adodb/drivers/adodb-ldap.inc.php Diff File
mod - library/adodb/drivers/adodb-mssql.inc.php Diff File
mod - library/adodb/drivers/adodb-mssqlnative.inc.php Diff File
mod - library/adodb/drivers/adodb-mssqlpo.inc.php Diff File
mod - library/adodb/drivers/adodb-mysql.inc.php Diff File
mod - library/adodb/drivers/adodb-mysqli.inc.php Diff File
mod - library/adodb/drivers/adodb-mysqlpo.inc.php Diff File
mod - library/adodb/drivers/adodb-mysqlt.inc.php Diff File
mod - library/adodb/drivers/adodb-netezza.inc.php Diff File
mod - library/adodb/drivers/adodb-oci8.inc.php Diff File
mod - library/adodb/drivers/adodb-oci805.inc.php Diff File
mod - library/adodb/drivers/adodb-oci8po.inc.php Diff File
mod - library/adodb/drivers/adodb-odbc.inc.php Diff File
mod - library/adodb/drivers/adodb-odbc_db2.inc.php Diff File
mod - library/adodb/drivers/adodb-odbc_mssql.inc.php Diff File
mod - library/adodb/drivers/adodb-odbc_oracle.inc.php Diff File
mod - library/adodb/drivers/adodb-odbtp.inc.php Diff File
mod - library/adodb/drivers/adodb-odbtp_unicode.inc.php Diff File
mod - library/adodb/drivers/adodb-oracle.inc.php Diff File
mod - library/adodb/drivers/adodb-pdo.inc.php Diff File
mod - library/adodb/drivers/adodb-pdo_mssql.inc.php Diff File
mod - library/adodb/drivers/adodb-pdo_mysql.inc.php Diff File
mod - library/adodb/drivers/adodb-pdo_oci.inc.php Diff File
mod - library/adodb/drivers/adodb-pdo_pgsql.inc.php Diff File
mod - library/adodb/drivers/adodb-pdo_sqlite.inc.php Diff File
mod - library/adodb/drivers/adodb-postgres.inc.php Diff File
mod - library/adodb/drivers/adodb-postgres64.inc.php Diff File
mod - library/adodb/drivers/adodb-postgres7.inc.php Diff File
mod - library/adodb/drivers/adodb-postgres8.inc.php Diff File
add - library/adodb/drivers/adodb-postgres9.inc.php Diff File
mod - library/adodb/drivers/adodb-proxy.inc.php Diff File
mod - library/adodb/drivers/adodb-sapdb.inc.php Diff File
mod - library/adodb/drivers/adodb-sqlanywhere.inc.php Diff File
mod - library/adodb/drivers/adodb-sqlite.inc.php Diff File
mod - library/adodb/drivers/adodb-sqlite3.inc.php Diff File
mod - library/adodb/drivers/adodb-sqlitepo.inc.php Diff File
mod - library/adodb/drivers/adodb-sybase.inc.php Diff File
mod - library/adodb/drivers/adodb-sybase_ase.inc.php Diff File
mod - library/adodb/drivers/adodb-vfp.inc.php Diff File
mod - library/adodb/lang/adodb-bgutf8.inc.php Diff File
mod - library/adodb/lang/adodb-en.inc.php Diff File
mod - library/adodb/perf/perf-db2.inc.php Diff File
mod - library/adodb/perf/perf-informix.inc.php Diff File
mod - library/adodb/perf/perf-mssql.inc.php Diff File
mod - library/adodb/perf/perf-mssqlnative.inc.php Diff File
mod - library/adodb/perf/perf-mysql.inc.php Diff File
mod - library/adodb/perf/perf-oci8.inc.php Diff File
mod - library/adodb/perf/perf-postgres.inc.php Diff File
mod - library/adodb/session/adodb-compress-bzip2.php Diff File
mod - library/adodb/session/adodb-compress-gzip.php Diff File
mod - library/adodb/session/adodb-cryptsession.php Diff File
mod - library/adodb/session/adodb-cryptsession2.php Diff File
mod - library/adodb/session/adodb-encrypt-mcrypt.php Diff File
mod - library/adodb/session/adodb-encrypt-md5.php Diff File
mod - library/adodb/session/adodb-encrypt-secret.php Diff File
mod - library/adodb/session/adodb-session-clob.php Diff File
mod - library/adodb/session/adodb-session-clob2.php Diff File
mod - library/adodb/session/adodb-session.php Diff File
mod - library/adodb/session/adodb-session2.php Diff File
mod - library/adodb/session/old/adodb-cryptsession.php Diff File

MantisBT: master 02b7769e

2013-07-14 08:08

dregad


Details Diff
Travis: temporarily disable PostgreSQL builds

PostgreSQL support in master branch is known to be broken (see issue 0014398) therefore it is useless to run the builds on this platform until it is fixed.
Affected Issues
0014398
mod - .travis.yml Diff File

MantisBT: master c1928db6

2013-07-18 07:38

dregad


Details Diff
Travis: re-enable PostgreSQL builds but allow failures

Follow up on 02b7769e30484f639b758abc0efbea829329a0b6,
a better solution to avoid marking the whole build as failed
due to errors on PostgreSQL, until issue 0014398 is fixed.

Thanks to Rolf Kleef for the suggestion.
Affected Issues
0014398
mod - .travis.yml Diff File

MantisBT: master 592cbb9c

2014-02-18 13:33

dregad


Details Diff
Fix travis build errors for PostgreSQL

The errors were caused by executing queries with params in wrong order.

To fix the problem, this commit adds Database API functions to push the
current parameter number onto a stack and pop the value after query
execution, allowing build of multiple queries concurrently.

The caller can call db_param_push() when needed prior to starting the
build of a new query while another one is still pending execution.
db_query_bound() will call db_param_pop() after running the query.

Fixes 0014398
Affected Issues
0014398
mod - core/custom_field_api.php Diff File
mod - core/database_api.php Diff File
mod - core/user_api.php Diff File