You did not mention, what package you would like to use in Python to make REST. 

  • if it's FastAPI, with this package you can use SQLAlchemy and sqlalchemy-iris 
  • Django, with this framework, then just use django-iris

In any case, I would recommend looking into SQLAlchemy, and its API, which has many features, of course including the way to list tables, as well as list columns in tables, and lots of other features.

If you are going to use some other package for making REST API, and this library does not support SQLAlchemy, let me know, I'll have a look, and may implement IRIS for this library too.

Looks like the database was created with a different collation, and contains a few globals with this collation. 

I don't remember, but I think in the messages.log it should show which collation is expected. And then, you can change it in Management Portal, and with NLS. When you activate NLS which contains the expected collation, it will be able to mount this database.

well, ok, yeah, I did not notice it. But still, the usage per process is still an important part. And even if the leakage is real, it may happen in ZPM itself. The testing scenario does not look like proof much, installing and uninstalling zpm multiple times does not like a real scenario.

Have a look at what will show this query, the result in KB

echo 'select sum(memorypeak) memorypeak,sum(MemoryUsed) memoryused from %SYS.ProcessQuery' | iris sql iris

I think you forgot about memory per process, which I would say is not limited at all by default anymore. So, your "leaks", may happen in the processes. ZPM is quite a big package, and the installation will use multiple processes.

So, having most of the memory just mostly for buffers does not work for IRIS, while you need room for the processes, and if you would go to production, you have to have in mind how many active users you would expect and decide how much memory they will consume.