| From: | m(dot)overmeyer(at)yahoo(dot)ca | 
|---|---|
| To: | pgsql-bugs(at)postgresql(dot)org | 
| Subject: | BUG #14289: Potential bug: "invalid attribute number" when dblink result is assigned in PL/PGSQL | 
| Date: | 2016-08-18 17:44:14 | 
| Message-ID: | 20160818174414.1529.37913@wrigleys.postgresql.org | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-bugs | 
The following bug has been logged on the website:
Bug reference:      14289
Logged by:          Michael Overmeyer
Email address:      m(dot)overmeyer(at)yahoo(dot)ca
PostgreSQL version: 9.5.4
Operating system:   CentOS 7, also Docker
Description:        
I believe I may have found a bug in PL/PGSQL or dblink. When using the
assignment operator to assign the results of dblink_build_sql_delete to a
variable, it gives me:
    psql:pg_bug.sql:37: ERROR:  22023: invalid attribute number -1598
    CONTEXT:  PL/pgSQL function test_assignment(int2vector) line 6 at
assignment
    LOCATION:  validate_pkattnums, dblink.c:2851
This does not occur if I do not pass the int2vector as a parameter, nor when
I use the SELECT...INTO syntax.
Steps to reproduce:
1. Download
https://gist.githubusercontent.com/movermeyer/cdc9c997744d97a5cf9471837dff6b4a/raw/b4e7f338834ed35a8f7cb0653f843f5efaec0fef/pg_bug.sql
to "pg_bug.sql"
1. Start a Postgres instance: `docker run -i -t --rm=true -e
POSTGRES_PASSWORD=postgres -p 5432:5432 postgres`
2. Run pg_bug.sql: `PGPASSWORD=postgres psql -U postgres -h 127.0.0.1 -p
5432 -f pg_bug.sql`
Sample output:
    CREATE DATABASE
    You are now connected to database "test_db" as user "postgres".
    CREATE EXTENSION
    CREATE TABLE
    INSERT 0 1
    CREATE FUNCTION
    psql:pg_bug.sql:37: ERROR:  22023: invalid attribute number -1598
    CONTEXT:  PL/pgSQL function test_assignment(int2vector) line 6 at
assignment
    LOCATION:  validate_pkattnums, dblink.c:2851
    
Workaround:
Use the SELECT...INTO syntax instead.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Joe Conway | 2016-08-18 18:25:27 | Re: BUG #14289: Potential bug: "invalid attribute number" when dblink result is assigned in PL/PGSQL | 
| Previous Message | Tom Lane | 2016-08-18 14:09:06 | Re: Re: Re: Re:Re: [BUGS] Re: [BUGS] Return value error of‘to_timestamp’ |