Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Table returning function: Cannot access column descriptor #6964

Closed
monetdb-team opened this issue Nov 30, 2020 · 0 comments
Closed

Table returning function: Cannot access column descriptor #6964

monetdb-team opened this issue Nov 30, 2020 · 0 comments
Labels
bug Something isn't working normal SQL

Comments

@monetdb-team
Copy link

Date: 2020-09-09 18:24:09 +0200
From: @swingbit
To: SQL devs <>
Version: 11.37.11 (Jun2020-SP1)
CC: @njnes

Last updated: 2020-10-19 11:06:22 +0200

Comment 28058

Date: 2020-09-09 18:24:09 +0200
From: @swingbit

User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36
Build Identifier:

This is not a very useful function, but the result is not what I had expected.

CREATE OR REPLACE FUNCTION test(i integer)
RETURNS TABLE (value integer)
BEGIN
return select value from generate_series(1,i);
END;

sql>select value from test(3);
Cannot access column descriptor

This is the explain:

function user.s22_0():void;
X_2:void := querylog.define("explain select value from test(3);":str, "sequential_pipe":str, 13:int);
X_10:bat[:str] := bat.pack(".%2":str);
X_11:bat[:str] := bat.pack("value":str);
X_12:bat[:str] := bat.pack("int":str);
X_13:bat[:int] := bat.pack(32:int);
X_14:bat[:int] := bat.pack(0:int);
X_8:bat[:int] := user.test(3:int);
sql.resultSet(X_10:bat[:str], X_11:bat[:str], X_12:bat[:str], X_13:bat[:int], X_14:bat[:int], X_8:bat[:int]);
end user.s22_0;

Reproducible: Always

Comment 28059

Date: 2020-09-09 18:31:26 +0200
From: @swingbit

This is the debug:

sql>debug select value from test(3);
mdb>X_2=0@0:void := querylog.define("explain select value from test(3);", "sequential_pipe", 13:int);
mdb>
mdb>X_10=nil:bat[:str] := bat.pack(".%2");
mdb>
mdb>X_11=nil:bat[:str] := bat.pack("value");
mdb>
mdb>X_12=nil:bat[:str] := bat.pack("int");
mdb>
mdb>X_13=nil:bat[:int] := bat.pack(32:int);
mdb>
mdb>X_14=nil:bat[:int] := bat.pack(0:int);
mdb>
mdb>X_8=nil:bat[:int] := user.test(3:int);
mdb>
mdb>X_7=nil:bat[:int] := generator.parameters(1:int, Ai=3);
mdb>
mdb> return X_7=nil:bat[:int] := generator.X_7=nil:bat[:int];
mdb>
mdb>sql.resultSet(X_10=[1], X_11=[1], X_12=[1], X_13=[1], X_14=[1], X_8=nil:bat[:int]);
mdb>
MAPI = (monetdb) /tmp/.s.monetdb.58000
ERROR = !ERROR: MALException:sql.resultset:HY005!Cannot access column descriptor

Comment 28064

Date: 2020-09-11 11:26:46 +0200
From: MonetDB Mercurial Repository <>

Changeset 618ec6381145 made by Niels Nes niels@cwi.nl in the MonetDB repo, refers to this bug.

For complete details, see https//devmonetdborg/hg/MonetDB?cmd=changeset;node=618ec6381145

Changeset description:

fixing bugs 6964 and  6965

escape functions with return statements in gnerator optimizer
make sure we don't remove the projection list of an table returning function in rel_push_project_down

Comment 28066

Date: 2020-09-11 11:28:41 +0200
From: @njnes

fixed in the jun branch, ie by disallowing the generator optimizer to rewrite table producing functions.

Comment 28068

Date: 2020-09-11 12:25:32 +0200
From: MonetDB Mercurial Repository <>

Changeset 5ff6952a7069 made by Pedro Ferreira pedro.ferreira@monetdbsolutions.com in the MonetDB repo, refers to this bug.

For complete details, see https//devmonetdborg/hg/MonetDB?cmd=changeset;node=5ff6952a7069

Changeset description:

Added tests for bugs 6964 and 6965
@monetdb-team monetdb-team added bug Something isn't working normal SQL labels Nov 30, 2020
@sjoerdmullender sjoerdmullender added this to the Ancient Release milestone Feb 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working normal SQL
Projects
None yet
Development

No branches or pull requests

2 participants