Dmitry Maslennikov · Feb 11, 2023 go to post

irissqlcli has a docker version of the tool (even two versions, including for web), is it acceptable?

And demo docker-compose-example.yml, which can be used to test it locally with IRIS

Dmitry Maslennikov · Feb 11, 2023 go to post

I can't recommend IRIS SQLTools for  VSCode, as it's too far away from xDBC realizations, and works just over REST, and there is no way for a good improvement. This tool can be quite enough for some simple queries, or as some simple demonstration, with a small amount of data.

Dmitry Maslennikov · Feb 11, 2023 go to post

Access only by web, looks a bit odd, but possible. In my example of irissqlcli-web, I've just used external tool ttyd, which I'm sure can be easily tied with any webserver in use. ttyd is deamon process, supposed to be launched on the server, it opens some port, which can be used in webserver to as a proxy endpoint.

  • Multiline SQL, yes. It supported in a multiple ways, not sure what exactly do you mean
    • A file a bunch of SQL Queries, can be passed to the tool itself as stdin, and it will execute it, along with the tools commands
    • Just paste a bunch of queries, each query or command ended with semicolon. And it will work too.
  • Transactions, yes, sure, everything possible with xDBC, should work here too

In the example below, I've just copied and pasted many lines there and executed them. And done, including changing the output format, rollback transaction

As for verifying results before coming, this sounds wonderful. I don't have anything yet, in way of automation. But I don't see that it's not possible to implement. If you have any examples of how it has probably already been implemented somewhere, let me know, so, do not reinvent the wheel.

And all the features requests are welcome in the GitHub repo

And as for deeper integration SQL and IRIS, I'm sure it is worth looking at dbt project. I'm part of the implementation IRIS support, there.

Dmitry Maslennikov · Feb 10, 2023 go to post

And I would recommend using pyenv, which may help to install and use multiple versions of Python, and select needed version

Dmitry Maslennikov · Feb 10, 2023 go to post

I have not tested it with 3.11, so, not sure how it will work there. You can install multiple versions of Python with pyenv for instance.

Yes, this tool connects remotely to any IRIS instance

Well, if you require some parts of API to be anonymously available, and another part requires authorization. Then the easiest way is to implement two these APIs separately,  and configure Web Applications this way, where one of them will have anonymous access, and another would require password. And it will work, and you will not need to do anything else.

But if have everything in on API, you can look at my demo project. Based on Realworld application, offereded realizations in many different languages and frameworks.

I would recommend using .editorconfig, it's supported by VSCode. And it's very useful in this thing, when would like to have a control on indention settings in the entire project.

Hi, the way you trying to install is correct. But could you check the version of Python installed there, it requires version from 3.7 to 3.10

And another thing were boring me, is that during the build with Dockerfile, there is no way to run normal IRIS but very minimal, as fast as possible, but fully functional, and suggested that as an idea. During the build, there are no need in ECP, TaskManager and Ensemble, even many having many Write Daemons, and also PWS (where it's left). Do not waste time, starting useless processes.

There are many why's, and this is one of them for sure.

Another few things I found quite interesting

  • It starts ECPWork too, even when CE does not have any networking available, including ECP
  • It starts up to 7 AUXWD processes, not sure if there is any help from such amount if you have a limit of 10GB of databases there

Yeah, this may happen if Recurse flag is not checked for REST application. IRIS hides this flag for REST, but it is still in use, so, you would need to switch to CSP/ZEN, mark Recurse, and return back to REST

iris.cpf file in the root of IRIS installation, contains these lines

DefaultPort=1972
WebServerPort=52773

Good to know, that now it's available for both platforms by the same name

$ docker manifest inspect containers.intersystems.com/intersystems/iris-community:2022.3.0.606.0                                                                                                                                             
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
   "manifests": [
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 1584,
         "digest": "sha256:a9ad0e317042db836f3fb620200a0a269543a03714da475232b1a47ce8ce7839",
         "platform": {
            "architecture": "amd64",
            "os": "linux"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 1584,
         "digest": "sha256:80ffdd649c7ad9bc7d94a97538a88b0f11e15961a2ef9ea12715dba5ba2631a6",
         "platform": {
            "architecture": "arm64",
            "os": "linux",
            "variant": "v8"
         }
      }
   ]
}
Dmitry Maslennikov · Jan 27, 2023 go to post

And there is actually one version that is available on both platforms by the same name, it is 2022.2.0.368.0. Community and Enterprise editions 

Dmitry Maslennikov · Jan 26, 2023 go to post

The difference in the user owner of the IRIS process, System Management portal is a web process and runing under system user of IRIS irisusr, and your terminal process is under your user.

Dmitry Maslennikov · Jan 26, 2023 go to post

What is the actual problem with it? 

All export import for the code should work the same no matter of OS.

Dmitry Maslennikov · Jan 25, 2023 go to post

There are no ARM versions, since they said, that no more dedicated arm64 image names. And supposed to be the same name for both platforms. But, looks like something went wrong, and now no arm at all

And I'm just got my M2, and now with no updated preview builds.

Dmitry Maslennikov · Jan 19, 2023 go to post

Could you explain a bit more, about what do you you want to achieve?

set ws("A1") = "blah"

is just multilevel variable

if you have object in ws, with field A1, than 

set ws.A1 = "blah"

or 

set $property(ws, "A1") = "blah"
Dmitry Maslennikov · Jan 16, 2023 go to post

While WinSQL does not offer direct support for InterSystems products, out of the box, and as far as I know, no plugins exist. I would recommend switching to something with better support, e.g. Datagrip or DBeaver.

Or if it's required using WinSQL, you may write a plugin for it or order it (I can help with it), which will offer better support.

Dmitry Maslennikov · Jan 16, 2023 go to post

Should be quite simple, in some cases even without any configuration. Any ClassMethod has a shortcut to Debug it

Some more settings for different cases, you can find here