Curious if anyone else has ever seen the following error when trying to activate a rather large stored procedure?
Could not execute 'CALL N67250.TEST_PROC' in 521 ms 768 µs .
SAP DBTech JDBC: : number of tables exceeds its maximum:  N67250.TEST_PROC: line 5 col 2 (at pos 39):  (range 3) number of tables exceeds its maximum exception: number of tables exceeds its maximum: 4095: line 1176 col 620 (at pos 600669)Please check lines:
I currently have access to two machines, both Rev67, and I'm getting the error on both.
Attached is a "simplified" version of my procedure (apologies for the lengthy DDLs, didn't care to spend time trimming out unnecessary fields). The won't make much sense in many cases because I cut out as much code as I could to the point where the error would disappear. Nonetheless you can run it, create the empty tables, create the procedure, and then run the procedure yourself - and you should be able to reproduce it.
My suspicion is that internally HANA builds big fat queries wherever it can as opposed to lots of intermediate result sets. One of these big fat queries is probably too big/fat.
Not quite sure the best solution is. I thought I could outsmart HANA by using some CE functions but that didn't help. What I'll likely do is build some of the logic as models where possible and see if that somehow helps...
Honestly - you have a lot going on there :=)
My guess is that the procedure is causing the optimizer to recurse and create an infinite amount of tables. I assume it is an optimizer bug in you scenario.
Open an OSS message. Those guys can help fix this.
If you want to fix it yourself, I would recommend nesting the SQLScript procedures. This will probably cause the optimizer bug not to manifest. It doesn't surprise me too much that the CE function gives you the same problem - it may be hitting the same optimizer bug.