Hi,
I got an exception while upgrading from Base 2.4.3 to 2.4.5. It was
during dropping indexes using
"[basedir]/bin/dynamicdb.sh -v -dropindexes" command. The exceptions
message follows:
// some successful droppings
=================
Table : D21886Filter
Unique : D21886Filter_pkey [cube, filter, column, position]
Safe drop : false
DROP-SQL : ALTER TABLE "dynamic"."D21886Filter" DROP CONSTRAINT
"D21886Filter_pkey"
Actions :
Index : D21886Filtercolumn [column]
Safe drop : true
DROP-SQL : DROP INDEX "D21886Filtercolumn"
Actions : DROP
13:22:05,724 ERROR core:1836 - Exception
org.postgresql.util.PSQLException: ERROR: index "D21886Filtercolumn"
does not exist
at
org.postgresql.core.v2.QueryExecutorImpl.receiveErrorMessage(QueryExecutorImpl.java:557)
at
org.postgresql.core.v2.QueryExecutorImpl.processResults(QueryExecutorImpl.java:480)
at
org.postgresql.core.v2.QueryExecutorImpl.execute(QueryExecutorImpl.java:364)
at
org.postgresql.core.v2.QueryExecutorImpl.execute(QueryExecutorImpl.java:258)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:340)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:286)
at
com.mchange.v2.c3p0.impl.NewProxyStatement.executeUpdate(NewProxyStatement.java:64)
at
net.sf.basedb.core.HibernateUtil.dynamicDbIndexes(HibernateUtil.java:1828)
at net.sf.basedb.install.InitDB.main(InitDB.java:105)
net.sf.basedb.core.BaseException: ERROR: index "D21886Filtercolumn"
does not exist
at
net.sf.basedb.core.HibernateUtil.dynamicDbIndexes(HibernateUtil.java:1837)
at net.sf.basedb.install.InitDB.main(InitDB.java:105)
Caused by: org.postgresql.util.PSQLException: ERROR: index
"D21886Filtercolumn" does not exist
at
org.postgresql.core.v2.QueryExecutorImpl.receiveErrorMessage(QueryExecutorImpl.java:557)
at
org.postgresql.core.v2.QueryExecutorImpl.processResults(QueryExecutorImpl.java:480)
at
org.postgresql.core.v2.QueryExecutorImpl.execute(QueryExecutorImpl.java:364)
at
org.postgresql.core.v2.QueryExecutorImpl.execute(QueryExecutorImpl.java:258)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:340)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:286)
at
com.mchange.v2.c3p0.impl.NewProxyStatement.executeUpdate(NewProxyStatement.java:64)
at
net.sf.basedb.core.HibernateUtil.dynamicDbIndexes(HibernateUtil.java:1828)
... 1 more
I investigated a bit and found out that this index in fact exists. I
managed to drop it manually using psql with command:
DROP INDEX "dynamic"."D21886Filtercolumn"
Command without schema name prefix (DROP INDEX "D21886Filtercolumn")
doesn't work. I checked the index dropping code and I found out that in
net.sf.basedb.core.dbengine.PostgresDbEngine.getDropIndexSql() method
code(line 120) creating 'drop index query' uses only index name without
schema name prefix. That is why an exception is thrown.
I didn't find anything about adding dynamic schema to users search_path
in PostgreSql in Base2 requirements. Some of the code in the same
'problem causing' method adds schema prefix when dropping constraints,
so I consider this issue as a bug.
We are looking now for some work-around, like postgres search-path
setting and will post everything useful we find.
Pawel Sztromwasser
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
basedb-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/basedb-devel