Forum OpenACS Development: Postgres 7.5 compatibility issues

Collapse
Posted by Jeff Davis on
I installed pg7.5 from CVS and tested an install and ran into some problems: bit(integer) seems to be gone though there is a bit(integer, integer) function.
ERROR:  function bit(integer) does not exist
HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
CONTEXT:  SQL query "SELECT  "bit"( $1 )"
PL/pgSQL function "bitfromint4" line 2 at return
PL/pgSQL function "int_to_tree_key" line 20 at return
PL/pgSQL function "tree_next_key" line 17 at return
PL/pgSQL function "acs_object_type_insert_tr" line 13 at assignment
SQL query "insert into acs_object_types (object_type, pretty_name, pretty_plural, supertype, table_name, id_column, abstract_p, type_extension_table, package_name, name_method) values ( $1 ,  $2 ,  $3 ,  $4 ,  $5 ,  $6 ,  $7 ,  $8 ,  $9 ,  $10 )"
PL/pgSQL function "acs_object_type__create_type" line 37 at SQL statement
The views which hide db metadata are broken since the type coercion from pg_proc.proname from name to varchar seems not to happen (not sure why).
create view acs_func_defs as 
select get_func_definition(proname,proargtypes) as definition, 
       proname as fname 
  from pg_proc;
gives
psql:postgresql.sql:270: ERROR:  function get_func_definition(name, oidvector) does not exist
psql:postgresql.sql:275: ERROR:  function get_func_header(name, oidvector) does not exist
On the plus side, errors in functions seem to be caught when the functions are created rather than at some distant point in the future so:
create or replace function apm__unregister_package (varchar,boolean)
returns integer as '
declare
  package_key            alias for $1;  
  cascade_p              alias for $2;  -- default ''t''  
begin
   if cascade_p is null then 
	cascade_p := ''t'';
   end if;

   PERFORM apm_package_type__drop_type(
	package_key,
	cascade_p
   );

   return 0; 
end;' language 'plpgsql';

gives:
psql:apm-create.sql:1228: ERROR:  "$2" is declared CONSTANT
rather than only giving a runtime error.

Anyway, I am posting this in case anyone is interested in trying to do more testing against 7.5 before it's released.