Thread: information_schema._pg_keypositions() in 8.1???

information_schema._pg_keypositions() in 8.1???

From
"Jason Long"
Date:

I cannot get automatic schema update to work in 8.1 with hibernate 3.0.5.  I get the following error every time.

 

java.sql.SQLException: ERROR: function information_schema._pg_keypositions() does not exist

 

Is this something I should be looking to fix with Hibernate or PostgreSQL?

 

Any assistance would be greatly appreciated.

 

 

Thank you for your time,

 

Jason Long

CEO and Chief Software Engineer

BS Physics, MS Chemical Engineering

http://www.supernovasoftware.com

 

Re: information_schema._pg_keypositions() in 8.1???

From
"Jason Long"
Date:

Executing the following from “information_schema.sql” from the 8.0 distribution against the restored database in 8.1 solved the problem.  Is this a bug?

 

*****************************************************************

SET search_path TO information_schema, public;

 

/*

 * A few supporting functions first ...

 */

 

/* This returns the integers from 1 to INDEX_MAX_KEYS/FUNC_MAX_ARGS */

CREATE FUNCTION _pg_keypositions() RETURNS SETOF integer

    LANGUAGE sql

    IMMUTABLE

    AS 'select g.s

        from generate_series(1,current_setting(''max_index_keys'')::int,1)

        as g(s)';

 

Thank you for your time,

 

Jason Long

CEO and Chief Software Engineer

BS Physics, MS Chemical Engineering

http://www.supernovasoftware.com


From: pgsql-general-owner@postgresql.org [mailto:pgsql-general-owner@postgresql.org] On Behalf Of Jason Long
Sent: Thursday, December 01, 2005 11:43 AM
To: pgsql-general@postgresql.org
Subject: [GENERAL] information_schema._pg_keypositions() in 8.1???

 

I cannot get automatic schema update to work in 8.1 with hibernate 3.0.5.  I get the following error every time.

 

java.sql.SQLException: ERROR: function information_schema._pg_keypositions() does not exist

 

Is this something I should be looking to fix with Hibernate or PostgreSQL?

 

Any assistance would be greatly appreciated.

 

 

Thank you for your time,

 

Jason Long

CEO and Chief Software Engineer

BS Physics, MS Chemical Engineering

http://www.supernovasoftware.com

 

Re: information_schema._pg_keypositions() in 8.1???

From
Tom Lane
Date:
"Jason Long" <jason@supernovasoftware.com> writes:
> I cannot get automatic schema update to work in 8.1 with hibernate 3.0.5.  I
> get the following error every time.

> java.sql.SQLException: ERROR: function information_schema._pg_keypositions()
> does not exist

Hm, it looks like some bright soul at Hibernate decided to depend on an
undocumented internal function :-(

> Is this something I should be looking to fix with Hibernate or PostgreSQL?

Hibernate.  As a short term workaround you could manually create the
function using the 8.0 definition, which is

/* This returns the integers from 1 to INDEX_MAX_KEYS/FUNC_MAX_ARGS */
CREATE FUNCTION information_schema._pg_keypositions() RETURNS SETOF integer
    LANGUAGE sql
    IMMUTABLE
    AS 'select g.s
        from generate_series(1,current_setting(''max_index_keys'')::int,1)
        as g(s)';

Note that one reason this went away in 8.1 is that there no longer is a
hard upper limit to the number of function arguments, so depending on
what Hibernate is expecting it to do, you might have some issues ...

            regards, tom lane

Re: information_schema._pg_keypositions() in 8.1???

From
Kris Jurka
Date:

On Thu, 1 Dec 2005, Jason Long wrote:

> I cannot get automatic schema update to work in 8.1 with hibernate 3.0.5.  I
> get the following error every time.
>
> java.sql.SQLException: ERROR: function information_schema._pg_keypositions()
> does not exist
>

This is actually a sign that you are using an 8.0 jdbc driver against an
8.1 server.  You need the 8.1 driver.

Kris Jurka