You can translate the question and the replies:

get_view_columns StackOverflowError

Hi Denodo wizards, I am getting the below error when I run this query - select * from get_view_columns () where database_name = 'mydbname' QUERY [SELECTION] [ERROR] GET_VIEW_COLUMNS [STORED_PROCEDURE] [ERROR] GET_VIEW_COLUMNS [STORED PROCEDURE] [ERROR] Received exception with message 'java.lang.StackOverflowError' However, if I run this query , it works - select * from get_view_columns ( 'mydbname') Any ideas on what is wrong with the 1st query and how to debug the StackOverflowError error? Thanks.
user
02-04-2024 12:26:02 -0400
code

1 Answer

Hi, My guess is that the difference between the two queries you ran revolves around the following bullet found in the [GET_VIEW_COLUMNS](https://community.denodo.com/docs/html/browse/8.0/en/vdp/vql/stored_procedures/predefined_stored_procedures/get_view_columns) page of the VQL Guide: > * If input_database_name and input_view_name are null, the procedure returns the fields of all the views of all the databases. To me it seems like the query that passes no parameters to the GET_VIEW_COLUMNS stored procedure asks for all the columns of all the views in the VDP server. After that it will try to filter those results using the where condition. The number of views in your VDP server is probably large enough that the amount of info returned by GET_VIEW_COLUMNS is just large enough to surpass the available stack space. In contrast, passing the input_database_name to GET_VIEW_COLUMNS in your second query only returns the columns for views in a single virtual database which is much smaller than trying to return columns for all views in the VDP server. Hope this helps!
Denodo Team
03-04-2024 17:05:11 -0400
code
You must sign in to add an answer. If you do not have an account, you can register here