-
Notifications
You must be signed in to change notification settings - Fork 56
Table Viewer optimization in ITC #1466
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Table Viewer optimization in ITC #1466
Conversation
I, Danila Grobov (s4642g) <danila.grobov@seb.se>, hereby add my Signed-off-by to this commit: 176ab4b I, Danila Grobov (s4642g) <danila.grobov@seb.se>, hereby add my Signed-off-by to this commit: c12016f I, Danila Grobov (s4642g) <danila.grobov@seb.se>, hereby add my Signed-off-by to this commit: 9d1aff6 I, Danila Grobov (s4642g) <danila.grobov@seb.se>, hereby add my Signed-off-by to this commit: 328b22d Signed-off-by: Danila Grobov (s4642g) <danila.grobov@seb.se>
Signed-off-by: Danila Grobov (s4642g) <danila.grobov@seb.se>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @danila-grobov, overall looks great!
So it appears that 512 # adCmdTableDirect
doesn't crash. I used general command select * from
in my previous trial #1132 (comment) and it will crash.
DCO Remediation Commit for Danila Grobov (s4642g) <danila.grobov@seb.se> I, Danila Grobov (s4642g) <danila.grobov@seb.se>, hereby add my Signed-off-by to this commit: 2ab7999 Signed-off-by: Danila Grobov (s4642g) <danila.grobov@seb.se>
Signed-off-by: Danila Grobov <danila.grob@gmail.com>
…zation Signed-off-by: Danila Grobov <danila.grob@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@scnwwu Third time's the charm, I promise the tests will pass now.
Signed-off-by: Danila Grobov <danila.grob@gmail.com>
@scnwwu Fixed linting issues. |
Hi @danila-grobov, now that #1388 is merged. Please rebase your change with latest main branch. Thanks. |
…zation Signed-off-by: Danila Grobov <danila.grob@gmail.com>
I have tested the ITC connection with the latest version, works good and it is incredibly faster comparing to the previous approach. Great work @danila-grobov. |
@scnwwu @scottdover I have rewritten getLibraries and getTables using the same approach @danila-grobov used and it changed loading time of libraries from seconds to milliseconds in my case (which in my opinion makes user experience much better). I think it will be nice to be released together with this change. Should I submit a separate PR or add a commit in this one? |
Thank you. That would be a good improvement. This PR is from @danila-grobov's forked repo I'm not sure if you're able to add a commit to the branch. I guess you can create a PR to @danila-grobov's branch and if @danila-grobov approved and merged it, it will be in this PR. Or you can create a separate PR after this one merged. |
In this case I think it will be better if I create a separate PR, I'll try to do it tomorrow. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything looks good, the date/time format is nice to have.
"MONTH", | ||
"MON", | ||
"DOWNAME", | ||
].some((f) => format.includes(f)) && |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we add 8601 formats? They are common in clinical programming.
Date: E8601DA, E8601DN, D8601DA, D8601DN: ([B|E]8601D[N|A])
Datetime: ([B|E]8601(D[T|Z|X]|LX))
Time: ([B|E]8601(T[M|Z|X]|LZ))
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@scnwwu: Perhaps enhancing SAS format support to include the lateset available SAS-provided formats should be moved into a dedicated pull request?
@DmitryMK: Also wanted to create awarenes for the fact the the doc link mentioned in the previous comment for National Language Support formats is really old. Here are doc links that will always point to the latest production:
Tip: Use .../default/... instead of .../v_xxx/... in SAS Viya 4 doc links, so they resolve to the latest documentation.
…ssoftware#1502) Bumps the docusaurus group in /website with 4 updates: [@docusaurus/preset-classic](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-preset-classic), [@docusaurus/theme-mermaid](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-theme-mermaid), [@docusaurus/module-type-aliases](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases) and [@docusaurus/tsconfig](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-tsconfig). Updates `@docusaurus/preset-classic` from 3.7.0 to 3.8.0 - [Release notes](https://github.com/facebook/docusaurus/releases) - [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/docusaurus/commits/v3.8.0/packages/docusaurus-preset-classic) Updates `@docusaurus/theme-mermaid` from 3.7.0 to 3.8.0 - [Release notes](https://github.com/facebook/docusaurus/releases) - [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/docusaurus/commits/v3.8.0/packages/docusaurus-theme-mermaid) Updates `@docusaurus/module-type-aliases` from 3.7.0 to 3.8.0 - [Release notes](https://github.com/facebook/docusaurus/releases) - [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/docusaurus/commits/v3.8.0/packages/docusaurus-module-type-aliases) Updates `@docusaurus/tsconfig` from 3.7.0 to 3.8.0 - [Release notes](https://github.com/facebook/docusaurus/releases) - [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/docusaurus/commits/v3.8.0/packages/docusaurus-tsconfig) --- updated-dependencies: - dependency-name: "@docusaurus/preset-classic" dependency-version: 3.8.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: docusaurus - dependency-name: "@docusaurus/theme-mermaid" dependency-version: 3.8.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: docusaurus - dependency-name: "@docusaurus/module-type-aliases" dependency-version: 3.8.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: docusaurus - dependency-name: "@docusaurus/tsconfig" dependency-version: 3.8.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: docusaurus ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…sassoftware#1504) Bumps the dev group with 3 updates in the / directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [eslint](https://github.com/eslint/eslint). Updates `@types/node` from 22.15.19 to 22.15.29 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@typescript-eslint/eslint-plugin` from 8.32.1 to 8.33.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.33.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.32.1 to 8.33.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.33.0/packages/parser) Updates `eslint` from 9.27.0 to 9.28.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](eslint/eslint@v9.27.0...v9.28.0) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 22.15.29 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.33.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev - dependency-name: "@typescript-eslint/parser" dependency-version: 8.33.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev - dependency-name: eslint dependency-version: 9.28.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Tested the PR with connection type COM and IOM
|
@danila-grobov would you resolve the conflict and I'll merge it. Thank you. |
@scnwwu will do later today |
Signed-off-by: Danila Grobov <danila.grob@gmail.com>
@scnwwu Done, you can go ahead and merge. |
Thank you again. Great contribution! |
Summary
Currently the table viewer is not usable for ITC connection, especially if you have a lot of columns, it takes like 20 seconds if not more to load. Related to the issue #1439 and #1233
I've also fixed #1132 in this. The table looks correct now:

I've mostly fixed that by making use of ADO DB connector that SAS includes with interop library. I borrowed a bunch of setup for this from #1388, so changes in CodeRunner for example are just a copy paste from that PR.
I was made aware of the crashing issue that others have faced with using this connector, however I didn't envounter it and I've tried oppening up a bunch of different tables.
I've also added a column type detection function, which I ripped from SAS Studio. So it interprets the formats in the same way and now we can see all of the beautiful icons.
Now it takes around 7 seconds including column loading, compared to 5 seconds that it takes in Enterprise Guide for the same table.
I did decide to stop at this point just to see what you guys think and release this into the wild. If this goes well, we can look into improving this further. There are at least three areas of pottential improvement:
Testing
I don't have access to locally running SAS, so all of this has been tested on a remote IOM connection to a server running on RHEL.