--- title: "Release Note: DataJet v5.9.22" slug: "release-note-datajet-vsept2023" updated: 2023-09-25T12:46:34Z published: 2023-09-25T12:46:34Z canonical: "docs.datajet.app/release-note-datajet-vsept2023" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.datajet.app/llms.txt > Use this file to discover all available pages before exploring further. # Release Note: DataJet v5.9.22 ## Key Features The key features of this release are: - [Filtered Joins](/v1/docs/release-note-datajet-vsept2023#ability-to-filter-joins) - it is now possible to use a filter to control which records are used in a join - [Combined Profile Report](/v1/docs/release-note-datajet-vsept2023#combined-profile-report) - allows individual profiles to be joined together to form a single output - [New Dashboard Layout](/v1/docs/release-note-datajet-vsept2023#additional-dashboard-layout-18x8) - smaller grid, allowing for greater layout flexibility - [Enhanced Export to support UPSERTING of data](/v1/docs/release-note-datajet-vsept2023#enhanced-export-to-support-upserting-of-data) - performance improvements and additional verification - [Project Descriptions](/v1/docs/release-note-datajet-vsept2023#ability-to-add-a-project-description-that-is-displayed-in-project-list-dialogs) - Project description available in Manage Project and Open Project dialogs to support management of many projects - [Table Rename](/v1/docs/release-note-datajet-vsept2023#prototype-renametable) - prototype with limited scope ## Overview #### Documentation - [Join Layers](/v1/docs/count) - [Update IF documentation](/v1/docs/if-else-endif) #### API - [ModifiedMethod: ExecuteStoredScript](/v1/docs/release-note-datajet-vsept2023#changes-to-api-methods) - [ModifiedMethod: ExportIntoTable](/v1/docs/release-note-datajet-vsept2023#changes-to-api-methods) - [ModifiedMethod: AddJoin](/v1/docs/release-note-datajet-vsept2023#changes-to-api-methods) - [ModifiedMethod: AddJoinLayer](/v1/docs/release-note-datajet-vsept2023#changes-to-api-methods) - NewMethod: RenameTable #### Engineering, Reporting and Analytics - [FIX: Multi-Function profile returns wrong total for a function measure if asint applied as post-function](/v1/docs/release-note-datajet-vsept2023#bug-fixes) - [Separation of “null” row, and “rows with null data” in profile and multi-function profile](/v1/docs/release-note-datajet-vsept2023#separation-of-%E2%80%9Cnull%E2%80%9D-row-and-%E2%80%9Crows-with-null-data%E2%80%9D-in-profile-and-multifunction-profile) - [Additional Dashboard Layout - 18x8](/v1/docs/release-note-datajet-vsept2023#additional-dashboard-layout-18x8) - [Implement "favourInteger" in Query Matrix](/v1/docs/release-note-datajet-vsept2023#favor-integer-available-in-query-matrix) - [LOWER](/v1/docs/lowera)(A) and [UPPER](/v1/docs/uppera)(A) functions now accept continuous string #### Scripting & Automation - [FIX : Copy Paste Issue in Script Editor](/v1/docs/release-note-datajet-vsept2023#bug-fixes) - [FIX : Pulling a stored script from Script Editor | Scripts | Stored Scripts doesn't include the realm](/v1/docs/release-note-datajet-vsept2023#bug-fixes) - [FIX : PUSH script appends Last\_Saved\_Date \(e.g., \[09/09/2023 13:53:23\] to script name](/v1/docs/release-note-datajet-vsept2023#bug-fixes) - [FIX: ExecuteStoredScript not returning scriptID in GetScriptResult if no scriptID provided](/v1/docs/release-note-datajet-vsept2023#bug-fixes) - [Count([Table],*]) added to IF conditions](/v1/docs/release-note-datajet-vsept2023#counttable-added-to-if-conditions) #### Database Build, Export and Management - [FIX : ExportIntoTableEx causing "discrete field file size error...could not load file"](/v1/docs/release-note-datajet-vsept2023#bug-fixes) - [FIX : DetachAllTables error : Method Not Executed](/v1/docs/release-note-datajet-vsept2023#bug-fixes) - [FIX : DeleteTable is not cleaning up underlying data files](/v1/docs/release-note-datajet-vsept2023#bug-fixes) - [Ability to Filter Joins](/v1/docs/release-note-datajet-vsept2023#ability-to-filter-joins) - [Improved error reporting for InjectPackage and InjectTables](/v1/docs/release-note-datajet-vsept2023#improved-error-reporting-for-injectpackage-and-injecttables) - [Ability to add a project description, displayed in project list dialogs](/v1/docs/release-note-datajet-vsept2023#ability-to-add-a-project-description-that-is-displayed-in-project-list-dialogs) #### General Desktop UI - [FIX : Treeview shows no counts for tables with > 2B rows](/v1/docs/release-note-datajet-vsept2023#bug-fixes) - [FIX : Context panel needs to be refreshed when a new project is opened](/v1/docs/release-note-datajet-vsept2023#bug-fixes) - [Carry 'saved' name to Save dialog for dataset in hotbar](/v1/docs/release-note-datajet-vsept2023#carry-saved-name-to-save-dialog-for-dataset-in-hotbar) ### [Breaking Changes](/v1/docs/release-note-datajet-vsept2023#carry-saved-name-to-save-dialog-for-dataset-in-hotbar) There are no breaking changes in this release. ### BUG Fixes | Issue | Resolution | | --- | --- | | Copy Paste Issue in [Script Editor](/v1/docs/script-editor) | Sometimes when using copy and paste in script editor, the clipboard would stop working. | | Pulling a stored script from [Script Editor \| Scripts \| Stored Scripts](/v1/docs/script-hub-overview) doesn't include the realm | The inserted ExecuteStoredScript method now includes the realm parameter: realm:"realmname" | | [Treeview](/v1/docs/database-tree) shows no counts for tables with > 2B rows | Tables of any size will now display the summary row count in the database tree-view | | DeleteTable is not cleaning up underlying data files | Files are now removed | | [Context panel](/v1/docs/context-panel-functional-overview) needs to be refreshed when a new project is opened | Context Panel resets when a project is opened. | | ExportIntoTableEx causing "discrete field file size error [fieldname] could not load file" | Caused by exporting into a table with no rows. There is no need to use ExportIntoTableEx anymore - use [ExportIntoTable](/v1/docs/exportintotable), and it will use ExportIntoTableEx if it is appropriate | | [DetachAllTables](/v1/docs/detachalltables) error : Method Not Executed | This method now executes. | | [PUSH script](/v1/docs/script-hub-overview) appends Last\_Saved\_Date \(e.g., \[09/09/2023 13:53:23\] to script name | Date and time no longer appended to script name | | [Multi-Function profile](/v1/docs/multi-function-profile-getting-started) returns wrong total for a function measure if asint applied as [post-function](/v1/docs/post-functions-overview) | Totals were double-counted if asint applied in some measure functions - correct value now returned. | | [ExecuteStoredScript](/v1/docs/executestoredscript) not returning scriptID in GetScriptResult if no scriptID provided | ScriptID is now returned in GetScriptresult if it was not provided as part of the ExecuteStoredScript | ### Known Issues/Constraints Downloading and running the latest version of the desktop client from [https://download.datajet.app/desktop](https://download.datajet.app/desktop) may give a windows security message. ### Changes to API Methods | Category | Method | Description | | --- | --- | --- | | General | [ExecuteStoredScript](/v1/docs/executestoredscript) | Changed Behaviour: - auto-generated scriptID is now available in GetScriptResult | | Export | [ExportIntoTable](/v1/docs/exportintotable) | Changed Behaviour: - Automatically determines internally whether to use ExportIntoTable or ExportIntoTableEx based on tablesize or dataset size. | | Engineering | [AddJoin](/v1/docs/addjoin) | New Element: - fdataset{} - foreign table filter | | Engineering | [AddJoinLayer](/v1/docs/addjoinlayer) | New Element: - fdataset{} - foreign table filter | | Data Model | [RenameTable](/v1/docs/renametable) | New Method: - Allows a shallow rename of a table | ### Feature Details #### PROTOTYPE: RenameTable A limited ability to [rename tables](/v1/docs/renametable) is now available. This is a shallow rename, and does not alter any constructors. Joins to the table will be deleted and will need to be manually recreated. #### Combined Profile Report A new [profile report type](/v1/docs/combined-profile) is available, allowing multiple simple profiles with similar row labels to be quickly joined together to create a combined profile. Profiles from different tables can be joined together in a single result grid. #### Separation of “null” row, and “rows with null data” in profile and multi-function profile New options have been added to the [profile](/v1/docs/profile-options-dialog) and [multi-function](/v1/docs/mfprofile-options) profile "Options" dialog: - Hide Totals - Hide Null Category #### Enhanced Export to support UPSERTING of data Upserting data is where the following happens to an existing table as part of an update process: - Some records may be kept - Some records may be deleted - Some records may be modified - Some records may be added See ([How to - Upsert Data](/v1/docs/how-to-upsert-data) for further details on upserting) ExportIntoTable has been modified to automatically use the ExportIntoTableEx approach when it is appropriate (i.e., when there are many fewer rows being deleted/modified than kept). This means that ExportIntoTable can be used for both stages of the Upsert process. (Previously ExportIntoTableEx was sometimes recommended for the first Export). The new process to use for upserting data is as follows: ```none Check base table BASE exists Load UPSERT table (create keys and join) //Calculate the records to keep on the BASE table create KEEPDATASET as field on BASE //Export Records to keep from BASE into NEWTABLE ExportIntoTable KEEPDATASET of BASE into NEWTABLE //Append new and modified records in the UPSERT table into NEWTABLE ExportIntoTable (APPEND) UPSERT into NEWTABLE //Rename NEWTABLE to BASE DeleteTable BASE ExportIntoTable NEWTABLE into BASE //Clean up temporary tables DeleteTable NEWTABLE DeleteTable UPSERT ``` #### Additional Dashboard Layout - 18x8 [Dashboard layout](/v1/docs/dashboard-overview-customising-layouts) options are now offered as grid sizes, and the maximum grid size has been increased to 18x8: ![](https://cdn.document360.io/73b6469b-c1e4-47e9-aa65-986c8ebd17ca/Images/Documentation/image-1695207903161.png) NOTE: A maximum of 24 reports can be added to a dashboard. The increased number of empty slots in the 18x8 dashboard is to provide greater control over report layout. #### "Favor Integer" available in Query Matrix Favor Integer can now be applied to a [query matrix](/v1/docs/query-matrix). This will display cells that have no non-zero digits after the decimal point as Integer. (Note - if the cell has non-zero decimal digits, it will still be displayed as decimal) Note - to force a decimal column to be displayed as integer, use [Post-Processing](/v1/docs/post-processing-overview), to replace the source column with a [ColumnMath](/v1/docs/columnmath) column of type Integer. #### Count([Table,*]) added to IF conditions The number of rows in a table can be evaluated in a conditional [IF statement](/v1/docs/if-else-endif) using Count([TableName],*) notation: ```json { "method": "IF", "condition": "Count([BikeTripData],*)>90000000", "project": "BikeData2" } ``` #### Ability to Filter Joins When joining two tables, it is now possible to select which records in the foreign table will be included in the [join](/v1/docs/joins) by applying a filter: ![](https://cdn.document360.io/73b6469b-c1e4-47e9-aa65-986c8ebd17ca/Images/Documentation/image-1695216247171.png) #### Improved error reporting for InjectPackage and InjectTables Increased error checking has been added to [InjectPackage](/v1/docs/injectpackage) and [InjectTables](/v1/docs/injecttables) to help these proceses. InjectTables has been modified to formally block injecting a table into it's source project. See [Deep Dive - Sharing Data by Injection](/v1/docs/deep-dive-sharing-data-by-injection) for more details on injecting data. #### Ability to add a project description, that is displayed in project list dialogs Project descriptions can now be added as part of the CreateProject method: ```json { "method": "CreateProject", "description": "Sample Bike Project for testing", "project": "BikeData2_smp", "name": "BikeData2_smp" } ``` These description will be displayed in the Manage Project and Open Project dialogs: ![](https://cdn.document360.io/73b6469b-c1e4-47e9-aa65-986c8ebd17ca/Images/Documentation/image-1695217152464.png)It is also possible to specify the project description using the [SetProjectProperties](/v1/docs/setprojectproperties) method: ```actionscript { "method": "SetProjectProperties", "description": "Version 5.9 demo database", "project": "Demonstration" } ``` #### Carry 'saved' name to Save dialog for dataset in hotbar If a dataset has been renamed in the hotbar, right-clicking and choosing save will carry the new name into the save dialog: ![](https://cdn.document360.io/73b6469b-c1e4-47e9-aa65-986c8ebd17ca/Images/Documentation/image-1695301899968.png)