Dmitry Maslennikov · Aug 19, 2025 go to post

I know a bit about how to use tree-sitter, but npm install does not work in this project, and tests are failing

Dmitry Maslennikov · Aug 18, 2025 go to post

Wow, thanks a lot, now we have something to work on.

Is there any contribution guide? I cloned the project and tried to build it locally, but it does not look so simple

Dmitry Maslennikov · Aug 17, 2025 go to post

So, essentially, the primary reason for using hashed globals is to create a separate global for each index. Which will help, only if you have quite a big table with lots of indexes, and a high-load application.

Dmitry Maslennikov · Aug 16, 2025 go to post

Just a different global name will not make access faster. Most of the reasons here are just to support uniqueness. So, it will not overlap.

Dmitry Maslennikov · Aug 12, 2025 go to post

It's based on closed code, which does not support AST, and requires running in IRIS. 

We need full AST, and have been able to run without IRIS, just run in any of CI environments.

Dmitry Maslennikov · Aug 12, 2025 go to post

We can discuss a lot about this. However, the problem lies in how developers enforce these rules. When you have 1-2-3 developers with a strict rule of approving all the changes by one another developer, you probably will be able to maintain it. With a big development team and a legacy codebase, it will be mission impossible.

Unless, if we would be able to have linters set in with forced checks in CI, and it would fix some issues on the fly or enforce developer do it. As well as proper Formatter setup in the developer environment (nowadays that would be VSCode), with a bunch of rules defined for the project.

But we don't have any linters (ObjectScriptQuality is quite bulky and may still require some improvements), or good formatters (the one with InterSystems Language Server extension is quite primitive), and no way to build new tools, and especially inject to CI process.

That leads us to the point that our community requires open-source ObjectScript parser that can help developers to build all sorts of tools, such as linters, formatters, and all sorts of scanners of the code. It would even help with AI today, so LLM would better understand our code. Until then, all these discussions are mostly useless.

Yes, I know, and requires additional tools to be installed in IRIS, that's not out of the box solution

I while back InterSystems added some new resources to add more security for Native API
You may need to add them 

Can I get a bonus for Community opportunity Idea?

As part of the main project, to proper test across multiple versions of IRIS, I implemented another project and wrote an article about it, with examples from typeorm-iris project

I know that only Python matters nowadays, but what about other languages officially supported by InterSystems?

I found significant bugs in the NodeJS driver, and it is not worth anything.

Dmitry Maslennikov · Jul 30, 2025 go to post

The issue with reconnection was reported to WRC, and it should be fixed already, it will be resolved with the next release of the driver.

Dmitry Maslennikov · Jul 28, 2025 go to post

And I'm using NodeJS, and the official driver has so many issues, quite critical to make it somewhat useful, but only bugs in Embedded Python are worth extra points. Does not look fair.

NodeJS support requires a lot of attention, too, not only Python

Dmitry Maslennikov · Jul 28, 2025 go to post

thanks.

Unfortunately, to make this as useful as SQLAlchemy, will need much more work, and most probably full rewrite of the driver. Of course, I can do it too, I just see an interest in it, and some support.

This project has already laid some foundation for future improvements

Dmitry Maslennikov · Jul 23, 2025 go to post

Javascript support for IRIS is quite limited, and it includes async/await. But you can wrap all IRIS related stuff to promises, and it will work, kind of. There is a lot of work needed to be done on the driver side, to make it powerful in JavaScript.

At the moment, I'm working on TypeORM support for IRIS, the package not published yet, should finish this week. But mostly working, there are some samples provided, all of them working.

Please have a look. I'm looking forward to any feedback, and open to any suggestions about which JS library would need to get IRIS support next

Dmitry Maslennikov · Jul 10, 2025 go to post

SSL Error for this driver does not really mean it's SSL ERROR, in most cases it could mean, that connection can't be established, from the first step. Check if port really available, you could try it by using some different tools, like DBeaver.

And unfortunately I can't recommend this driver you trying to use, it's unstable. May throw sigfault errors randomly and have other bugs. I would recommend using this driver instead, in most scenarios both are compatible, this one just more stable and predictible. And this driver used by lots of other Python projects, like SQLAlchemy, Django, irissqlcli, and more based on them.

You can change System Mode, you can put whatever you want to be displayed there

Will be displayed on top of the management portal, much more visible than the instance name

Can be set during startup by using iris merge

[Startup]
SystemMode=Demo System
Dmitry Maslennikov · Jun 12, 2025 go to post

It was developed ages ago. I did not do it for Windows, but I think it should be possible to make it working

Dmitry Maslennikov · Jun 10, 2025 go to post

Ages ago I've impleted project named BlocksExplorer, with a various of ways of using it

One of them is generating a picture of of the database, and visualization of defragmentation.

I think I tried it once on 2TB Database, but that was long time ago.

Anyway, this tool generates picture in BMP format, where each pixel represents each block in the database, so, for 

For 2TB database, it will be around 268435456 blocks, that will be a picture 16384x16384, and in BMP with a 3 bytes per pixel, it will be around 768MB for this picture, quite big one

This project is fully open, you can try to modify it a bit, and maybe if you do it per global, you will be able to make a map

Dmitry Maslennikov · May 28, 2025 go to post

There is one more way of getting it, is using ASQ

USER> write responseData.apply("$.items[0].titles[0].value.en_US").%Get(0)

Professor
Dmitry Maslennikov · May 18, 2025 go to post
USER>:py Python 3.12.3 (main, Feb  4 2025, 14:48:35) [GCC 13.3.0] on linux
Type quit() or Ctrl-D to exit this shell.
>>> import sys
>>> sys.path
['/usr/irissys/mgr/python', '/usr/lib/python312.zip', '/usr/lib/python3.12', '/usr/lib/python3.12/lib-dynload', '/usr/local/lib/python3.12/dist-packages', '/usr/lib/python3/dist-packages', '/usr/irissys/mgr/python', '/usr/irissys/lib/python', '/usr/local/lib/python3.12/dist-packages', '/usr/lib/python3/dist-packages', '/usr/lib/python3.12/dist-packages']
>>>

did you try /usr/irissys/mgr/python, that's the path expected to be used by IRIS packages

pip install whatever --target /usr/irissys/mgr/python

and another place is /usr/irissys/lib/python, it's a place where InterSystems places Python Embedded support

sys.path, is a list of folders where python will look for the installed modules

Dmitry Maslennikov · Apr 16, 2025 go to post

Did you try using more appropriate package %Stream for it?

In your case, you would need to use %Stream.FileCharacter

 Set stream=##class(%Stream.FileCharacter).%New()
 $$$ThrowOnError(stream.LinkToFile("c:\export.csv"))
 set rs = ##class(%SQL.Statement).%ExecDirect(, "SELECT a, b FROM table")
 if rs.%SQLCODE'=0 {
     throw ##class(%Exception.SQL).CreateFromSQLCODE(rs.%SQLCODE, rs.%Message)
 }
 while rs.%Next() {
    set line = $listbuild(rs.a, rs.b)
    do f.WriteLine($listtostring(line, ","))
 }
 $$$ThrowOnError(stream.%Save())

Additionally, nowadays using embedded classes does not give much advantage, if it's not for one row result, only makes the code a bit harder to read

Dmitry Maslennikov · Apr 11, 2025 go to post

The codebase for AI, not enough in comparison to other languages. Even with much more popular languages, it makes mistakes, but yes, much less.

To help with it we need to significantly increase codebase in GitHub in ObjectScript, so that AI will have something to learn from.