pg.ddx.io  pgsql-bugs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: wlaunhardt@web.de
Subject: BUG #18116: This is definitiv a BUG in INOUT parameter in stored procedures in Postgres 12.16
Date: Mon, 18 Sep 2023 11:46:22 +0000
Message-ID: <18116-0a17d1321c9d94ea@postgresql.org> (raw)

The following bug has been logged on the website:

Bug reference:      18116
Logged by:          Wolfgang Launhardt
Email address:      wlaunhardt@web.de
PostgreSQL version: 12.16
Operating system:   Linux Mint 20.3 Cinnamon
Description:        

Please don't send me that again - it is a BUG ! :
"
BUG #18106: Stored Procedure (Text-)Array as INOUT parameter

has been rejected by a moderator and will not be posted.
The reason given for rejection was:

This does not appear to be a bug report."

DO 
$$
DECLARE 
  test text[];
BEGIN
  test := '{"x","y","z"}';
  CALL ptest( test );
  RAISE NOTICE '%', test;
END
$$;

PRODUCES:
ERROR: type with OID 0 does not exist
CONTEXT: SQL statement "CALL ptest( test )" PL/pgSQL function
inline_code_block line 6 at CALL


IN A FUNCTION IT WORKS:
create or replace FUNCTION ptest(INOUT text[] ) returns text[] as 'ptest.so'
language 'c';

C-Source:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "postgres.h"
#include "fmgr.h"
#include "funcapi.h"
#include "array.h"

PG_MODULE_MAGIC;

Datum ptest(PG_FUNCTION_ARGS);

PG_FUNCTION_INFO_V1(ptest);

Datum
ptest ( PG_FUNCTION_ARGS )
{ 
   ArrayType       * arg_arr;

   arg_arr = PG_GETARG_ARRAYTYPE_P( 0 );

   PG_RETURN_ARRAYTYPE_P( arg_arr );

   // TEXTOID = 25 the following code produces the same error:
   // PG_RETURN_ARRAYTYPE_P( construct_empty_array( 25 ));
}



view thread (2+ messages)  latest in thread

Message-ID: <18116-0a17d1321c9d94ea@postgresql.org>
Permalink:  ../18116-0a17d1321c9d94ea@postgresql.org/
Also on:    postgresql.org/message-id/18116-0a17d1321c9d94ea@postgresql.org

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-bugs@postgresql.org
  Cc: noreply@postgresql.org, pgsql-bugs@lists.postgresql.org, wlaunhardt@web.de
  Subject: Re: BUG #18116: This is definitiv a BUG in INOUT parameter in stored procedures in Postgres 12.16
  In-Reply-To: <18116-0a17d1321c9d94ea@postgresql.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox