The following is a list of changes associated with each Beta release of the 1010data Insights Platform.

Version 19.55 (05/11/2023)

  • Fixed misaligned tabulation results when using rollups and multiple <tcol>s have the same fun and source attributes.

Version 19.54 (05/04/2023)

  • Allow users to change their preference regarding the Fast Blockcode Interpreter or the original Blockcode interpreter.

Version 19.48 (03/16/2023)

  • Added <do action_="combine_tabs"/>. It works by running <do action_="dbm" trans_="combine_tabs" commit="1"/> under the hood, with sanitized arguments and .lim.jobprivs temporarily enabled.

Version 19.47 (03/09/2023)

  • Added the ability to run python code in <do>, in the context of a dynamic.

Version 19.44 (02/16/2023)

  • Fixed crash in g_forecast() when using certain AutoARIMA models with a drift term. Also fixed a hang in g_arima() with bad data when not using AutoARIMA.
  • Introduced a Code --> Append Op --> Add <merge> menu item to MLW, allowing users to visually pick a table to merge in, similar to the panels accessible via the grid right-click menu in MLW and TRS.

Version 19.43 (02/09/2023)

  • Added an optional uid_ parameter to <do action_="userprofile"> so that a compadmin can use it to modify profiles of other users in their company.

Version 19.38 (01/05/2023)

  • Fixed a bug causing g_forecast() to give time-shifted forecasts for ARIMA models (dependent on model order).

Version 19.35 (12/15/2022)

  • The function g_sarimax(B;S;O;X;VV;SP;P;D;Q;PP;DD;QQ;OPTS) performs Seasonal ARIMA with eXogenous variables. SARIMAX can fit the entire family of models (ARIMA, SARIMA, and ARIMAX), and g_sarimax can fit any of these models, depending on which arguments are present.
  • g_sarimax() (as well as g_arimax(), g_sarima(), and g_arima()) can all now perform Auto(S)ARIMA(X). To enable this, use the auto:1 option in the OPTS. If AutoARIMA is enabled, then the P, D, and Q arguments (as well as PP, DD, and QQ if applicable) each specify the maximum values of the respective model parameters to be searched.
  • g_forecast(B;S;O;X;VV;M;OPTS;R) (see beta-19.15) now supports sarimax and autoarima models returned from g_sarimax() (see above) and its aliases.

Version 19.33 (12/01/2022)

  • The standalone QuickApp runner can now take uid_, sid_, and epw_ parameters in the URL to make use of a live session.

Version 19.28 (10/27/2022)

  • The standalone QuickApp runner now supports a tag_=n parameter to run the existing QuickApp with tag n. This allows (for example) creating a QuickApp with API2 by posting XML to /api/new and then displaying it in a web browser.

Version 19.24 (09/29/2022)

  • Support for multiple versions of R, including the latest 4.2.1 version, by using <meta>r_version="4.2.1"</meta>.

Version 19.22 (09/15/2022)

  • In <render><data>, added the attribute export_bom_. If set to 1, this attribute appends the byte order marker to CSV files to allow Excel to interpret UTF-8 characters.

Version 19.17 (08/11/2022)

  • The function g_cumsum_clamp(G;S;O;X;F;C) is similar to g_cumsum(), but optionally “clamps” the cumulative sum so that it is never less than or greater than a given value.

Version 19.16 (08/04/2022)

  • g_arima() and g_forecast() how handle error conditions better. For g_arima() the default option returns a model object with the result parameter set to ‘error'. For g_forecast(), an errored model will by default cause the function to return NAs instead of forecasted values.

Version 19.15 (07/28/2022)

  • g_arima() and g_forecast() now work in Windows environments.
  • The arguments for g_forecast() have changed. The syntax is now g_forecast(G;S;O;X;VV;M;OPTS;R). The argument VV was added to allow for a list of independent variables in the case of a model that incorporates such variables, such as ARIMAX. For ARIMA models, simply leave VV empty.
  • g_stl(), g_arima(), and g_forecast() have all been updated to allow integer arguments (formerly they would signal “inappropriate argument(s),” requiring their arguments to be cast to float first).
  • Added new aquant (approximate quantiles) function for tcol/tabu.

Version 19.14 (07/21/2022)

  • New function g_arima(G;S;O;X;P;D;Q;OPTS) fits an ARIMA(P,D,Q) model for time series data.
  • New function g_forecast(G;S;O;X;M;OPTS;R) may be used to show fitted values and forecast future values of a time series X using the model object in M. g_forecast() currently supports ARIMA models only, but it will support other models in the future. This function works only in Linux environments as of version 19.14.

Version 19.06 (06/02/2022)

  • g_stl() now works under Linux.

Version 19.02 (05/05/2022)

  • Fixes to g_stl(), including adjusting defaults so that it is no longer necessary to specify seasonal_length explicitly when using an even number for seasonality, and fixing algorithm to bring results in line with modern STL code.
  • Fixed tabulation with <rollup/> that is using fun=ucnte. This is currently limited to type=hier and no sets.

Version 19.01 (04/28/2022)

  • Added support for confidence and prediction intervals for g_lsq (the least squares regression group function).


For the highlights, technical advisories, and release details for the release of the 1010data Insights Platform Version 18, see Release Notes.

Version 19.00 (04/21/2022)

  • The SQL Metadata tool contains a new View as superadmin check box, visible only to users with examine_all and/or admin_all SQL privileges. When the check box is selected, the user may see and select all schemas in the catalog, not only the ones on which the user is listed as an admin.
  • The opcachelocal option is now on by default. It can be switched off on a query-by-query basis with noopcachelocal or for the entire session by turning it off in Advanced Settings.
  • The function g_stl(G;S;O;X;NP;OPTS;R) performs a time-series decomposition on the column X using the STL (Seasonal-Trend decomposition using LOESS).

Version 18.40 (03/31/2022)

  • A new caching option can potentially speed up some queries, at the cost of slightly more memory overhead. It is off by default for now, but can be switched on in the GUI under Advanced Settings, in the Advanced tab, with the check box next to Enable per-op segment cache for local columns. In addition, the option can be turned on and off on a query-by-query basis with <meta>opcachelocal</meta> and <meta>noopcachelocal</meta>, respectively.
  • The new function iff() has the same syntax and semantics as if(), but as the number of arguments (condition-result pairs) increases it is potentially much more memory-efficient and often significantly faster as well.
  • Added another fix for <tcol fun="lo"/"hi"> when applied to ragged-string columns.

Version 18.37 (03/10/2022)

  • The function clamp(X;Y;Z) returns Y if X<Y and Z if X>Z. Otherwise, it returns X. The return type is the same as the type of X, which may be numeric or a string. Similarly, the function clip(X;Y;Z) returns NA if X<Y or X>Z. Otherwise, it returns X. The return type is the same as the type of X. The function clipout(X;Y;Z) returns NA if X>=Y or X<=Z. Otherwise, it returns X.
  • Added a more comprehensive fix for <tcol fun="lo"/"hi"> when applied to ragged-string columns.

Version 18.36 (03/03/2022)

  • Added option in Workspace Settings to select which columns should be used to perform a search in the Object Manager. This will narrow down search results.

Version 18.35 (02/24/2022)

  • A search in Object Manager that would return too large a number of results will now return the first 2000 results. Previously, the search returned no results.

Version 18.34 (02/18/2022)

  • <do action_="sql" put_="view"> now supports changing the source code of a view to Macro Language, including “magic tables.”
  • <do action_="sql" analyze_="view"> will now analyze Macro Language queries as well as SQL.

Version 18.33 (02/10/2022)

  • Enable by default the “fast string extrema” feature that greatly improves performance (typically by a factor of 3-4x) of <tcol fun="lo"> and <tcol fun="hi"> on text columns. The Advanced Settings tool in the GUI can be used to toggle this feature.
  • Added new chart type <widget class_="bokehchart" type_="lineplot"/>, which is a combined line+scatter type.

Version 18.32 (02/04/2022)

  • In the TRS Visualize panel, added bar chart variations: stacked, percent, and horizontal.
  • In the TRS Visualize panel, added Chart Elements to the More Options panel so that you can toggle x/y grid lines, legend, toolbar, and tooltips.

Version 18.31 (01/27/2022)

  • Wrap error messages in JSON when _fmt=json.
  • When using the extended form of <sel>, under certain circumstances selections on indexed rows caused an error. This has been fixed.
  • It is possible to materialize an existing table using replace="1" and move it to a different storage tier ( between nvm and ssd ). This can be done explicitly by indicating store_type="ssd" for an nvm table or store_type="nvm" for an ssd table, and can also be done implicitly by omitting store_type from the <materialize> command for an ssd table. In the latter case, nvm will be used as the default target storage tier. You cannot change storage tiers with a <materialize append="1">.

Version 18.23 (11/25/2021)

  • Several re-factors to R/Python functionality as well as the addition of major changes to R/Python graphics.
  • Added the studentt_cdf_inv function, which is like normal_cdf_inv(P;U;S) but for the Student-t distribution.

Version 18.22 (11/18/2021)

  • In a cross-tabulation, it is now possible to change the naming and labeling scheme for result columns. By default, in a single <tcol> cross-tabulation, the row total column is named t0 and the individual column-break columns are named m0, m1, m2, etc. (one for each column break value). In a multi <tcol> cross-tabulation, the row total columns are named t0, t1, etc. (one for each <tcol>) and the individual column-break columns are named m0_0, m0_1, m0_2, m1_0, m1_1, etc. That is, they are named mX_Y where X indicates the <tcol> and Y indicates the column break. The optional name= attribute of <tcol>, which formerly could be not be specified in a multi <tcol> cross-tabulation renamed the row total (t0) column, but had no effect on the m columns. Also, the label= attribute of <tcol> (in a single or multi <tcol> cross-tabulation) specifies the labels of the row-total columns t0, t1, etc.
  • The new <tcol> attribute cname="PREFIX" is available. As with name=, if it is specified, it must be unique for each of the <tcols>. In a single <tcol> crosstab, PREFIX is used instead of m. For example, the column break columns will be PREFIX0, PREFIX1, PREFIX2, etc. (one for each column break). In a multi <tcol> crosstab, the PREFIX for <tcol> X is used instead of mX_, e.g. for the column break columns will be foo0, bar0, foo1, bar1, foo2, bar2 (and so on for each column break value), or, in the case of <tabu cmorder="first">, the same names but grouped as follows foo0, foo1, foo2, … bar0, bar1, bar2, …

  • The new <tcol> attribute clabel="PREFIX" is available. If present on a <tcol>, it specifies that the labels of the column break columns for that <tcol> (derived from column break values) will be prefixed by PREFIX.
  • The named format types type:currency_gbp (shorthand for type:currency;unit:GBP) and type:currency_eur (shorthand for type:currency;unit:EUR) are now available in format strings, and displayed in TRS dropdowns and MLW hints.
  • Improved the still-experimental /api/aqi endpoint. Added commands get_qlog and clear_qlog to get a tabular query system that tracks when each query was sent to AQI, when it was sent to a worker (which may be sometime later if all workers were busy and the request got queued), and when the data came back from the worker. Data is returned as a dictionary of columns. There is also an /api/aqi/.qlog widget that exposes this same data as a table, allowing things like /api/aqi/.qlog/!data:json.rows?sort_=reqid, etc.

Version 18.21 (11/11/2021)

  • Fixed 400 errors for empty results against segmented tables.

Version 18.18 (10/21/2021)

  • Added <merge ... materialize="1" path="[PATH]" virtual="0"/> support for exattr values with stripe and stripe_factor. If an exattr with stripe (or stripe_factor) exists in tables being merged, the minimum stripe (or stripe_factor) is used in the exattr of PATH. If no stripe exists in any table, but a minimum stripe_factor that is strictly smaller than 1.0 exists, and if the user can upload to more than one mach, a stripe of 2 is set in the exattr PATH.
  • Added experimental /api/aqi endpoint. The endpoint provides support for list_workers, start_worker, get_log, and clear_log. The format of the data returned by this endpoint may change.

Version 18.16 (10/07/2021)

  • The format attribute numgroups may be used to specify alternate groupings of digits in numbers. The currently valid values are:
    • numgroups:INT (default): 123,456,789
    • numgroups:ALT: 123,456,789 but 1234 (no comma in 4-digit numbers)
    • numgroups:LC: 12,34,56,789 (2-digit groups except for the final 3 digits)
    • numgroups:WYZ: 1,2345,6789 (4-digit groups)

Version 18.15 (09/30/2021)

  • Rank exact matches and prefixes higher for title/path fields in Object Manager search results.
  • Hide pw from trans_=get_user.
  • stripe, stripe_factor logic for <materialize append=1>
    • If table already has those exattr, don't allow changes to either value (keeping the table square)
    • In Cloud 2.0 environments, prevent use of adv_type, adv_stripe, adv_machs, machs, shared_target

Version 18.13 (09/16/2021)

  • Added support for !head:(json|k3|bd)(.(cols|rows|keys)?) to data widget. In other words, you can use multiple formats for the !head method now.

Version 18.12 (09/09/2021)

  • The format string option padwith: may now be used along with numeric (such as num, commas, pct, currency) and text (char) formats (not date/time etc.) to specify that the displayed value should filled or "padded" out to the column width with a particular character or sequence. Alternatively, padto: may also be specified, in which case the value may be padded to fewer characters than the full column width. Furthermore, a negative value for padto: specifies padding on the right.
  • The format string option locale: may now be used to modify the display behavior for numeric, date, and date+time values, overriding user preferences. The currently valid values of locale are US, UK, EU, and INT; other locale specifications may be added in the future.
  • The format string attribute type:months may now be used to specify that an integer value is to be construed as a year-to-month interval representing a whole number of months and displayed broken down as years and months. Also, the format string attribute type:days specifies that a floating-point value is to be construed as a day-to-second interval representing a possibly fractional number of days and displayed broken down as days, hours, minutes, and (possibly fractional) seconds. The dec: option specifies the number of digits shown after the decimal place for seconds, and defaults to 0. Also, supplementing the existing type:datehms24 as a format type for timestamps (date+time values), it is now possible to specify type:datehms12, type:date4yhms24, and type:date4yhms12.

  • New bokehchart types. type_=(“hbar”|“stackedbar“ | “hstackedbar“|“percentbar“|“hpercentbar“). Added new attributes: toolbar_=(“1”|“0”) and tooltips_=(“1”|“0”).

Version 18.05 (07/15/2021)

  • Added stripe_factor to <materialize>.

Version 18.04 (07/08/2021)

  • The tohour(X;OPTIONS), tominute(X;OPTIONS), and tosecond(X;OPTIONS) functions yield, given a time or string representing one, or a date-time value or string X, the hours, minutes, and seconds parts, respectively. Also, the unixdt(X;OPTIONS) function returns a Unix-epoch time value (number of whole seconds since midnight, January 1, 1970) as a bigint (64-bit integer) value. Conversely, the dtunix(X;OPTIONS) function returns a 1010 timestamp (date+time) value given an integer, bigint, or floating-point value X representing Unix-epoch time.

Version 18.03 (07/01/2021)

  • The todayofwk() function (introduced in beta-18.02) now supports the option 'monday' to begin the week on Monday (return 1 for Monday, 2 for Tuesday, ..., 7 for Sunday).
  • The todayname(X;OPTIONS) function yields, given an integer 1-7, a date or string representing one, or a date-time value or string X, the conventional name of the day of week (Sunday, Monday, Tuesday, .. or Monday, Tuesday, Wednesday...). The tomonthname(X;OPTIONS) function is similar, but yields a month name given an integer 1-12, a date/month/quarter value or string representing one, or a date-time value or string.

Version 18.02 (06/24/2021)

  • The todatetime(X;OPTIONS) and todate(X;OPTIONS) functions accept a new option 'allowyqm'. If the option is specified, these functions will accept year (for example, 2021), quarter (for example, 20214) and month (for example, 202112) integer values.
  • The toyear(X;OPTIONS), toyrqtr(X;OPTIONS), toyrmo(X;OPTIONS), toquarter(X;OPTIONS), tomonth(X;OPTIONS), today(X;OPTIONS) (day of month), todayofwk(X;OPTIONS) (day of week), and todayofyr(X;OPTIONS) (day of year) functions are now available.

Version 18.01 (06/17/2021)

  • Table-valued functions may now be written directly in SQL as well as in 1010data Macro Language. To add a SQL TVF, use <do action_=”sql” add_=”tvf” language_=”sql”>.
  • <do action_=”sql” put_=”tvf” schema_=”SCHEMA” objname_=”FUNCTION” signature_=”SIGNATURE” data_=”{...}”/> modifies an existing table-valued function.
  • In the same manner as MDB tables may be ad-hoc imported as SQL tables by using their pathnames, MDB quick-queries may be ad-hoc imported as table-valued functions, provided that their final operation is <block> (or <blocklet>).

Version 18.00 (06/10/2021)

  • Attempting to display a table containing a ragged string column in single-row view yielded a “valence” error; this has been fixed.
  • The new attribute insertxml_= can be supplied to <widget> and takes either an XML value (or list of XML values), or a string value representing XML. The XML is used as the body of the widget.
  • The GUI Table Downloader tool (as well as the Save Table and Save for FTP tools) now properly handle queries containing <import> exported from, for example, MLW or TRS.
  • Table-valued functions may now be polymorphic (have multiple argument signatures) and nulladic (zero arguments is a valid signature).
  • <do action_="sql"> offers new functionality related to table-valued functions (parameterized views or “stored procedures”). You can specify a definition of a table-valued function with <do action_="sql" add_="tvf">. You can also delete a table-valued function, list TVFs and signatures, and get a TVF or signature.


For the highlights, technical advisories, and release details for the limited production release of the 1010data Insights Platform Version 17, see Release Notes.

Version 17.32 (06/03/2021)

  • GROUP BY ROLLUP(column,column,...) and GROUP B CUBE(column,column,...) are now supported. Also, GROUP BY GROUPING SETS ((column,column,…),(…),…) is supported, with the restriction that the union of all grouping sets must be one of the sets. For example, GROUPING SETS ((a,b),(c,d)) is not valid but ((a,b,c,d),(a,b),(c,d)) is. Only one ROLLUP(), CUBE(), or GROUPING SETS () expression (or else a regular list of columns) may be specified in GROUP BY.
  • Inner join performance has been improved by avoiding link-and-select when joining on a known foreign key; for example, sales s JOIN products p ON s.sku=p.sku where sku is marked as a key in products and the sku - products - sku relationship is marked as a foreign key in sales. Keys and foreign key relationships can be set in the SQL metadata tool.
  • When ad-hoc importing MDB tables in a query (For example, SELECT ... FROM “”), we now respect keys if present in the table’s exattr.
  • It is now possible to add integers to (or subtract them from) date values. The result is a date shifted by the specified number of days. Note the difference between SELECT DATE 'Jan 1, 2020' + 365 which returns the date 2020-12-31, and SELECT DATE 'Jan 1, 2020' + INTERVAL '365 days' which returns the timestamp 2020-12-31 00:00:00.
  • The table-valued function GENERATE_SERIES(from,to) is now available for use in a FROM clause. Syntax and functionality broadly matches that of the function of the same name in PostgreSQL.
  • It is now possible to use table-valued functions (MACRO() and GENERATE_SERIES() as well as schema-defined TVFs) in JOIN clauses.
  • The table expression table1 a LEFT OUTER JOIN table2 b ON NEAREST(a.x<=b.y) performs the equivalent of the 1010data <link type=”asof” after=”0”>. In addition, the syntax NEAREST(...,n) may be used to shift n rows from the nearest row (shift= parameter in <link>).
  • Fixed an issue in the SQL Metadata Tool in which users not using the Fast Blockcode Interpreter and not trying to rename an object got an error indicating an attempt to rename an object to an invalid name.

Version 17.31 (05/27/2021)

  • fromdatetime(), fromdate(), fromtime() now return empty string, and dayofyr() now returns NA when called with NA arguments; also, asciichr('') now returns NA. Related to this, various cases in which the SQL functions DATE_PART(), DATE_TRUNC(), TO_CHAR(), ASCII() returned non-NULL values when called on NULL arguments have been resolved.
  • Boolean values are now compatible with the NULL literal in CASE statements and similar contexts. For example, CASE WHEN x IS NULL THEN NULL WHEN x=0 THEN FALSE ELSE TRUE END (a very long-winded way of expressing simply x<>0) which previously gave an “incompatible result types” error.
  • The new tcol function sumna is equivalent to sum, except on an empty table or in the case where all source column values (in the table or a break) are NA, where it returns NA instead of 0. While the behavior of sum is more correct mathematically, sumna provides better compatibility with the SQL standard SUM() aggregate function. Accordingly, it is now the default in the SQL engine for the sum of empty groups to evaluate to NULL rather than 0. The MDB behavior can be obtained in SQL queries with <code language_="sql" options_="{zeroemptysum:1}”>.
  • Correct computation of sample (as opposed to population) variance and standard deviation (tcol functions var_s, std_s and SQL VAR_SAMP() and STDDEV_SAMP() aggregate functions) Also fixed: g_var_s(), g_std_s(), g_wvar_s(), and g_wstd_s().
  • Miscellaneous small changes to casting for better compatibility:
    • CAST('bogus string' AS DATE) IS NULL is now true
    • CAST(DATE 'May 25, 2021' AS VARCHAR) now returns '2021-05-25' rather than '20210525', similarly for time and timestamp values
    • CAST(5=5 AS VARCHAR) now returns 'true' rather than '1' , similarly with 'false'.

  • Debugging functions: The sigerr(X;S) function has been extended to take a column expression S (formerly S could only be a string literal). (These functions are meant for debugging. The <find> operation is far more appropriate if you are trying to find a row with a particular property.)
  • Bugfixes for broken API2 methods.

Version 17.30 (05/20/2021)

  • Errors coming from AQI workers are now properly trapped and reported through API2.
  • Fix for type error in cloud environments.
  • Transparent caching change that dramatically improves performance for queries with an exceptionally large number of operations.
  • The GUI2 table save utility (used by TRS and MLW, among others, to save data into a 1010 table) now has a SQL tab, in which a user with admin access to at least one SQL schema (including a self schema) may select the schema and optionally choose a SQL table name (the 1010 table name is used if none is specified). After the query result set is saved to an MDB table, it is then automatically analyzed (which may take significant extra time) and added to (or replaced in) the selected SQL schema as well.
  • Several improvements in the SQL Metadata Tool.
  • <do action_="sql"> new functionality in various methods, as well as additional options for adding, getting, and deleting views.

Version 17.29 (05/13/2021)

  • Added SQL Metadata Tool to the Admin menu of the GUI. This tools allows authorized users to add, edit, and remove SQL schemas, tables, and columns. Users who are listed as admins for a schema may edit the schema and the objects within the schema. Adding and removing schemas requires separate permissions.
  • <do action_="sql"> provides a programmatic API to the SQL metadata store.

Version 17.28 (05/06/2021)

  • Bug fix for domain error in certain <tabu/> or GROUP BY queries in the AQI.
  • Workaround for untrapped error in the sql endpoint when a user's macropath is missing, for example, because a query is running on an AQI worker.
  • Deprecated the Advanced Uploader.

Version 17.25 (04/15/2021)

  • Fix for type error in the ? operator when the XML value contains comment nodes.
  • The value widget now pretty-prints XML rather than showing the raw k structure. In addition, there is a new /api/ops endpoint that shows the XML of a stored query or live QuickApp.
  • The right-click context menu for query objects in Favorites is now consistent with the context menu in the Object Manager. The context menu now includes Run Query in TRS and Run Query in Query Runner. (Query Runner is deprecated and will eventually be removed.)

Version 17.23 (04/01/2021)

  • Allow searching for short and long descriptions in the Object Manager.
  • Small fixes to the API2 user interface: fixed escaping on links, always use HTTP 403 Forbidden instead of HTTP 400 Bad Request.
  • Removed the System Statistics admin tool and its associated menu item.

Version 17.22 (03/25/2021)

  • Allow searching for short and long descriptions in the Object Manager.
  • The /api/new endpoint will now accept queries that don't end with <dynamic>. However, the endpoint will not automatically add an instid_ attribute to these queries. You can make use of the special variable @count_ maintained by this endpoint to generate your own instid_.
  • Fixed length error selecting on BIGINT_COLUMN=bigint('NUMERIC_STRING') by insuring that bigint(), like int() and real(), returns a scalar result when passed a literal string.

Version 17.20 (03/11/2021)

  • The <affinity> operation now works correctly on single-segment tables, including in-memory tables at the accum with no segby property, as well as on multi-segment tables with no segby when ignoresegby=”1” is used (subject to the caveats related to ignoresegby="1").

Version 17.19 (03/04/2021)

  • For <widget class_="dropdown" multi_="1"> and <widget class_="dropdownlist">, behavior has changed in cases where immediate_="0" is specified and a delay_= attribute is not specified. In this case, changes are not sent to the server until the widget's drop-down menu has been closed, either by clicking away from the widget, or (for <widget class_="dropdown" multi_="1">) in the widget's field area, or (for <widget class_="dropdownlist">) by hitting the Tab key. (Note that clicking in the field area does not close the menu for class_="dropdownlist" because text typed in that area is used to narrow down the menu.) This is the originally intended behavior for the immediate_=”0” attribute. Formerly, if delay_="..." was not specified in conjunction with immediate_="0", a default value of delay_="0.25" (250 msec) was assumed and changes were submitted after this delay had elapsed with no user interaction. This behavior, if desired, can still be obtained by explicitly specifying delay_="0.25".

Version 17.18 (02/25/2021)

  • When fetching a widget in API2, an error is now signaled if the query for that widget fails. Previously, the widget failed silently and returned default.lonely.

Version 17.17 (02/18/2021)

  • The API2 HTML user interface now properly html-encodes error messages.
  • Improved communication between TRS/MLW and the CSV/XLSX/PDF file export tool.

Version 17.16 (02/11/2021)

  • /api/run now preprocesses <import/> tags to avoid block not found errors.

Version 17.15 (02/04/2021)

  • In transcode(), don't skip conversion when to and from formats are the same if the 'discard' option is provided. This allows transcode(string;;;;'discard') to be used to discard illegal non-UTF-8 sequences from a string.

Version 17.14 (01/28/2021)

  • class_="trs" widgets are now mapped to class_="data" in API2. Previously, API2 ignored class_="trs" widgets.
  • Fixed a bug for "Access Denied" errors when using imports in API2.

Version 17.13 (01/21/2021)

  • Fixed a bug related to selecting on expressions, which resulted in incorrect <tabu> results.
  • Added indicator column, if specified, for empty <tabu> with <rollup type="cube"|sets"/>

Version 17.12 (01/14/2021)

  • Took out references to 'my' for the uploads folder.
  • Now, when you open a QuickApp saved to Favorites, it opens in a new tab. Previously, the QuickApp opened in the same tab.

Version 17.06 (12/03/2020)

  • Made the following changes to api_cgi.k:

    • Fixed missing closing bracket that was causing a 500 error.
    • Added new HTML pages for the login/logout endpoints when a GET request is used. This allows you to launch an API session from your browser, if desired.
    • API2 now handles the HTTP OPTIONS method gracefully.
    • The 403 page for expired sessions now has a link to the new !login form.

  • Increase length limit of passwords from 16 to 32 characters.

Version 17.05 (11/19/2020)

  • /api/!login now respects IP address authorization rules.
  • Added default value of _n for select_ attribute in <materialize>.
  • Fixed Create/Save Multiple Users functionality in the User Manager.

Version 17.03 (11/05/2020)

  • Logo placement is now controlled by @gui20_preferences.logo.pos and uses the same x,y syntax as the fixpos_ widget attribute.

Version 17.01 (10/22/2020)

  • Fixed a typo that was breaking API2.

Version 17.00 (10/16/2020)

  • Temporarily removed menu option for Focused Mode, since it is not launching with v16.
  • /api/ep?_fmt=xyz can now be used instead of /api/ep:xyz to specify output format.
  • add /api/ep/@ syntax to explicitly request the widget status table when ep contains an index widget. Also, /api/ep/.w is now the preferred syntax for fetching widget w. /api/ep/@w still works for now, but should be considered deprecated.
  • Fixed extraneous _path value in HTML UI links.
  • Fixed path for the 1010data logo in Windowed Mode and Focused Mode, so they work under quickapp.k.
  • Fixed the terminal widget and thus the K3 and JS consoles for x1010 users.
  • Implemented <widget class_="bokehchart" type_="geograph">. This widget provides interactive continental USA and Mexico map charts. (Available through Macro Language Workshop only for now.)


For the highlights, technical advisories, and release details for the limited production release of the 1010data Insights Platform Version 16, see Release Notes.

Version 16.36 (10/08/2020)

  • You can now open Focused Mode workbooks in Windowed Mode. Previously, this resulted in an error.

Version 16.34 (09/24/2020)

  • Added Open Focused Mode to Session menu, and added Focused Mode to Advanced User Settings.
  • Fixed domain error when using pw2 for an interactive login.

Version 16.33 (09/17/2020)

  • Added int NA functionality to module ten. NumPy does not have an NA type for ints, so we set ten.IntNA=–2147483648.
  • Removed "G1/G2" from "Please login again" message.
  • API sessions now possess GUI sessions when accum dialect is 4.

Version 16.32 (09/10/2020)

  • Added language key to userdata() for localization.

Version 16.31 (09/03/2020)

  • Mapped SQL function ceiling to MDB function ceil.
  • Updated password requirements on Expired Password Reset page.
  • Enhanced support for special characters in passwords. Spaces are still not allowed.

Version 16.30 (08/27/2020)

  • Symbol values in packages and lists are now no longer treated differently from string values. It is still good practice when using such a value to specify that you want to construe it as a string (by using @$foo instead of just @foo) but it should no longer be strictly necessary. Also, {} is construed as the empty list (such as {lst()}) and {:} is construed as the empty package (such as {pkg(;)}). These changes are intended to make it more convenient to use the existing short-form list and package literal syntax. For example, you can write {'foo','bar','baz'} instead of {lst(’foo''bar''baz')} and {a:'foo',b:‘bar’,c:‘baz’} instead of {pkg(’a''b''c';'foo''bar''baz')}.
  • In XML views, list and package values in XML attributes are now represented explicitly. Previously, the attributes were simply omitted; now they are converted into the short-form literal syntax where lists are represented as {value1, value2, value3, …} and packages as {key1:value1, key2:value2, key3:value3, ...}. This prevents the situation in which a converted legacy PQQ is edited in XML without replacing omitted attributes, then resaved or reexecuted, leading to an error.
  • In TRS view-only mode, when a legacy PQQ is run, it will now be consolidated automatically after conversion. Also, an error condition resulting from consolidation of a converted legacy PQQ that begins with a non-strict legacy parameterized drop-down selection has been corrected.
  • In TRS view-only mode, execution of the partial timeline is delayed as long as possible to shift wait time from before to after parameter entry whenever possible (such as when the partial timeline is not used to generate options for parameter entry).
  • In TRS view-only mode, once data is displayed, a new Open TRS timeline icon is displayed on the right side. Clicking will open a full TRS with the timeline displayed and ready to do further analysis.
  • The default Object Manager action for both QQs and legacy PQQs is to run the query in TRS ("view-only" mode), rather than the Query Runner. Running in TRS view-only mode can now be chosen as an association for queries in Workspace Settings. (The Query Runner will be considered deprecated in V16 as equivalent functionality should now be present in TRS view-only mode.)
  • In a Simple Select panel, submission of an “is one of” or similar comparison is no longer possible when no values are entered in the taglist field. This prevents the error that formerly occurred after submitting such a comparison.
  • When a legacy PQQ is opened in MLW, parameterization annotations will now be shown in their respective XML attributes (with the same [[ \ \ ... ]] syntax as used in Edit Actions (XML) in the old interface). The XML can be edited and resaved with the annotations, thereby preserving (or even modifying) legacy parameterization. Legacy parameterization for the <block> and <insert> operations is also preserved. This is an enhancement over the old interface, which did not represent block parameterization in Edit Actions (XML).
  • Within a block’s <declare> section, each <param> tag may take an optional require="expr" attribute, where expr should be a Boolean expression (generally in terms of the parameter @variable). The expression does not need to be surrounded in curly braces. For example, <param name=”foo” label=”Foo” type=”string” require=”@foo<>''“/> declares that the block parameter foo should be a non-empty string.
  • When constructing an op panel GUI for a <block> that declares at least one parameter with a require= condition (see previous change), the panel will not permit submission of the block (submit buttons will be dimmed) unless all such require= conditions are satisfied. This is equivalent to using @trs_ready in a custom GUI declared in the <trs>
  • section of <declare>.

  • When a simple selection operation is parameterized using direct value entry and with the Allow this selection to be bypassed option unselected, the parameter declaration require condition capability (see previous change) is now used to prevent an empty selection value from being submitted. When the Allow this selection to be bypassed option is selected, an empty selection is permitted (as before) and causes the selection to be bypassed.
  • When a legacy PQQ is converted to a parameterized timeline and it contains a selection parameterized with Text, Required, the declaration require condition capability (see previous change) is now used to prevent an empty selection value from being submitted. When the selection is parameterized with Text, Opt-out (or Opt-in) an empty selection is permitted (as before) and causes the selection to be bypassed.

Version 16.29 (08/20/2020)

  • In the AQI, workers now handle <import/> in table filters.
  • <do action_="dbm" trans_="combine_tabs" commit="1"/> now traps an error when users/upload=inherit and there is no value_ attribute.
  • Fixed display of API Access in the User Manager to reflect the correct API Access status.
  • <do action_="sleep" ms_="{@#n}"/> sleeps for n milliseconds. The value for ms_ must be a non-negative integer less than or equal to 900000 (15 minutes).

Version 16.28 (08/13/2020)

  • Added the <tcol> functions std_s and var_s, as well as the g_functions g_std_s and g_var_s. These functions provide the sample standard deviation and variance functions, respectively. These functions are the same as the existing population functions, but divide by n-1 instead of n (where n is the number of rows).
  • The SQL functions STDDEV and VARIANCE have been remapped to the new MDB functions. The new SQL functions STDDEV_SAMP and VAR_SAMP are also mapped to the new functions. The new SQL functions STDDEV_POP and VAR_POP are now mapped to the older std and var MDB functions. These are the names PostgreSQL uses for this family of functions.
  • Spaces around the password are now trimmed and no longer result in a login error.

Version 16.26 (07/30/2020)

  • New tables added to the db tree now get () instead of _n for their ops0 field, preventing a type error when manually opening the table in TRS.
  • Removed a stray double-quote character that was visible only when quickapp.k was embedded in an iframe.

Version 16.23 (07/09/2020)

  • AQI workers now correctly clone SQL metadata from the main accum when they start.

Version 16.22 (07/02/2020)

  • The new isolate_="1" option may be used in <dynamic>. It prevents the variable environment in which the <dynamic> form is expanded from being inherited (automatically copied) into the dynamic environment. This means that variables from the environment cannot be referred to within <widget> and <do> in the environment. However, it can improve QuickApp performance, especially when <dynamic> is used inside a <widget class_="nest">, because the isolation from the original expansion environment makes it more likely that the block cache can be used to avoid a potentially expensive re-expansion.

    The following example displays foo is 17, as expected.

    <let foo="17">
        <widget class_="text">
          foo is {@foo}

    With isolate_="1", the expansion environment is not inherited, and foo is {@foo} is displayed instead.

    <let foo="17">
      <dynamic isolate_="1">
        <widget class_="text">
          foo is {@foo}

    To fix this, the variable may be explicitly copied into the dynamic environment.

    <let foo="17">
      <dynamic foo="{@foo}" isolate_="1">
        <widget class_="text">
          foo is {@foo}

  • Similarly, isolate_="1" can be used on <loop>. Variables from the expansion environment cannot be referenced unless they are explicitly passed into the <loop>.
  • A number of GUI changes in various components, as well as changes to the workspace meter and dashboard widgets, have been made that significantly improve average GUI response time.
  • Reopening a saved workspace in the same browser tab should work in modern Chrome versions again.

Version 16.21 (06/25/2020)

  • The delay before the progress bar appears in the user interface has been increased to 2 seconds.

Version 16.20 (06/18/2020)

  • The parser now handles <col>=" and <col>='<any number of blanks>'.
  • Python can now be used to build tabulations in the Macro Language. When you place <code language_="python"> within a <tabu>, the Python code has access to apply a Python function on all segments. The function ten.dist_apply disseminates Python code to all sub-procs. In addition, the function ten.make_table is used to create a worksheet.

Version 16.18 (06/04/2020)

  • Added more functionality/tests to <def_gfun> with <code language_="python">.

Version 16.17 (05/28/2020)

  • Fixed issue where <tcol fun="ucnt"> and other "count" functions such as ucnte and valcnt were not always properly promoted to floating point in tables greater than 2 billion rows.
  • Added the ability to use <resource/> with python, as well as regression testing <def_ufun/>, for building NLP functions.

Version 16.16 (05/21/2020)

  • In the Post-hoc Performance Analyst, a Results view linked from the Completed Queries view displays statistics about data fetches from a specific query, allowing viewing of the dataset. A Table view makes it possible to inspect the contents of physical and temporary tables linked from the State Cache, Temporary Table, and Completed Queries views. Additionally, you can export the data to TRS. There are also minor cosmetic fixes.
  • When a data query is successfully run in MLW and results are displayed, a tachometer icon appears in the button bar to the far right. Clicking on this button invokes a new PPA instance displaying the finished query. The PPA instance is then linked to the MLW instance. Each time a successful data query is run in MLW subsequently, the PPA will be updated to reflect the new query.
  • Similarly, a tachometer icon now appears in the button bar below the Clone View button in TRS and may be used to invoke a new PPA instance that is linked to the TRS timeline as displayed in the grid.
  • When throwing an error about duplicate <widget/> names, the error message now displays those duplicate names.

Version 16.15 (05/14/2020)

  • The Post-hoc Performance Analyst now includes a Table Information view that gives a concise overview of performance-relevant information about physical tables. This information includes segby/sortseg/tsbreaks, indexed columns, prelinks, and distribution of data over segments, subprocesses, and machines as actually seen by the current session.
  • The PPA also includes a Finished Queries view with information about queries that completed successfully. The finished queries can be filtered by base table and other search parameters. If a cached state is associated with the query, you can go to a Cached State view to view that state in more detail.
  • In the Performance view of the PPA, you can view execution performance by execution steps, columns retrieved, functions executed, and tables linked.
  • Added initial def_ufun/def_gfun for python. def_ufun test includes simple one-two argument functions, input/output json types, input/output model/dict/pkg types, input list of columns, and input optional arguments.

Version 16.14 (05/07/2020)

  • The Post-hoc Performance Analyst, a tool for browsing and searching MDB’s cached state and performance information after queries have been run, has been added to the Tools menu in the GUI. Some built-in help is available.

Version 16.13 (04/30/2020)

  • The prettyxml(X;) function converts an XML special value X into a fully formatted text representation. The second argument is currently ignored.
  • The initlist_= option is now available for <widget class_="dropdown"/> and <widget class_="dropdownlist"/>. With this option, the included query is ignored and the supplied list (of values, of 1-, 2-, or 3-element lists, or of packages with 'value', 'label' and/or 'hint' keys) is used instead to initialize the dropdown's menu. This has the same effect as using <table> to initialize the dropdown, but can often be more convenient.

  • Added the option multiindex_ignore with default set to False for ten.MetaData().from_pandas(df). The default case will throw an error if a multi-indexed pandas data frame is passed.

Version 16.11 (04/16/2020)

  • QuickApp direct access URLs now work in the cloud.

Version 16.10 (04/09/2020)

  • Added the following MDB functions for drawing random values. Functions with an underscore, such as draw_int(X;Y), are sticky:
    • drawint(X;Y)/draw_int(X;Y) - Returns an integer between 0 and Y-1, seeded with X.
    • drawrand(X)/draw_rand(X) - Returns a float between 0 and 1, seeded with X.
    • drawunif(X;A;B)/draw_unif(X;A;B) - Returns a float between A and B, seeded with X.

Version 16.09 (04/02/2020)

  • Fixed typo in table uploader for quarter4y display format.
  • Added the following functions:

    • leftstr(X;Y) - For non-negative values of Y, returns the first Y characters of string X. For negative values of Y, returns all but the last -Y characters. Example: leftstr('testing';3) returns 'tes', and leftstr('testing';-3) returns 'test'.
    • rightstr(X;Y) - For non-negative values of Y, returns the last Y characters of string X. For negative values of Y, returns all but the first -Y characters. Example: rightstr('testing';3) returns 'ing', and rightstr('testing';-3) returns 'ting'.
    • midstr(X;Y;Z) - For non-negative values of Y, returns up to Z characters starting at the Yth character of the string X. For negative values of Y, returns up to Z characters starting at the Yth character from the end. Fewer than Z characters may be returned if the end of the string is reached. The Z argument is optional; if omitted, midstr(X;Y;) returns the string from the Yth character to the end.
  • When used as an MDB operation, <code> may take the attribute entire_="1". In this case, the operation is processed differently. For language_="k3", language_="r", and language_="python", rather than just the operations preceding the <code> tag, the ops variable contains all the operations of the active MDB query, with the <code> tag itself excised. In addition, the currentop variable contains the excised <code> tag and the current index variable contains the 0-based index of the <code> tag in the original op stream. The operations returned by the code in the ops variable are processed recursively if they contain further <code> tags (with or without entire_="1"). This provides both a method for recursive query generation and also the basis for a powerful advanced facility to implement user-defined operations that can inspect and arbitrarily rewrite the query in which they appear.
  • <do action_="dbm" trans_="combine_tabs"/> now supports a commit="1" flag, which automatically issues a put_tab or add_tab transaction after the combine_tabs succeeds. This avoids corruption of some internal k values in the skel that have no natural representation in JSON (specifically the wide variety of "typed nulls" often found in the na field).
  • Added preliminary support for language_="python" in macro code. The supplementary 1010 functions are in the class 'ten' that is preloaded into the python session. There are currently the classes GetData and MetaData, and the methods rows and rebase. More will be added in the future.

Version 16.08 (03/26/2020)

  • The "Make Block" feature may now be used to parameterize user-supplied <block> operations in the timeline, as well as to edit existing parameterization of <block> that might result from legacy PQQ conversions. Custom prompts and data types may be specified for each parameter.
  • <do action_="dbm" trans_="(add|put)_tab"/>, and therefore the /api/dbm endpoint in Dynamic API, now support the tsbreaks and tssorts fields.

Version 16.07 (03/19/2020)

  • Legacy PQQ conversion (see 16.06) will now occur whether a PQQ is opened directly by the user from within TRS, or via a GUI 2.0 sentence, such as the Object Manager. Futhermore, a parameterized timeline will now have all steps loaded into TRS when opened, whether from within TRS or the Object Manager. The Object Manager option to open a query in TRS has now been renamed to "Open in TRS" from "Open results in TRS" to reflect this change.
  • The taglist widget for entering multiple values in parameterized timelines is now height-limited. A scrollbar will appear if there are many input values.
  • It is now possible to add a legacy PQQ to Favorites.

Version 16.06 (03/13/2020)

  • When advancing through a TRS timeline with the "play" button, and when a query is loaded "hot" into TRS, if a link or merge operation contains parameterized operations, rather than popping up a new TRS for the worksheet, the timeline will dive into the worksheet, then surface back to the main timeline when the user has advanced to the end of the worksheet. This will facilitate a more intuitive sequential workflow.
  • It is now possible to open a legacy parameterized quick query (PQQ) in the initial file browser of TRS. Parameterized operations, including operations in nested worksheets, are converted into parameterized blocks in the timeline. Currently, the PQQ must be opened from within the initial file browser of TRS in order to take advantage of this new functionality.
  • Fixed the logic for when to display users/uploaders in the Object Manager. Previously, the Object Manager information panel failed to show users/uploaders if more than one was in the list.

Version 16.04 (02/27/2020)

  • Added the following functions:

    • isodayofwk(X) - Returns the ISO-8601 day of the week for date or timestamp X.

    • isoweek(X) - Returns the ISO-8601 week-numbering week for date or timestamp X.

    • isoyear(X) - Returns the ISO-8601 week-numbering year for date or timestamp X.

Version 16.03 (02/20/2020)

  • The login page now tolerates leading and trailing spaces in user IDs and passwords.

Version 16.02 (02/13/2020)

  • Added the following functions:

    • dayofyr(P) - Takes a date or a timestamp and returns the number of its day in the year. For example, dayofyr(20191225)=359, while dayofyr(20201225)=360, because 2020 is a leap year.

    • trunc(X;Y) - This function is similar to round(X;Y), but instead of rounding X to the nearest multiple of Y, it always rounds in the direction of 0 (down if X is positive, and up if X is negative). For example, trunc(1234.567;0.1)=12345.5, while round(1234.567;0.1)=1234.6, and trunc(-1234.567;0.1)=–12345.5, while round(-1234.567;0.1)=–1234.6.

    • atan2(X;Y) - This function calculates the conventional 2-argument arctangent function (equal to atan(x/y)) when Y is positive, and arbitrarily defined as 0 when both X and Y are zero.)

  • The New operation panel of TRS will now display only operations from the Basics and Miscellaneous categories by default. The operations in the Retail category will no longer display by default. The trs_op_categories user preference must be set to re-enable the Retail category.

  • Improved the behavior of the link panel in TRS when included/excluded columns have been customized via the cols attribute of a query. Previously, the customized cols attribute was being ignored.

  • Added text to the Foreign database panel in TRS directing users to 1010data Support for help adding connections to their organization's SQL databases.

Version 16.00 (01/30/2020)

  • Simplified the example code in the new Code panel of the TRS Analysis timeline.

  • Fixed certain cases where a cached query was being rerun unnecessarily after submission from the GUI.

  • The Quick Analysis column context menu is now available in Macro Language Workshop after a data query has been rendered. These options—Basic statistics, Distribution, and Histogram—work the same way as they do in TRS. However, the analysis panel is not dynamic; that is, submitting a new query in MLW will not change the contents of the analysis panel.


For the highlights, technical advisories, and release details for the limited production release of the 1010data Insights Platform Version 15, see Release Notes.

Version 15.30 (01/23/2020)

  • Refinement to the behavior of the taglist widget while using complete_="1". Clicking on an item in the context menu will no longer dismiss the menu.

  • Added Favorites functionality to the TRS Analysis timeline.

  • Added a Code panel in the TRS Analysis timeline. This panel represents the macro code <code language_="..."/> which exposes sql, r, and k3 as usable languages within the TRS Analysis timeline.

Version 15.28 (01/09/2020)

  • The Date/Time operation in the TRS Analysis Timeline now allows the specification of an order hint when working with date-times. Previously, an order hint could be specified only for dates.

  • The attribute listvalue_ may now be used interchangeably with value_ in the taglist widget. The taglist widget accepts comma-separated lists as strings, but always outputs a list value.

  • Corrected an issue in which @$x, where x is an empty list, would produce an index error. Now @$x will correctly expand to the empty string.

Version 15.27 (01/02/2020)

  • Further refinements to the behavior of rowvalue_ in the taglist widget. If a user-input value is not matched in the query which drives completion, that row will be padded out with appropriate null values in the table stored in rowvalue_ rather than omitted. That way, the number of rows in rowvalue_ will always match the number of values in value_.

  • Added the Log Launcher application to the Tools menu so that internal users can navigate to it without needing to open and expand the Object Manager. This tool is visible only to users in the logs_x1010data usergroup.

  • Improved the error message displayed when a user attempts to upload a local .xlsx file in the Table Uploader. The error message indicates that this functionality is available for Excel workbooks stored in the FTP directory.

Version 15.26 (12/26/2019)

  • Added the optional attributes dropdownwidth_ and dropdownheight_ attributes to the taglist widget. These attributes behave the same as they do in the dropdown widget.

  • Added the optional rowvalue_ attribute to the taglist widget, which behaves the same as it does in the dropdownlist widget. This attribute takes the name of a dynamic variable. This feature is intended to be used in conjunction with complete_="1" or serverfilter_="1".

  • Fixed params bug for the case where <merge> without ops has a filter that references @params_.

Version 15.25 (12/19/2019)

  • The Favorites view in the Object Manager now consistently updates correctly.

  • The Object Manager search bar now consistently ignores leading and trailing whitespace.

  • The Password Reset email sent out when a user requests it now indicates whether the user is inactive or expired.

Version 15.24 (12/12/2019)

  • The date and field widgets now accept an optional locale_ attribute taking a culture code. The cultures currently supported are en-US (English, USA, the default value), en-CA (English, Canada), and fr-CA (French, Canada). The date widget will use culture-appropriate language when locale_ is specified, and will prefer the culture's date format. The field widget behaves differently only if its type is numeric In that case, it will respect the culture's conventions for thousand and decimal separators.

    The example below shows the usage of the locale_ attribute in the date and field widgets:

    <dynamic d="20191015" n="1234.56">
        <widget class_="date" locale_="fr-CA" value_="@d"/>
        <widget class_="field" type_="numeric" locale_="fr-CA" format_="dec:5" value_="@n"/>

  • The Password Reset screen has been edited to more clearly state which symbols are not allowed in the password.
  • Fixed a minor typo in the Password tab of the User Profile tool.

Version 15.23 (12/5/2019)

  • Added a new attribute to the grid widget: negativecolor_. If set to a non-empty string, it is interpreted as a CSS color to apply as a foreground color to any cells of the grid which contain data in the form of a negative number. negativecolor_ is supported in both the web renderer and XLSX output.

  • Fixed a bug for regex_match when used with empty worksheets.

Version 15.22 (11/21/2019)

  • <do action_=dbm trans_=copy_tab/> now allows you to override the owner.

  • Added a new Group Metrics panel, which provides a convenient interface for straightforward applications of some g_functions.

  • The grid context menu now makes use of the full range of export parameters (CSV, Excel workbook, or PDF) when downloading an entire table or a selection of a table.

  • The redesigned Scheduler tool supports all the previous features of the Scheduler, and contains the following additional features:

    • A cleaner user interface, faster loading times, and more modern functionality
    • Support for newer sched2 features, such as multijob subscription, custom email subject/body, and results compression
    • Improved application integration and customization

Version 15.21 (11/14/2019)

  • Added a new menu item File > Export... > to file... in Macro Language Workshop. This menu item opens a window that allows the user to configure renderer options before exporting to a local file of type CSV, XLSX, or PDF.

  • The Export tab in TRS has been updated to provide the same options as those in the File > Export... > to file... menu in Macro Language Workshop.
  • In the new string to date functions todate(), totime(), and todatetime(), the 'invalidna' (return null on invalid input) default option is now set.
  • The special variable rct_ takes one of the string values ('i', 'f', 'j', 'a', 'n') corresponding to the current column's basic data type: integer, float, bigint, string, or other, respectively, when processing an r_ function. This is analogous to rcv_ and rcn_, placeholder variables that take on the current value and column name, respectively, for each column in succession. In addition, the special variable rca_ represents the result of processing all columns up to the current one, and is useful with certain r_ functions.
  • The special variable rcn_ was being set incorrectly in the case of columns from linked foreign tables. This is now fixed.
  • Added new r_ (row) and g_ (group) functions, as follows:

    • r_over(C;S;A;X) - Returns the result of evaluating expression X for each value of the columns specified by the optional C and S arguments. C may be an explicit list of columns or a string matching expression matching 0 or more columns. S is a boolean column or expression in rcv_/rcn_/rct_ that determines whether a particular column should be included at a given row. A is an initializing argument for rca_ at the first column processed for each row. For example, r_over(;rct_='f';0.0;rca_+rcv_^2) is the sum of squares of all floating-point columns in a row of the table.

    • r_mappkg(C;S;X) - Returns a package value for each row in a table. The keys of the package are column names. The values of the package corresponding to the keys are the values at each column of X, an expression in rcv_/rcn_/rct_. Each of the arguments is optional. For example, r_mappkg(;;) returns a package whose keys are all the columns of the table and whose values are the values of those columns in each row. r_mappkg('s*';rct_='a';strupcase(rcv_)) returns a package with upper case versions of all columns beginning with the letter s that are type string.
    • r_mapjson(C;S;X;O) - Similar to r_mappkg(), but instead of returning a package, it returns a string containing a JSON representation of the package.
    • r_maplst(C;S;X) - Similar to r_mappkg(), but instead of returning a package of values keyed on column names, it returns a list with those same values in the order those columns appear in the table.
    • r_mapstring(C;S;X;Y) - This r_function already exists, but now works similar to the above functions if X is omitted (X is treated as rcv_). If C is a matching expression that matches no columns, or if S is false for all matching columns at a particular row, an empty string is returned.
    • g_lst(G;S;O;X) - Returns a list value for each group specified by G. The values in X appear in the order they appear in the table, or in the order determined by O if it is specified.
    • g_lstpkg(G;S;O;X) - Similar to g_list() but requires a package value as argument X. It returns a package of equal-length lists, with each key corresponding to values from the same key in the package arguments.

  • <do action_="get_users_groups"/> now accepts the recursive flag, which must be an integer (boolean value).

Version 15.20 (11/7/2019)

  • Added a new experimental panel which provides a convenient user interface for simple applications of the new date/time parsing and formatting functions.

  • When opening a saved query whose operations contain "special values" such as lists or packages, Macro Language Workshop will now attempt to preserve them by converting them into appropriate expandable literal forms. This feature will be useful with saved Parameterized Quick Queries.
  • Fixed issue in which year/month values were not given appropriate pickers in simple select, causing problems with round-tripping expressions and comparisons. Columns formatted as months now get a specialized "month" picker, so that various year/month formats are now parsed correctly.
  • Fixed issue with fromdatetime() not handling vector (column) arguments correctly. Also fixed inadvertent error regression to shiftmonths() on column arguments.

Version 15.19 (10/31/2019)

  • Improved error checking and generalization of the following string handling functions: bstrdrop, bstrpick, bstrsplit, bstrtake, csl_drop, csl_pick, csl_take, strdrop, strpick, strsplit, and strtake. For bstrdrop, bstrpick, bstrsplit, bstrtake, strdrop, strpick, strsplit, and strtake, providing a null value as the delimiter value is the same as providing an empty string.

  • Added new functions to convert strings to dates, times, datetimes (timestamps), and time intervals expressed in integer months or floating point days. Each function takes two arguments. The second argument is optional but may be a list of one or more symbolic options.

    The functions are as follows:

    • todate(X;Y) - Converts a value to a date value, which is an integer value of the form YYYYMMDD. This date value can then be formatted in one of the date formats, such as type:date. X may be a string, datetime, or date value. Y can have the following values: 'mdymode', 'dmymode', or 'ymdmode', to indicate whether X is in Month/Day/Year format, Day/Month/Year format, or Year/Month/Day format, respectively.
    • totime(X;Y) - Converts a value to a time value, which is an integer value of the form HHMMSS. This time value can then be formatted in one of the time formats, such as type:hms24. X may be a string, datetime, or time value. Y can have the following values: 'allow24', 'forbid24', and 'rollover', depending on whether or not 24-hour time, such as '24:00:00', is permitted. With 'rollover', any positive value is accepted in the hours field, but is taken modulo 24, so that '36:13:14' becomes 121314.
    • todatetime(X;Y) - Converts a value to a datetime (timestamp) value, which is a floating-point value. This datetime value can then be formatted in one of the datetime formats, such as type:datehms24. X may be a string, date, or timestamp value.
    • todays(X;Y) - Converts to a days interval value, a floating-point value that represents the number of days. X may be a string, months, or days value.
    • tomonths(X;Y) - Converts to a months interval—an integer value that represents the number of months. X may be a string, days, or months value.

  • Added new functions for formatting dates, times, and datetimes (timestamps) as strings. Each function takes two arguments. The first argument, X, is a value or column of the appropriate type and the second column, Y, is a "template" string specifying how the output should be formatted.

    The functions are as follows:

    • fromdate(X;Y) - Formats a date (YYYYMMDD) according to the provided template.
    • fromtime(X;Y) - Formats a time (HHMMSS) according to the provided template.
    • fromdatetime(X;Y) - Formats a datetime value according to the provided template.

  • A new function, signum(X), returns the sign of the number X. Possible values are -1 for a negative number, 0 for 0, and 1 for a positive number.

  • <do inspect_="scope" tag_="tag" value_="@var"> populates @var with a package containing the dynamic environment for tag. If tag_= is omitted, then the dynamic environment from which <do> was invoked is used, as with other cases of inspect_.

  • The <tabu> operation will now produce more meaningful errors if a function is applied to a source column of an inappropriate type.

  • Fixed a bug where Macro Language Workshop windows with unsaved changes failed to render correctly when loading a saved workspace.

  • Added haversine_dist() function. The first four arguments must be float, and the fifth argument can be 'km', 'miles', or empty. The default value for the fifth argument is 'km'.

    <willbe name="distmiles" value="haversine_dist(lat1;lon1;lat2;lon2;'miles')"/>

  • Added the meta option nomaxfor, which allows <for> loops to exceed the maxfor limit of 1000. For example, <meta>nomaxfor</meta>.

Version 15.17 (10/17/2019)

  • The options presented in the "Quick Select Rows..." grid context menu are now filtered based on whether the current selection is a single cell (or row) or multiple rows.

  • The grid context menu option "View in single-row mode" is hidden if the current selection is multiple rows.

  • Added support for "Quick Links" in the grid context menu of Macro Language Workshop for parity with the parallel Trillion-Row Spreadsheet operation.

Version 15.15 (10/03/2019)

  • Initial version of support for uploading/importing XLSX files is now available. For now, this functionality is only available for files stored in a user's FTP directory; local upload support is under development.

  • Minor enhancement to <widget class_="buildgrid"/>. The optional attribute columns_stretch_ may be set to last, all, or none (the default) to control column widths. If the grid is wider than the natural width of all columns, last will cause the last column to stretch to consume the available space, and all will divide the excess space uniformly between columns.

  • Introduced a new user panel for performing common string substitution operations.

  • It is no longer possible to save a Trillion-Row Spreadsheet query on top of its own base query (if any). If a query has "hidden actions", it will still warn the user upon attempting this, but also permit them to import those "hidden actions" before saving.

Version 15.14 (9/26/2019)

  • Overhauled the design of the "New Operation" panel. There is no longer a "more" back face to the panel. All operations are now shown on the front face of the Trillion-Row Spreadsheet, including user-defined blocks. Operations are sorted into categories based on the category attribute set on the block in a <trs> tag, or "Miscellaneous" if none is specified. If an icon attribute is not set, it will default to fa-cube. The new search field at the bottom of the panel has focus when the panel opens, and a user may type to narrow the set of available operations based on their label, description, category, or other metadata.

  • In addition to the existing shortcuts for opening a <willbe> panel by typing = or a <sel> by typing ?, users may now also type < to open a new code panel and enter macro-code manually.

  • Added user preferences for configuring the behavior of the Trillion-Row Spreadsheet. trs_op_categories may be a string comprised of a comma-separated list indicating the names of categories (see above) or null. The primitive operations are given the special category "Basics", and uncategorized operations are given the special category "Micscellaneous". If this preference is specified, only the listed categories will appear in the Trillion-Row Spreadsheet "New Operation" panel. trs_tabs may similarly be a comma-separated list of tab names or null. If specified, this preference behaves like (and overrides) the tabs_ attribute: It controls the order in which tabs on the left side of the TRS window appear, and which items appear. "Analyze" is always implied if not explicitly specified. If only "Analyze" is available, the tabs themselves are hidden.

  • The table uploader tool does not currently support uploading .xlsx files. If a user attempts to do so, it will now fail gracefully with a clear explanation instead of failing silently. Likewise, compressed files such as .zip files will get a clear error message instead of silent failure. The only file extensions for local files which are now considered valid are .txt, .csv, .tsv, and .psv, consistent with the behavior for S3 uploads.

  • Improved the internal consistency of the "Expand" and "Split" miscellaneous op panels, both visually and in terms of their semantics.

  • Introduced <widget class_="field" type_="column"/>. Fields of this type constrain input to be a valid column name (consisting of lowercase, alphanumeric and underscore characters, must start with a letter and may not end with an underscore) as in the Trillion-Row Spreadsheet willbe panel.

Version 15.13 (9/19/2019)

  • Overhauled the design of the "New Operation" panel. There is no longer a "more" back face to the panel. All operations are now shown on the front face of the Trillion-Row Spreadsheet, including user-defined blocks. Operations are sorted into categories based on the category attribute set on the block in a <trs> tag, or "Miscellaneous" if none is specified. If an icon attribute is not set, it will default to fa-cube. The new search field at the bottom of the panel has focus when the panel opens, and a user may type to narrow the set of available operations based on their label, description, category, or other metadata.

  • In addition to the existing shortcuts for opening a <willbe> panel by typing = or a <sel> by typing ?, users may now also type < to open a new code panel and enter macro-code manually.

  • Added user preferences for configuring the behavior of the Trillion-Row Spreadsheet. trs_op_categories may be a string comprised of a comma-separated list indicating the names of categories (see above) or null. The primitive operations are given the special category "Basics", and uncategorized operations are given the special category "Micscellaneous". If this preference is specified, only the listed categories will appear in the Trillion-Row Spreadsheet "New Operation" panel. trs_tabs may similarly be a comma-separated list of tab names or null. If specified, this preference behaves like (and overrides) the tabs_ attribute: It controls the order in which tabs on the left side of the TRS window appear, and which items appear. "Analyze" is always implied if not explicitly specified. If only "Analyze" is available, the tabs themselves are hidden.

  • The table uploader tool does not currently support uploading .xlsx files. If a user attempts to do so, it will now fail gracefully with a clear explanation instead of failing silently. Likewise, compressed files such as .zip files will get a clear error message instead of silent failure. The only file extensions for local files which are now considered valid are .txt, .csv, .tsv, and .psv, consistent with the behavior for S3 uploads.

  • Improved the internal consistency of the "Expand" and "Split" miscellaneous op panels, both visually and in terms of their semantics.

  • Introduced <widget class_="field" type_="column"/>. Fields of this type constrain input to be a valid column name (consisting of lowercase, alphanumeric and underscore characters, must start with a letter and may not end with an underscore) as in the Trillion-Row Spreadsheet willbe panel.

Version 15.12 (9/12/2019)

  • Introduced a new workspace preference launchbar_alwaysopen which controls whether the launchbar should collapse when not moused over (the default) or always stay open (the new option). Users may change this in the workspace preferences panel, via the checkbox labeled "Always show launch bar".

  • Added support for server-side filtered completion in the taglist widget. Setting serverfilter_="1" will enable this functionality. After the user types at least one character, the widget will retrieve completion suggestions, up to the limit configured with maxcompletions_. Note that unlike complete_="1", server filtering does not constrain input values to only the set of completion options. Filtering is always performed case-insensitively. The filter_ attribute may be set to contains or beginswith to control the strategy for finding matches.

  • <code language_="r"> may now be used in <tabu>. As with other <code language_="r"> functionality it may only be used in environments that are setup correctly. The R code should be wrapped in a CDATA tag. An R function is passed to either the function DistApply(using, fun, args) or DistReduce(using, mapfun, args, reducefun). This is analogous to R's lapply() function, but instead of a list as the input data, a set of column names are specified for access on each segment.

    DistApply(using, fun, args) runs fun(args) on each segment and returns a list of segment results. It takes 3 arguments:

    • using: supplies the column information for each segment. You may think of using as 'priming' the data for the sub-processes.
    • fun: the function to be applied to each segment. It takes a single argument.
    • args: the argument to fun.

    MakeTable() takes a data.frame, with the option of a labels argument, and return a tabu object. The tabu object is then used to create the <tabu>'s worksheet. For R in <tabu> to work as expected the tabu object should be named 'tabu', as we'll see in the example.

    Get() is used inside fun to extract data. Get takes a single value, and returns a single vector. Column names supplied to Get(), must have first been primed in the using argument of DistApply().

    Simple dummy unique counts aggregation with DistApply():

    <defop name="dummy_ucnt_tabu">
      <code language_="r">
    col <- 'species'# x is the object args passed to DistApply
    f <- function(x){
      # Get retrieves data for the column name supplied.
      # the name supplied to Get must be a name supplied to using in DistApply.
      dat <- Get(x[['col']])
    args <- list(col = col)
    # DistApply returns a list of results. Each list element is the result of a segment.
    results <- DistApply(using = col,fun = f, args = args)
    unqcnts <- length(unique(unlist(results)))
    # MakeTable takes a data.frame and optionally a labels argument.
    # Note: that the return object of MakeTable is called 'tabu'
    tabu <- MakeTable(data.frame(unique_counts = unqcnts),labels='Unique Counts')
    # a value called 'tabu' must exist before the R code exits.
    <base table=""/>

Version 15.11 (9/05/2019)

  • Removed the Compatibility Mode option from the Session menu, as well as the user preference for configuring it as the default UI. Compatibility Mode is being deprecated as part of the process of moving to the cloud.

  • Improved logic for the caps lock status display on the login page.

  • Many refinements to the lineup widget.

    • Added error messages if required arguments are missing, and generally improved error message phrasing.
    • If a label column is not specified, values from the name column are used.
    • If item metadata is specified as a query and the query result does not have a name column, columns are looked up positionally (instead of by name) in the order {name, label, type, sort} if available - only the first of these is mandatory.
    • The content of tooltips may be customized by providing a tooltips_ attribute with a package which maps column names in the query (or itemsvalue_) to labels.
    • Tooltips may reference a column typename, which is computed from type, if provided, and represents typecodes as human-readable strings like "integer" instead of i.
    • The default tooltips are equivalent to tooltips_="{pkg('label''name''typename';'Label''Name''Type')}".
    • The widget will now properly refresh itself if the dynamic variable referenced in itemsvalue_, if any, is changed.

  • The simple selection panel will now properly recognize columns with "month" formats as date columns, and provide a date picker.

  • Date pickers will now parse manually-entered MM/yy or MM/yyyy date formats.

Version 15.09 (8/22/2019)

  • The ability to schedule dependent jobs has been added. For a dependent job, a user will select a parent job instead of setting a frequency. The dependent job will run immediately following every run of the parent job.

  • Smarter defaults for included/excluded columns in the Link panel. When choosing linking columns, changing the link type or foreign link column(s) will automatically update the lists of included/excluded columns to show all columns except the link column(s). In the case of an asof link, the "time" column (the last linking column) will not be excluded. The queries produced by Trillion-Row Spreadsheet will exclude the cols attribute from <link> ops for which the excluded column list is identical to the foreign column list, as this is the default behavior. This makes emitted queries much clearer and more concise.

  • Fixed issue with password resetting when the current password has expired.

Version 15.08 (8/15/2019)

  • The buildgrid widget now exposes a boolean attribute show_metadata_ which, if true, will display metadata rows by default. Metadata rows are now additionally shown as fixed rows at the top of the table as a user scrolls vertically. The Table Editor tool opts into this feature, so metadata rows will always initially be visible.

  • Corrected Ganymede's type in to correctly indicate that it is a moon.

Version 15.07 (8/08/2019)

  • Added an "Image Encoder" gadget, for generating image URIs for use with static renderers. This tool can be launched by dragging and dropping image files ( png, jpeg, gif) onto the workspace.

  • Added basic support for loading files from Amazon S3 buckets. There is now an "S3" option in the source dropdown; choosing this will prompt the user to select a set of stored credentials (as stashed via addkey), enter a bucket ID, and then select from among the files in the given bucket. There is currently no UI for manually registering AWS credentials, so if you wish to use this feature you must manually edit the s3_keys dictionary in your user preferences or invoke the addkey api call as follows:


    <do action_="api" api_="addkey">
        <key name="a descriptive name" type="aws" >
            <AWS_ACCESS_KEY_ID>your 20 character id</AWS_ACCESS_KEY_ID>
            <AWS_SECRET_ACCESS_KEY>your 40 character secret</AWS_SECRET_ACCESS_KEY>

  • Added colabel_ attribute to the bokehchart widget. This allows for the addition of a column to tooltips. Currently it is supported in scatter and line charts.

Version 15.06 (7/31/2019)

  • <code language_="r"> may now be used in a Macro Language query. The R code should be wrapped in a CDATA tag.


    <base table="pub.demo.retail.item"/>
    <code language_="r">
       1000000) stop('too much data')
      # The current value of ops is just a list representing the 
      # and table is just 'default.lonely'
      d <- Data(ops,table)
      s <- summary(d)
      sDF <-,nrow=nrow(s)))
      names(sDF) <- trimws(dimnames(s)[[2]])
      ops <- ReBase(sDF) # Creates the Temp. Table/Worksheet

  • Static renderers (XLSX) may now use data URIs to specify images inline. This avoids the need to whitelist image hosting IPs from backend infrastructure.


    <widget class_="image" width_="48" height_="48" url_="data:image/gif;

Version 15.05 (7/25/2019)

  • The scope widget's hide_ and show_ attributes can now contain the same wildcard patterns provided in the function sm():

    • * matches 0 or more of anything
    • . matches any single character
    • brackets may enclose positive or negated character classes

  • If a query contains a self-link ( <link table2="*"> ), TRS will permit manual edits to the underlying op instead of emitting an error when scrubbing to that step in the timeline.

  • Refinements to the taglist widget. This commit introduces maxcompletions_, inputheight_, and delimiters_.

    • The inputheight_ attribute (optional) accept a number of pixels for the vertical size of the widget's input area. If there is not room to display the current tags, this area will scroll.
    • The maxcompletions_ attribute (1000 by default) will cap the number of options used for this constraint.
    • When text is pasted into this widget, it is automatically split into tags based on the optional delimiters_ attribute, which by default is "\n\r ". Each character in the delimiter is considered in turn. If that character exists in the input it is used to split the pasted text; otherwise the next character is considered. The space character in this list is treated as a match on any number of any whitespace characters.


    <dynamic x="input can,optionally be,a,csl,which is parsed,as a list" y="{lst()}">
      <layout arrange_="h">
          <widget class_="taglist" label_="freeform" value_="x" inputheight_="100" inputwidth_="150"/>
          <widget class_="value" value_="x"/>
          <widget class_="taglist" label_="completion" value_="y" complete_="1" maxcompletions_="2000" delimiters_=",">
            <table depth="2000"/>
            <willbe name="x" value="i_"/>
          <widget class_="value" value_="y"/>

  • When running QuickApps, there is a new icon in the tabstrip at the right edge of the MLW window, "Tag Inspector", which launches a child window containing a scope widget pointed at the current QA's tag. Controls allow the user to filter out default properties (equivalent to hide_="*_") and choose a different tag. The Tag Inspector tool now also allows users to select tags visually. Clicking the "Tag" button covers the workspace in overlapping rectangles indicating the boundaries of each visible dynamic tag. Clicking a rectangle will choose that as the new tag index for the tool.

  • The scope widget now updates itself automatically when variables in the target dynamic tag_ are altered; it is no longer necessary to set the refreshon_="1" attribute for this widget.

  • The submitbar widget now takes two new optional attributes.

    • The tag_ attribute allows a user to point the widget at a particular dynamic tag, rather than strictly the tag in which the widget appears. This is much like the tag_ attribute in the scope widget.
    • The guise_ attribute controls how the widget appears visually: a value of "dropdown" for this attribute will make the bar appear as a dropdown of available onsubmit_ triggers and a single "submit" button.
    The Tag Inspector tool, described earlier, now includes a submitbar.

Version 15.04 (7/18/2019)

  • If user panels specify an icon attribute in their <trs/> tag, they will now be shown in the New Operation panel between the native ops and the "More..." button. The icon should be the name of a FontAwesome icon name, like fa-podium-star. This feature allows user panels to seamlessly extend the Trillion-Row Spreadsheet.


      <block name="example">
          <trs role="op"
               desc="A User Panel which appears in the TRS timeline directly."
            <widget class_="text" text_="This space intentionally left blank."/>
          <note>(Important Notes)</note>

  • The taglist widget has been rewritten to achieve better performance with a large number of tags, and handle pasting data properly.

Version 15.03 (7/11/2019)

  • The scope widget now pre-expands lists or packages containing one item. There is a new optional boolean attribute expandall_ which, if true, will cause the scope widget to initially fully expand all values it displays. This will be particularly useful in combination with the show_ or hide_ attributes.

  • The semantics of pkg_default() have been revised. The return type will still always match that of the default value, but if the value in a package is a charvec/cstring while the default is a symbol, the value will be converted into a symbol, and vice versa. This makes the behavior of the function more convenient in a scalar context, and generally less error-prone.

  • The Object Manager was not properly displaying or permitting editing of the "inherit users" or "inherit uploaders" checkboxes; this has been fixed.

Version 15.02 (6/27/2019)

  • Fixed a problem in which workspace settings were not being applied at login.

  • Fixed several broken features in the Debug menu, notably "Clear caches then render".

  • Added an optional flag to dejson(;). If the second argument contains 'symbols', any strings in the resulting JSON object will be interned as symbols, rather than cstrings/charvecs.


    <base table="default.test.json"/>
    <colord cols="mixed"/>
    <willbe name="p" value="dejson(mixed;'symbols')"/>
    <willbe name="a" value="pkg_default(p;'a';98.6)"/>
    <willbe name="c" value="pkg_default(p;'c';'noun')"/>

  • Fixed a problem where converted Parameterized Quick Queries were not being given an explicit <base> op.

  • The updated scope widget allows tree-like expand/collapse behavior with interactive editing of existing variables using JSON syntax. Click an editable value to bring up the editor, or click a name on the left to edit an entire structure (list or package) at once. Values with gray backgrounds are read-only. Currently, only simple types, lists, and packages are editable, whereas xml, query, and table values are read-only. It is still possible to get the old behavior by setting mode_="simple", or the k3 view with mode_="k3".


    <dynamic u="" note="{lst('hello' 'world')}" x="123">
      <!-- fetch some data to explore. -->
      <do on_="init" action_="dbm" trans_="get_user"
          uid="{@username_}" value_="@u"/>
      <layout arrange_="v">
        <widget class_="text">
          <html><h1>Scope Widget Demo</h1></html>
          <widget name="note1" class_="field"
                  label_="@note.1:" value_="@note.1"/>
          <widget name="note2" class_="field"
                  label_="@note.2:" value_="@note.2"/>
        <!-- new style -->
        <widget name="scope" class_="scope" refreshon_="1"/>
        <!-- old style -->
        <widget name="scope2" class_="scope" width_="640"
                mode_="simple" refreshon_="1"/>
        <!-- old style with k3 syntax -->
        <widget name="scope3" class_="scope"
                mode_="k3" refreshon_="1"/>

Version 15.01 (6/20/2019)

  • It is now possible to export tables which contain 0 rows.

  • A new standard table, default.test.json, has been added. This contains columns with various JSON payloads as strings, permitting easier experimentation with both JSON and (via dejson()) packages in a vector context.

  • The expression widget now treats the system variables i_() and ii_() as functions, to reflect their optional base argument. Completion no longer creates a malformed expression with a B (the base argument) placeholder.

  • New function pkg_default(P;K;D), similar to pkg_get(), extracts the value from package (or column of packages) P given the key K. The value D is the "default". If P does not contain the key K or its value does not have the same type as D, this function will return D instead. Thus, pkg_default both conveniently handles missing package keys and acts as a type assertion. In the vector context, this assertion ensures that the result column will have a uniform type.

Version 15.00 (6/13/2019)

  • The value and scope widgets now properly handle the empty list.

  • The run menu now includes a check mark next to the last-used render target, to help make it more obvious that selections from this menu are "sticky".

  • Fixed the notation used for describing keyboard shortcuts to to improve internal consistency and correspond to that used in the documentation: shift+enter instead of the previous format of shift-enter.

  • The render target button uses more intuitive short names (in order of appearance: render, iframe, windowed, standalone, html, pdf, xlsx, csv, re-export) and offers alt-text tooltips containing the same text as the corresponding menu item. This is in an effort to clarify the relationship between this button and choices in the run menu.

  • Custom TRS titles will no longer be lost on window refresh.

  • Added key options 'filtered' and 'hasfilter' to function tabledata(PATH;KEY;INDEX). The 'filtered' option returns 1 if the table is filtered for the current user, 0 otherwise. The 'hasfilter' option returns 1 if a filter exists, 0 otherwise. Index argument should be empty.

  • Grid context menus no longer offer the options "Quick select where... ___ is greater than ___" (or less than) if the cell value is +/- infinity.


For the highlights, technical advisories, and release details for the limited production release of the 1010data Insights Platform Version 14, see Release Notes.

Version 14.26 (6/06/2019)

  • The size of the Workspace settings Libraries panel has been increased to improve usability.

  • When working with malformed files, changes to the "skip rows" setting will now update the indicator in "raw mode" of the Structure tab even if autospeccing was unsuccessful; previously it would not necessarily update, which was not an expected result.

  • A problem in the sampling process of the Table Uploader tool has been repaired, which will prevent it from mis-identifying line endings for the input file to upload.

Version 14.25 (5/30/2019)

  • The propercase() function now works for strings containing unicode characters: proper('aesTHETIC') is Aesthetic.

  • A new "Libraries" panel has been added to the workspace settings tool. This allows users to enter the paths of one or more libraries they wish to <import/> into their workspace during login. This is primarily intended for loading TRS views/user panels, or user functions.

  • The grid widget's coltooltips_ attribute has been generalized to offer more control. Previously, this only accepted 1 or 0. Now, one may alternately provide a comma-separated list of any of the strings name, label, type, origin, or desc to indicate which metadata fields should be displayed in column tooltips. Fields will appear in the order specified in this list, if applicable.

Version 14.24 (5/23/2019)

  • Invalid or undefined references in expressions which expand as the value of the when_ attribute of a <do> will now yield an error message instead of silently triggering the clause.

Version 14.23 (5/16/2019)

  • Raised the limit on dec: formatting to 15 (was previously 9). Updated TRS dialogs and internal error messages to reflect this new limit. As always, extra digits on a float do not necessarily mean additional precision.

  • Added support for language_=r in <code> when used in def_ufun or def_gfun. Will only ever work in linux environments that have AppArmor and R installed.

Version 14.22 (5/09/2019)

  • The animation which is visible during the login process has been optimized for load time and file size.

Version 14.21 (5/02/2019)

  • Added a new string manipulation function propercase(X) which matches the behavior of Excel's proper(). Any characters in X which are preceded by an alphabetic character are converted to lowercase, and other characters are capitalized. Thus, the string "THE least-interesting sentence" becomes "The Least-Interesting Sentence".
    Note: this function does not currently respect UTF-8 strings and will not properly alter their case.

  • The field widget now has an attribute listvalue_ which allows a list to be edited as if it is a comma-separated string.


    <defblock name="options">
    <dynamic xs="{lst()}" 
        <widget class_="text" text_="@xs:"/>
        <widget class_="field" listvalue_="@xs"/>
        <widget class_="dropdownlist" listvalue_="@xs"
        <widget class_="text" text_="@ys.xs:"/>
        <widget class_="field" listvalue_="@ys.xs"/>
        <widget class_="dropdownlist" listvalue_="@ys.xs"
        <widget class_="button" type_="dump" 
                dumppath_="{@cfg}" vars_="xs,ys"
        <widget class_="button" type_="config" 
          <base table="{@cfg}"/>

Version 14.20 (4/25/2019)

  • Syntax highlighting is now available for "bare SQL" - that is, SQL syntax outside a <code> tag if it appears at the beginning of a query. Anything beginning with (case-insenitively) SELECT , ANALYZE , or CREATE will be highlighted as SQL. Note that this functionality is currently exclusive to Macro Language Workshop.

  • When the showvalue_ attribute of <layout> changes, it will now properly update nested buildgrid widgets. This resolves an issue in which the permitted value lists for parameterized blocks in the Trillion-Row Spreadsheet would be invisible until a user interacted with them.

  • The <table/> op now allows you to create bigint columns with format=type:char.

  • The input format menu in the "Fields" panel now offers Date+Time (YMD), Date+Time (DMY), and Date+Time (MDY) options to allow for different arrangements of Year, Month, and Day. The display type datehms24 is now shown in the menu as Date+Time (MDY) for consistency.

Version 14.19 (4/18/2019)

  • Dropped support for "Drop to Canvas" from the Trillion-Row Spreadsheet and Visible Variable panel.

  • The gauge widget now has optional boolean attributes minorticks_ and majorticks_, which are false by default.

  • The Object Manager search will automatically submit after the user stops typing for 1 second. The path for the Object Manager now properly resets after clearing search.

Version 14.18 (4/11/2019)

  • It is now possible to perform worksheet links/merges to Trillion-Row Spreadsheet instances with queries which do not begin with a <base/> tag.

  • Users logging in for the first time will have their last login date displayed in the dashboard as "Never" instead of sometime in the year 2103.

  • The Object Manager no longer rerenders after resizing it's window then opening an item.

  • It is now possible to edit the metadata of new directories immediately after adding them in the Object Manager.

Version 14.17 (4/04/2019)

  • Widget class_="draggable" has newly improved handling of the invalidated state. It will no longer throw untrapped errors.

  • Fixed a problem wherein expanding a query in place would immediately save over the current query.

  • Context menu options were, in some instances, referencing the state of the timeline to determine the current operation. This lead to problems while working in the query tab, since the timeline will usually be stale in this situation.

Version 14.16 (3/28/2019)

  • Fixed the behavior of <widget class_="grid"> refreshing inside windowed layouts. Also fixed some CSS issues with <widget class_="grid"> in Macro Language Workshop.

  • <widget class_="grid"> sizing in tabpanel panes now works correctly when switching tabs.

  • Improved how the Visualization Panel saves the title of a chart when switching between views. Also fixed an issue where white space was being stripped from chart titles.

  • <widget class_="dropdown"> once again allows filtering on special characters when breaks are enabled.

  • Fixed an issue in which exporting to a new Trillion-Row Spreadsheet from Macro Language Workshop and not altering the resulting TRS would cause subsequent links to that worksheet to fail.

  • The short description of sort ops in the Trillion-Row Spreadsheet timeline now consistently use a format like foo(↑), baz(↓) to indicate sorting up on column foo followed by sorting down on column baz. The TRS sort panel now properly unpacks sorts of the form <sort col="..." dir="..."/>, which would previously be interpreted as if <sort cols="..."/>; an empty sort.

Version 14.15 (3/21/2019)

  • Scrolling through autocomplete results by dragging the thumb of the scrollbar within the expression widget was causing unnecessary re-rendering of the dropdown, making the scrollbar jump. This has been fixed.

  • Corrected an error where, in an API session, trans_="add_tab" was throwing an 'int' error because it erroneously expected an 'id' parameter.

Version 14.14 (3/14/2019)

  • Changed the behavior of the "Re-export" menu option. When a Macro Language Workshop window is spawned as a child of a Trillion-Row Spreadsheet instance, this menu item updates the Trillion-Row Spreadsheet with a modified query from the Macro Language Workshop. The option has been moved from the "File" menu to the "Run" menu, and choosing it will now also update the "render" shortcut button (this "render target" is displayed as update.) Likewise, once this option has been explicitly chosen once, using the control+enter/return keyboard shortcut will re-re-export. These changes make it easier to achieve workflows such as using a child Macro Language Workshop instance as a floating "query editor" in concert with a fullscreened Trillion-Row Spreadsheet.

  • Clicking the "close" button on an item in the tab bar which was minimized will now correctly close the window.

  • Fixed a problem which prevented <link type="include"> ops from producing the appropriate selection in the op panel's dropdown of link types.

  • Closing the table uploader's window will now abort any uploads which are in-progress, preventing unstoppable "zombie uploads".

  • The dashboard newsfeed now uses a standard AJAX request to retrieve news items, rather than JSONP. Errors during retrieval can now be suppressed. Minor changes to polling logic now enable the dashboard to recover transparently in the event of lost network connectivity.

  • The Usage Report Compute Units section now allows the hourly shift to be adapted from UTC, and includes a This Year / Last Year comparison option.

  • Repaired the "translate from SQL" feature in Macro Language Workshop, which was nonfunctional.

Version 14.13 (3/07/2019)

  • Fixed how the dbm do action handles updating the local copy of it's metadata after doing a put_tab or add_tab.

  • Fixed an inconsistency in how column indices were calculated during ggrid bulk copy operations in the presence of overflowing fixcols. Under very rare circumstances, this could lead to copying the wrong columns or an index error.

  • The table browser/base panel now use the browser's showdesc_="path" feature to provide access to an item's underlying name and path via a tooltip.

  • Fixed the default title_ value of the widget class_="bokehchart".

  • Repaired a layout issue with resizing the ggrid full text popup window, and restored the ability to select text within this box. The top region of the popup now acts as a drag handle for repositioning it, rather than the entire popup.

  • It is now possible to re-submit the op panel for the <cols> op after making changes. The name and fixed columns now use appropriate input pickers, a dropdown of valid column names and a checkbox, respectively, to minimize typographical mistakes while editing.

  • Visual redesign of the confirmation dialog which appears when a user copies data from the ggrid, intended to make it slightly harder to accidentally dismiss the dialog.

  • Modified the implementation of the ggrid full text popup window so that it is no longer clipped by container elements or the boundaries of the ggrid itself. Modified the quick stats distribution view to cap the width of unique values so that they don't force a user to scroll horizontally to see the bar graphs, and made it possible to access the full text popup window for unique values in this grid. Together, these changes substantially improve usability of the distribution tool on columns with string values.

Version 14.12 (2/28/2019)

  • Refinement to auto-refreshing newsfeed: updating news items which have previously been published will now refresh those items in the feed.

  • The histogram plot has been updated to remove extraneous y axis information.

  • The delay associated with a tooltip_ on any widget or layout can now be configured via the optional tooltipdelay_ attribute. Like the hintdelay_ attribute on some existing widgets, tooltipdelay_ takes a non-negative floating-point number of seconds by which to delay before the tooltip appears.

  • Repaired a condition in which chart type_="pie" was sending fractional instead of decimal values to the frontend, resulting in a failure to render.

Version 14.11 (2/21/2019)

  • The modify column info panel, summoned from grid headers, now properly assembles the format attribute of <col> tags which are created.

  • Users will no longer get a type error if they submit a manually-constructed <colord> op which did not have a cols attribute.

  • The selection of column input types now offers the choice between "Float" (which is permissive regarding included commas and similar non-numeric elements) and "Strict Float" (which is faster to parse yet less tolerant of extraneous characters).

  • The dashboard newsfeed will now poll for updated news every 5 minutes. If new items are found, users will be alerted with a browser notification, if available/enabled. Clicking a notification will open the appropriate browser tab, launch a dashboard as necessary, and flip to the news tab.

  • Fixed a problem that was interfering with using the "check and clean up XML" and "Expand in place" menu options on saved queries.

  • Addressed issues where the favicon_ render attribute was not being correctly honored. Standalone quickapps may now additionally specify the workfavicons_ render attribute with a list of animation frames to cycle while a progress bar is active. From the JS side, the normal and working favicons may be configured by calling TenTen.ProgressNotification.icons(base, working), where base is the URI of the default favicon and working is an array of URIs for working favicon animation frames. If either argument is null or omitted, the corresponding favicon will not be altered. This function additionally returns an object containing the present bindings of these attributes.

  • Changed <layout> to check for an error flag when it initially renders a standalone QA and to html encode the error message before inserting it into the DOM.

  • Fixed how <do action_="put_tab"/> works when changing the path of a table. This fixed a bug where changing the object name in the object manger failed.

  • Adjusted the styles of the prompt text, so that it shows up correctly in charts. Changed the histogram so it hides the y axis so users cannot make invalid charts or tabulations.

Version 14.10 (2/14/2019)

  • The index error observed in ggrid when scrolling too quickly has been addressed.

  • A standard quick query, default.test.bigtimes has been introduced. It is a 1024 × 1024 multiplication table intended for use in automated tests of the grid widget.

  • An error in the tabulation function menu, caused when clicking the right-arrow of items with more options, has been resolved.

  • When submit() or render() is used in the on_= attribute of <do>, more than one submit or render target, respectively, may appear, separated by commas, within the parentheses: submit(foo,bar), render(xlsx,pdf). Also, the on_= attribute may now contain the conditions change(list,of,variables) and/or same(list,of,variables), where list,of,variables would be a valid argument to onchange_=/onsame_=. The effect is the same as with the latter attributes (any of the variables changed, or all of the variables are the same, respectively) but on_= has the advantage that more than one (comma-separated) condition may be specified.
    e.g. on_="render,change(@foo,@bar),submit(baz)".

  • In view-only mode, the right-hand-side button bar now shows back/forward buttons, as appropriate, that navigate the undo stack. The buttons may be used to return to previous parameterization dialogs and/or to undo/redo post-query execution operations (e.g. sorts) performed via grid interactions. In addition, whenever data (rather than a parameterization dialog) is displayed, the button bar includes three buttons to download the data as a CSV file, Excel workbook or PDF document, respectively.

  • An "Auto" scale option has been added to the visualization panel which allows line charts to display dates correctly.

  • The histogram plot has been updated so as to show properly formatted dates on the axes. Previously date labels were incorrectly displaying as non-formatted numbers.

  • <do action_="savetable"/> now supports the owner_="abc" attribute.
    Note: this is executed as a separate transaction, so it's possible for the savetable to succeed but the ownership change to fail.

Version 14.09 (2/7/2019)

  • The ggrid column header context menu button is now on the left side of the header instead of the right side. This change allows it to be accessible if a column is partially scrolled off to the right.

  • Full skel support for tables has been added to <do action_="dbm">. This allows a table skel to be inspected in macro code after a call to get_tab.

  • The widget class_="alert" now has support for newline characters. The text_ attribute of this widget is now properly HTML encoded. As a result of this update, the old way of doing newlines with <br/> tags will not work and you have to use \n.


    <dynamic show="0" >
      <widget class_="button" type_="set" text_="Show Alert" value_="@show" newvalue_="{~@#show}"/>
      <widget class_="alert" mode_="notification" duration_="15" value_="@show" text_="I have \n\n\n newlines!"/>

Version 14.08 (1/31/2019)

  • <do action_="dbm"/> now properly handles the types of many more fields, including ctype / secure / tssort for tables, various symbolic fields for users, and numeric fields inside user preferences.

  • The visualization panel now looks for the special tabulations added by the panel's right hand side.

  • When a TRS is started with viewonly_="1", it operates in a restricted mode in which the user does not have direct editing access to the timeline. Only the view panel (i.e. the right-side panel from the normal mode) is shown, not the Analysis, Query, Visualize etc. tabs. The query contained in the widget contents or bound to xmlvalue_= is run to the end, with any block parameterization prompts presented before the result set is displayed. Arbitrary timeline editing and XML query editing are disabled, as is addition of operation panels from the right-hand context menu. Other TRS grid interactions that analyze or manipulate the result set, without providing access to the underlying data, including Quick Analysis panels, Find, quick select, sort, hide column, drag to rearrange, modify column info as well as copy/paste/download/export are available from the cell and/or column context menus, along with undo/redo. QuickFilters and Drilldown tabulation, if present in the timeline, work as expected, and any timeline annotations on the final query step are displayed as they would be in ordinary TRS.

  • The Consolidate option under Develop tab in TRS is now available. Consolidating a timeline has the effect of grouping the steps into as few blocks as possible. For example a timeline with no parameterized steps may be grouped into a single block. Parameterized steps will be consolidated, if possible, so that their prompts appear in a single panel; when this is not possible (for example, when a parameterized selection offers a choice of the values in a column, and there is a prior selection in the timeline which must be executed first to avoid possibly presenting invalid choices; or when, say, a parameterized sort provides a choice of columns and prior willbes, links, colords, etc. must be executed first to ensure that the column choices are correct) more than one block is created. It is also possible in the "panel options" section of a step's block parameterization dialog to specify explicitly that the step should appear in a new block during consolidation. Note that once a timeline has been consolidated, it is no longer possible to edit parameterization of the original panels (except by undoing the consolidation). Typically consolidation would be the last step before saving the timeline as a Quick Query, also from the Develop tab.

  • <widget class_=”scope”/> now supports show_ and hide_ attributes – comma-separated lists of variable names to include and exclude, respectively. Both are optional, and show_ is applied first. Additionally, values are now properly HTML-encoded when k3_=1.

  • Overflowing names/origins in ggrid column tooltips have been repaired. Very long window titles no longer overlap window maximize/minimize/configure/close buttons.

  • The ggrid context menu now includes an option "Copy name", which copies the selected column's name to the clipboard.

Version 14.07 (1/24/2019)

  • Attempting to re-open a quick stats panel which is already open will now reposition that panel instead of creating a broken clone.
  • Using undo/redo keyboard shortcuts (control/command + z, control/command + shift + z) while editing an operation in the timeline will no longer undo the last entire timeline edit. Instead, these shortcuts will behave as they are normally expected to within a text editor.

Version 14.06 (1/17/2019)

  • Moved the Amend button in the New Operation panel to correct the button order. Amend now correctly follows Merge instead of Compute.
  • For Bokeh charts, changed the downloaded file name from bokeh_plot.png to chart.png.

Version 14.05 (1/10/2019)

  • Added context-sensitive help annotations to the Advanced Uploader tool.
  • Quick Analysis panels now may be closed without error regardless of the order in which the parent TRS window is closed.

  • The merge operation is again available in the TRS New Operation panel.

Version 14.04 (1/3/2019)

  • The <willbe> attribute insertafter has been repaired such that it will insert the new column in the correct order after a <colord>.

  • The browser widget's showdesc_ attribute may now be set to "path", which will display the path of the hovered-over item in the tooltip, rather than the short or long description.

    • The TRS Link and Merge panels now have this turned on, making it possible to disambiguate between items with identical titles.

Version 14.03 (12/27/2018)

  • Restructured the main Usage Report window to allow for resizing.

    • The window will initially open smaller, but is then customizable by the user.

  • Fixed <tabu> so that implementing rollup with no tcols no longer produces a rank error.

Version 14.02 (12/20/2018)

  • Updated the Object Manager to include table path in the window title bar.

  • Fixed a bug that caused <layout type_="tabpanel"> to ignore width_ and height_ parameters.

Version 14.01 (12/13/2018)

  • Updated the new Table Uploader permissions behavior so that it is in line with previous versions. Leaving the Users field blank results in a private table that only the user can see instead of inheriting the folder permissions.

  • Fixed an issue parameterized Quick Queries that caused a type error if a user tried to save the Quick Query with a parameterized base table block.

  • Removed the misleading confirmation message in the Object Manager if a user tries to move something they don't have permissions to move, change, or delete.

  • Fixed an Object Manager error that caused newly added subfolders to display erroneous Macro Language in the information panel.

Version 14.00 (12/06/2018)

  • Updated the favicon to change color and animate when the progress bar is active and a query is being run. If a query completes in a background tab, it attempts to spawn a browser notification. Clicking on the notification brings the associated tab to the foreground.

  • The Minimize Bar is now displayed by default for new users.

  • Fixed an issue with the Table Uploader that caused it to create a malformed XMLSpec name attribute pointing at a directory by failing to fill out the Name field of the Destination pane.

  • Fixed a Useage Reports issue that caused "Too many rows" error.

  • Added direct link to Useage Reports documentation.

  • Fixed an issue with text editors that caused an error if a specific workspace theme variable was absent.

  • Fixed an issue with the Object Manager that caused a type error when a user tried to edit the object information, such as a title or description.

  • Added the cellmenurangevalue_ attribute to <widget class_="grid">. When a user selects a context menu item, any dynamic variable bound to this attribute is assigned a package representing the current state of the selection of cells.


For the highlights, technical advisories, and release details for the limited production release of the 1010data Insights Platform Version 13, see Release Notes.

Version 13.37 (11/29/2018)

  • Improvements to <do action_="dbm">

    • Can now take data_ and other named attributes simultaneously. Named attributes override corresponding slots in the data_ package.
    • trans_=put_tab can once again update special fields when .lim.jobprivs=1
    • trans_=add_tab|put_tab no longer corrupts an empty cfilter field.

  • The grid_type user pref is deprecated. When a grid widget is created without specifying a type_ attribute, it will now behave as a "scroll" grid, rather than respecting this attribute.

  • For <layout type_="flip">, if both sublayouts have the label_ attribute then the label for the active sublayout will be displayed next to the toggle button.

  • Added new function ui.cgradient(D;L;H;C) that creates a column of RBG hex values, or a single scalar RBG hex value, for use with the ggrid conditional formatting functionality. Arguments are as follows:

    • D: the column or scalar value from which the resultant hex color value(s) will be interpolated. Must be of type float.
    • L: The the lowest value to begin interpolating from data to hex color values. Values in argument D less than the value of L, if any, will be "clamped" to the first hex value provided to the C parameter. If L is exactly equal to the lowest value passed in the D argument, then the color gradient will start precisely at the first color value provided to the C parameter. Must be of type float.
    • H: The highest value to begin interpolating from data to hex colors. Values in argument D greater than H, if any, will be "clamped" to the last hex value provided to the C parameter. If H is exactly equal to the highest value passed in the D argument, then the color gradient will end precisely at the last color value provided to the C parameter. Must be of type float.
    • C: A list of one or more lists of RGB hex values. Hex values must be in the form: #000000 - #FFFFFF.


    <!--  Import the new mdb.ui library. This library will also be used for future functions
      that assist UI design or functionality -->
    <import path="default.library.mdb.ui"/>
      <!--  Perform a basic analysis on some sales data. There are only 16,777,216 potential hex values,
      so it usually makes sense to use this function on relatively small tables or worksheets  -->
    <defblock name="colorcode" c="lst(lst('#FF0000' '#FFFF00') lst('#FFFF00' '#00FF00'))">
      <base table="default.doc.demo.retail.item"/>
      <tabu breaks="transid">
        <tcol name="salesxtrans" source="sales" fun="sum"/>
      <sort col="salesxtrans" dir="up"/>
      <!--  Call the function. Once the library is imported, the namespace is:
      Here the high and low values are passed as literals. These can be calculated using  in QuickApps  -->
      <willbe name="glerping" value="ui.cgradient(salesxtrans;-5.00;11.39;{@c})"/>
        <!-- 4 gradient progression from low to high: -->
        <set weathermap="lst(lst('#EE00E9' '#0044FF') lst('#0044FF' '#22FF44') lst('#22FF44' '#FFFF00') lst('#FFFF00' '#FF2200'))"/>
        <!-- Red, yellow, green, where red is bad (low) and green is good (hi) -->
        <set stoplight="lst(lst('#FF0000' '#FFFF00') lst('#FFFF00' '#00FF00'))"/>
        <!-- Shade the first half of the vector's value space as a gradient and leave the second half unformatted -->
        <set eitheror="lst(lst('#77F442' '#2A720B') lst('#FFFFFF' '#FFFFFF'))"/>
        <!-- Stoplight toward the mean and the same gradient in reverse away from the mean -->
        <set upanddown="lst(lst('#FF0000' '#FFFF00') lst('#FFFF00' '#00FF00') lst('#00FF00' '#FFFF00') lst('#FFFF00' '#FF0000'))"/>
      <widget class="grid" name="grd" colstwtbgcolor_="salesxtrans" bgcolorforcol_="glerping" width_="600" height_="500">   
      <!--  Pass the specific list of lists of colors to override defaults specified in the block definition. -->
        <call block="colorcode" c="{@weathermap}"/>

Version 13.36 (11/15/2018)

  • Added the null value order option to the Trillion-Row Spreadsheet Sort operation panel. Selecting this checkbox causes N/A values to be collated after all other values.

  • Updated the label Result Heading to Result Label to match the terminology throughout the user interface.

  • Updated the code that determines if the Dashboard is docked or not.

  • Added the Negate button to the Trillion-Row Spreadsheet Where this button is available, a logical negation is performed when clicked.

  • Added pie charts to Trillion-Row Spreadsheet visualizations.

    Additionally, added pie_ attribute to <widget class_="bokehchart">.

  • Update the order of the views in the Trillion-Row Spreadsheet to match with the view in other areas of the user interface.

  • Block parameterization (for Parameterized Quick Queries) custom list modes were updated such that both values and labels can be added, edited, pasted etc.

  • Updated <widget class_="buildgrid"> as follows:

    • no_row_headers_="1" (default is 0) disables the automatic row number column on the left of the grid.
    • relabel_="m" substitutes labels specified by m for the table labels, which for table values default to the column names.
    • inittable_="v" causes the grid to be initialized by a table value instead of by its query contents. v may be a table value or a query value, which gives the same effect as using <table data="{@v}"/> as the query contents, but is more efficient as a temporary table does not need to be generated. v may also be the empty string, in which case the grid is initialized empty. Finally, v may also be 1 or 0: if inittable_="1" is used in conjunction with tablevalue_="@tv" then the grid is initialized from the starting value of the bound table-valued variable @tv, whereas if inittable_="0" appears the default behavior of loading from the widget query is used to initialize the grid.
    • synchronous_"1" (default is 0) causes the variable bound to the widget to be updated immediately, on every change (cell edited, data pasted, row/column removed, etc.). For efficiency the bound variable should in this case be a tablevalue_= and not a value_=, since the latter requires temporary tables to be created) to update. The synchronous option is not intended for use with large tables (more than, say, a few hundred rows * columns) as it does not currently optimize the representation of edits.
    • With synchronous_"1", inittable_="1", and tablevalue_="@v", a two-way binding is established, i.e. whenever the table value @v changes, the grid is updated to match.

  • Added new functions, <table_merge> and table_union functions. <table_merge> takes one or more values, each of which is a table value, package, or list. The first value must be a table value. Each subsequent value may be:

    • a table value with the same column names and types as v1.
    • a package with members, having the same names as the columns of v1, consisting of lists all of the same lengths
    • a list of as many lists as there are columns in v1, all of the same length.
    The result of the function is a table value merging the values from each of the vi. When merging lists or package values, types are promoted as necessary, e.g. integer to float or number to string, to ensure that the columns of the result are of uniform type.

    The <table_union> function has the exact same syntax as the <table_merge> function, but it returns a deduplicated table value, i.e. each unique row only appears once in the result.

  • Added a context menu to all <widget class_="chart"> charts that enable saving them as a PNG or SVG.

  • The Trillion-Row Spreadsheet generated modal "quick statistics" windows are temporarily hidden when the swapper is active.

  • Updated the Calculator gadget to escape special html characters ( <, >, &, etc.) in its input/output tape.

  • Added new design to the bokeh charts. Fixed the order of the Visualize tab in Trillion-Row Spreadsheet so it matches the interface in prime versions.

Version 13.35 (11/08/2018)

  • Updated the Macro Language Workshop pencil icon. Clicking this SAVE icon saves the query or opens a Save As menu.

  • Made a couple of changes to the Visualize panel in the Trillion-Row Spreadsheet, including:

    • Added the ability to choose log or linear scale on a line plot.
    • Added axis label fields to the More Options menu.

  • Updated the Analyze underlying data for this cell in the context menu in a cross-tabulation yields a new Trillion-Row Spreadsheet window filtered based on the column break values associated with the selected column. Previously, only row breaks were taken into account in this situation.

  • Fixed an issue with the Trillion-Row Spreadsheet tear-off panels spawned from a right-click context menu that caused them to open in an unuseable state.

  • Added the fun="quantile" function to the <tcol> element. Users can now select on any <tcol> function.

  • Added the attribute center_="", which centers windowed widgets (windowed_="1") automatically when set to 1. This works best with widgets with modal_="1".

  • Added wcnt to the Tabulate operation panel in the Trillion-Row Spreadsheet. Additionally, made minor tweaks to the wording of this menu so that two-argument tabulation functions appear either as function of column and column or function of column weighted by column, as appropriate.

  • Updated the Quick Analysis options Basic statistics and Distribution and removed the Median and Mode option from the right-click context menu. The updated Basic statistics and Distribution appear in a new window.

    Basic statistics shows a wide variety of useful statistics for a column, in particular count, valid count, N/A count, (for numeric value types) mean, SEM, standard deviation, variance, skewness*, kurtosis* (* latter two currently disabled pending system changes), (for all value types) minimum, lower quartile, median, upper quartile, maximum, (a) mode, frequency of the mode, number of modes, and number of unique values.

    Distribution shows a binned histogram of a column, as a bar chart and as a table of bins and counts. The binning may be selected (Very coarse to Very fine) and the histogram plot may be shown either as probabilities or as counts.

  • Added a Stop button, which appears next to the memory meter. Hovering over the enabled stop button will display an informational popup that explains what tool (e.g. "TRS 2: dg.item - Sales item detail") is running a query and if it is in an interruptible stage (some stages, e.g. initially starting up subprocesses, are not interruptible); a specific macro language operation must be in progress for interrupt to be an option. Clicking on the stop button will create a confirmation dialog, and if the user confirms, the operation is stopped.

  • In the Trillion-Row Spreadsheet, the simple selection panel now has a checkbox Look up column values. If checked, the value field for a comparison changes to an autocomplete field. The autocomplete suggestions are generated by matching what has been typed into the field with the unique values in the column chosen for the comparison.

  • Extended the QuickFilters feature:

    • On a simple selection with "Look up column values" enabled, QuickFilters will look up column values. In particular, as a special case, a filter with fewer than 200 choices will appear as a dropdown list (200 or more choices will be an autocomplete, as in the simple selection panel itself).
    • QuickFilters are now created automatically when using a drilldown tabulation.
    • It is possible to change any level of the drilled-down selection directly from the QuickFilter, without having to back out of the drilldown first; the drilldown level is automatically reset as necessary. This substantially improves the flexibility of the drilldown view.

  • Added parameterization into the Trillion-Row Spreadsheet operations for the base table, select, and compute operations. Clicking on the parameterization icon, a cube, changes the panel to accept parameters. This is the start of adding Parameterized Quick Queries to the web interface.

  • Enabled Annotations in the Trillion-Row Spreadsheet. This is an experimental feature. Annotations are added to a step in the TRS timeline by clicking on the Annotate button in the View bar. Annotations are time- and username-stamped, may contain rich text, and can preserve the current row highlighting (find expression) and/or scroll position to help call attention to particular data points. Annotations may be positioned arbitrarily over the grid. Hovering over an annotation reveals author/timestamp information as well as an X icon (to dismiss the annotation temporarily) and an edit icon (to return to editing mode; the annotation may also be deleted entirely from editing mode). A timeline step may have more than one annotation, and annotations are a part of the timeline query so can be saved, shared, etc.

  • Updated the grid, where it appears including the Trillion-Row Spreadsheet and Macro Language Workshop, to accept horizontal scrolling from a trackpad, mousewheel, or similar scrolling hardware without hovering or clicking on the horizontal scroll bar.

  • Added a simple, currently read-only operation panel representing the <cols> operation. Previously, a <cols> operation was displayed as an XML panel. This operation is added to the timeline.

  • Fixed an issue that caused an issue with sorting N/A values at the end or at the beginning.

  • Fixed an issue that caused <loop withtable_="@x"> to fail when the query in the clause returned no rows; it now properly places a zero-row table into the variable.

  • Added the ability to properly handle XML comments (<!--text-->) in queries/libraries loaded from versioned .xml text files.

Version 13.34 (11/01/2018)

  • Fixed an issue with syntax highlighting which caused it not to work on closing tags that were on the same line as the opening tag.

  • Fixed an issue with the Trillion-Row Spreadsheet recontstructing a query that is re-exported from a Macro Language Workshop window. This resulted in a type error.

  • Updated the Link operation panel with revised text in the dropdown menu. The dropdown now includes a brief description of each link type.

  • Changed Kendo charts, enabling them to serialize package values inside of tag values.

  • Added the maxlength_ attribute to <widget class_="field>. maxlength_ sets a limit, and the user will not be able to type more than n characters into the field.

  • Added the ability to include comments in a <library> tag. Comment sytax is <!-- [TEXT] -->.

  • Updates to the Trillion-Row Spreadsheet to enable dropping QuickApp Visualize views to the canvas properly. The menu and axes are hidden when the view is dropped to the canvas.

Version 13.33 (10/26/2018)

  • Fixed an issue that caused highlighting to interrupt dragging a biscuit.

  • Added the wucnt function to <tcol>.

  • Fixed an issue that caused spanned column headers to display improperly. If a column label wasn't present, the header would appear lower than other headers.

  • Fixed an issue with the uploader that caused it to return an error when an upload was attempted. The error was related to the carriage-return option needing to be set.

  • Fixed an issue that caused <widget class_="grid" editcols_=""> to allow any column to be amendable instead of only newly created columns.

  • In the Trillion-Row Spreadsheet, the Visualize tab has been enhanced with a highlight when there is a visualization in the View pane but the tab is not active.

    Additionally, fixed a styling issue in the filter panel and a type error.

  • Fixed an issue that caused column data not to move with the header when dragged in the grid.

  • Added <widget class_="button" atltext_=""> and <widget class_="draggable" funcbuttonalttext_=""> to enable adding alt text to these buttons.

  • Updated the role manager Add Role field to a dropdown list.

  • Added the Admin Panel 1.0, which displays the account administration panel from Compatibility Mode in an iframe.

  • Uploaded updated CSS for the web interface.

Version 13.32 (10/18/2018)

  • Fixed an issue causing the Tabulation Function menu to display behind panel.

  • Fixed an issue causing cloned cloned Trillion-Row Spreadsheet windows not to render a charts that are displayed in the original TRS window.

  • Performed a number of internal bug fixes and improvements.

Version 13.31 (10/12/2018)

  • Improved the Object Manager information panel.

    • It is now more clear which fields are editable and which are immutable.
    • Added an Update/Submit button.
    • Updated the Long Description text field with Rich Text editing controls.

  • Added a select attribute to the <tcol> element. Users can now select on any <tcol> function.

  • Users can use their browser's Refresh button when launching a quickapp standalone from a Macro Language Workshop.

  • In the Trillion-Row Spreadsheet selection panel, added the Display QuickFilter option to Simple Comparisons. If this option is chosen, then the selection is displayed as a biscuit above the grid in the Results pane.

Version 13.30 (10/04/2018)

  • Fixed the highlight on the active item in the minimize bar in the Dark theme.

  • Fixed a bug causing the theme to reset.

  • Added <widget class_="bokehchart">, which uses bokeh to create visulizations.

  • Fixed an issue causing foreach not to execute on lists with a single, null string element.

  • Fixed an inconsistency causing some list functions not to accept string values representing integers to be used as integer arguments, such as indicies.

  • Added an "Updating view..." message to the Trillion-Row Spreadsheet results pane to indicate when it is busy. Additionally, updated and enhanced the Trillion-Row spreadsheet to reduce the number of times the view re-renders and improve the overall responsiveness.

  • Added drag-and-drop reordering to the Trillion-Row Spreadsheet timeline. When an operation is moved, the query is automatically re-run.

  • Fixed a display issue on the sort operation in the Trillion-Row Spreadsheet that caused the sort up and sort down buttons not to display the proper highlight color when clicked, indicating the selected sort direction.

Version 13.29 (09/27/2018)

  • There is a new Table Uploader tool which will launch in response to dragging and dropping .csv or .tsv files into the active window. The Table Uploader tool now offers a fairly involved facility for iteratively editing a loading spec while previewing the data. The main menu now offers two upload options:

    • Table Uploader: the new uploader tool based on the uploader widget
    • Advanced Uploader: the classic Powerloader UI

  • New element-wise matrix functions are available: matexp, matlog, matsin, matcos, mattan, matacos, matasin, matatan, matsinh, matcosh, mattanh, matrint, matgamma, matlgamma.

    • All functions are based on k primitives.
    • All of the functions take a single argument and most of them of them have analogous vector functions, eg. Matrix function matsin() corresponds to vector function for sin().
    • The one function that does not have an analogous vector function is matrint. It rounds values to int. eg. (1.2, 3.4;6.7 8.9), should result to (1 3.0;7 9.0).

  • <do action_="dbm"/> now supports setting users to '' or lst() to specify an empty group.

  • <do action_="dbm" trans_="add_dir"/> now correctly handles the 'owner' attribute, updating that value when it is provided as part of the input data.

    <dynamic r="">
      <set dir="{pkg('path' 'owner' 'users' 'upload' 'title'; 'sc.shared.x1010data.dorjetest' 'sc_superadmins' lst() lst() 'Delete Me')}"/>
      <do onsubmit_="add_dir" action_="dbm" trans_="add_dir" data_="{@dir}" value_="@r"/>
      <layout arrange_="v">
        <widget class_="button" type_="submit" submit_="add_dir" text_="Add Dir [{@dir.path}]"/>
        <widget class_="grid" type_="scroll" require_="@r" invmode_="hide">
          <table data="{@r}"/>

  • Macro Language Workshop menu now explicitly differentiates between saving a query and saving the data. A confirmation dialog will also appear if you attempt to save a query over a table.

Version 13.27 (09/13/2018)

  • In <do action_="dbm">, where trans_="put_dir", 'owner' is no longer marked as a required field.

Version 13.26 (09/06/2018)

  • Interface Updates:

    • Adjusted autoscrolling on drag behavior in the treeview.
    • Ensured that the Object Manager will now reset properly after clearing the search box.
    • Limited the dragging of elements in a treeview to the current window.

  • The min_ attribute of the field widget may now accept negative values
    <dynamic var="">
      <widget class_="field" value_="var" type_="numeric" min_="-1"/>
      <widget class_="text" text_="Var: {@var}"/>

Version 13.25 (08/30/2018)

  • The type dropdown in the link panel now uses the same terminology as the query language <link> operation. The options available are, in order:

    • Exact
    • Select
    • Exclude
    • Include
    • Expand
    • As-of Before
    • As-of After

  • The GUI menu item "admin / user profile" is now available to all users.

Version 13.24 (08/23/2018)

  • Extended the model cell matrix popup to work on all model data columns. This feature is also accessible from keyboard navigation. Navigating via keyboard to a model cell or a cell containing additional, undisplayed data automatically opens the popup below the cell.

  • An update fixes the rendering of a constructed standalone QuickApp URL. Linking to an individual table with no operations as a QuickApp with a single <widget class_="grid"> using /cgi-bin/[VERSION]/quickapp.k?path=[PATH_TO_TABLE] is fixed.

  • In the Trillion-Row Spreadsheet Visualize panel, the Bokeh and Scatter Plot chart types have been added. If the scatter plot is returned with too many results, TRS displays a static image of the results instead of an interactive chart. Updated the filter panel and the drop zones.

Version 13.23 (08/16/2018)

  • Added basic support for asof links to the Trillion-Row Spreadsheet (TRS). The Link panel offers two new link type options, "Keep closest rows greater or equal" and "Keep closesft rows less or equal", which correspond respectively to:

    <link type="asof" after="0"/>
    <link type="asof" after="1"/>

    When performing either type of asof link, the last pair of linking columns which have been selected (ie. the ones which are compared with asof semantics) are shown in a highlight color to set them apart from the other columns, which are compared using normal exact matching.

  • Standalone quickapp runner now properly sets the session cookie on login.

  • Tear-off op panels created from a grid now have titles consistent with the corresponding unsubmitted operation in the TRS timeline.

  • Clicking on a matrix model cell in a grid will now display a small popup with a tabular view of the matrix.

  • <note> and <ignore> tags are now allowed to be nested in <tabu>.

Version 13.22 (08/09/2018)

  • Macro Language Workshop updates:

    • Vademecum shortcut panel adde.
    • Render target displayed on editor.
    • Save warning added when exiting without saving.
    • Changing the window title saves on blur or with new save button.
    • Autocomplete stopped when in xml block comments, <note>, or <ignore>
    • SQL mode CDATA tags properly recognized

  • Added daily and monthly active user counts to the Usage Report, along with Excel and TRS export options for those new sections.

  • Increased the soft row limit for the Data Dictionary view. The previous limit was 1000 rows (columns), and the new limit is 5000.

  • Added crosshair icon to render target in Macro Language Workshop for better clarity of its purpose. When the editor theme is changed in the workspace preference menu, any open instances of the editor will update live to reflect this change.

Version 13.21 (08/02/2018)

  • Macro Language Workshop updates:

    • Exit button for search feature in MLW.
    • Esc exits search window while in text editor.
    • CDATA tags consistently recognized throughout all modes.
    • New updated mma mode that recognizes 1010data and mma keywords/properties.
    • New shortcut to remove TRS decorations from MLW Shift-Ctrl-].

  • The help overlay can be summoned by pressing control+shift+h.

    • Improved label sizing in the overlay.
    • Disabled scrolling while the help overlay is active.
    • Added a default message if the overlay is activated when no annotations are available.

  • New attributes available for class_="buildgrid"

    • columns_editable_ (= 0 or 1, default 1). 0 will disable modifications to columns in the buildgrid. Modifications include adding/removing cols and modifying metadata.
    • no_column_headers_ (= 0 or 1, default 0). 1 will specify you do not want column headers shown. This mode will set columns_editable_ to 0.
    • column_widths_ (= # or comma-separated list of #, default ""). Will specify pixel widths for columns in the grid. One # will set for all cols, while a list of numbers will set for each column in order.

  • The 'failed to load resource' dialog now forces a reload from the server, rather than allowing reloads from the browser cache.

Version 13.20 (07/26/2018)

  • Macro Language Workshop updates:

    • Consistent tab sizes.
    • Language specific comments when using <code>.
    • k3 mode recognizes symbols with double quotes.
    • Search augmented and switched to persistent mode.
      • Will not disappear when the user clicks away from it.
      • Step through results using <Enter> (next item) and <Shift-Enter> (previous item).
      • <Esc> will exit the search dialog no matter what area of the editor is currently active.

  • Added a new layer, name="rootdataitem" to class_="treeview". This adds a context menu option to the blank space below the treeview. The context menu is for the root folder of the treeview.

    <dynamic rootpath="default" path="default">
      <widget class_="treeview" linkon_="path" cols_="{'title','path','owneris'}" path_="@path">
        <layer name="children" haschildren="haschildren" parent="id">
          <!-- Supply data for the treeview -->
          <directory folder="{@path}" foldcase="1"/>
          <willbe name="haschildren" value="(type='dir') & (csl_len(obj_children(path))>0)"/>
        <layer name="rootdataitem">
          <!-- Call directory but we can also do this on any folder-->
          <directory folder="{if(strlen(obj_parent(@rootpath))=0;splice('.db' @$username_;'.');obj_parent(@$rootpath))}"/>
          <sel value="path = {qv(@rootpath)}"/>

Version 13.19 (07/19/2018)

  • Extended autocomplete functionality for Macro Language Workshop.

    • Autocomplete now suggests all blocks and their attributes as currently documented.
    • Works with widgets and associated class_ attributes.
    • Autocomplete refreshes now on backspace keystroke.
    • Autoindent feature works correctly when autocomplete is used to close tags.
    • Syntax highlighting modes available for css, html, js, mma, python, sql, r, and k3 code embedded in <code> blocks.
    • "Ctrl-/" comment shortcut now matches comment type for the current language mode.
    • Added unindent to "Shift-tab".

  • New attribute rotated_="1" available in widget class_="draggable".

    • This rotates the draggable widget -90 degrees. It also animates the rotation when you hover a biscuit over the widget.

  • Different themes are now available (monokai, solarized light and dark) for the editor.

    • Themes will affect Macro Language Workshop, editors in trs, and xml editors created by textbox widgets.
    • New preference added for this under the workspace setting menu.
    • For <widget class_="textbox" mode_="xml"> there is now an additional attribute "theme_" to specify the theme of the textbox. "theme_" can be set to "monokai", "default", "solarized light" and "solarized dark" and defaults to "default".
    • Added bracket matching for all syntax highlighting modes in the editor.

  • "Ctrl-F" search mode in Macro Language Workshop is now persistent. It also supports several standard keyboard shortcuts:

    • "Enter" to go to next match.
    • "Shift-Enter" to go to prev match.

Version 13.18 (07/12/2018)

  • The new <gui:menu/> op provides a special syntax for generating the menu tables used by <widget class_="menu">

    <dynamic x="0">
      <layout arrange_="v">
        <widget class_="checkbox" value_="@x" label_="toggle dynamic item"/>
        <widget class_="menu">
          <gui:menu x="{@x}">
            <sub name="Menu 1">
              <item name="item 1" action="submit_item1"/>

  • Added filename_ attribute to XLSX render that can be used to specify the name of the file generated/downloaded. It is now possible to define filename_ in the <xlsx> section of the <render> section of the QA, or use xlsx_filename_ on a widget directly.

        <xlsx filename_="foo"/>
        <table depth="10"/>
        <willbe name="num" value="i_"/>
    Alternately, it can be used on a widget itself:
      <widget xlsx_filename_="foo">
        <table depth="10"/>
        <willbe name="num" value="i_"/>

  • In Usage Report, added additional session type reporting to include {csdk, tendo, tenup, odbc, .NET, py, java, Excel} in addition to the existing {API/GUI} options. Also added a new Browser block to show which browser GUI users use.

Version 13.17 (07/05/2018)

  • Added support for the get_groups_users function in <do action_="dbm">. This was previously only available via the API.

      <do action_="dbm" trans_="get_users_groups"
          uid="{@username_}" value_="@ug"/>
      <do action_="dbm" trans_="get_groups_users"
          ids="{@ug}" value_="@gu"/>
      <widget class_="scope" refreshon_="1"/>

  • Added the ability to specify "fields" when using get_users_like in macro code.

  • Allow compression_ attr on widgets and <render> section for data renderer. Accepts "1" or "0" or the name of the compression (only "zip" currently supported).

    <table depth="1000"/>
    <willbe name="foo" value="i_"/>
    <willbe name="bar" value="i_*i_"/>
        <data compression_="1"/>
      <widget class_="button" type_="render" target_="data" />
      <widget filename_="myfile"/>

Version 13.16 (06/28/2018)

  • Added Apply column formats to cell data option to the Delimited Text and Microsoft Excel panels on the Export tab. This option is enabled by default. This option exports the table with formatted data. De-selecting this option exports raw, unformatted values.

  • Added the formatted_ attribute to <render> targets <xlsx> and <data>. This can also be set in the <widget>.

  • Added maxcells_, maxrows_, and maxcols_ attributes to <render> targets <xlsx> and <data>. This can also be set on a <widget class_="grid">, <widget class_="table">, or <widget class_="trs"> to limit the size of the widget when rendering.

Version 13.15 (06/22/2018)

  • Added Drag windows to screen edge to resize to the Workspace Settings menu. Selecting this option enables you to drag windows to the screen edges or corners to resize them to 1/2 or 1/4 the screen area. You can drag a window to the minimize bar to minimize it and to the top of the screen to maximize it.

    Enabling this option also disables the horizontal workspace scroll bar.

  • Fixed an issue caused by the default naming convention of Macro Language Workshop windows. This issue caused MWL QuickApps using Render Standalone to render in the same browser tab if that tab was generated from rendering a MLW QuickApp as a standalone.

  • Added navigation breadcrumbs to the Object Manager windows launched from Favorites.

    Also, restyled the breadcrumbs and updated them to display the root path of the Object Manager.

Version 13.14 (06/14/2018)

  • Updated the items in the Help menu by grouping similar items into sub-menus. Additionally, removed the Interactive Reference option.

  • Updated <widget class_="value"> to render query objects as XML.

  • Updated the minimize bar such that every minimized window can be closed from the bar by clicking the added X icon.

Version 13.13 (06/07/2018)

  • Added Code View to the Trillion-Row Spreadsheet Visualization tab.

  • Updated <widget class_="dropdown"> and <widget class_="dropdownlist"> to re-render (instead of refresh) when their configuration changes.

Version 13.12 (05/31/2018)

  • The following updates were made to the Trillion-Row Spreadsheet:

    • In the More Options menu of the Tabulation panel, the Result Name text field is ignored during a multi-column cross-tabulation.

    • Changed the Visualize tab filter to a drop-down list. This should improve loading and fixes a bug with handling a large number of columns.

    • Made minor improvements to the Visualize tab to enhance usability.

Version 13.11 (05/24/2018)

  • Additional refinements to the grid keyboard navigation. Square brackets can be used for navigating up and down, similar to the way that page up and page down work. Pressing a curly brace ({, }) while pressing and holding shift expands the selection rectangle.

  • The following updates were made to the Trillion-Row Spreadsheet:

    • Modified the visualization panel to use the newer design for filter controls.

    • Returned the order of the left pane tabs to their original order: Analyze, Query, View, Visualize, Develop, and Export.

  • Updated <widget class_="draggable"> to remove the drop placeholder when you move a biscuit outside of the widget area.

  • Updated the behavior of the platform to fix an issue with encountering a 502 Bad Gateway error.

Version 13.10 (05/17/2018)

  • In the Trillion-Row Spreadsheet, the Modify Info dialog restricts the available display formats in the Display Format drop-down to those that are applicable to the data in the column based on its underlying data type. This dropdown also has a more sensible default for unformatted columns. Text columns default to type char and numeric types (integer, decimal, bigint), default to type num.

  • Added keyboard navigation to the grid which can be used to move around the grid and edit cell contents.

  • Enhanced <widget class_="swapper">, including speeding up the transition animations, using Escape to exit the view displaying all windows, and updating the widget to display windows starting with the most recently used.

Version 13.09 (05/10/2018)

  • Added the Show All Windows feature which is activated by clicking the orange button on the left side of the minimize bar or double clicking on an empty area of the desk top. Show All Windows displays all windows as a series of tiles. Clicking on any window tile brings that window to the foreground.

    Show All Windows can be invoked via ctrl+` (backtick). Pressing backtick repeatedly while holding ctrl cycles between available windows. Releasing them exits the all windows display and brings the chosen window to the foreground.

  • The following updates were made to the Trillion-Row Spreadsheet:

    • Fixed an issue caused the preview table on re-opened computed column panels not to show any display formats.

    • Fixed an internal inconsistency that prevented the modification of existing worksheet links and merges in some situations.

    • Fixed the Display Format dropdown in the Modify info dialog box, which was non-functional.

    • The Modify info dialog automatically dismisses if it is no longer the active window (loses focus).

    • Fixed an issue where a maximized TRS window caused the window to jump to the foreground over a newly opened tool, such as the Object Manager.

    • Fixed an issue that caused the Dashboard window to jump to the foreground if a user switched back to the browser from another application.

    • Added the new visualizations panel, which supports for new bokeh (an interactive visualization library that targets modern web browsers for presentation) based charts.

  • Added <layout type_="flexible">, which is a layout type that handles the automatic sizing and layout of widgets.

  • Updated the message that is displayed when a user login has timed out to read, "Your login has timed out. Please try again."

  • Removed the Spreadsheet View from the Macro Language Workshop.

  • Windows split into multiple panes (TRS, MLW) resize properly when the browser is resized.

  • Fixed an issue that caused <widget class_="dropdown"> to fail if the break_ attribute was used.

  • Removed stray text reading "hello" from the template for standalone quickapps.

  • Added the removable_ attribute to <widget class_="draggable">. This attribute adds a button to a draggable biscuit that allows it to be removed/deleted.

  • Added <widget class_="swapper">, which can be invoked via ctrl+` (backtick). Pressing backtick repeatedly while holding ctrl cycles between available windows. Releasing them exits the widget and brings the chosen window to the foreground. In the 1010data Insights Platform user interface, this is used to create the Show All Windows feature, which replaces the existing window-switching interface.

Version 13.08 (05/03/2018)

  • The following updates were made to the Trillion-Row Spreadsheet:

    • Fixed an issue with the right-click context menu and column names that contain value_ or na_. The value_ or na_ strings are no longer replaced with the value of the cell that was clicked on to open the menu.

    • Fixed an issue with creating a malformed query by deleting the <base> operation in the Query tab generating an error when opening Link and Merge panels.

  • Fixed an issue with the minimize bar not correctly updating when a window's name is changed.

  • Fixed an issue where grids containing both fixed columns and horizontal scrolling did not sort correctly.

  • Fixed an issue causing a <widget class_="nest"> that contains a <dynamic> that was cached twice when it rendered, to have broken bind_ and to_ dependencies. Dynmically defining blocks with <import>, <library>, <defblock>, etc. within a <do> inside a <dynamic> could cause that <dynamic> to cache twice on rendering.

Version 13.07 (04/26/2018)

  • In the Scheduler, users can subscribe to Multi-Jobs that they've unsubscribed from.

  • The following updates were made to the Trillion Row Spreadsheet:

    • Floating-point literals can be used in Simple Comparisons with open comparisons like between and <=. The numeric picker displayed won't always show a .0 suffix for integer values in this situation.

    • Fixed an issue that caused to TRS to mishandle opening a selection that used <and> or <or> (as opposed to & or |). TRS now opens them as selection operations in the Timeline.

  • The following updates were made to <widget class_="draggable">:

    • Replaced itemsvalue_ with value_ for supplying the initial value.

    • Added the template_ attribute to add kendo templates. template_ allows for more than 3 columns/attributes to supply extra data for templates.

    • Added clickvalue_ to supply a dynamic variable with a value when a user clicks on a draggable biscuit.

    • Added grow_ to specify the behavior of overflow text.

    • If funcvalue_ is applied to a biscuit from the function button, it is highlighted.

    • Dropzones and placeholders mimic the behavior <widget class_="lineup">.

  • Fixed an issue that caused <tcol fun="median">, <tcol fun="lquart">, <tcol fun="uquart">, <tcol fun="mode">, etc. to occasionally return invalid results when the total count of values below the median exceeds 2 billion.

Version 13.06 (04/19/2018)

  • The following updates were made to the Scheduler:

    • Updated the text field for entering query text to have syntax highlighting.

    • Added a Stop Job button that enables users to immediately terminate a scheduled job that is running. A job run that is stopped still counts against the user's run limit.

    • Administrators can set the Job Runner ID and add multiple job runners to a single jobs using the Multi-Job checkbox.

  • Fixed an issue in the Object Manager favorites that prevented double clicking to open a directory from working properly.

  • In Usage Report, removed the CIP groups from being availble in group dropdown. Additionally, updated the user group filters.

  • The rowvalue attribute for <widget class_="dropdownlist"> was updated to preserve the order of user selections.

  • The following updates were made to the Trillion-Row Spreadsheet:

    • Fixed an issue with the Tabulation Column drop-down menu in the More Options menu that prevented it from updating properly to reflect the changes to the tabluation function of existing tabulation columns.

    • Removed Quick Find > Again from the right-click menu in the grid. Users should use the navigation buttons using the Find feature.

    • Fixed an issue causing the Tabulation Function menu to occasionally display incorrect list from elsewhere in the environment.

    • Generalized the More Options menu of the Tabulation panel to permit specifying the rename and relabel attributes of a row break.

    • Renamed the Tabulation Column drop-down to Columns. This drop-down now includes both tabulation columns and row break columns.

    • Updated row break columns to display as the column names. When a row break column is chosen, formatting options are not available.

Version 13.05 (04/12/2018)

  • The <widget class_="dropdownlist"> attribute rowvalue_ now preserves the order of the selections.

  • Updated <widget class_="editgrid"> to properly escape the '<' and '&' characters.

  • Fixed an issue with the scheduler that caused an error when a user had access to a large humber of scheduled jobs.

  • Updated cparam(M;P;I) to return "" for missing keys.

Version 13.04 (date)

  • Added the following functions to <tcol>:

    • <lquart> - lower quartile
    • <uquart> - upper quartile
    • <mean> - sample mean
    • <ssize> - sample size
    • <sem> - standard error of the sample mean
    • <svar> - sample variance
    • <sstd> - sample standard deviation
    • <skew> - coefficient of skewness
    • <kurt> - coefficient of kurtosis

    The <lquart>, <uquart>, <sem>, <sem>, <sstd>, <skew>, and <kurt> are all available in the Trillion-Row Spreadsheet Tabulation panel.

  • Added temp_= attribute to <do action_="savetable">, which specifies that a table should be temporary. Temporary tables are saved to disk but the table metadata saved where other users will see them, and they do not persist after the current session.

  • The following updates were made to the Object Manager:

    • A added favorites icon to show if an item was added to the user's favorites.

    • Added a Toggle Favorites option to the right-click menu so a user can add or remove that object from the user's favorites.

    • Added a button to display or hide favorites.

    • Changed the styling of the Add Folder window to accomodate text wrapping.

  • Added <widget class_="draggable">, which is a generalized drag and drop widget. This widget has the following attributes: itemsvalue_, value_, text_, droppable_, multi_, group_, and maxelems_.

  • Fixed an issue that caused duplicate tray entries if Always show window tray at bottom was selected.

  • Fixed an issue that caused <widget class_="expression"> auto-completion to incorrectly filter suggestions for grouping columns.

  • Updated the alt text of the Find icon from "Search this table..." to "Find rows". Additionally, updated the alt text of the Close icon from "Hide search dialog" to "Hide the find dialog".

  • <widget class_="dropdown"> and <widget class_="dropdownlist"> now both support casesensitive_="0" when serverfilter_="0".

  • The following updates were made to the Trillion-Row Spreadsheet:

    • Replaced the Descriptive statistics option in the Quick analysis option of the right-click menu with two new options. The new options, Basic statistics and Median and mode, display a floating panel over the original grid instead of switching the view. This panel displays a wide range of basic and higher-order column statistics including valid/NA count, unique count, mean, SEM, standard deviation, sample standard deviation/variance, skewness and kurtosis as well as min/max/quartiles and interquartile range, along with a box-and-whisker plot representing these values.

    • Added refinements to the drag and drop functionality that the Sort, Arrange, Link, Merge and Tabulation panels. Areas that accept drag and drop objects now show an outlined region when a column biscuit is dragged over them for better visual feedback, which will hopefully reduce accidentally-canceled drags and, in the tabulation panel, clarify which trays represent valid drop targets.

    • Fixed an issue that disabled the tooltip delays.

    • Fixed an issue with the transparency of tabulation functions and the appearance of sort direction controls while column biscuits are being dragged.

Version 13.03 (03/29/2018)

  • Fixed several issues with <widget class_="dropdownlist"> including:

    • The <disabled> attribute produced an error instead of updating if <serverfilter_="1">.

    • <widget class_="dropdownlist"> with <serverfilter_="1"> was unable to retrieve data due to special characters.

    • The <hints_> attribute now accepts both <1> and the name of the column.

  • Added csv support to <widget class_="textbox"> and provides syntax highlighting for comma-separated values content.

  • <widget class_="expression"> now highlights substring matches within the dropdown of autocomplete suggestions, providing

  • Added support for display format nocommas to the bigint data type.

  • The following updates were made to the Trillion-Row Spreadsheet:

    • Removed the Spreadsheet and Macro Language views from the View panel.

    • Fixed an issue with the search functionality. If you searched and then clicked Select, the TRS would misplace the operation in the timeline.

    • Fixed a regression that impacted the vertical sizing of timeline steps and caused problems with scrubbing the timeline and interacting with the "new op" step at the end of the timeline.

    • Fixed an issue with the Amend values panel that caused it to be completely nonfunctional.

    • Added minor styling changes to the lineup widget and the TRS panels that use it (sort, colord, link, merge) as well as to the Tabulation op panel. Draggable biscuits can grow to several lines tall, so that names are not cut off and obscured. Names that are truncated at the edge of the element are shown with an ellipsis.

Version 13.02 (03/22/2018)

  • Fixed a bug that caused <block> elements to render unexpectedly.

  • Fixed a typo in the the Trillion-Row Spreadsheet grid context menu. Changed Quick select rows > Other than one (remove row) to Quick select rows > Other than this one (remove row).

  • Fixed some display issues for <widget class_="field"> : stray leading commas no longer appear, numbers after the decimal point are no longer zeroed out, and the format_ attribute now takes precedence over the step_ when determining the number of digits after the decimal point to show.

  • Added Open QuickApp standalone in new browser tab and Open QuickApp standalone in this browser tab to QuickApp entries in favorites and the Object Manager.

  • Fixed an issue that caused tables with 0 rows and a bigint column in a link produced a type error.

  • Fixed an issue with indexed bigint data producing type errors.

Version 13.01 (03/15/2018)

  • Added <widget class_="rawtext"> which displays a string bound to the value_ attribute with invisible characters replaced with escapes (_,\t,\r,\n for space, tab, carriage return and newline, respectively).

  • Fixed how <widget class_="dropdownlist" breaks_=""> columns interact with sorting. If the groups defined by the breaks column are mixed together, the Insights Platform attempts to preserve the original order as much as possible, with the exception of re-arranging by group.

  • Fixed an issue with the splice() function that caused a value being spliced into a list to be added between every character of every list value.

  • The following updates were made to the Trillion-Row Spreadsheet:

    • Deprecated the Amend by expression option from the More menu in the New Operation panel. This functionality is now available in the New Operation as Amend.

    • Deprecated the Macro Language view. This functionality is now available in the Query tab.

    • Updated the Column metadata panel with the following changes:
      • The "Title" and "Format Type" labels now use the internally-consistent terminology "Label" and "Display Format", respectively.

      • The rich text editor for the Description field now contains only basic formatting options: Style, Bold, Italic, Underline, Insert Hyperlink, and Insert Image.

      • The Cancel and Submit buttons have better contrast when they are hovered over.

      • The Decimals field is now capped at 9.

      • The Width field is now capped at 100.

Version 13.00 (03/08/2018)

  • Fixed an issue with <widget class_="checkbox"> that rendered it non-functional. Additionally, any explicitly initialized value for the <widget class="checklist"> attribute orientation_ is rejected if it is not one of the valid values (vertical or horizontal).

  • Updated <widget class="dropdown_"> to accept integers in the value_ attribute if the lookup column is a string and a strings when the lookup column is an integer.

  • Fixed an issue with <widget class_="expression"> displaying argument hints when the cursor was within a string literal.

  • Fixed an issue with the <widget class_="dropdown"> attribute serverfilter_ that caused an error when the variable, whose name is in the attribute, was populated instead of being set to "".

  • A number of updates were made that affect the Trillion Row Spreadsheet, including:

    • The preview of a computed column now includes changes to the display format and permits live preview while modifying format settings.

    • Updated the error message that is displayed to users when a selection expression may not always result in a boolean value. The new message is more end-user friendly.

    • Updated the descriptions for amend panels in the timeline. The description changes depending on the type of amend. The new descriptions are "Amend values" (scatter), "Amend by table" (link) or "Amend column" (willbe).

    • Updated the behavior of the name fields when creating computed columns or tabulation operations. If a user enters an invalid column name, the Insights Platform converts it to a valid one. Additionally, copies the original entry to the column label field if it was empty.

    • Updated the computed column name field to prevent the submission of a new name if it is already an existing column name and helps users to correct the problem. When a conflicting name is entered, the field is highlighted, prevents submission, and displays a helpful message. "There is already a column with the name [NAME]."

    • Changed the Quick Fit Width function to cap proposed widths to 100 characters.

    • Refined the simple select panel that enables users to enter a decimal value when performing comparisons with integers that are not dates or times.

    • Updated the simple select panel to activate the Submit button while the user is entering text or interacting with drop-downs instead of requiring users to click away from one of those fields or drop-downs.


For the highlights, technical advisories, and release details for the limited production release of the 1010data Insights Platform Version 12, see Release Notes.

Version 12.34 (03/01/2018)

  • Added the following functions, which are case insensitive versions of equivalent operations and functions: eq_ci(), eqlin_ci(), gt_ci(), lt_ci(), and between_ci(). These functions are case insensitive, and they're more efficient (and convienient), than using functions such as lowercase() or strcase() to wrap existing functions.

  • Fixed an issue with improperly stacked and overlapping submenus in the right-click menu when there is too little space to cascade the submenus properly.

  • Fixed a bug that affected Object Manager windows opened from the favorites panel. These windows were not restored correctly from saved workspaces.

  • Added the pastable_ attribute to <widget class_="grid">. The pastable_ attribute enables the pasting of tabular data into the grid.

  • Added the colsvalue_ attribute to <widget class="expression">.

  • Updated the error message for <do action="getquery" path_+{@x}"/> to include the expanded path when reporting that the path doesn't exist.

  • Fixed an issue with <widget class_="mywindow"> when it's placed in dynamically generated windows.

  • Updated the Table Editor window to be resizable with a minimum height and width. The grid also resizes and maximizes properly.

  • Updated the "Account Suspended" text. It now reads, "Your userid has been suspended. Please email "[EMAIL_ADDRESS]" to discuss your account."

  • A number of updates were made that affect the Trillion Row Spreadsheet, including:

    • Disabled the find feature in the quick statistics distribution view.

    • Added a preview feature to the advanced select and computed column panels. When a valid expression is submitted, the preview feature displays the utilization of the expression on the first three rows of the table (as available). This is displayed in the operation panel in a small grid.

      Known limitation: Various invalid expressions result in an error message that is not descriptive. This will be improved in a future version.

    • Added the following operations to Quick select rows in the right-click menu:

      • does not begin with

      • does not end with

      • matches wildcard pattern

      • does not match wildcard pattern

      • contains regular expression match

      • does not contain regular expression match

    • Added a checkbox to make selection on a string case insensitive.

    • Fixed an issue with adjusting the column width of a column with missing data or atypically formatted data in the grid.

      This also affects the Macro Language Workshop.

Version 12.33 (02/22/2018)

  • A number of updates were made that affect the Trillion-Row Spreadsheet and Macro Language Workshop:

    • Fixed an issue preventing cross-tabulations from displaying in beta-12.32.

    • In the column break label dropdown, menu options that are irrelevant to cross-tabulations are no longer displayed. Only Sort up and Sort down are displayed.

    • Column header tooltips include column origin information, including whether or not it is located in the base table or linked table, if it is in memory, the path of the base or foreign table, if it is a computed column, etc.

    • Added the and columns in seslection rectangle and and columns into a new worksheet optionees s to the Quick select rows menu in the right-click menu on a grid.

      The and columns in selection rectangle option issues both a <sel> and a <colord> operation to narrow the worksheet to the active selection area. The and columns into a new worksheet option makes the same selection but takes a extract of the original worksheet and opens the query that generated it in a new TRS window, leaving the original worksheet intact. There is no limit on the size of the selection for this function.

    • Added Download to the right-click menu. The entire table or a selection area can be downloaded as an XLSX workbook, a CSV file, or as a PDF.

    • Added an option to scroll to a specific column by right-clicking on the horizontal scroll bar and selecting the column name.

    • Added an option to scroll to a specific row by right-clicking on the vertical scroll bar and entering the row number.

    • Changed the Quick find options in the right-click menu to use the grid's find feature.

    • Added Find in/on [COLUMN_NAME] to the right-click menu. Selecting this opens a dialog box with options for finding values in that column.

    • Find results are now highlighted with a color.

  • In Macro Language Workshop, using the Sort up and Sort down options in the column break label dropdown reesult in the addition or modification of a <colord> instead of a <sort>. Sorting on the row totals column causes sorting by the column totals as well. This matches the existing behavior in the Trillion-Row Spreadsheet.

  • Added the pinnedrows_ attribute to <widget class="grid">. This attribute pins the specified rows to the top of the grid.

  • Added the following functions: sm_ci(), contains_ci(), beginswith_ci() and endswith_ci(). These functions are identical to the same functions without the _ci suffix except that they are case insensitive. The rm(X;Y) and rm_ci(X;Y) functions are analogous to sm() and sm_ci() respectively, except that Y should be a regular expression rather than a simple wildcard-containing pattern.

  • Clients logging in via SSO can be redirected to a specified URL if they do not have 1010data User IDs.

Version 12.32 (02/15/2018)

  • Update the amend functionality to properly escape quotes and commas within amendments.

  • Renamed Session Status to Session Info in the Menu Bar.

  • In the Trillion-Row Spreadsheet:

    • You can adjust the width of a column by dragging it. If you hover over the column header, a blue handle appears over the right-hand border. Dragging that handle changes the column width. When you change the column width, a cols operation is added to the TRS timeline.

    • Several updates were made to column tooltips, which are displayed when you click on a column header, including:

      • Fixed an issue with duplicate tooltips appearing.

      • Column description are now included if they're available.

      • Column names and labels are not both displayed if they are the same and it would be redundant. Type include more information, including formatting options.

    • Style update on the minimize bar.

Version 12.31 (02/08/2018)

  • In the Trillion Row Spreadsheet:

    • The find feature expression editor permits the use of an expression that returns a value of type integer or decimal. These expressions can be entered, but may not always be valid.

    • The is one of and is not one of selection options are now available for numeric columns as well as string columns.

    • Fixed an issue that caused errors when working with columns of type big integer.

    • Added an amend panel that displays amendments made in the grid. This amend panel, which is different from an amend operation done in the TRS timeline, is inserted into the TRS timeline when a user changes a grid value in the grid.

      Known issues: Amendments containing commas will not work properly.

    • Updates to Drilldown in TRS:

      • In the tabulation panel using Drilldown, columns newly dropped into the row breaks area are automatically set to sort up. If a column dragged into the row breaks area can be drilled into usefully, the possible breakdowns are presented in a menu of "QuickDrills." When a drilldown tabulation panel is submitted with QuickDrills, TRS automatically sets up the necessary computed columns and/or links (names are chosen that won't conflict with current columns) prior to the tabulation to furnish the required columns.

      • The Drilldown checkbox no longer appears when a tabulation is added from the Macro Language Workshop.

      • A fix for an issue caused by editing an existing tabulation panel with drilldown enabled in the TRS timeline resulting in the loss of rolled up columns or in drilldown being disabled.

    • Copying an entire column of formatted values from the Copy menu resulted in the incorrect display of the count of values when the correct values were copied.

    • Fixed an issue where using Copy > the selected value option triggered on mousedown; it now triggers on mouse up, making it easier to select without a separate click.

    • Fixed two issues with tabulation column labels. Creating a tcol based on a column with a long label was incorrectly truncating the default label of the tcol. Additionally, entering column labels containing commas produced an index error.

    • Fixed and improved the Export panel Delimited Text options:

      • Double-quotes are now the default escape character.

      • Field separator default is to not include one after each row. Record separator default is to include one at the end of the file.

      • Added Tab-delimited standards to the Standards and compression options.

      • Added Vertical bar (|) to the Field/column separator options.

      • Fixed an issue where exporting with a pipe (|) resulted in an error after scrolling.

  • The expression editor input suggestions now include special values (packages, lists, etc.) and display the type, for example, "LIST: 1 2 3".

  • Fixed an issue that caused case insensitive comparisons of two strings of equal length that only differ in the last character to return a 0 instead of -1/1. For example, previously the comparison of "abc" and "abd" erroneously returned 0. The updated behavior can be seen using strcmp(X;Y;B) where B is set to 0.

  • Fixed an issue with <widget class="dropdownlist_"> that caused an issue rendering the list if the table was too large.

  • Fixed an issue with <widget class="expression_"> that caused the widget not to display the placeholder text properly.

Version 12.30 (02/01/2018)

  • Fixed a bug that caused Object Manager to ignore the Default Columns selections in Workspace Settings.

  • In Workspace Settings, the Default Columns field is now a drop-down containing all of the column options.

  • In the Table Uploader, when you drag a file into the uploader, the behavior has changed such that you now go to a preview of your table. You can edit column and table information on this preview and proceed with the load.

  • Fixed a bug in the Trillion-Row Spreadsheet that caused columns with a long pieces of text in Single Row View to do nothing when clicking on the > to see the full content of the cell.

  • Added Select, Link, Tabulate, Amend, and Create to the right-click options menu on the grid in the Macro Language Workshop. Selecting any of these options opens a temporary TRS panel. New operations are added to the end of the current Macro Language code.

  • In the Trillion-Row Spreadsheet, you can no longer submit an amendment if the chosen column and expression have different types. Additionally, the error message has been updated to read, "The target column is of type X, but this expression returns a value of type Y." If a user selects Amend only on those rows where, that expresssion must result in a 0 or 1.

  • Resolved a problem causing the data to be misaligned with the headers when a new grid is displayed while preserving horizontal scroll position.

  • In the Trillion-Row Spreadsheet and Macro Language Workshop, the find feature is now available for Single Row view.

  • The Object Manager now displays the Title column for new accounts by default.

Version 12.29 (01/25/2018)

  • The Title field in the Table Editor now populates correctly when the user opens a table from the Object Manager. A table can be opened from the Object Manager by right-clicking the table and clicking Edit in Table Editor from the menu.

  • The data target render attributes field_del_ and record_del_ are now correctly applied in the resultant output.

  • Instances of <widget class_="grid" type_="scroll"> with conditional formatting attributes (e.g., colstwtbgcolor_, bgcolorforcol_) no longer return a rank error when the query associated with the widget results in a table with no rows.

  • An issue in the Trillion-Row Spreadsheet that was preventing worksheet merges to work properly has been corrected.

  • The Object Manager now refreshes its view after an object has been deleted or its information has been updated.

  • A bug has been fixed in which, under certain circumstances, the <find> operation missed the last row in a table.

  • Right-clicking on an object in the Object Manager and clicking Show Object Info now correctly shows the object information every time.

  • The New operation panel in the Trillion-Row Spreadsheet now contains an Amend operation. This operation allows a column's values to be redefined at every row or only specific rows.

  • The Trillion-Row Spreadsheet now has a Query tab, which displays the Macro Language query associated with the current timeline. The query may be edited in the code editor within this tab, and the modifications may be submitted or reverted. The query text shown in the editor is updated whenever the timeline changes. In addition, an Undo last operation button and Redo last operation button are provided.

    NOTE: After switching to the tab, it may be necessary to click inside the code editor before the code is displayed. This is a known issue.

  • In the Trillion-Row Spreadsheet, it is now possible to undo operations that have been added to the timeline. Operations may be undone by:

    • Pressing Ctrl+Z or Command+Z when the TRS is in focus
    • Right-clicking in the grid and selecting Undo last step from the menu
    • Clicking the Undo last operation button in the Query tab of TRS

    More than one operation may be undone, all the way back to the initial state of the TRS.

    An undo action can be undone (i.e., redo) if no other changes to the timeline have occurred since the undo action. A redo action is performed by:

    • Pressing Ctrl+Shift+Z or Command+Shift+Z when the TRS is in focus
    • Right-clicking in the grid and selecting Redo last undone step from the menu
    • Clicking the Redo last operation button in the Query tab of TRS

    If multiple operations have been undone, they can be restored by performing multiple redo actions (as long as no other changes to the timeline have occurred).

    NOTE: The keyboard shortcuts for the undo/redo actions conflict with keyboard shortcuts in the code editor (e.g., in the Query tab).

  • In the Trillion-Row Spreadsheet and Macro Language Workshop, the Grid view now has a find feature. Click on the magnifying glass icon at the top right of the results pane and enter any valid selection expression. The buttons First, Next, Last, and Previous allow for navigation through the search results. In addition, the Select button converts the search results to a selection, inserting a new Select rows panel into the timeline.

  • In the Trillion-Row Spreadsheet, the right-click context menu for the grid in the results pane has been extensively reorganized and expanded.

    • The Find... menu item has been renamed to Quick find...
    • The Select where... menu item has been renamed to Quick select where...
    • The Select rows... menu item has been renamed to Quick select rows...
    • The Analyze... menu item has been renamed to Quick analysis of column...
    • The Sort... menu item has been renamed to Sort on column...
    • A Quick link... menu item appears in the right-click context menu if the current table is either prelinked to one or more foreign tables accessible to the user, or if the current table has metadata specifying a conventional link to one or more foreign tables. A list of such "quick links" is shown in the submenu, and selecting one adds the appropriate link operation to the timeline.

    • The following menu items are new:

      • Select on column...
      • Link on column...
      • Tabulate using column...
      • Amend column...

      Each of these menu items pop up a floating TRS timeline panel corresponding to the respective operation. The panel is pre-populated appropriately based on the column that the user right-clicked. Clicking the checkmark button at the bottom of the floating panel accepts the new operation and adds it to the TRS timeline; clicking the X button cancels the new operation and dismisses the floating panel.

      Known issues:

      • Linking to worksheets (as opposed to physical tables) from a floating link panel does not yet work
      • Keyboard shortcuts are not recognized in a floating panel (e.g., pressing = to switch from simple select to expression select; Shift+Enter to submit)
      • These menu items appear in the right-click context menu of the grid in Macro Language Workshop as well, but they do not yet work

    • There is a new menu item Create computed column here, which pops up a floating TRS New computed column panel. The computed column will be inserted after the column that the user right-clicked.

      Known issues:

      • If an Arrange columns panel appears anywhere in the timeline, the new computed column may be inserted at the end of table instead of after the column that the user right-clicked.
      • The distinction between fixed and unfixed columns is not yet respected.

    • There is a new Analyze underlying data for this cell... menu item. This menu item appears only when the table displayed is a tabulation. Clicking this menu item creates a new TRS window representing the original timeline up to, but not including, the tabulation, along with additional selections based on the row tabulation breaks for the cell the user clicked on. This facilitates viewing of and/or further analysis on precisely the rows of the pre-tabulation data that were aggregated to generate the clicked-upon row break, without losing the original tabulation.

      Known issues: In the case of a cross-tabulation, this does not yet add additional selections for the column break of the cell the user clicked on.

    • Whenever undo is possible, the right-click context menu will contain the menu item Undo last step. Similarly, whenever redo is possible, the right-click context menu will contain the menu item Redo last undone step.

  • In the Trillion-Row Spreadsheet, there is now a Drilldown checkbox in the Row Breaks section of the Tabulation panel.

    Checking this box has two effects:

    1. Each row break column will be sorted in ascending order by default. This may be changed manually by clicking on the Sort Up or Sort Down icons.
    2. When the tabulation is submitted, only the first row break will be tabulated on. The remaining breaks will be displayed as boxes at the top of the grid.

    In the resultant tabulation, the values in the break column are clickable in the grid. Clicking on one of these values adds a selection on that value to the timeline prior to the tabulation, moves the next row break into the breaks, and retabulates; the new break is then drillable (clickable), whereas the original break is no longer drillable, since it only contains the one value that was clicked. In this manner, it is possible to drill down through all of the originally specified breaks.

    Clicking on the header of the currently drillable column rolls it back up, returning it to the list at the top of the grid and removing the selection in effect on the previously drilled column so that it can be drilled again. It is also possible to click on the header of an already-drilled column, which removes the selection on that column and makes it drillable; clicking again rolls that column up. All tabulation columns may be rolled up, leaving no breaks (i.e., a grand total tabulation).

    Conversely, clicking on one of the rolled-up columns listed at the top of the grid adds it to the tabulation breaks as a drillable column and rotates the rolled-up columns so that the next-drilled column will be the one following the column that was clicked. In this way, it is possible to explore multiple arbitrary drilling paths, not just a single fixed hierarchy.

    One major advantage of this feature is that the drilldown features stay enabled through most post-tabulation operations in the timeline (e.g., sorts, selections, links, computed columns, column rearrangements), so that it is possible, for example, to sort the table based on one of the aggregated metrics, create computed columns based on the tabulated measures, and so on, and have everything persist throughout drilldown operations.

    Known issues: It is possible to drill down through the row breaks of a cross-tabulation, but it is not yet possible to drill down through the column breaks.

    Hint: Use the Analyze underlying data for this cell... right-click menu item to see the raw data behind a tabulation break at any point in the drilldown.

Version 12.28 (01/18/2018)

  • In the Table Editor, the following improvements were made:

    • A fix to the ability to edit and save an existing table using the Replace button.
    • Updates to the button labels, text, and a return message.
    • A change to the grid size to account for the status message getting cut off.
    • Updates to the Name field so that it is disabled when the folder is blank, equals uploads, or doesn't exist.
    • Internal improvements for consistency or user clarity.

  • Instances of Macro Language Workshop restored via the Recent Workspaces tab in the Dashboard window now fully render correctly.
  • Fixed an issue that was preventing the web interface from starting correctly in Firefox.
  • In the User Manager, users are notified if a search is unsuccessful.
  • The User Manager interface has been updated to reduce the number of scroll bars that are displayed and the amount of scrolling users have to do.

Version 12.27 (01/11/2018)

  • In Macro Language Workshop, if a set of fixed columns are close to exceeding or exceed the current width of the grid, those columns are rendered as normal scrolling columns. They are still rendered as the leftmost columns.

  • In the Scheduler, more information about job runs has been added. This includes a display of the run limit, the number of runs used that month, the number of remaining runs available, and how many runs are predicted to run for the rest of the month.

    The Create/Edit job panels have been updated to include the number of monthly runs a job is expected to consume.

  • The <widget class="grid"> attrbute bgcolorforrow_ now accepts expressions in addition to column names.

  • In the Group Manager, text has been added to instruct the user to click Save Group after they click Add to add users/groups to the new group.

  • The Group Manager interface has been updated to reduce the number of scroll bars that are displayed and the amount of scrolling users have to do.

  • Fixed a Group Manager issue that was causing an error when clicking on some groups.

  • Several enhancements were made to the Object Manager, including:

    • Moving an object automatically causes the Object Manager to update.
    • Changes to the Add Subfolder window that make it more user friendly.
    • Preventing users from moving objects in directories they don't have the correct permissions.

Version 12.26 (01/04/2018)

  • In the Scheduler, a visual gauge to display a user's scheduled job runs for the month has been added. The gauge displays how many job runs have already occurred, how many are currently scheduled, and how a new or edited job will affect the user's run count.

  • In the Macro Language Workshop, the styling on tables rendered in XLSX has been updated to align with the current 1010data brand guidelines.

  • Updated the language of the error message that displays if a user tries to reuse the link from a password expired email. The update clarifies the issue and directs the user to a solution.

Version 12.25 (12/28/2017)

  • Fixed an issue in the Object Manager that prevented opening an object from the right-click menu multiple times in a row.

  • Fixed an issue in the Object Manager that displayed an error when a user attempted to add an object to their favorites.

Version 12.24 (12/21/17)

  • Added the <find value="expr" after="firstrownum" before="lastrownum" count="n"> operation which finds (without selecting) the first n rows, between (exclusive of) the specified row numbers, where the specified value expression is true. The result is a tabulation-like table of one column containing row numbers, with as many rows as there were search results (i.e. between 0 and abs(n) rows, inclusive).

  • Added Find to the to the right-click context menus in the Trillion-Row Spreadsheet and Macro Language Workshop. Users can find the previous, next, first, or last row. Find > again repeats the previous find action.

  • Added the <transcode(X;F;T;S;O)> function. This function converts a string frome one encoding to another.

  • Fixed a selection switching issue with <widget class="dropdown"> and <widget class="dropdownlist">. Additionally, general bug fixes and enhancements were made to these widgets.

  • Added an option to Workspace Settings to always display short descriptions in Object Manager.

  • Added an option to Workspace Settings to always display the minimize bar.

  • Fixed an issue in the Object Manager that prevented opening an object multiple times in a row.

  • Fixed an issue that created an access denied error if you tried to perform a worksheet merge after performing a table merge.

  • Added Role Manager for some user IDs.

Version 12.23 (12/14/2017)

  • Added the <cols> operation, which modifies the metadata of multiple columns at the same time based on the results of a query.

  • Fixed an issue with the mutiple <widget class_="gmap"> windows on the same page appearing in the wrong place when rendered.

  • In the Object Manager, the functionality to drag multiple objects was updated to make the action easier.

  • In the legacy user interface, when you want to save a table or query, the top level of the folder tree is now accessible.

Version 12.22 (12/07/2017)

  • Added the attributes editvalue_ and editcols_ to <widget class_="grid">. The editvalue_="@var" attribute enables editing on a standard grid (type="scroll"). The editcols_="[LIST_OF_COLS]" attribute limits editing to cells in only the specified columns.

  • In the Trillion-Row Spreadsheet, editing has been added to the grid view. Double-click a cell to enter a new value. Changing a cell value adds an amend operation to the Analysis Timeline or modifies an existing operation if it is the current one.

  • In the Trillion-Row Spreadsheet, a position scrolled to in the grid view will be partially or fully preserved across some timeline modifications. For example, when a selection or sort is performed, the horizontal scroll position is preserved (the same columns remain in view), but the vertical position is reset (the data is displayed starting at row 1).

  • In the Trillion-Row Spreadsheet, an issue displaying existing worksheets during a link operation has been fixed.

  • Table values containing carriage returns (CR, \r) or line feeds (LF, \n) that are pasted into some fields, such as the Relationship drop-down menu in the Select rows panel in the Trillion-Row Spreadsheet, are treated as a series of line-separated values. If neither of these characters are present, values are separated by other, present, whitespace characters.

  • Opening a Trillion-Row Spreadsheet window from the Object Manager and clicking Clone View no longer produces an error message.

  • Added the Show Object Info option to the right-click menu in the Object Manager.

  • The Object Manager Users and Uploaders fields now handle carriage returns.

  • In the User Manager, the New Search button has been modified to appear only after a search is submitted. Additionally, the dimensions of the User Manager window and the spacing of the fields has been updated.

Version 12.21 (11/30/2017)

  • In the Trillion-Row Spreadsheet, the Back and Export buttons no longer overlay the settings on the Export tab.

  • In the Trillion-Rown Spreadsheet, if you open an existing Macro Language query that contains a linked table where the col2 was not specified, TRS assumes that the that the foreign column has the same name as the base table column instead of having no foreign column selected.

  • For <widget class="field"> the debounce_ attribute modifies immediate_="1". The field is evaluated without further interaction (e.g., clicking away or pressing Enter) after a certain period of time. For example, <widget class_="field" immediate_="1" debounce_="500"/> creates a field widget that will process its contents without further interaction after a minimum of 500ms have passed.

  • Object functions such as obj_title(path) no longer return a type error when called on an empty table.

  • In the Insights Platform web interface, when you right-click on a QuickApp and select Open QuickApp in a window from the Object Manager, the new window inherits the title of the QuickApp. If the QuickApp has no title or the title is the same as the path, the window is named QuickApp [PATH] where [PATH] is the path of the table.

  • Added <widget class_="terminal">, which creates an xterm-compatible terminal emulator widget.

  • In the Dashboard, the position of the shortcut bar was moved to the right side of the window. Additionally, the size of the window and font are smaller and the color of the shortcuts were changed. The Dashboard can be docked by clicking the Dock Dashboard icon. This collapses the Dashboard, displaying only the shortcuts in the dock.

  • In the Trillion-Row Spreadsheet, the scrolling issues in the Export and Develop tabs have been resolved.

Version 12.20 (11/16/2017)

  • In the Macro Language Workshop, the Clear caches then render option has been added to the Debug menu. This is equivalent to using Debug > Clear all caches followed by Run > Render. This option may be more convenient for some purposes (e.g., timing queries from a clear-cache state). As with other rendering options, Ctrl+Enter can be used to repeat the operation.

  • In the Trillion-Row Spreadsheet, panel descriptions in the Analysis Timeline now display more contextual information.

  • Using <widget class_="dropdown"> with the hints_, breaks_, or multi_ attributes no longer results in a valence error.

  • In the Trillion-Row Spreadsheet, the Relationship drop-down menu in the Select rows panel now contains is one of and is not one of. If a user pastes input containing spaces into the Value field, the input will be split into individual values. If the input contains newlines, it will be split on newlines.

  • The attribute find has been added to <directory>. The find attribute takes a string and returns a table containing the metadata for all of the tables and folders in the session whose path or title contains the specified string. <directory> can take find instead of the folder attribute, for example <directory find="string">.

  • Using <materialze append="1"> no longer erases the results from tables where a <willbe materialize="1" replace="1"> has been performed.

  • Using <willbe materialize="1"> no longer assigns the wrong type when the value is n_, rn_, or origin_.

Version 12.19 (11/09/2017)

  • The attribute debounce_ has been added to <widget class_="field">, which specifies a certain amount of time before evaluating the contents of the widget. The time is specified in milliseconds (e.g., debounce_="500"). Previously, the only timed evaluation available was when a user added an immediate_="1" which resulted in the input being evaluated "immediately" (after a built-in timeout), meaning that no further action (e.g., clicking out of the field widget) was necessary to have the contents evaluated. The debounce_ attribute provides the same functionality but after waiting the specified time. The maximum debounce time is 600000ms.

  • In the Trillion-Row Spreadsheet, the Tabulation panel now permits the creation of tabulations without an aggregation function, which has the effect of producing a table of unique values based on the specified row breaks.

  • In the User Manager, users' first and last names have been added as labels. You can see a user's label by hovering your cursor over the user.

Version 12.18 (11/02/2017)

  • The type_ attribute of <layout> now accepts the value flip. A <layout type_="flip"> must contain exactly two <layout> elements. When rendered, the panel associated with the first layout is displayed and the other is hidden. A toggle button is provided, which flips the panels around vertically or horizontally (depending on the required arrange_ attribute).

  • In the Help menu of the Insights Platform web interface, the menu item Reference Manual has been renamed to Interactive Reference. Clicking this menu item opens an interactive version of the Macro Language Elements section of the Reference Manual in a new window.

  • In the Help menu of the Insights Platform web interface, the menu items User's Guide and Reference Manual have been added. Clicking on these menu items opens the WebHelp versions of the respective documentation in a new browser tab.

Version 12.17 (10/26/2017)

  • The Object Manager has been replaced with a new version that has been redesigned and offers enhanced functionality such as moving multiple objects and deleting multiple objects. It can be accessed in the same way as the previous version (e.g., from the Tools menu in the workspace menu).

  • In the Insights Platform web interface, the session memory meter is now hidden if the workspace menu is too large to accommodate both.

  • For columns with the big integer data type, the display format is used to specify the data type the columns are cast to when exported to XLSX files. Big integer columns formatted using format="type:num" or format="type:nocommas" are cast to the floating point number type when exported to XLSX. Columns formatted using format="type:char" are cast to the string data type when exported to XLSX.

Version 12.16 (10/19/2017)

  • The attribute emptytext_ has been added to <widget class_="browser">, which specifies the text to display in the browser widget input field when the dynamic variable associated with the value_ attribute is not set to anything. Previously, the input field displayed the text All Databases; it will now appear blank unless the emptytext_ attribute is specified.

  • In the Trillion-Row Spreadsheet, the Excel workbook export settings now include an option to specify whether to convert big integers to a decimal value or to text when exporting to Excel. The Excel workbook export settings can be accessed by clicking Microsoft Excel from the Export tab.

  • In the Trillion-Row Spreadsheet, the Back and Export buttons have been moved to the top of the Excel workbook export settings. The Excel workbook export settings can be accessed by clicking Microsoft Excel from the Export tab.

  • When using simple comparisons in the Select rows panel of the Trillion-Row Spreadsheet and Row number is selected from the Column drop-down list, a numeric input field is provided with up and down arrows to increase or decrease the value. Only numeric values are permitted in this field.

  • When using simple comparisons in the Select rows panel of the Trillion-Row Spreadsheet, the Relationship drop-down list now contains the options is N/A and is not N/A. These options allow the user to perform selections based on whether or not the specified column contains missing values.

  • In the Trillion-Row Spreadsheet and Macro Language Workshop, the Select rows option of the context menu in grid view now includes the entries Where [COLUMN] has the value N/A and Where [COLUMN] does not have the value N/A. These options allow the user to perform selections based on whether or not the specified column contains missing values.

  • The Trillion-Row Spreadsheet Link tables panel now only permits linking between columns with identical types.

  • In the Trillion-Row Spreadsheet, the trays that display the columns for the base and foreign tables in the Link tables and Merge tables panels now scroll together to make it clearer which columns are aligned in complex links or merges.

  • The Help menu in the Insights Platform web interface now contains the menu item Launch Support Portal, which opens the 1010data Support Portal in a new browser tab.

  • In the Trillion-Row Spreadsheet, added Converting big integers options for exporting big integers to Excel as text or as a decimal.

Version 12.15 (10/12/2017)

  • When downloading a delimited text file from the Trillion-Row Spreadsheet using the Delimited Text option on the Export tab, the masking characters are now correctly applied when either the Backslash or Other option is selected under the If data contains characters above section. In addition, a file name and extension can now be specified for the downloaded file.

Version 12.14 (10/05/2017)

  • Issues with rendering the Link tables and Merge tables panels in the Trillion-Row Spreadsheet when using Internet Explorer 11 have been fixed.

  • An issue has been resolved regarding widgets not sizing correctly when the height_ and/or width_ attributes are specified as percentages.

  • Macro Language Workshop now saves the original text source of a query in addition to the default XML format. The original text source includes any extra whitespace such as line breaks or indentations added in the Macro Language code.

    Note that the Save original text source with query option is now selected by default in the save options. Previously, this option had to be explicitly selected for this behavior. Text formatting may be omitted by clearing this option before saving the query.

    Text formatting will not be visible in queries loaded within versions prior to beta-11.10 (or in Compatibility Mode in any version), and saved formatting will be lost if queries are resaved from older versions. In addition, File > Load resolving all ops will ignore saved formatting.

    To restore the default XML formatting, select Code > Check and clean up XML.

  • Issues related to the modal behavior of the alert widget have been resolved.

  • Instances where the path and title of a query were not displayed correctly in the window title bar of the Trillion-Row Spreadsheet have been fixed.

  • The attribute printfixedcols_ has been added to <widget class_="grid">. This attribute can accept an integer, which specifies the number of columns from the table to be printed on each page, or a range (e.g., "2:3"), which specifies the first and last column numbers in the range to be printed. This setting only works when specified once per Excel worksheet; for multiple tables to use this in a single workbook, separate tables onto separate sheets (e.g., xlsx_sheetname_).

  • <merge match="order"/> now works as expected when some column names are common between the tables.

  • The <merge> operation now works correctly when both the table2 attribute and the base table are Quick Queries.

Version 12.13 (09/28/2017)

  • Double-clicking a cell in Grid View in the Trillion-Row Spreadsheet or Macro Language Workshop now selects the contents correctly without padding extra whitespace on the end.

  • The workspace menu in the Insights Platform web interface has been restyled to appear as an opaque horizontal bar at the top of the workspace that windows can no longer appear behind.

  • Clicking the Object Manager icon on the Welcome tab of the Dashboard no longer launches multiple instances of Object Manager.

  • An issue introduced in beta-12.11 that caused <do> outside of <dynamic> to be ignored has been fixed.

  • The Object Manager no longer requires a user to be the owner of a folder to add subfolders to it; only upload permission is required.

  • Error messages have been improved for non-numeric and out-of-domain select and select-expand value expressions.

  • The alert widget now correctly parses integer values passed to its value_ attribute.

Version 12.12 (09/21/2017)

  • Issues with the Save query and Create Visible Variable choices on the Develop tab of TRS have been resolved.

  • Problems related to the animation when flipping panels in TRS (e.g., after clicking the More button on the New operation panel) have been resolved.

  • The userdata(U;K) function now accepts the key 'schedrunlimit'.

  • In the Trillion-Row Spreadsheet and Macro Language Workshop, the context menu can now be accessed by pressing Ctrl while clicking within a cell. Previously, this was only accessible by right-clicking in the cell.

  • The Password Reset page now ignores leading and trailing spaces in the Username field.

Version 12.11 (09/14/2017)

  • In the Trillion-Row Spreadsheet, the following keyboard shortcuts have been added when editing Macro Language code for an individual operation in the analysis timeline:

    • Shift+Enter submits the operation
    • Ctrl+Enter submits the operation and goes to the next operation in the timeline
    • Ctrl+Shift+Enter submits the operation and runs the remaining operations in the timeline.

    You can edit Macro Language code for an individual operation in the analysis timeline by clicking the Edit the macro code for this operation icon () within the operation controls for the panel.

  • In the Trillion-Row Spreadsheet, the following keyboard shortcuts have been added when editing Macro Language code in the Macro Language view in the results pane:

    • Shift+Enter performs the same action as the Try button
    • Ctrl+Shift+Z performs the same action as the Revert button
    • Ctrl+Enter performs the same action as the Submit button

    You can switch to the Macro Language view in the results pane from the View bar or the View tab.

  • Added <do action_="dbupdate" path_="[PATH]"/>, which refreshes the object specified by the path_ attribute to reflect any changes that may have occurred between either the start of the current session or since the last dbupdate action was executed on that object. Also, the optional attribute value_="@var" sets var to a package with the keys date, time, and ts containing the date, time, and timestamp values, respectively, for the last update of the object specified by the path_ attribute.

    For instance, if a table is added to a folder after a user has started their session, the table will not be visible to the user until a dbupdate is executed.

  • The Object Manager now offers the Refresh object option in the right-click menu for all object types.

  • In the Favorites tab of the Dashboard, right-clicking on a folder object now shows the following options:

    • Open in Object Manager
    • Query folder in Macro Language Workshop
    • Refresh contents
    • Remove from favorites

  • Animation issues related to flipping panels in TRS (e.g., when exporting to Excel) have been resolved.

  • Tooltips that show column information for <widget class_="grid"> can be enabled or disabled via the boolean coltooltips_ attribute, which defaults to 0.

  • Variables specified in <do> (i.e., <do var="value">) now behave as dynamic rather than block variables; in particular, they shadow dynamic variables from the surrounding <dynamic> (or other <do>).

    For example:

    <dynamic a="10" b="20">
      <do onsubmit_="go" a="{@a}">
        <do><set a="{@a+7}"/></do>
        <do><set b="{@a*2}"/></do>
      <widget class_="button" submit_="go"/>
      <widget class_="text" text_="a={@a} b={@b}"/>

    now shows a=10 b=34 after you press the button (because a is local to the outer <do>, but b is not); previously, it would have shown a=17 b=34.

  • Added <do on_="render">, which is executed when a <dynamic> is initially called from a QuickApp rendering routine. <do on_="render"> will be triggered only once per render. This differs from <do on_="init">, which could be executed multiple times (e.g., when submitting a <dynamic> query from MLW).

    The following conditions are also now valid for <do> clauses:

    • on_="render(target)" is triggered only when rendering to a specific QuickApp target (e.g., render(web) or render(xlsx))

    • on_="new" is triggered when a <dynamic> is first loaded/submitted (and cached), but never in any subsequent use of the cached <dynamic> (even if it is rerendered)

    • on_="old" is the opposite of on_="new"

    • on_="explicit" is triggered when a full <dynamic> query is submitted (whether or not it is already cached)

    • on_="implicit" is triggered when a transaction refers to it by tag

    • on_="[LIST_OF_STATES]" can now be used to trigger on any one of a comma-separated list of dynamic states

    • on_="submit(name)" is triggered when there is a submit to name. Note that this has the same effect as onsubmit_="name", but it is useful because it can be combined with other states (e.g., a <do on_="render,submit(reset)"> that sets up the initial state of a QuickApp could be useful in conjunction with a <widget class_="button" submit_="reset"/>).

  • Issues when performing a link-and-select with <meta>optlinksel</meta> have been resolved.

  • <meta> hints no longer persist after a query is finished.

  • Issues when performing a <link> operation without specifying col/col2 have been fixed.

  • Selections on lists of values of mixed types (e.g., integer and decimal values) now work correctly.

Version 12.10 (09/07/2017)

  • When the user right-clicks on a cell in a grid in the Trillion-Row Spreadsheet or Macro Language Workshop and clicks Select rows from the context menu, the menu that is displayed now refers to NA values in text columns as '' (e.g., Select rows > Where foo does not have the value <> ''). In addition, the expression generated by such an interaction now correctly uses '' as well (e.g., foo<>''). These expressions are displayed in manual entry mode in the Select rows panel.

  • When the user right-clicks on a cell in a grid in the Trillion-Row Spreadsheet or Macro Language Workshop and clicks Select rows from the context menu, the various menu options that are displayed now show up to 20 characters of text from the associated cell (followed by an ellipsis if the text in the cell exceeds 20 characters).

  • In the Trillion-Row Spreadsheet, an index error no longer occurs when the user attempts to edit a Link tables panel in the Analysis Timeline for an operation that has already been submitted.

  • In the Trillion-Row Spreadsheet, if a <base> operation explicitly sets a label attribute, that label is displayed as the title in grid view.

  • In the Trillion-Row Spreadsheet, a bug was fixed in which the value specified for the Result Name field within the More Options view of the Tabulation panel was not retained.

  • The integrated documentation viewer that displays the Reference Manual and Getting Started Guide now correctly provides a scroll bar in the Contents window when the expansion of the items in that window exceeds the available space.

  • A bug was fixed that prevented SSO logins using the standalone QuickApp runner.

Version 12.09 (08/31/2017)

  • Fixed a bug that occurred in which the Insights Platform web interface did not automatically redirect to the login page after the user logged out.

  • A more descriptive error is now displayed when the value of the name attribute for a <layout> tag is invalid.

  • Adjusted the priority with which string literals in the expression widget are coerced to integer values, to address some problems with complaints about signature mismatches when using built-in functions.

  • Added Macro Language code auto-completion to <widget class_="textbox" mode_="xml"/> for parity with the code editor in Macro Language Workshop.

  • When performing a tabulation in the Trillion-Row Spreadsheet, a format="" attribute is no longer added to <tcol> elements with no configured format; this was overriding any pre-existing formatting for computed tabulation columns.

  • The Trillion-Row Spreadsheet now inspects each operation in the query in turn when displaying a title for a grid view. A <base> operation looks up the title of the associated table in the 1010data Insights Platform master database. A <table> operation respects the title attribute, if set, and otherwise defaults to a title of simply Table. A <tabu> operation respects the label attribute, if set, and otherwise prepends Tabulation on to the title up to that point.

  • The text specified by the emptytext_ attribute for <widget class_="dropdownlist"> has been restyled to match the way text specified by the emptytext_ attribute for a field widget is displayed.

  • The standalone QuickApp runner now supports cookie authentication, including a session dropdown when multiple sessions are active in the same browser.

  • Trillion-Row Spreadsheet widgets defaults to opening in a separate window.

Version 12.08 (08/24/2017)

  • In the Trillion-Row Spreadsheet, both the Result Name field in the Tabulation panel and the Name field in the Computed column panel more strongly enforce the consistency of input validation for column names. In both cases, if an invalid name is entered in the field, the field will flash briefly before the name is automatically converted to a valid column name. In most cases, this will result in a reasonable column name, saving the user from needing to manually alter their input until all constraints are met.

  • In the Tabulation panel of the Trillion-Row Spreadsheet, the behavior of the More Options section has been improved. A user must select a column from Tabulation Column before formatting fields can be modified. Also, the Tabulation Column drop-down menu displays No columns exist if no tabulation columns have been created.

  • In the Arrange columns panel of the Trillion-Row Spreadsheet, a filter field has been added to the Hidden section, which now allows the user to show a small selection of the currently hidden columns.

  • In the Insights Platform web interface, dialogs related to creating and configuring Visible Variables have been made more consistent.

  • When creating a Visible Variable from the Develop tab in the Trillion-Row Spreadsheet, the Type menu now uses consistent naming and order with the corresponding menu in the other Visible Variable dialogs used throughout the Insights Platform web interface.

    The Type menu options are:

    • String
    • Number
    • Date
    • Selection (a drop-down menu that allows the selection of a single item)
    • Multiple (a drop-down menu that allows the selection of multiple items, which are displayed as a comma-separated list in the field)
    • List (a drop-down menu that allows the selection of multiple items, which are displayed as a list of individual elements in the field, each of which can be indidually deleted from the list)

Version 12.07 (08/17/2017)

  • Fixed issue with users having trouble logging in using IE11.

  • In the Trillion-Row Spreadsheet, the Compute panel now opens with focus on the Column name field.

  • Added two new keyboard shortcuts from the New operation panel in the Trillion-Row Spreadsheet:

    • Pressing the = key now opens the Compute panel.
    • Pressing the ? key now opens the Select panel.

  • In the Trillion-Row Spreadsheet, fixed issues with duplicate Sort panel entries being produced when executing multiple sequential sorts on the same column using the context menu in the Grid view. Also corrected related problems with the Sort panel submit button.

  • In the Macro Language Workshop, using Code > Upload query text now correctly fetches the latest version of the uploaded file each time.

  • In the TRS, cells that contain XML are now properly displayed in the Full text pop-up window.

  • In the TRS, the Link and Merge panels now open to the current base table's folder, if possible.

  • In both TRS and MLW, columns of type bigint are now right justified in Grid view, for consistency with columns of type integer and float.

Version 12.06 (08/10/2017)

  • The Table Editor now correctly renders as an appropriately sized window when first launched.

  • In the Insights Platform web interface, error message dialogs can now be closed by pressing Esc or Enter.

  • In the Insights Platform web interface, the title of a window can be changed by clicking the Edit icon on the right side of the title bar. An input field populated with the current title appears. Any changes may be submitted by pressing Enter or may be canceled by pressing Esc. If the window loses focus in the middle of changing the title, any changes are ignored.

  • The Trillion-Row Spreadsheet now shows Parameterized Quick Queries in its object browser.

  • The Trillion-Row Spreadsheet now displays the correct path in the title bar after the base table is changed in the Open table panel.

  • The browser widget now closes its drop-down menu when it loses focus, even if a selection has not yet been made.

  • In the Tabulation panel of the Trillion-Row Spreadsheet, the interface for configuring additional options has been improved. (Additional options for a tabulation can be configured by clicking the More Options switch on the Tabulation panel.)

  • You can now select text from the cursor to the end or beginning of the text entry field in a <widget class_="expression"> by pressing Ctrl+Shift+Right Arrow or Ctrl+Shift+Left Arrow, respectively.

Version 12.05 (08/03/2017)

  • Corrected layering issues with windows spawned from Macro Language Workshop.

  • Fixed a display issue when a browser widget appears inside a splitter layout. The browser widget popup now uses static positioning rather than inheriting an absolute position.

  • Fixed error that occurred in the textbox widget when the value_ attribute is an undefined package element.

  • Fixed window layering issues and problems with minimizing windows after restoring a saved or recent workspace.

Version 12.04 (07/27/2017)

  • Windowed widgets are now removable by default (i.e., the global widget attribute removable_ now has a default value of 1 when used with <widget class_="widget" windowed_="1">).

Version 12.03 (07/20/2017)

  • This release contains general system enhancements and internal development.

Version 12.02 (07/13/2017)

  • In the Insights Platform web interface, newly spawned windows are now properly prevented from being created behind the logo or workspace menu.

  • Windowed widgets (i.e., widgets that have windowed_="1") now accept wintitlebar_="0", which creates a window with no title bar or other basic structural elements of a window, such as a window frame or window controls. (Note that a window created in this manner cannot be manually moved or resized.)

  • Implemented memory optimization for row-shifting-related g_functions. See the section titled Shifting and Windows in the 1010data Reference Manual for a list of these functions.

Version 12.01 (07/06/2017)

  • In the Insights Platform web interface, window controls (i.e., icons on the right side of the window title that allow you to control certain aspects of the window size, placement, and appearance) now maintain their order when the window is maximized or restored.

  • In the Insights Platform web interface, windows are now properly prevented from being resized or maximized behind the logo or workspace menu.

  • A bug has been fixed in which tooltips were incorrectly displayed behind other windows or layouts.

Version 12.00 (06/29/2017)

  • In Macro Language Workshop, the edit-change button (represented by an orange pencil) is now clickable. It functions the same as clicking File > Save (or File > Save As if Save is disabled).

  • The attribute itemspacing_ has been added to the radio and checklist widgets to control the spacing between items. It is specified as a typical CSS distance (i.e., a non-negative number and a measurement unit like em, px, etc.) The default is 1em, which matches prior behavior. If a user specifies digits only, the default is px.

  • A bug that prevented the field widget from respecting the visible_ attribute in beta-11.25 was fixed.


For the highlights, technical advisories, and release details for the limited production release of the 1010data Insights Platform Version 11, see Release Notes.

Version 11.25 (06/22/2017)

  • Display layers can now be used to stack sets of widgets and/or layouts and to control the order in which they appear on top of one another.

    Two new display layers are now always present: one reserved for normal windows, and one for modal windows, so that by default, windows are always above other widgets, and modal windows are always above these.

    <render> has two new (optional) attributes:

    • displaylayers_, which accepts a positive integer that specifies how many extra layers to add between the default layer and the window layer
    • windowlayer_, which accepts an integer that specifies the default layer for windows

    <widget> and <layout> each have the new (optional) attribute displaylayer_, which accepts an integer that specifies the display layer for the specific visual object.

  • The progressbar widget has been redesigned, and is now aware of display layers when centering itself.

  • Errors with the obj_name(path) and obj_istemp(path) functions were fixed.

  • The goodcolname(string) function returns a boolean value indicating whether string would be a valid/recommended column name (i.e., contains only lowercase letters, digits, and/or underscores, begins with a letter, and does not end with an underscore).

    This improves upon goodname(string) added in version 10.23 (which was primarily aimed at validating table/folder names), in that it will reject:

    • names with uppercase letters (which for historical compatibility reasons are not strictly prohibited in, for example, <willbe>s, though they are extremely strongly discouraged as they can cause problems when materialized on platforms with case-insensitive filesystems), and
    • names that end with an underscore, which are reserved for system column names

    Note that string is not checked as to whether it actually refers to any existing object; the functions goodpath(string), goodname(string), and goodcolname(string) are strictly for testing the appropriateness of a string as an object name.

  • A new extended operation, Select and expand rows, has been added to the Trillion-Row Spreadsheet. This extended operation can be used to choose the number of times (0 or more) that each row should appear in the table.

    It can be accessed by clicking More... on the New operation panel and selecting the corresponding item from the Available extended operations drop-down menu.

  • The function g_gm(G;S;X;P) computes the generalized or "power" mean with exponent P of the values of X for each group defined by G, where X is a numeric column/expression and P is a real number literal.

    Note the particular cases of P:

    • -0i - minimum (g_lo)
    • -1 - harmonic mean
    • 0 - geometric mean
    • 1 - arithmetic mean (g_avg)
    • 2 - root-mean-square or quadratic mean
    • 0i - maximum (g_hi)

    If P is left blank, the geometric mean (P=0) is calculated.

    r_gm(C;S;P) is the analogous row function.

  • The enhtml(string;opts) function is now available both in the scalar and vector context. It turns a plain text string into HTML by escaping characters such as <, &, and >.

    By default newlines (\n) are translated into the HTML <BR> tag; this may be turned off by adding the option 'nobr' to the opts (blank or list of options; currently this is the only option).

  • The attribute historyvalue_ has been added to <widget class_="field">. If a list variable is bound via this attribute, then the Up Arrow and Down Arrow keys can be used within the field to access elements from that variable's value, copying them into the field. (From that point, they can be further edited and then entered in the usual way). Entering a new value automatically appends it to the history.

    The attribute is only applicable to plain fields (i.e., not when type_ is set to numeric, password, auto, or combo).

  • A new extended operation, String expansion, has been added to the Trillion-Row Spreadsheet. This extended operation splits each string in a text column on the given separator, and expands the table so that there is one row for each segment of the split string.

    It can be accessed by clicking More... on the New operation panel and selecting the corresponding item from the Available extended operations drop-down menu.

Version 11.24 (06/15/2017)

  • The expression widget now returns single-character typecodes via the typevalue_ attribute to be consistent with typecodes used elsewhere in the system.

    Valid values are:

    • i (integer)
    • f (float)
    • a (text)
    • m (model)
    • b (boolean)
    • j (bigint)
    • n (null)
    • u (unknown)

    or an empty string when the expression is invalid.

    Note that these typecodes now distinguish integer/float values instead of reporting both as "number".

  • The maximum height of the expression widget context menu may now be specified (in pixels) via the menuheight_ attribute. The default is 200.

  • The descriptions of columns in the Expression Editor context menu have been improved. Most columns will display type information, and unlabeled columns produced by <willbe> or <link> operations will include information about their provenance (e.g., "computed as foo+baz" or "linked in from").

  • On the Export tab of the Trillion-Row Spreadsheet, the CSV and Compressed CSV choices have been combined into one Delimited text choice, which offers options for formatting and compressing the resulting text file.

  • On the Export tab of the Trillion-Row Spreadsheet, the Microsoft Excel choice now offers an option to render the data formatted or plain.

  • A new extended operation, Amend by expression, has been added to the Trillion-Row Spreadsheet. This extended operation can be used to recompute the values of a column or specific rows of a column.

    It can be accessed by clicking More... on the New operation panel and selecting the corresponding item from the Available extended operations drop-down menu.

Version 11.23 (06/08/2017)

  • The Expression Editor now automatically appends missing closing delimiters when focus is removed from the field or the contents are submitted (e.g., by pressing Enter). This applies whether using the Expression Editor in the Trillion-Row Spreadsheet or in a QuickApp via the expression widget.

  • An error message is displayed if the name attribute is specified to <tcol> in a multi-column cross tabulation. Specify label or cmlabel instead. See <tcol> for more information.

  • A new Macro Language view is available in the Trillion-Row Spreadsheet, which can be accessed via the View tab or by clicking the Macro Language icon on the right side of the results pane. This view displays a grid along with the Macro Language code corresponding to the current timeline (split horizontally or vertically depending on the aspect ratio of the result panel). The code may be edited, tested without affecting the main timeline, or submitted and re-imported into the timeline.

  • The Tabulate panel in the Trillion-Row Spreadsheet now features basic support for rollups on row break columns.

  • Added the attributes labelcolor_ and labelbgcolor_ to all widgets that support the label_ attribute.

Version 11.22 (06/01/2017)

  • In the Trillion-Row Spreadsheet, column sorters in panels (e.g., Arrange, Sort, Link, Merge, Tabulate) now offer full column names and labels in tooltips. In some cases, this replaced previously existing contextual information in the panel header.

Version 11.21 (05/25/2017)

  • The function same(X;Y) has been added, which returns 1 if X and Y are equal. The function allows for X and Y to be of any type, including special values. Special types (lists, packages, etc.) are compared component to component. Although X and Y can be different types and is permitted by the function, values of different types are never the same. The exception is the comparison of numeric scalars (e.g., 1, 1.0, and '1'), which is indifferent to type.

    The function identical(X;Y) has also been added, which provides a stricter comparison that treats scalars of different underlying type as different. (This is also true for packages with their keys in different order.) Note that the use of this function is not typically desired, however, because block code itself converts freely between numbers and their string representation.

  • New pseudo-indexing forms have been introduced for block code variables:

    True if @variable is empty (i.e., {same(@variable;'')}) or undefined
    A string representing a human-readable form of @variable (where possible)
    A string representing a 1010data input form of @variable (where possible)
    A JSON-encoded version of @variable (where possible)
    An HTML-escaped version of the string form of @variable

    Also, @&variable is now shorthand for qv(@variable). For example, <sel value="foo={@&list}"/>. See qv(X) for more information.

  • List indices in list-value variables may now be negative. The number indicates the index position from the end of the list.

  • The Expression Editor now understands that the first argument of g_functions must be a valid grouping column and provides more constrained/helpful autocomplete results.

  • In the Insights Platform web interface, resizing a window from the top or left side no longer causes it to jump.

  • In the Insights Platform web interface, windows that have been maximized can now be minimized and/or renamed.

  • The URL associated with the Help > Technical Interfaces menu item in Compatibility Mode (Session > Open Compatibility Mode) was corrected.

Version 11.20 (05/18/2017)

  • A type error that occurred when rendering tables with columns whose format defaulted to a function rather than a string has been fixed.

  • A rank error that occurred in a browser widget search when an inner query is present has been fixed.

  • For <widget class_="field">, the attribute immediate_ now works when the type_ attribute is not specified (which by default creates a plain text entry field). Setting immediate_="1" automatically updates the dynamic variable associated with the value_ attribute without requiring the user to click outside the field widget or press Enter. Previously, this attribute only worked with type_="numeric".

  • In the Trillion-Row Spreadsheet, the tooltip for Histogram (1D) charts created within the Visualize tab now displays the percentage of the total area less than or equal to the current location of the cursor (CDF).

Version 11.19 (05/11/2017)

  • The output type NONE has been added to the Scheduler (Admin > Scheduler) as an option under Save Results in. When this option is selected, an email is still sent at the end of the job, but there are no attached results or links to the results. This feature can be used for scheduled jobs that build tables but don't necessarily provide any interesting output.

  • A bug was fixed in the 1010data Insights Platform web interface in which a grid dropped to a canvas could not be subsequently removed from the canvas. (A grid can be dropped to a canvas using the Drop result option from the Develop tab of the Trillion-Row Spreadsheet.)

  • A bug was fixed in the Macro Language Workshop that displayed an error when the user clicked the Show icon on the splitter bar to hide the results pane and only show the analysis pane.

  • A bug was fixed in which the scroll bars disappeared from the Trillion-Row Spreadsheet and Macro Language Workshop after shrinking/resizing either window beyond a certain point.

  • A bug was fixed in which Macro Language code written in the Macro Language Workshop after exporting from the Trillion-Row Spreadsheet was not being autosaved as part of the workspace.

  • The interface now renders the results of a <do> clause outside of a <dynamic> inside a grid widget instead of displaying the message No widgets in <dynamic>.

  • A bug was fixed where <widget class_="alert"> set the dynamic variable associated with the responsevalue_ attribute to integer rather than string, so it was not recognized as a trigger for subsequent alert widgets in the same <dynamic>.

  • Added <widget class_="value" value_="@variable">, which displays the value of its bound variable, formatted and updated whenever the variable changes.

    For convenience, special values are also handled:

    • Lists and packages are displayed, by default, as JSON

    • Table values are displayed as tables

    • XML (XML tags or lists thereof) is displayed in text form

    Further formatting options will be provided in the future.

  • An issue was fixed so that <do value_="@var" col_="[NAME_OF_COLUMN]"> now populates the dynamic variable var with a list-value in all cases.

  • The 1010data Insights Platform can now save special values such as list values, package values, table values, and XML values in the dynamic variables associated with the value*_ attributes (e.g., value1_, value2_, etc.) of a <do> clause.

  • When retrieving data implicitly using <do valuex_="@variable" rowx_="n"> (or explicitly using action_="getdata"), n may now be negative, in which case the nth row counting backward from the last row is used. <do valuex_="@variable" rowx_="0"> is also valid and returns column metadata (as packages) instead of data.

    Also, if n is negative when using <do valuex_="@variable" colx_="n">, the nth column counting backward from the last column is used. <do valuex_="@variable" colx_="0"> is also valid and returns a column of row numbers.

    In addition, <do valuex_="@variable" colx_="0" rowx_="0"> returns a package of table metadata.

  • The above extensions to row*_ and col*_ also apply to widgets (notably chart and text) that use <layer> with value*_ to retrieve data.

  • In widgets that use <layer> with value*_ to retrieve data, local widget (block) variables are now available in the post-<layer> expansion.

    For example, in the following code, the contents of <graphspec> may reference foo (formerly only the contents of <layer> could).

    <widget class_="chart" foo="...">
      <layer ...>
  • The syntax <loop with_="@var"> is now supported. Previously, only <loop with_="var"> (without the @) was syntactically valid.

  • The following alternatives to <loop with_="@var"> have been added:
    <loop withtable_="@var" breaks_="[LIST_OF_COLUMNS]">

    The <outer> query is run, the entire result is placed as a table value in @var, and then the <inner> query is run (once).

    The breaks_ attribute accepts a comma-separated list of columns. When this attribute is specified, the <inner> query runs once for each break, with @var set to a table value containing the data for that break.

    <loop withcols_="@var">

    The <outer> query is run, then for each column in the result, the row is placed as a list into @var and then the <inner> query is run. If colname_="@var2" is specified, @var2 is set to the column name on each iteration.

    <loop withrows_="@var">

    This attribute provides the same functionality as the with_ attribute.

    <loop withvalue_="@var">

    The <outer> query is run, then the value of the first row of the first column is placed in @var. Following the syntax of <do action_="getdata" value_="@var">, the attributes row_ and/or col_ may be specified. If both are specified, a single value is retrieved. If only row_ is specified, a single row is retrieved as a package. If only col_ is specified, a single column is retrieved as a list. Multiple additional values may be retrieved at the same time using valueN_/rowN_/colN_ syntax with arbitrary non-empty N.

    These new options work with all existing loop modes: last , merge, link, adjoin, and concat.

  • The max(X;Y) function was updated to correctly return NA when one argument is a scalar value and the other is NA.

Version 11.18 (05/04/2017)

  • The Scheduler (Admin > Scheduler) now features three new time zones: Arizona, Alaska, and Hawaii.

  • Added <widget class_="expression">, which allows the Expression Editor to be included as a widget within a QuickApp.

    The following attributes are available (note that these names/features may change):

    Accepts a dynamic variable to read/write the textual value of the expression from/to. (required)
    Accepts a dynamic variable to write the type name of the currently entered expression. Type names include: number, string, model, boolean, bigint, null, unknown. If the type cannot be determined (e.g., doesn't parse, doesn't typecheck, etc), the dynamic variable associated with this attribute will be set to the empty string.
    Boolean flag that specifies whether or not to suppress column suggestions in the context menu as well as functions which only make sense in a vector context (g_functions, r_functions, etc.). Accepts 1 or 0. The default is 0.
    Boolean flag that determines whether or not to display a border around the field and display error messages that occur on submission. Accepts 1 or 0. If 0, the border/error message UI is hidden, leaving only a text field. The default is 1.
    Boolean flag that determines whether or not to reject submission of incomplete or otherwise malformed expressions. (Submission of an expression is performed by pressing Enter or removing focus from the field). If 0, incomplete or otherwise malformed expressions are allowed. The default is 1.

    The following example demonstrates its usage:

    <dynamic a="2+strlen('foo')" b="?">
      <layout arrange_="v">
        <widget class_="text">{@a}
        <widget class_="text">{@b}
        <widget class_="field" value_="a"/>
        <widget class_="expression" value_="a" typevalue_="b" decorate_="0" strict_="0"/>

  • A bug was fixed in which browser widgets were accidentally sharing state, so that opening a folder in two instances prevented the first one from collapsing correctly.

Version 11.17 (04/27/2017)

  • For <widget class_="gmap"/>, the descriptions associated with pins defined in a <layer name="marker"> can be made always visible by specifying alwayslabel_="1" and icon_="0" in the <layer> tag.

  • The <static> form now accepts the title_ render property (e.g., <render><static title_="[TITLE]"/></render>)

Version 11.16 (04/20/2017)

  • A problem that caused the browser widget to display search results without first applying the inner query has been fixed.

  • The <html> form introduced in beta-11.09 has been renamed to <static>.

Version 11.15 (04/13/2017)

  • A bug that was causing no data columns to appear in the Chart Builder when running in compatibility mode has been fixed.

  • In the Trillion-Row Spreadsheet, a status message field has been added to the Expression Editor in the Select and Compute panels that can directly report error messages when encountering parse errors, invalid column references, etc.

  • In the Trillion-Row Spreadsheet, the Expression Editor in the Select and Compute panel now provides contextual help for the functions if(C1;R1;C2;R2;...;D) and case(X;V1;R1;V2;R2;...;D) within expressions.

  • In the Trillion-Row Spreadsheet, references to the system variable ii_ within the expression field in the Select and Compute panel are no longer rejected.

Version 11.14 (04/06/2017)

  • An issue causing type errors when using <widget class_="dropdown" multi_="1"> in beta-11.13 has been fixed.

  • The following changes have been made in the Scheduler:

    • On the Schedule a New Report panel as well as under Frequency in the job details section of the Existing Scheduled Jobs panel, an Hourly option has been added for how frequently to run a scheduled job.
    • On the Existing Scheduled Jobs panel, a Run Time column, which shows how long it took to run each completed job, has been added to the Run History grid.

Version 11.13 (03/30/2017)

  • The <itext> form has been added, which expands into an inert <content type_="itext"> form. It is similar to both the <text> and <html> forms introduced in beta-11.09. It is intended to contain text as well as certain styling attributes. Like <text> and <html>, it respects the attributes s_, e_, si_, so_.

    The styling attributes currently recognized by the <itext> form are:

    • [i] (italicize)
    • [b] (bold)
    • [u] (underline)
    • [t] (monospaced font)

    Each is terminated, as in HTML, with a "close" tag (e.g., [/i]).

    The explicit intent of this form is to provide a simple way to mark up text for multiple QuickApp targets (e.g., PDF, XLSX) without requiring those targets to parse/understand HTML, CSS, etc.

  • The extended form of <widget class_="text"> understands <itext> blocks (i.e., the <content> blocks they expand into) and will display them translated into HTML.

  • The breaks_ attribute has been added to <widget class_="dropdown"> and <widget class_="dropdownlist">. This attribute accepts a column name. Items that have the same value in the specified column are grouped together in the drop-down list.

  • In the Trillion-Row Spreadsheet, an improved Expression Editor has been added to the Select panel (when specifying a non-simple comparison) and the Compute panel.

    Features include:

    • Detection and highlighting of mismatched delimiters (e.g., brackets, braces, quotation marks, and parentheses).
    • Highlighting of the current enclosing delimiters.
    • Coloring of quotations, so they stand out easily.
    • Suggestion of closing delimiters and the implied semicolon separators for function calls. Pressing the right arrow to move over these suggestions while at the end of the input buffer will accept them, speeding expression entry.
    • Suggestion of columns, variables, and functions based on expression tokenization. The up and down arrows or the mouse can navigate the list of suggestions (as with the previous system), and pressing Tab or clicking the menu item will insert it.
    • Inline function reference. While editing the subexpressions representing any function's arguments, the top portion of the context menu indicates the argument index and a description of that argument's constraints and purpose.
    • Improved mechanism for storing function metadata. Inline docs are now automatically distilled from the 1010data Reference Manual and can be easily kept in sync. Suggestions now include descriptions of all "magic columns" and system variables.
    • Token-aware insertion and replacement. If the cursor is positioned within an existing token (including {@var} reference structures), choosing a replacement from the context menu will appropriately replace the current token with the new selection.
    • Improved layout. The editor can grow to accommodate large expressions and scroll vertically when necessary.

Version 11.12 (03/23/2017)

  • The menus in the Macro Language Workshop are now accessed by clicking on the menu names. Previously, these menus were accessed by pointing to the menu names.

  • The new menu item File > Export > library to workspace installs libraries into the scope of the workspace. The exported XML should consist of <library> and/or <import> forms.

  • In the Macro Language Workshop, the keyboard shortcut Ctrl+Enter (or Cmd+Enter) now corresponds to what was last clicked on the Run menu. For example, if Run > Render standalone was last clicked, the keyboard shortcut would correspond to that action. If nothing has been clicked, the default is Run > Render. Previously, this keyboard shortcut always corresponded to Run > Render.

  • In the Trillion-Row Spreadsheet, the issues with the Visualize panel introduced in beta-11.11 have been fixed.

  • The following changes have been made in the Scheduler:

    • A Clone Job button has been added to the Existing Scheduled Jobs panel, which allows an existing job to be copied.

    • Attaching data in the email sent to the designated recipients is now an option. The default behavior will still require a login to download data; however, this behavior can be modified using the checkbox labeled Require Login to Retrieve Data on the Schedule a New Report panel as well as under Output in the job details section of the Existing Scheduled Jobs panel.

    • In the Existing Scheduled Jobs panel, the row associated with the selected job is now highlighted.

    • Job names too long to fit in the job details section of the Existing Scheduled Jobs panel are truncated.

    • In the Existing Scheduled Jobs panel, after deleting a scheduled job, you can delete another job without relaunching the Scheduler. Prior to this release, you would have to close the Scheduler and then relaunch it before deleting another job.

Version 11.11 (03/16/2017)

  • In Macro Language Workshop, the keyboard shortcut Shift+Ctrl+Enter (or Shift+Cmd+Enter) creates a new MLW window containing only the selected code from the current MLW editor and runs that code immediately (assuming it constitutes a valid query). Alternatively, the menu item File > Export > and run selection in new MLW can be used instead of the keyboard shortcut.

  • The issues related to the background image and the link associated with the Forgot Your Password button on the login page for standalone QuickApps have been fixed.

  • Cut, Copy, and Paste have been added to the menu that is displayed when you right-click in MLW.

  • The Background menu on the Appearance panel of the Session > Workspace Settings window now contains new options.

Version 11.10 (03/09/2017)

  • The Object Manager info panel now displays the full path of objects in a manner suitable for copying and pasting elsewhere.

  • Allow attribute lookups on XML-valued @variables to return special values (lists, packages, XML). This facilitates a slightly simpler syntax for accessing special values returned wrapped in XML from a block.

    For example:

    <defblock name="incr_all_members" of="">
      <foreach key="{@of._members}">
         <setv name="of[@key]" value="{1+@#of[@key]}"/>
      <return value="{@of}"/>
    <let r="{a:'1',b:'2',c:'3'}">
      <setv name="r"><call block="incr_all_members" of="{@r}"/></setv>
      <signal msg="{enjson(@r?return.1.value;)}"/>
  • Macro Language Workshop can now save the original text source of a query in addition to the default XML format. The original text source includes any extra whitespace such as line breaks or indentations added in the Macro Language code.

    To avoid compatibility issues with earlier versions, the original text source is only saved when the following conditions are met:

    1. The Save original text source with query option is selected in the save options.
    2. The original text source differs from the formatted XML.

    For queries saved with the original text source, using Save continues to retain any extra whitespace in addition to the default XML format. However, when using Save As, you must explicitly select the Save original text source with query option to retain the whitespace.

    To restore the default XML formatting, select Code > Check and clean up XML.

  • The behavior of Macro Language Workshop has changed with respect to chained queries saved in versions prior to Version 10. (Chained queries are queries that have another query as their base table.)

    The Load menu option loads just the operations of the query, with a prepended <base> operation pointing to the original base query. The Load resolving all ops menu option (previously named Load in full) recursively loads all of the operations from the query and all its dependencies. This option will also discard saved text source, if any (see above), regenerating formatted XML from the operations.

    Note that this type of chained query is generally obsolete in Version 10, where base tables/queries are expected to be specified with <base> ops.

  • In the Macro Language Workshop, the following menu items have been moved from the File menu to the File > Export submenu: Export to new TRS, Export to save data as table, and Export to save data for FTP. The menu item Export to new MLW has been added to this submenu as well. The menu item File > Export as window in workspace has been moved and renamed to Run > Render as window in workspace.

  • In the Macro Language Workshop, Code > Remove TRS decorations has been moved to a new submenu as Code > TRS postprocessing > Remove all decorations. There is now also an Enable all operations in timeline menu item in the same submenu that enables all rolled-back operations in a query exported from the middle of a TRS timeline.

  • In the Macro Language Workshop, the Code > Download query text menu item downloads the contents of the MLW editor as a text file to the client. Conversely, the Code > Upload query text menu item uploads a text file from the client into the MLW editor.

  • In the Macro Language Workshop, a reference panel can now be accessed by opening the splitter panel at the bottom left of the MLW window. The reference panel provides information and click-to-insert access to objects (e.g., folders, tables, and columns), 1010data functions, and Macro Language tags.

  • The extended form of <widget class_="text"> (introduced in 11.09) now respects newlines in plain text contents.

  • An issue where a window created using <layout type_="window"> could not be moved has been fixed.

  • <widget class_="slider"> now supports the attribute slidercolor_, which accepts a valid CSS color.

  • An issue where the browser widget was not initially open when created using <widget class_="browser" view_="tree" beginwithopen_="1"> has been fixed.

Version 11.09 (03/02/2017)

  • In the Trillion Row Spreadsheet, the Tabulation panel now allows sorting on column breaks.

  • When you open a saved or autosaved workspace, the Dashboard is now sent to the back so that other windows in the session aren't covered up. This won't affect workspaces (auto)saved before the change.

  • When you reopen either a recent workspace from the Recent Workspaces panel of the Dashboard or a standalone QuickApp from the Favorites tab of the Dashboard, the recent workspace now replaces the current one rather than opening in a new browser tab. This will only happen if you have not yet done anything else "substantial" in the current workspace (e.g., opening a tool such as TRS, MLW, etc. as opposed to changing setting in tools such as User Profile or Workspace Settings).

  • When you choose an object in the Favorites tab of the Dashboard, your preferences as to how that type of object is opened (e.g., whether QuickApps should be opened standalone, in a window within the workspace, or in MLW) are now respected, just as they are when clicking on an object in Object Manager. (These preferences are set in the Associations tab of Session > Workspace Settings).

  • A bug that caused the sequence &not (e.g., in a boolean value expression like a&not_a) to show up as the symbol ¬ in TRS and MLW has been fixed.

  • The attribute initzindex_ has been added to <widget windowed_="1">. The value of this attribute determines where the window is stacked when it is first rendered.

  • <setv name="[VAR_NAME]"> (without a value attribute) may now contain contents, behaving like:


    with the difference that [VAR_NAME] might be an expression in <setv>.

  • The <text> form has been added, which expands into a text string. It expands its contents under the ordinary block code rules, but with the option of further marking the { } scalar context delimiters so that text contents of the form that contains these delimiters as literal text need not itself be specially marked up.

    For example:

    <let foo="16">
       <text s_="~~">}}} This is example #~~{@foo+1}~~ {{{</text>

    expands into the string:

    }}} This is example #17 {{{

    In this case, ~~ is a "shift" marker which must precede and follow { and }, respectively, for those to be considered scalar context delimiters. Separate left ("shift in") and right ("shift out") markers may also be specified. For example, si_="[[" so_="]]" would require expressions to be delimited with [[{ and }]]. Alternatively, a string that must precede both { and } may be specified. For example, e_="." would require .{ and .} as delimiters. If none of these attributes is specified, the default is always to treat { and } as scalar context delimiters.

    If any of the contents of these forms expands into XML, the XML will be converted into text. For example, <setv name="foo"><text><foo/></text></setv> sets @foo to the string "<foo/>" (not the XML value).

  • The <html> form has been added, which expands into an inert <content type_="html"> form containing an HTML string. <html> is like <text> in that it expands its contents and respects the attributes s_, e_, or si_/so_ like <text>. In addition, attributes in the <html> tag define variables within <html> that are properly escaped for HTML (i.e., occurrences of <, >, ", and & within the string values of the attributes are replaced with the appropriate HTML entities.) Variables not present in the tag are expanded in the usual way.

    For example,

      <let x="<BR>">
       <html y="<BR>" s_="~">
          <![CDATA[ <B>{Here is a <TT>~{@y}~</TT>: ~{@x}~}</B> ]]>

    expands into:

     <content type_="html">
       <![CDATA[ <B>{Here is a <TT>&lt;BR&gt;</TT>: <BR>}</B> ]]>

    the contents of which, if rendered to HTML, look like:

    {Here is a <BR>: 
  • The <code language_="[LANGUAGE]"> form has been added, which expands into an inert <content type_="[LANGUAGE]"> form containing source code in the specified language. It is similar to <text> and <html> but is specifically reserved for containing source code text. Unlike these forms, a default marking of the scalar context is chosen not to interfere with the content language. Also, just as <html> escapes values passed to it as attributes, <code> performs language-dependent translation of attribute values into valid literals in the content language. The types that are translated depends on the language.

    Currently, this form supports language_="js" (JavaScript) and language_="css". For JS and CSS, the default marking of scalar context is s_="~" (i.e., ~{ and }~ delimit scalar expressions). This can be overridden explicitly by specifying the attributes s_/e_/si_/so_. Attribute translation, applicable to language_="js" only, is into JSON (i.e., <code language_"js" foo="[VALUE]"> translates [VALUE] (which may be a string, number, list, or package) into a JSON string before expanding its contents.

    Note also that the <![CDATA[ ... ]]> XML syntax is particularly useful within <code> (as well as in <html> and <text>) to preserve whitespace formatting and prevent text from being interpreted as XML.

  • <widget class_="text"> now has an extended form. Instead of text_ and type_ attributes, it may contain text, which may be wrapped in one or more <text> or <html> tags (see above). Text wrapped in <text> is HTML-escaped before being displayed; text wrapped in <html> is displayed directly.

    The widget may also contain <code language="js"> forms, which are sent to the browser wrapped in HTML <script> tags, and <code language="css"> forms, which are sent to the browser wrapped in HTML <style> tags.

    The text widget may also contain one or more <layer> clauses, each containing a 1010data query. Each <layer> may bear one or more value*_ (and associated row*_/col*_) attributes, and/or a tablevalue_ attribute. Variables set thus by layer queries have scope only in subsequent items (other <layer> tags, text, and <text>/<html>/<code> forms) within the widget itself; in other words, they do not change the global <dynamic> environment and need not be specified in the <dynamic> clause.

  • Numerous aesthetic changes have been made to the Insights Platform web interface.

Version 11.08 (02/23/2017)

  • A <link> to a worksheet whose final op is <base table="[TABLE]"> is now unconditionally optimized into a worksheetless link.

  • Fixed a bug where chart widgets (i.e., <widget class_="chart">) would not format certain columns properly if a column was supplied for the hints_ attribute.

  • Added the attribute alttextstyle_ to both <widget class_="text"> and <widget class_="button" guise_="text">, which allows the widget to change the style of the text when the user points to the widget. The alttextstyle_ attribute accepts CSS.

    For example:

      <widget class_="text" text_="This text will be bold when you point at it." alttextstyle_="font-weight:bold"/>

Version 11.07 (02/16/2017)

  • The syntax <!-- some text --> may be used to include standard XML comments in queries. Comments are ignored (i.e., stripped by the block code processor), which means that standard comment syntax can be used to comment out sections of code. Text formatting (including newlines) inside comments will be preserved.

    Note that the limitations imposed by the XML standard apply. For example:

    • Comments may only appear where another XML tag would be structurally legal.
    • Parts of XML (e.g., attributes within a tag) cannot be commented out.
    • Comments cannot be nested. The first --> encountered terminates the comment.

    (Syntax highlighting in Macro Language Workshop will generally catch attempts to violate these rules.)

    Note: Queries saved with comments using the new syntax are not be compatible with earlier versions of the system.

  • It is now possible to include non-escaped text in CDATA sections, using the standard XML syntax <![CDATA[ text ]]>, wherever an XML tag may contain text contents (e.g., <table> or the extended form of <set>). Such text may include characters that would otherwise be construed as XML markup (e.g., < and &). Formatting such as newlines, tabs, and leading/trailing spaces is preserved. The only restriction on the text is that it must not contain the CDATA-section-terminating sequence ]]>.

    For example:

    <!--This will stay nicely formatted -->
      foo,     0,     17
      bar,    18,     64
      baz,    65,     101

    Note: Queries saved with text in CDATA sections are not compatible with earlier versions of the system.

  • The syntax <tcol source="*" fun="cnt"/> is now accepted and means exactly the same as <tcol source="[VALID_COLUMN]" fun="cnt"/> or <tcol fun="cnt"/>. This syntax can be especially convenient when building tabulations in block code from parallel lists of <tcol> sources/functions.

  • For <layout type_="window" modal_="1">, there is now an implicit default center_="1" attribute, which can be overridden with center_="0". The default for non-modal window layouts is still center_="0".

  • Added the attribute titlebar_ to <layout type_="window">. This attribute determines whether or not to display the window with a title bar, which may be desirable when creating modal dialogs with modal_="1". Accepts a 1 or 0. The default is 1.

  • The Object Manager no longer resets to its initial view after deleting an item. The state of open folders is maintained after the deletion.

Version 11.06 (02/09/2017)

  • The new syntax for <sel> that selects a disjunction of multiple boolean expressions, which was introduced in 11.05, has changed. Instead of <alt> use <or>.

    For example:

      <or value="[EXPR_1]"/>
      <or value="[EXPR_2]"/>

  • <sel> may now also contain one or more <and value="[EXPR_n]"> tags, in which case the selection is a conjunction of all the [EXPR_n].

    Note that all tags within <sel> must either be <and> or <or>; they may not be mixed. However, both the <and> and <or> tags may now, in turn, contain either one or more <and>, or one or more <or>, tags. In this way, complex selections may be built up from multiple smaller expressions.

    Note that the operation <sel/> alone (with neither a value attribute nor contents) is a no-op (i.e., the selection is not changed). Similarly, an <and/> or <or/> tag with neither a value attribute nor contents has no effect.

    As before, the expressive power of this syntax is identical to that of the regular expression syntax (i.e., & and | operators), but the syntax may be more convenient and/or readable. Furthermore, it may provide a memory or efficiency improvement compared to evaluating one long expression or, in the case of <and>, executing multiple successive <sel> statements, each of which caches its results.

  • Added the attribute textmode_="plain|html" to <widget class_="querytree">. When textmode_="html", entries in the query tree are construed as HTML. The default is plain.

  • Added the attribute listvalue_="@var" to <widget class_="querytree">. @var is set to a list of lists of pairs (c;list of values) representing a disjunction of conjunctions of disjunctive selections.

  • Added the conjsel(L) function, where L is a list-value that consists of n pairs. Each pair is made up of a column and a list of values. The result is a selection expression ([EXPR_1])&([EXPR_2])&...&([EXPR_n]), where each [EXPR_x] is of the form [COLUMN]=[LIST_OF_VALUES].

    Together with the listvalue_ attribute of the querytree widget and the expanded selection form introduced in 11.05, this allows efficient application of a querytree-generated selection.

    For example:

    <widget class_="querytree" listvalue_="@sel">
    <widget class_="grid">
        <foreach x="{@sel}">
          <or value="{conjsel(@x)}"/>

  • Within a <widget class_="chart">, it is now possible to include one or more <plotbands> tags inside the <valueaxis> element in the associated <graphspec>.

    For example:

    <widget class_="chart">
          <plotbands from="1" to="2" color="red"/>
          <plotbands from="2" to="3" color="green"/>
        <series data="{lst(1 2 3)}"/>

  • Added support in <widget class_="grid"> for using hex notation in color-related attributes when the export target is PDF.

  • Added support in <widget class_="grid"> for the headerbgcolor_ attribute in PDF targets.

  • Added the attribute overflow_="visible|auto|hidden|scroll" to a plain <layout> (i.e., one that does not have a type_ specified). When overflow_="auto", scrollbars are added to the layout if and only if the contents exceeds the bounds of the layout. The default is visible.

  • When the label_ attribute is supplied to a plain <layout> (i.e., one that does not have a type_ specified), and that layout is scrollable, the label is now shown in a static bar across the top that does not move even if the rest of the layout is scrolled. This is in contrast to earlier behavior, in which the label was in the same position at the top, but was rendered as regular contents of the layout, so that it could be scrolled out of view.

    Also, a labelheight_ attribute is available to change the amount of space reserved for the label. The default is 25.

Version 11.05 (02/02/2017)

  • Fixed "TenTen is not defined" error that occurred when using certain Chrome extensions.

  • The performance of <widget class_="querytree"> has been vastly improved when selecting or expanding nodes with a large number of subnodes.

    • Added boolean trunc_ attribute to <widget class_="querytree">. When trunc_="0", the behavior is as before. When trunc_="1", subnodes of fully-selected nodes are not included in the widget's value (i.e., stored in the variable(s) passed to value_ and/or pathvalue_). The default is 0.

      For example, in a retail product drilldown, when trunc_="0", if a whole division is checked and the division's node is expanded, the departments underneath that division are also checked. However, when trunc_="1", the selections on individual departments are not included in the widget's value. (If, on the other hand, one or more of the departments are deselected, then all of the remaining ones are included because the entire product division is no longer selected.)

    • If a <layer> query within a <widget class_="querytree"> yields three columns, the third column is construed as the number of children for each item (row). Including this information makes it unnecessary to issue a query to the next layer to determine whether a node has children or not, greatly improving performance when expanding nodes with a large number of children higher up in the hierarchy.

    • Added boolean uniform_ attribute to <widget class_="querytree">. When uniform_="0", the behavior is unchanged. When uniform_="1", it is assumed that all leaf nodes are at the same, final level in the hierarchy (i.e., all branches in the tree are of uniform depth and there are no "empty" higher-level categories.) The default is 0.

      This obviates checking whether a node has children or not (either by issuing a query or by using the third column in the <layer> query, if present), since that is determined solely by whether or not the node is generated by the last <layer> query.

  • A tooltip is now displayed when the user points to any column header in a grid that appears in the TRS results pane. The tooltip displays the column name, title, and type.

  • The col/col2 attributes in a <link> operation may be empty or omitted. In this case, every row in the local table is matched to the first row in the foreign table or worksheet (or if the latter is empty, then no rows match).

    This obviates setting up "dummy" constant columns to link upon (via <willbe> operations and worksheets). This feature applies to regular links (i.e., type="exact|select|include|exclude"). It does not apply to type="asof" links, which must have a time column.

    An analogous behavior is available with expand="1" links: in the absence of link columns, every row in the foreign table or worksheet is deemed to match. Caution is therefore advised as an expanded link with no columns is by definition a full Cartesian cross product between the two tables; its size is the product of the size of the local and foreign tables.

  • A new syntax for <sel> is available that selects a disjunction of multiple boolean expressions:

      <alt value="[EXPR_1]"/>
      <alt value="[EXPR_2]"/>

    This construction selects the rows for which any of [EXPR_1], [EXPR_2], etc. are true. (Including a value="[EXPR_0]" as an attribute of the <sel> tag itself is permitted; it will be treated as an additional <alt> clause, and normalized into one when the operations are converted to XML.)

    This is, of course, logically equivalent to <sel value="([EXPR_1])|([EXPR_2])|..."/>, but it may be more convenient for disjunctive selections, especially those constructed by block code.

Version 11.04 (01/26/2017)

  • Bug fixes and system enhancements.

Version 11.03 (01/19/2017)

  • Issue with QQ-to-QA conversion of queries containing <library> and <import> that led to 'may not appear within' errors has been fixed.

  • A warning message is now displayed when clicking on a favorite that no longer exists.

  • The button bar in the Results Pane of the Macro Language Workshop now remains after running an analysis from the context menu.

  • The Quick Uploader now allows you to select a table to replace. Note that tables within the My Data (uploads) folder cannot yet be replaced.

  • <render favicon_="[URL]"/> now allows you to set the favicon for a page (e.g., <render favicon_=""/>)

  • Specifying a path to an <import> within a <widget>, when the path being imported has not yet been referred to elsewhere in the session, no longer causes a "table no longer accessible" error.

  • The Simple Select panel now allows users to reference Visible Variables (VVs) without manually entering an expression containing them.

    Every term's value field has a button with an "eye" icon that toggles the field between its type+operator dependent picker and a drop-down menu containing a list of all presently defined VVs.

    Currently expressions can only be automatically converted from "manual entry mode" to "simple mode" if their VV references are enclosed in single quotes like '{@foo}'.

Version 11.02 (01/12/2017)

  • XML tags in error message popups are now properly escaped.

  • Context menus in grid widgets have been fixed so that submenus that appear near the bottom of the screen are easier to reach with the mouse.

  • The chart widget now gives a helpful error when _n appears in the <graphspec>.

  • When making a simple comparison in the Trillion-Row Spreadsheet Select rows panel, the first drop-down (associated with the column) now allows a user to search for a column by typing in the search field.

  • Within the Trillion-Row Spreadsheet, it is now possible to hide columns in a grid from the column context menu.

  • View this row one row at a time is now available from the column context menu in a grid within the Trillion-Row Spreadsheet.

  • A button bar providing different views of the results (e.g., multi-row, single-row, spreadsheet, data dictionary), similar to the one in the Results Pane of the Trillion-Row Spreadsheet, is now available in the Results Pane of the Macro Language Workshop. Note that this button bar is only available when rendering a query that is not a QuickApp.

  • In both the Trillion-Row Spreadsheet and the Macro Language Workshop, the data dictionary view now shows tables referenced by query and base table segmentation as well as column info.

  • Queries rendered standalone from the Macro Language Workshop are no longer rerun when the MLW window is resized.

  • In the Trillion-Row Spreadsheet, the filtering of the autocomplete menu associated with the expression field in both the Select rows panel and the New computed column panel now ignores the text of function arguments. Additionally, comparisons are now case-insensitive. Text searches are still performed on the descriptions of functions and labels of visual variables, however.

  • QuickApps can now be opened either in a new browser tab (standalone) or in a window within the workspace by right-clicking the QuickApp in the Object Manager and selecting the appropriate item from the menu.

  • In the Sessions menu, GUI Settings has been renamed to Workspace Settings and now includes an Associations tab to set default actions for different object types. You can select whether tables are opened in TRS or MLW (as <base>); whether Quick Queries are opened as converted QuickApps in TRS or in MLW; and whether QuickApps are opened standalone, in a workspace window, or in MLW.

Version 11.01 (01/05/2017)

  • Fixed missing context menu when subsequent Object Manager windows are opened after the initial instance.

  • Fixed issue when submitting queries with <loop> ops or that use certain special values.

  • Fixed issue that caused previous row/next row arrows to signal and error in one-row view.

  • When saving the contents of a TRS as a Quick Query, the user can now select an existing query to overwrite.

  • A more informative window label is now given when exporting a query from Macro Language Workshop to TRS and vice versa. In addition, renaming of the window is allowed.

  • Added Poisson regression to g_glm(G;S;Y;XX;Z), which is specified by setting the Z parameter to 'fit_type' 'poisson'.

Version 11.00 (12/29/2016)

  • Enabled TRS-style grid interactions (sort, reorder columns, right-click context menu with select, analyze, etc.) when viewing the results of a query in Macro Language Workshop.


For the highlights, technical advisories, and release details for the production release of the 1010data Insights Platform Version 10, see Release Notes.

Version 10.44 (12/15/2016)

  • Added exclusion_ attribute for widgets and layouts. When this attribute is set to 1, the bounding box of the widget or layout defines an exclusion zone into which windows cannot be moved. Windows can still be dragged into the zone but will pop back out when dropped there.

    Windowed widgets with windowexcluded_="0" will override this, allowing those windows to be moved into exclusion zones. The default value for the windowexcluded_ attribute is 1.

Version 10.43 (12/08/2016)

  • Bug fixes and system enhancements.

Version 10.42 (12/01/2016)

  • Added the attribute renamable_ to <widget windowed_="1">, which allows the user to rename the window in which the widget is contained.

    When renamable_="1", a Settings icon appears in the title bar of the window. The title of the window can be changed by clicking on the Settings icon and entering a new title for the window. When the window is renamed, the value of the windowlabel_ attribute for the widget is reset in the <dynamic>. The new title is displayed in the title bar, and it appears in the dock when the window is minimized.

  • Added <widget class_="winman">, which instantiates some window management, in particular, a modal pop-up "switcher" invoked by pressing two keys (a modifier and second key). You can cycle through all windows in a session by holding down the modifier key and pressing the second key repeatedly, or you can directly select a particular window with the mouse pointer.

    The modifier_ attribute is used to specify the modifier and may be set to ctrl, alt, meta or shift. (Note that the meaning and applicability of these may differ across platforms.) If this attribute is not specified, the default is ctrl.

    The keycode_ attribute specifies the second key that is pressed to invoke the switcher. If this attribute is not specified, the default value is 192, which is the ` (backtick) key.

    The switcher shows the title of each window; minimized windows are shown in parentheses and italics. Selecting a window restores it if minimized, and brings it to the front.

  • Updated the pcre library to fix a issue where session processes could crash when processing regular expressions of a particular length.

Version 10.41 (11/28/2016)

  • Added support for multiple panes in <widget class_="chart">.

    Each pane is defined within the <graphspec> by an individual <pane> (or <panes>) element that specifies such attributes as the name, title, and height.

    A named pane can be referenced using the pane attribute within a <valueaxis> element in the <graphspec>.

    For example:

      <widget class_="chart">
          <series data="{1,2,3}"/>
          <series data="{1,2,3,4}" axis="bottom"/>
          <valueaxis pane="top-pane"/>
          <valueaxis pane="bottom-pane" name="bottom"/>
          <pane name="top-pane" title="Top Chart"/>
          <pane name="bottom-pane" title="Bottom Chart"/>

Version 10.40 (11/17/2016)

  • Added the attribute guise_ to <widget class_="button">, which allows the widget to visually appear as a button, a span of text, or an image. Regardless of the guise, the widget behaves as a button.

    A guised button supports all the usual attributes and functionality associated with <widget class_="button">. However, certain attributes specific to a button's appearance (e.g., color_) may not have any effect on a guised button.

    When guise_="text", all the attributes and functionality of <widget class_="text"> are supported, with the caveat that the optional class_="text"-specific attributes color_, style_, and type_ must be replaced by textcolor_, textstyle_, and texttype_, respectively, to avoid conflict with the class_="button" attributes of the same name.

    Similarly, when guise_="image", all the attributes and functionality of <widget class_="image"> are supported, including for example alturl_ to specify a different image source when hovering over the image. (This may be useful as a cue that the button is clickable.)

  • Added the attributes altcolor_ and alttext_ to <widget class_="text">, which allows the widget to change the color of the text or the displayed text when the user points to the widget.

Version 10.39 (11/10/2016)

  • Bug fixes and system enhancements.

Version 10.38 (11/03/2016)

  • Bug fixes and system enhancements.

Version 10.37 (10/27/2016)

  • Added the attribute extend_umbrella_ to <widget class_="nest">. When extend_umbrella_="1", the <dynamic> query run within the nest widget adopts the same umbrella hash as the surrounding <dynamic>.

    Exercise caution when using this feature as <widget class_="nest"> by its nature makes it easy to run arbitrary Macro Language code under the control of the user, and if the code is run against a filtered table that checks the query hash, that code will be running with the same access as the surrounding <dynamic>.

  • Added <widget class_="visvar">, which creates a visual variable widget. The visual variable widget allows the user to create a variable of a certain type (e.g., string, number, date) that can be used within 1010data queries.

    <widget class_="visvar"> acts as a proxy widget for standard widget classes so it is more extensible. The user can choose the variable's name (not just label), either choosing from a list of preexisting variables in the workspace or else entering a new one. The widget can take a query, so it can represent widgets such as dropdown. The visvar widget resizes its window to accommodate the content in both display and configuration mode.

    <widget class_="visvar"> replaces <widget class_="vveditor">. <widget class_="vveditor"> is deprecated.

Version 10.36 (10/20/2016)

  • Relaxed unnecessarily strict loop avoidance for nested widgets.

    If an interaction with the inner dynamic modifies a variable with binding to the outer dynamic, triggering an interaction with the outer dynamic, and then a <do> clause in the outer dynamic changes the value of the outer variable to something else, it is acceptable for this to trigger a re-interaction with the inner dynamic, updating the bound variable in the other direction. This won't lead to endless loops because the reverse is not true: If an interaction with the outer dynamic propagates via a bound variable into the inner dynamic and a <do> loop in the inner dynamic changes the value again, the latter change will not propagate back out to the outer dynamic.

    This brings <widget class_="nest"> exactly in line with the way loop avoidance works for ordinary widgets. For example, if a slider is constrained to 0-100, and the variable it is bound to is set by another widget to 150, the slider will be updated to 100, but the variable will not automatically be set to 100 unless the user interacts with the slider.

Version 10.35 (10/13/2016)

  • Added the attribute showpermissions_ to <widget class_="browser">. When set to 1, the browser widget displays file permissions icons. The default is 0.

Version 10.34 (09/29/2016)

  • Added new <layout type_="sheaf">. This layout is essentially identical to <layout type_="tabpanel"> (i.e., same syntax, same behavior) but without the tabs; only the content panel is shown. This layout type is useful primarily with the openvalue_ attribute which allows a bound variable to control which panel is visible, since there is no user interface element to change the panel.

Version 10.33 (09/29/2016)

  • Bug fixes and system enhancements.

Version 10.32 (09/22/2016)

  • Specifying #!logout as the leaf name for a menu item in the inline <table> associated with a <widget class_="menu"> will send out a logout API transaction when that menu item is selected. See menu in the 1010data Reference Manual for more information.

  • Added general attribute zindex_ for windowed widgets, which works the same way CSS z-index works. (This attribute does not work for window layouts.)

Version 10.31 (09/15/2016)

  • Added the attribute browsertitle_ to the <render> tag. This attribute is used to specify the title of a browser tab.

Version 10.30 (09/08/2016)

  • Bug fixes and system enhancements.

Version 10.29 (09/01/2016)

  • Added the attribute initlist_ to <widget class_="field">. When type_="auto" or type_="combo", this attribute allows the widget to be initialized by a list (of values; of 1-, 2-, or 3-element lists; or of packages with 'value', 'label' and/or 'hint' keys) instead of by its associated query.

  • Added the attribute changewhenselect_ to <widget class_="field">, which accepts a 1 or 0 and determines whether or not to change the value of the associated dynamic variable when an item is selected from a field widget with type_="auto" or type_="combo".

  • Fixed rank error when giving a scalar argument to functions time(), hour(), minute(), and second().

Version 10.28 (08/25/2016)

  • <widget windowed_="1" relpos_="x,y"> now properly positions the window in standalone QuickApps.

  • Added trackvars_ attribute for <do> clauses. When used within <dynamic>, <do trackvars_="1"> adds environment variables changed in the course of that <do> clause to the list of variables checked in onchange_ conditions in subsequent <do> clauses within the same interaction. (Ordinarily, the onchange_ condition only tracks variables changed directly by user interaction.)

    For example:

    <dynamic y="1" z="">
      <do onsubmit_="inc" trackvars_="1">
        <set y="{@y+1}"/>
      <do onchange_="y">
        <set z="{10*@y}"/>
      <widget class_="button" submit_="inc"/>
      <widget class_="field" value_="@y"/>
      <widget class_="field" value_="@z"/>

    Without the trackvars_="1", z is set only when y is explicitly changed by entering a value into the first field, not when y is incremented using the button.

Version 10.27 (08/18/2016)

  • Bug fixes and system enhancements.

Version 10.26 (08/11/2016)

  • Improvements to <widget class_="sorter">:

    • Support initlist_ attribute, allowing the sorter to be initialized by a list (of values; of 1-, 2-, or 3-element lists; or of packages with 'value', 'label' and/or 'hint' keys) instead of by its associated query.

    • Support clickvalue_="@var" attribute. If present, whenever an item in the sorter is clicked, @var will be set to the value associated with the item.

    • Support indexvalue_="@var1" and toindexvalue_="@var2" attributes. If present, they behave like listvalue_ and tolistvalue_ but receive a list of the indices into the initializing data (i.e., row numbers of the query, or positions in the list supplied to initlist_) instead of a list of the values themselves. Only one of the three attributes (indexvalue_/listvalue_/value_) should be used at once (and the same is true of their to* counterparts).

  • Added breaks_ attribute to <widget class_="chart">, which accepts the name of a column on which to group the data. Also added the superimpose_ attribute to specify if the graph will be superimposed or not. In line, bar, column, and rangebar charts the category axis displays both the group and the category of the data point. In pie charts, the chart creates a donut chart for each group if superimpose_="1". In boxplot charts, it graphs each group as a separate data series.

  • The groupby_ attribute has been renamed to breaks_ for <widget class_="chart"> for scatter, scatterline, and bubble charts. Using the groupby_ attribute will result in an error.

  • Added hints_ attribute to <widget class_="chart">, which specifies whether or not to show tooltips. If hints_="0", tooltips are not shown, which is the default behavior if the attribute is omitted. If hints_="1", tooltips are displayed, which show the value associated with the item pointed to in the chart. The hints_ attribute can also be set to the name of a column, which contains the information to be displayed when the user points to an item in the chart.

Version 10.25 (08/09/2016)

  • <widget class_="field"> now supports the emptytext_ attribute, which specifies placeholder text that will be displayed when the field is empty.

Version 10.24 (07/28/2016)

  • Added the following object functions:

    • obj_name(path)
    • obj_inherits(path)
    • obj_users(path)
    • obj_uploaders(path)
    • obj_children(path)
    • obj_parents(path)

    For more information, see Object Functions in the 1010data Reference Manual.

Version 10.23 (07/21/2016)

  • In <tcol>, all combinations of the [P|F|R][R|C|G] prefixes (expressing the result as a percentage, fraction, or rank relative to the row, column, or grand total) may now be used with most <tcol> functions (the ones that yield numeric results). Formerly they were available only in conjunction with sum and cnt.

    See Functions in <tcol> in the 1010data Reference Manual for more information about these prefixes.

  • Added a set of functions to check the existence, type, and accessibility of objects such as folders, tables, and queries on the 1010data Insights Platform. Each function takes a single string argument (path).

    The following return a boolean value:

    • obj_exists(path)
    • obj_isfolder(path)
    • obj_istable(path)
    • obj_isphysical(path)
    • obj_istemp(path)
    • obj_isquery(path)
    • obj_own(path)
    • obj_readable(path)
    • obj_runnable(path)
    • obj_writable(path)

    The following return a string:

    • obj_type(path)
    • obj_parent(path)
    • obj_owner(path)
    • obj_title(path)
    • obj_sdesc(path)
    • obj_ldesc(path)
    • obj_mode(path)

    For more information, see Object Functions in the 1010data Reference Manual.

  • The goodname(string) function returns a boolean value indicating whether string would be a valid/recommended name for a column, folder, table, query, etc. (i.e. contains only letters, digits, and/or underscores, and begins with a letter).

    The goodpath(string) function returns a boolean value indicating whether string would be a valid/recommended path (i.e. contains one or more good names separated by periods).

    Note that string is not checked as to whether it actually refers to any existing object.

Version 10.22 (07/14/2016)

  • The attributes drillable_, pkgdrillvalue_, drillvalue_, and drillselector_ can now be used with <widget class_="chart">.

    See the documentation on the chart widget in the 1010data Reference Manual for more information.

  • Three new chart types are now available for <widget class_="chart">.

    Valid values for the type_ attribute corresponding to these new chart types are:

Version 10.21 (07/07/2016)

  • Added non-strict interpretation of booleans to the new expression parser. Boolean operators &, |, and ~ accept integer arguments as well as booleans. (The strict interpretation only existed for beta-10.20.)

  • The new expression parser allows for passing expressions to g_functions ("lazy evaluation"). An unevaluated expression can be passed to certain argument positions in a g_function. For example, in the function call g_sum(int(year/2);;cry), the g_function will evaluate the expression (int(year/2)) at execution time. (Note: This enhancement has been implemented for selected g_functions only. Full implementation is scheduled for a future release.)

Version 10.20 (06/30/2016)

  • The expression parser has been replaced, and the operator precedence now conforms to the more usual ordering:

    & |

    = < > <> <= >=

    + -

    * /






  • The new expression parser implements a strict interpretation of booleans such that the boolean operators &, |, and ~ require boolean arguments. These operators do not accept integer arguments.

  • In g_functions that take an order argument (O), a backtick (`) prefixed to the column name results in down-sorting on that column. For example: g_cumsum(;;`year;cry).

  • Added a new widget class <widget class_="buildgrid"> that provides an editable, copy/pasteable, expandable grid for entering data into a temp table. The dynamic variable provided to the value_ attribute contains the name of the saved temp table. The dynamic variable associated with the savevalue_ attribute can be set to a non-zero integer to cause the buildgrid to trigger a save, after which the dynamic variable is reset to 0. Right-click on the buildgrid for a context menu that contains items to save the table as well as to show or hide column information. (Note: The upload process should not be used for tables containing over 10000 cells due to the time it takes to process the contents of the grid.)

  • Added a Visual Variable Editor widget that can be created using <widget class_="vveditor">.

  • Fixed types on result of <directory> op when the folder is empty.

Version 10.19 (06/23/2016)

  • In cross tabulations containing multiple <tcol> elements (available as of version 10.17), the attribute cmorder="first" places the <tcol> labels (assuming the attribute cmlabel is specified) in the top row before column breaks and, accordingly, groups columns first by which <tcol> they came from, then by column break(s). (Note: The current GUI grid display does not show the headers correctly in this case because of the placement of the total columns; this is a UI issue which should be fixed in an upcoming release.) The default, if not specified, is cmorder="last", which makes the <tcol> the last grouping, and this is displayed correctly. (Note: The current GUI grid display only displays the correct grand total for the first <tcol>.)

  • In rollup tabulations, it is now possible to specify <rollup sets="set1;set2;...;setn"/> where each set is a different comma-separated list of columns (which must all be among the break columns, or the subset thereof specified by the cols attribute, if present).

  • It is no longer necessary for a source column to be specified in <tcol fun="cnt"/>.

  • It is no longer necessary for a (regular) tabulation to contain at least one <tcol>, though it must have at least one break column if it has no <tcol>s (that is, <tabu/> is illegal but <tabu breaks="..."/> is valid). A cross-tabulation must still contain at least one <tcol> (i.e., <tabu ... cbreaks="..."/> is illegal).

  • It is no longer necessary (though it is typically desirable) for all <tcol>s in a regular tabulation to be unique.

  • For a <widget> with the attribute windowed_="1", the width_ and height_ attributes, if present, are now used to determine the initial size of the window as well as the enclosed widget. If, however, the attributes windowwidth_ and/or windowheight_ are specified, these override and set the window size independently.

Version 10.18 (06/16/2016)

  • Added the attribute once to the <import> operation. When <import path="path" once="1"/>, the libraries from a path that has already been imported to the current context are not reloaded. (Without once="1", the import is always processed by default.) This is useful for example in conjunction with dynamic importing of libraries within <do>.

  • Added Trillion-Row Spreadsheet Getting Started Guide to the Documentation Center under Core Documentation. This guide provides instructions for accessing and using the trs widget, which is the new user interface for 1010data's Trillion-Row Spreadsheet. This step-by-step tutorial introduces the most common operations performed in ad hoc analysis using this new interface.

Version 10.17 (06/09/2016)

  • Added sample attribute to the <sel> operation. When sample="1", the selection is generalized based on the expression given by the value attribute. The expression should evaluate at each row to a number x between 0 and 1 inclusive, or may also be NA (which is equivalent to 0). The row will appear in the post-selection result with a probability of x. Hence, for example, <sel value="0.1" sample="1"/> should select (approximately) 10% of the rows uniformly across the entire table; <sel value="i_/n_" sample="1"/> selects half of an ordered set of rows with a recency bias, and so on.

    The optional attribute seed="number" changes the random seed; by default, the seed is based on the query hash so that the identical query will deterministically create the same sample. But seed="0" is handled specially; a seed is non-deterministically generated when the query is run. Because of caching, the sample won't change for the current session unless the cache is cleared, but running the same query with seed="0" in different sessions will, in general, take a different sample.

  • Cross-tabulations may now contain more than one <tcol>. The columns specified by the multiple <tcol> elements are grouped together under each column break, and the row total columns appear at the beginning in <tcol> order.

    For instance, if there are m <tcol> elements and n values in the column breaks, there will be a total of m*(1+n) columns, which will be named: t0, t1, ..., tm, m0_0, m1_0, ..., mm_0, m0_1, m1_1, ..., mm_1, ..., m0_n, m1_n, ..., mm_n. (This is an extension of the regular naming scheme for cross-tabulations.)

    Labels are not provided to differentiate the multiple <tcol> columns unless the attribute cmlabel="text" is supplied, in which case the text (it may be empty) labels the final row of the cross-tab header, on which the <tcol> labels (whether default or supplied via label attribute) are shown.

    Important: Cross-tabulations with more than one <tcol> are not supported by <widget class_="grid"> at this time, but will be supported in a future release.

  • <defwidget> (which has long been deprecated) has been removed entirely and will no longer be available.

Version 10.16 (06/02/2016)

  • Added <widget class_="chart">, which provides client-side charting.

    Valid values for the type_ attribute are:

    • scatter
    • scatterline
    • bar
    • column
    • line
    • area
    • pie
    • bubble

    Other chart-related attributes include title_, xlabel_, ylabel_, clabel_, vlabel_, legend_, and rowlimit_.

    The above chart types attempt to produce reasonable, attractive charts for the most common use cases. <graphspec> may be used in conjunction with the chart types and attributes above to override defaults and specify additional properties. The contents of <graphspec> should be XML that specifies chart properties. The XML syntax is essentially isomorphic to the JavaScript object containing chart properties as described in the Kendo documentation.

    See the documentation on the chart widget in the 1010data Reference Manual for more information.

  • Added new block code function table(pkg;), which produces a table value from a dictionary. The second argument is not currently used; it is reserved for metadata in the future.

  • Added new function geohash(latitude;longitude;precision), which returns a string that represents a geohash symbol for the given latitude and longitude. The returned string has a length of precision characters, which can range from 1 to 12, and defaults to 6 if omitted. A larger precision value returns a more accurate geohash. Geohashes that are similar up to a certain number of initial characters represent locations that are near to each other; the more initial characters in common, the nearer the two locations are to each other.

Version 10.15 (05/26/2016)

  • Added <widget class_="radiobutton" value_="@x" setval_="new_value"/>, which sets a dynamic variable to a particular value when the radio button is clicked. The value is specified by the setval_ attribute rather than being populated from a 1010data query.

  • <defblock>, <defop>, and <block> now define blocks in the context in which the <let>, <letseq>, and <unquote> appear.

  • Certain properties in the <render> tag (or its <web> child tag) may now be expressions that are evaluated in the <dynamic> context. Furthermore, if the values of these expressions change, the render properties are changed on the fly. The properties for which this is currently true are:

    • theme_
    • background_
    • warnbeforeleavemsg_

    Note: warnbeforeleave_ may also be an expression, but setting it to 0 when it was 1 will not disable an already enabled warning.

  • The <render submit_="name"> property (also applicable to <web>) causes a submit message to be issued to the specified name as soon as the QuickApp has been fully rendered. This permits a QuickApp to automatically add dynamically-loaded elements after it renders, without user interaction. It may also be used to allow the QuickApp to show an initial rendering before running an expensive initialization query.

  • Nested <dynamic> (i.e., within <widget class_="nest">) will no longer set a theme (even the default theme) unless theme_ appears explicitly within a <render> tag in the nested <dynamic>. This is to avoid inadvertently changing the parent QuickApp's theme, since theme is a global property of the page. If you do specify a theme_ in the nested QuickApp, it will most likely affect the entire page. To use a different theme from that of the parent QuickApp within a nested widget, use <render into_="iframe"/> in the nested <dynamic>; conversely, when using <render into_="iframe"/>, it is now necessary to specify theme_ explicitly, otherwise the QuickApp rendered into the iframe will not be themed (Note: theme_="" will work and give you the default).

  • <widget class_="nest"> adds the @topqaid_ pseudovariable to the inner QuickApp's environment (its value is the @qaid_ of the outermost QuickApp). The expression {@topqaid_._defined} may be used in a <do> clause after the QuickApp is rendered to determine whether or not the QuickApp is nested in another QuickApp.

  • The function userdata(username;'prof_pic') returns the user's profile picture preference if set (intended to be the URL to a profile picture).

Version 10.14 (05/19/2016)

  • Added popuplink_="url" attribute to <widget class_="image">, which opens the specified URL in a separate window or browser tab when the widget is clicked.

  • Added new block code variable @gmtoffset_, which is the user's preferred timezone with NYC local DST taken into account. @gmtoffset_ provides a correction to GMT in the U.S. that takes into account DST (as observed in NYC). Block code variables @today_, @now_, @logintime_, @logindate_, and @logindatetime_ are now adjusted with @gmtoffset_.

  • Added new block code variable @lastlogin_, which is the user's last login. The value of this variable is a decimal number in the date+time form (adjusted to @gmtoffset_).

  • Calling the userdata(U;K) function with an empty first argument (to get data for your own user ID) now works even immediately after the cache has been cleared.

Version 10.13 (05/13/2016)

  • Added type_="password" to <widget class_="field">, which obfuscates the input that the user enters into the field. This is typically used for fields that take passwords or other content that should be concealed from view.

Version 10.12 (05/06/2016)

  • Added alturl_ attribute to <widget class_="image">, which specifies the URL to an alternate image that is displayed when the user points to the image widget. The optional attribute fadetime_ has also been added, which specifies the number of seconds for the transition to fade from the original to the alternate image. The default is 0, which results in an immediate transition.

  • Added pinned_ and pinnable_ attributes to <layout type_="window"> and to widgets that have the attribute windowed_="1". When pinned_="1", the window will not move with page content when scrolling. The default is 0. When pinnable_="1", the window will contain a pin icon in the title bar that allows the user to pin the window at will. The default is 0.

Version 10.11 (04/28/2016)

  • Fixed a bug that caused regex functions (tre) to no longer work correctly in version 10.10

Version 10.10 (04/21/2016)

  • Fixed bug in tre and pcre libraries that caused errors when a regex matched the empty string.

  • Fixed issue related to offset indices in regex_match and regex_subst with non-ASCII characters.

  • Added colwidthdef_ attribute to <widget class_="grid" type_="scroll">, which specifies the width of all columns when colwidthref_="0". The default is 10 characters.

  • The type_ attribute defaults to "scroll" for <widget class_="grid">. This can be changed via the setting under QuickApp Preferences in the Set Preferences dialog.

Version 10.09 (04/14/2016)

  • Added a new Intro to QuickApps tutorial under the Tutorials tab of Documentation Center, which describes many of the concepts of application development using the QuickApp framework. The tutorial guides the user in building a QuickApp by providing the Macro Language code at each step along the way.

  • Notifications from <widget class_="alert"> are now relative to the parent container.

  • Added color_ and textcolor_ attributes for <widget class_="alert">.

  • Added filter_ attribute for <widget class_="dropdown">.

  • The color_ attribute can be used to change the background color of <widget class_="menu">.

  • Internal bug fixes for various QuickApp widgets including checklist and browser.

Version 10.08 (04/07/2016)

  • Minor internal bug fixes

Version 10.07 (03/31/2016)

  • General updates to system

Version 10.06 (03/24/2016)

  • General updates to the system

Version 10.05 (03/17/2016)

  • Bug fixes and system updates

  • Added attribute legendpos_ to the Gmap widget. Accepts a comma-separated pair of x,y coordinates (e.g., legendpos_="20,30"). The first number stipulates how far from the left of the map, and the second how far from the top of the map, the legend will appear.

Version 10.04 (03/10/2016)

  • System enhancements and bug fixes

Version 10.03 (03/03/2016)

  • Added descicon_ and descdelay_ attributes to the Browser widget

    • descicon_ accepts 1 to activate and controls how a user can view the description of a folder or file

    • descdelay_ defaults to .5 and accepts a float between 0 and positive infinity (0i) that controls how long a description tooltip, in seconds, will take to display

  • Added hinticon_, hintpos_, hintheight_, and hintwidth_ to the following widgets: dropdown, dropdownlist, list,and sorter

    • hinticon_ accepts 1 to display an icon the user can click on to view a hint. Defaults to 0

    • hintpos_ accepts the values: bottom, top, left, right, and defaults to bottom. Attribute specifies the location relative to the node where a hint will display

    • hintwidth_ accepts an integer which specifies the maximum width of the hint display box

    • hintheight_ accepts an integer which specifies the maximum height of the hint display box

  • Added borderopacity_ attribute to the Gmap widget’s bubble and polygon layers. Accepts floating point values between 0 and 1, defaults to .8. Specifies how opaque the borders of nodes on the map are

Version 10.02 (02/25/2016)

  • Updates to backend processes

  • System updates

Version 10.01 (02/18/2016)

  • Added the following attributes to <widget>, which apply to all classes:

    • windowed_, which is a boolean value that controls whether or not the widget is displayed in a separate window

    • minimizable_, which is a boolean value that controls whether or not a Minimize button is displayed in the upper-right hand corner of the window (when windowed_="1")

    • maximizable_, which is a boolean value that controls whether or not a Maximize button is displayed in the upper-right hand corner of the window (when windowed_="1")

    • windowresizable_, which is a boolean value that controls whether or not the window can be resized (when windowed_="1")

Version 10.00 (02/11/2016)

  • Added a managed_ attribute for windowed widgets (i.e. <widget windowed_="1">) that determines whether or not the window manager should handle the widget when it is in its minimized state.

  • Fixed a bug in <widget class_="grid" type_="scroll"> where references to the sortcols key in the package associated with the pkgstatevalue_ attribute resulted in an error if the sorted column is removed from the query.


For the highlights, technical advisories, and release details for the production release of the 1010data Insights Platform Version 9, see Release Notes.

Version 9.44 (02/04/2016)

  • Any value that starts with a # symbol in the first column of the inline <table> associated with a <widget class_="menu" type_="submit"> specifies a QuickApp or URL to open when that item is clicked. If a cell value starts with #, it will export instead of sending a submit transaction.

    See menu in the 1010data Reference Manual for more information.

  • Fixed bugs for direction_ attribute and hierarchical items in menu widget.

Version 9.43 (01/28/2016)

  • Added a file manager widget (<widget class_="filemanager"/>)

    • Accepts most attributes that class_="browser" accepts

    • Does not accept a view_ attribute

    • Only accepts value_ for value attributes. Value is set by double-clicking a node in the file manager

Version 9.42 (01/21/2016)

  • System updates and bug fixes

Version 9.41 (01/14/2016)

  • Added hintdelay_ attribute to the dropdown, sorter, and list widgets. Accepts a floating point number representing the number of seconds to wait before displaying a tooltip

  • Improved functionality of the <issue> element.

    • tag_ attribute specifies an XML element to issue

    • attrs_ attribute accepts a package-value of XML attributes to be issued to the tag specified in tag_

    • If <issue> has contents, the contents are expanded and used as the contents of the issued XML element. Example:

      • <issue tag_="tabu" attrs_="{pkg(breaks cbreaks;'date' hour)}"> <issue tag_="tcol" attrs_="{pkg(source fun;'temp' avg)}"/> </issue>

    • <issue> still accepts the xml_ attribute. If specified, the value assigned to xml_ will be expanded as XML elements. In this case, the attrs_ attribute and any contents within <issue> are ignored (e.g., tag_ and xml_ are mutually exclusive)

    • Additionally, <issue> with either xml_ or tag_ (and optionally attrs_) can be used with the special form: <quote>

      • In such cases, the <issue> element works in the exact same way, except the resulting XML is not expanded.

      • For example: <set><foo><quote tag_="signal" attrs_="{pkg(msg_;'hey')}"/></foo></set> will set the variable @foo to the XML value: <signal msg="hey"/>

      • However, <set><foo><issue tag_="signal" attrs_="{pkg(msg_;'hey')}"/></foo></set> will send the message Hey! but will not set anything.

      • <quote tag_=…> will also place its content into the new element; however, the contents will not be expanded as they are in <issue>. However, <quote> will perform variable substitution, as it always has.

      • <quote> also has a new attribute: env_. This attribute accepts a package value and will use the key-value pairs of the package for variable substitution. This element may be used in conjunction with the tag_ attribute (or without it) to provide maximum control over parameterized XML construction.

  • Fixed str_to_lst function to handle edge case where the string provided only contains delimiters with no values

  • Added function transpose(X)

    • Accepts a rectangular list of lists (must all be the same length), a list of packages (must all have the same keys), a package of lists (all lists must be of the same length), or a table value, and returns the appropriate transposition

  • Added function inlst(X1…Xi)

    • Returns the intersection (unique elements found in all lists provided) of the lists provided

  • Added function unlst(X1…Xi)

    • Returns the union (unique elements found in any list provided) of the lists provided

  • Added function exlst(X1…Xi;Y1…Yi)

    • Returns the set different (all elements found in X1…Xi that are not found in Y1…Yi) of the sets of lists provided

  • Added several attributes to the <transpose> operation

    • namecol accepts a comma-separated list of column names for the transposed table returned by the operation. Names should be provided in order of resultant columns from left to right

    • labelcol accepts a comma-separated list of column labels for the transposed table returned by the operation. Labels should be provided in order of the resultant columns from left to right

    • typecol accepts a comma-separated list of column types for the transposed table returned by the operation. Types should be either a, i, or f and must be provided in the order of the resultant columns from left to right

    • formatcol accepts a comma-separated list of format strings that will be applied to the columns of the transposed table returned by the operation. Format strings must be specified in the order of the resultant columns from left to right

Version 9.40 (01/07/2016)

  • System updates

Version 9.39 (12/31/2015)

  • Added reorder_ attribute for <widget class_="dropdownlist">. reorder_ accepts a boolean value, which defaults to 0. When set, selected items in the dropdownlist’s input box are reorderable, which alters the corresponding dynamic value_ variable.

Version 9.38 (12/17/2015)

  • The Scheduler (sched2) now supports multiple sessions. Scheduler sessions will no longer disrupt user-created sessions

Version 9.37 (12/17/2015)

  • System updates and bug fixes

Version 9.36 (12/10/2015)

  • System updates

Version 9.35 (12/03/2015)

  • System updates and bug fixes

Version 9.34 (11/19/2015)

  • System updates and bug fixes

Version 9.33 (11/12/2015)

  • System updates

Version 9.32 (11/05/2015)

  • Bug fixes

Version 9.31 (10/27/2015)

  • Added a Refresh button to the Run History tab in the Scheduler

  • Reorganized the Run History tab of the scheduler so that fields are in chronological order

Version 9.30 (10/22/2015)

  • Added attributes to <widget class_="browser"> for controlling tooltip text area size. deschgieght_ accepts an integer that specifies the maximum height for a tooltip. descwidth_ accepts an integer that specifies the maximum width of the tooltip. **descpos_ specifies the location of the tooltip relative to the on-screen object and accepts the values: top, bottom, left, right

Version 9.29 (10/15/2015)

  • Added border width specification to tabpanel layouts. Specify an integer value to the border_ attribute for a <layout> with type_="tabpanel". The default is 1.

  • Added cocacola theme to QuickApps. Specify theme_="cocacola" to <render> element.

Version 9.28 (10/08/2015)

  • System updates

Version 9.27 (10/01/2015)

  • System updates

Version 9.26 (09/24/2015)

  • Fixed an issue with the progress bar widget that would cause it to hide after the first step of a multi-step query

  • Added a hidden attribute in <layout> for <render> pdf targets to selectively omit a layout when a QuickApp is rendered

Version 9.25 (09/17/2015)

  • Added support for listvalue_ for the the checklist widget. listvalue_ accepts a list-value variable. This variable stores the value of checked boxes

  • The PDF render target now respects "visible_=0|1". This can be used at the widget level to specify which widgets are included or excluded during the rendering process

  • Fixed a bug that caused row functions to ignore the first argument if it consisted of a single column

  • Fixed a bug in r_splice caused by last week’s release

Version 9.24 (09/10/2015)

  • Improved performance of r_functions, especially for tables with large numbers of columns

  • System updates

Version 9.23 (09/03/2015)

  • System updates

Version 9.22 (08/27/2015)

  • Added attributes labelpos_ and tolabelpos_ to the sorter and date widgets. These attributes accept top, bottom, left, and right as valid values

Version 9.21 (08/20/2015)

  • The XML search operator, x?tag now returns an empty list of tag is not found or x is empty

  • Added responsevalue_ attribute to the alert widget. It accepts a dynamic variable. When mode_="modal" this variable will contain the response from a user’s interaction (either 0 or 1)

    • Buttons to cancel and confirm the alert can be customized with the canceltext_ and confirmtext_ attributes respectively. These attributes accept strings

  • Added support for rowvalue_ to dropdown and dropdownlist widgets.

    • Accepts a package variable. This variable will store all the values for the selected rows using the columns names as keys

  • Added itemlabelpos_ attribute to the radio and checklist widgets

    • This attribute accepts right, left, top, bottom and defaults to right

Version 9.20 (08/13/2015)

  • Added <widget class_="alert", which when set to 1, displays either an error, warning, or success message (based on the type attribute). Defaults behavior is to display a warning message.

Version 9.19 (08/06/2015)

  • In <block> code, you may now variable=value in a <quote> elements. If these are present, those variables, and the expressions containing them, will be substituted in the <quote>

    • Using this method means that no other block code will be executed, and no variables that aren’t specified in the <quote> will will be expanded

Version 9.18 (07/30/2015)

  • Added disabled_ attribute for browser, button, chart,checkbox, checklist,color,date,dropdown, dropdownlist, field, font, gauge, gmap, grpahics, link, list, ngrid, radio, slider, sorter, textbox widgets. +disabled_="1" will "gray out" a widget and prevent users from interacting with it

Version 9.17 (07/23/2015)

  • Added showdesc_ attribute to the browser widget, which will display an info icon when hovering over an element in the browser. Clicking on the icon will show either a short or long description of the element, based on the value of this attribute. showdesc_ takes the following values:

    • 0 - do not show the info icon (default)

    • 1 - display the info icon and show a short description of the element when the icon is clicked

    • 'short' - display the info icon and show a short description of the element when the icon is clicked

    • 'long' - display the info icon and show a long description of the element when the icon is clicked

  • Added openlistvalue_ attribute to a layout element with type_="collapsible", which allows you to track the open panels of a collapsible layout. This attribute accepts a dynamic variable (e.g., openlistvalue_="@var").

  • Added showprogressbar_ attribute that can be used to hide the default UI progressbar. This attribute is used as follows: <render><web showprogressbar_="no"/></render>. The attribute can be set to either 0 or "no" to hide the progress bar, or 1 or "yes" to show it. The progressbar is visible by default.

  • Added visible_ attribute for all widgets, which allows you to hide or show a particular widget. The attribute can be set to either 0 or 1 (default).

Version 9.16 (07/16/2015)

  • For <widget class_="button" type_="export" target_="this" mode_="block|ops">, <layer name="preamble> element may be enclosed within the widget tags.

    • The new <layer name="preamble"> may contain <block>, <insert>, <import>, and <library> elements.

    • The contents of the <layer name="preamble> element will automatically be prepended, verbatim, to the exported query

    • This is useful for customizing the <block> environment of the worksheet environment resulting from the export

Version 9.15 (07/09/2015)

  • Added delay_ attribute to the progressbar widget. Delays the appearanceof the progress bar. Defaults to .5

Version 9.14 (07/02/2015)

  • Added a sync_ attribute to save the table when the value of a cell changes

  • Added a display_="top|modal" for different display types for the progress bar

Version 9.13 (06/25/2015)

  • Fixed headers in My Jobs and Other People’s Jobs tabs

  • Fixed a broken link to Scheduler documentation

  • Improved runtime selection selection in the Query Scheduler

Version 9.12 (06/18/2015)

  • For layouts of type accordion, collabsible, and tabpanel added the attribute: openvalue_

    • openvalue_ allows a panel to be dynamically opened by a the value of a variable declared in the containing <dynamic>

  • Added a maxheight_ attribute to the sorter widget to set the height of the sorter buckets

  • Bug fixes

Version 9.11 (06/04/2015)

  • System updates

Version 9.10 (06/04/2015)

  • Added <widget class_="gauge">

    • Default is type_="radial" for dial-style gauge

    • type_="linear" works similarly to type_="radial" but shows as a linear scale rather than a dial-style gauge

  • For <widget class_="gmap">:

    • Added clickvalue_ attribute that accepts a package dynamic variable and tracks the clicks on the map (i.e., not on a marker or polygon)

    • icon_ now accepts columns of type URL

    • Added new <layer name_="bubble"/> with radius_ and fillcolor_ attributes that should be given a column of values for each of the values for the lat/lng coordinate point

  • Added support for rotate_ and flip_ attributes for all widgets:

    • rotate_ accepts a value of positive or negative degrees of rotation

    • flip_ accepts a boolean value, defaulting to 0, and flips across the y-axis

  • Added tutorials to Global Search from Documentation Center

  • System enhancements

Version 9.09 (05/28/2015)

  • System enhancements

Version 9.08 (05/21/2015)

  • Added arrange= attribute to the date picker widget. Accepts v|h that specifies how to arrange two date-picker widgets (horizontal of vertical) The tovalue_ attribute is required to have two date pickers.

  • Fixed functionality in menu widget

  • Bug fixes

Version 9.07 (05/14/2015)

  • Added excols attribute to the <link> operation. Accepts a comma-separated list of column names to be excluded from a link: <link excols="foo,bar"/> excludes columns foo and bar

  • Added a new <layer> to the gmap widget: path. <layer name="path" allows enables QuickApp users to plot points connected by lines in a particular order

Version 9.06 (05/07/2015)

  • In the folder browser widget, added popup_ to force the browser to always stay present on the page. Added changeview_ to disallow users from switching browser views

  • Bug fixes

Version 9.05 (04/30/2015)

  • Bug fixes

Version 9.04 (04/23/2015)

  • Fixed a bug in the user manager that would cause the admin tool to freeze sometimes when creating users

  • Changed the Active Users count in the company manager to a manual command

  • Added currency format specifications for Display Formats

Version 9.03 (04/16/2015)

  • Bug fixes and system enhancements

Version 9.02 (04/09/2015)

  • System updates

Version 9.01 (04/01/2015)

  • Added ability for the <render> element to render widgets inside class_="nest"

Version 9.00 (03/25/2015)

  • New version of beta released today.

Version 8.49 (03/05/2015)

  • Fixed a bug where sorting in a scrollabe grid widget may change the column width

  • Fixed a bug where the style picker widget may leave a ghost behind

  • Updated screen shots and options for all widgets to reflect QuickApp 2.0 styling and functionality in the Reference Manual

  • Added documentation for the <render> tag, <widget class_="button" type_="render"/> button, and <graphspec> plus its related elements

  • Added Box & Whisker chart examples in the charting section of the User’s Guide

  • Added documentation for the QuickApp Visual Editor to the User’s Guide

  • Added documentation for the gmap widget in the Reference Manual

Version 8.48 (03/05/2015)

  • Added filename_ attribute to export/render button widgets. Accepts a string that designates the name of the downloaded file. The correct file extension is automatically appended to the file.

Version 8.47 (03/05/2015)

  • Added graphics widgets to the xlsx renderer. Graphics are implemented as pngs

  • Added currency cell formatting for columns with type:currency and units of USD, EUR, GBP, JPY, AUD, CAD, CHF

  • Grid widgets that using the sortcols_ and sortdirs_ attributes to record state of sort for the grid will render into xlsx with sort state preserved

Version 8.46 (02/26/15)

  • Fixed several bugs in QuickApp widgets

  • Back-end system updates

  • Changed sort functionality in scrollable grid. Now howevering over sortable columns produces arrorws for sorting up or down

Version 8.45 (02/19/15)

  • System updates

Version 8.44 (2/12/15)

  • Added theme support for error bar colors in charts

  • Added theme support for tool tips in charts

Version 8.43 (02/05/2015)

  • Added Global Search functionality to Documentation Center

  • Updated Logistic Regression section of Modeling Functions tutorial to extract fit statistics using logreg_stats block in 1010data regression_statistics library

Version 8.42 (01/29/2015)

  • Added support for empty marker rendering via <style linemarkertypes="circle,empty"/> in charting

  • Fixed typo in GetPlotRange2DAux in charting

  • Added mobile target support for <layout type_="tabpanel"/>

  • Added mobile target support for <widget class_="button"/>

  • Added support for <layout showvalue_="@var"/> to hide/show layouts via dynamic variables

  • Fixed css image path for broken image

Version 8.41 (01/22/2015)

  • Changed the default range of dual y-axes for scatter and line charts

  • Added support for <layout type_="window" name="foo"/>

    • Optionally, in combination with <widget class_="button" type_="layout" layout_="foo"/> a <layout> can be launched via a button

    • The following attributes are supported for controlling window size: width_ height_ maxwidth_ minwidth_ maxheight_ minheight_

    • To hide or show window initially: initopen_="0|1"

    • To specify window title: label_

    • To control window behavior: minimizable_maximizable, closable_,modal_,center_

    • To control window positioning: pos_

      • e.g., <widget text_="Add" class_="button" type_="layout" layout_="foobar"/> <layout name="foobar" type_="window" initopen_="0"><widget/></layout>

Version 8.40 (1/15/2015)

  • Fixed type error in button widget

  • Added kendo theme support via <web theme_="tenten|kendo|metro|flat|blueopal|black|material|bootstrap|metroblack|materialblack|silver|highcontrast|uniform|moonlight"/>

Version 8.39 (1/8/2015)

  • Fixed an issue in Group Manager that sometimes caused problems when creating groups

  • Empty rollup tabulation columns are now the same as nonempty rolup tabulation columns

  • Fixed type error in line/scatter chart when rendering single data point with tooltips_="1"

  • Added <chart sectorstart="angle"/> for pie chart

Version 8.38 (1/2/2015)

  • In 1010data Reference Manual:

    • moved g_rank, g_rankuniq, g_rankskip, and g_rankavg from Statistical Functions to Group Summarization Functions

    • converted all Row Functions to new format and added Sample Usage tables for each

    • converted betainc(A;B;X) function to new format (in Math Functions)

Version 8.37 (12/26/2014)

  • System updates

Version 8.36 (12/19/2014)

  • Added support for Kendo-specific theming via:

    • <graphspec theme="kendo|kmetro|flat|blueopal|black|material|bootstrap|metroblack|materialblack|silver|highcontrast|uniform|moonlight"/>

  • Added support for legend customization via <style legendlabelfontfamily="" legendlabelsize="" legendlabelcolor=""/>

  • Added Kendo themes to right chart properties panel

  • Documentation: Added a tutorial that walks through building interactive dashboards using the Excel Add-in

Version 8.35 (12/11/2014)

  • When a table of widgets is displayed due to an error on initial render, the widgets that failed will be listed first

  • <widget class_="button" type_="set" not allows for setting values in packages, lists, and other special variables

  • Fixed a problem where in some situations widgets were not updated when multiple elements of list or package values were updated

  • Improvements to the @username_ environment variable so it’s more reliable

  • Improvements to caching for charting so long queries don’t re-run

  • Tooltips in charts now support NA values in scatter and line charts

  • Additional gradient color theming support now available for charts via +<graphspec theme="…"

  • Fixed an issue with resizing QuickApps in standalone mode

  • Added tooltips_="0|1" support for boxwhisker chart

Version 8.34 (12/04/2014)

  • Fixed tooltip rendering issue when near image border due to adjacent widget.

  • Added <chart spacing="auto|none|tiny|small|medium|large|#num|#num,#num" type="bar"/> to control individual and group based bar spacing

  • Added detection of label overlap and auto rotate tick labels for bar chart.

  • Added support for <data yaxis="2"/> for bar charts

Version 8.33 (11/21/2014)

  • Fixed default ViewCenter rule to show complete chart.

  • Added xtick labels overlap detection and auto-rotation for line, scatter, hist1d, hist2d, bubbl

  • Added <chart boxed="0|1" …/> for surface, scatter3d to toggle bounding box.e

  • Added "Download As" context menu to download a chart in pixel or vector format

  • Integrated "Download As" context menu.

  • Changed default css for checklist widget to not render a gray background.

  • Added checkbox to User Groups field in User Manager

Version 8.32 (11/13/2014)

  • Added tooltips support for hist2d chart via tooltips_="0|1"

  • Added interaction support for log-scale in hist1d

  • Added interaction, data dependent zooming, and log-scale support for hist2d

  • Removed unncessary <style/> tag and <note/> tags when dropping chart into a QA widget

  • Removed constraint to support interaction and log-scale

  • Removed constraint to support interaction and legends

  • Added color_ and textbgcolor_ to checklist widget

Version 8.31 (11/07/2014)

  • Added SI prefix formatting to axes tick labels via <ticks xfmt="si" yfmt="si"/> for all 2d charts and dual y-axis charts.

  • Added 3d-chart-specific <view/> tag with attributes:

    • xpoint="…" ypoint="…" zpoint="…" to rotate, where the values have range [-2.5,2.5]

    • angle="…" to zoom, where the values have range [1,179]

    • xcenter="…" ycenter="…" zcenter="…" xpan="…" ypan="…" to pan, where the values have range [0,1]

  • Added NA support for bar chart tootips.

Version 8.30 (10/30/2014)

Version 8.29 (10/24/2014)

  • Company admins now have access to all groups owned by anyone in their company via the admin tool

  • Added log scale support in tool tips for charts

  • Removed requirement for interactive_="1" in scatter/line charts

  • Fixed inaccurate tooltip for large data and rendering problem on small data

  • Fixed an issue for drop-down font picker

  • Fixed a problem in IE8 font transfers so that only releveant css styles are applied

  • Fixed IE8 problem to unbind resize events correctly

  • Fixed an overlay problem for tool tips when multiple charts are rendered

Version 8.28 (10/17/2014)

  • Changed the Download>To Microsoft Excel' menu to have two download options. Option XLSX will render the new workbook output to generate the standard file format
    The XLS option will generate the old-style spreadsheet file format

  • Added legend support for interactive charts

  • Added legend auto-sizing in two-dimensional histograms

  • Fixed a bug that generated a token error in one-dimensional histograms

Version 8.27 (10/10/2014)

  • Fixed rendering problem when the content changes in a textbox widget contained in a tabpanel while the parent tab is not visible

  • Increased the number of colors for Default/Excel theme in the Chart Builder

  • Query Scheduler documentation has been moved to the top level of the TOC in the User’s Guide

  • Added Tabulation tutorial video to the Quick Start Guide as well as under the Videos tab in the Documentation Center

  • Bug fixes and general system enhancements

Version 8.26 (10/02/2014)

  • Fixed bug when using <directory> after a table has been saved to a previously empty folder

  • Fixed problem with using backtick notation for sort reverse in <sort cols=…>

Version 8.25 (09/26/2014)

  • Added support for fixed= attribute in <willbe> for creating fixed columns without the use of the <col> operation

  • System updates and bug fixes

Version 8.24 (09/19/2014)

  • System updates and bug fixes

Version 8.23 (09/12/2014)

  • Fixed problem regarding suffixes after a <merge> operation

Version 8.22 (09/04/2014)

  • g_ntile() function is now in beta: g_ntile(G;S;o;X;N)

  • labels= attribute is now available for the <transpose> operation. Works like the names attribute, but provides column headings. Doesn’t require column of valid column names

  • Fixed bug for g_cluster() function that claimed an invalid argument had been supplied when it wasn’t true

  • g_pca function results column now displays correctly in the gui

Version 8.21 (08/28/2014)

  • Added help topics for <columns>, <table>, <transpose>, <pack>, and <loop> in the Reference Manual.

  • System updates

  • Bug fixes

Version 8.20 (08/22/2014)

  • Fixed a bug where tables would not merge following base tags

Version 8.19 (08/15/2014)

  • Fixed <columns/> index error and <transpose/> type error in the XML API

  • Added link to the Quick Start Guide under the Help menu

  • Bug fixes

Version 8.18 (08/07/2014)

  • Fixed g_pack so that it works correctly with selector argument

  • Bug fixes and general system enhancements

Version 8.17 (07/31/2014)

  • Added ability to save/remove user to/from groups within the User Manager

  • Bug fixes

Version 8.16 (07/24/2014)

  • System updates

  • Bug fixes

Version 8.15 (07/17/2014)

  • System updates and enhancements

Version 8.14 (07/11/2014)

  • Added number of active users to Company Manager

  • System updates and enhancements to backend

Version 8.13 (07/03/2014)

  • System updates and enhancements

Version 8.12 (06/26/2014)

  • System updates

Version 8.11 (06/11/2014)

  • General system updates

  • Added a password cycle setting in the admin app

Version 8.10 (06/11/2014)

  • General system enhancements

Version 8.09 (06/05/2014)

  • Bug fixes

  • General system enhancements

Version 8.08 (05/29/2014)

  • Added CSL function documentation to the Reference Manual

  • Updated string functions with current styling and reference content

  • General system updates

Version 8.07 (05/22/2014)

  • added list indexing to the scalar context - @foo.N where @foo contains a list and N is an integer index into the list. list and package indices may be interspersed e.g. in <block foo="{pkg(a;lst(17 18 19))}"> {@foo.a.2} -→ 18

  • attempts to index into "" now return "" to help avoid "non-package component" errors during QA initialization

  • add scalar-context function mklst(X;Y) - make a list of X repeats of Y

  • indexed (pkg/lst) variables can now be used in <setv>, and setv name may (optionally) begin with @ for consistency with HM conventions. for example: for a package variable, <setv name="" value="17"/> or for a list variable, <setv name="@foolst.2" value="17"/> (@ optional in both cases).

  • indexed (pkg/lst) variables can now appear in the value_= attribute of widgets, for example <dynamic vals="{mklst(4;'')}"> <for i="1" to="4"> <widget class_="field" label_="Field #{@i}" value_="@vals.{@i}"/> </for> </dynamic>

Version 8.06 (05/15/2014)

  • Added error message in admin tool for when an invalid user ID is entered

  • Sysem maintenance and performance enhancements

Version 8.05 (05/08/2014)

  • Added <widget class_="notebook" mode_="default|mma"/> (notebook).

  • GUI now respects the subtitle_ attribute in the <base> tag. A subtitle will be displayed instead of rows and columns if a subtitle_ value is provided.

Version 8.04 (05/01/2014)

  • Improvements to error messages from the core system. For instance, if an error occurs while retrieving a local, foreign or computed column the error message will say the name of the column. Many error messages now have more detail.

  • Minor changes to messages that display when a query succeeds or fails in edit actions (xml)

  • It is now possible to run the same QuickApp in multiple 1010data tabs

Version 8.03 (04/23/2014)

  • System updates

Version 8.02 (04/17/2014)

  • General updates to system

  • Bug fixes

Version 8.01 (04/10/2014)

  • Bug fixes to GUI and backend system

  • Backend system improvements

Verion 8.00 (04/03/2014)

  • 1010data Version 7 is now in production

  • Beta v.8 now accumulating changes

  • General improvements to backend processes

  • Small changes to web UI ("help" menu is now "info")

  • Improvements to labels in charts

  • Added zoom/center interactions for bubble charts

Version 7.47 (03/27/2014)

  • General system updates for improved performance

  • New User’s Manual now live in beta

Version 7.46 (03/21/2014)

  • The in-memory tables default.empty (zero rows of 1 integer column c1) and default.lonely (1 row of 1 integer column c1 with the value 1) are now available in every session. The intent is to provide (1) a guaranteed-available starting point for queries that specify their actual working tables with (possibly parameterized) <base> or <table> or the like and (2) an actual empty table or one-row table where convenient. default.happy is also available as an empty QuickApp (eventually will be used to start a blank QuickApp Editor session).

  • Fixed a bug that caused table and folder search to be very slow on the first use after logging in if the user had access to many tables.

  • <table depth=n/> generates a table with no columns of n rows. (Columns can be added with <willbe> — including functions of row number i_). + <table/>+ defaults to 1 row, use <table depth=0/> for a (not very useful) no rows, no columns table.

  • scalar-context functions str_to_lst() and lst_to_str() now support converting between multiply-nested lists and multiply-delimited strings e.g. str_to_lst(example,of|a|two,level,list;'|',)

Version 7.45 (03/13/2014)

  • Fixed bug that was causing @variables to be undefined in some special cases

  • Significant performance enhancements to <block> code, including caching of expanded queries

  • General system performance improvements and bug fixes

Version 7.44 (03/06/2014)

  • Added function g_splice(). Takes same arguments as g_uval(), but doesn’t duplicate/sort values.

  • Added + rcv_+ and rcn_ special variables, replacing old x_, which take on each column value and name, respectively, in sequence when executing a row (r_) function. A willbe defined as a boolean expression of rcn_ and/or rcv_ may be used as the optional "S" (selection) argument to r_ functions.

  • Added new row function r_mapstring(C;S;X;D). + C+ and S are as for other r_ functions. X should be a willbe column defined in terms of rcn_ and/or rcv_. D should be a string or string column specifying a delimiter (or '' for no delimiter). Each selected column value is transformed using the expression defining X, and the results are catenated into a string using the delimiter.

Version 7.43 (02/27/2014)

  • All users can now modify group owners

  • The short cut: <if>…</if> is now allowed for <if><then>…</then></if> for clauses without <else>

Version 7.42 (02/20/2014)

  • Multi-column segby links now possible for exact links, not just asof links

Version 7.41 (02/13/2014)

  • Back-end system optimizations and enhancements

Version 7.40 (02/06/2014)

  • Added the <columns> which transforms a result into a new table containing metadata for the query’s columns.

    • Attributes:

    • full="0" (default): respect any colord in effect, i.e. list only visible columns in order; full="1" show all columns, visible and hidden, in original order (the ord column gives the ordinal position of each column in the colord, or 0 if it is hidden)

    • crosstype="a" (default)/"i"/"f": construe the columns' labels as text, integers, or floats respectively in the label column. Useful for extracting column breaks from a crosstab.

    • totaltype="a" (default)/"i"/"f": construe the columns' total headers as text, integers, or floats respectively in the total column. Useful for extracting column totals from a crosstab.

    • +title="title", sdesc="sdesc", ldesc="ldesc": override default title, descriptions for column table.

  • Added the <transpose> op, which transforms a result into its transpose (rows becomes columns and vice-versa).

    • Attributes:

    • names="column": if present, column must contain all unique, non-NA text values that are valid column names, and the transposed columns will be assigned these names. If absent, transposed columns will be named m0, m1, m2, … similarly to a crosstab.

    • promote="0" (default): all columns must be of the same type and transposed columns will be of that type; promote="1": if columns are of mixed types, then values in the transposed table will be promoted as necessary according to the hierarchy integer → float → (formatted) text. That is, if there is at least one text column then all columns in the transposed table will be text, else if there is at least one float column then all columns in the transposed table will be float, else all columns in the transposed table will be integer. title="title", sdesc="sdesc", ldesc="ldesc": override default title, descriptions for transposed table.

  • Fix for length error under some circumstances when using the `subst attribute in a combined tab

  • Fixed a bug for the keepcols attribute that occurred during as-of links

Version 7.39 (01/30/2014)

  • New 1010data charting features are now live in the beta environment

Version 7.38 (01/23/2014)

  • added UK option to Region Format pref (region_fmt)

Version 7.37 (01/16/2014)

  • In Group Administrator dialog, added ability for regular users to create groups prepended with their compid

Version 7.36 (01/09/2014)

  • General system improvements

Version 7.35 (01/02/2014)

  • General system improvements

Version 7.34 (12/19/2013)

  • Company admins can now edit restricted IPS, also added more preferences to the GUI Preferences panel

Version 7.33 (12/12/2013)

  • Fixed a css bug in the note container of the Admin tool

  • Improved function reference documentation for Time functions

  • Improved reference documentation on Data Types and Formats

  • General system performance improvements

Version 7.32 (12/05/2013)

  • General system improvements

  • Improvements to core documentation

Version 7.31 (11/21/2013)

  • Fixed bug in g_linrecur() function that allowed integer columns to be passed as matrix argument

Version 7.30 (11/14/2013)

  • Minor bug fixes

Version 7.29 (11/07/2013)

  • System enhancement for improved login performance

  • Fixed a bug in the strsubst() function

Version 7.28 (10/31/2013)

  • Add r_splice(col;sep); function to row functions

  • Bug fixes

Version 7.27 (10/24/2013)

  • Improvements to some CSS styles

  • Bug fixes

Version 7.26 (10/17/2013)

  • Bug fixes

Version 7.25 (10/10/2013

  • Added ability to export charts to PDF

  • Bug fixes

  • Happy 1010day

Version 7.24 (10/04/2013)

  • Updates to GUI styling

  • Bug fixes

Version 7.23 (09/26/2013)

  • Fixed a bug where dates downloaded into Excel were not displayed correctly. Dates downloaded to Excell will now display in ANSI date and ANSI datetime formats

  • Dates and times downloaded to Excel now respect the user’s regional preferences

  • Improved aspects of data visualization display and capabilities

  • System improvements

  • General bug fixes

Version 7.22 (09/19/2013)

  • Improved formatting of dates when downloading to Excel

  • Backend system improvements

  • Bug fixes

Version 7.21 (09/12/2013)

  • CSS fixes for GUI issues in IE

  • System improvements

  • Bug fixes

Version 7.20 (09/05/2013)

  • System improvements

  • Bug fixes

Version 7.19 (08/29/2013)

  • CSS changes to User Preferences, Edit Actions panels

  • Backend system improvements and optimizations

  • Bug fixes

Version 7.18 (08/22/2013)

  • Bug fixes

Version 7.17 (08/15/2013)

  • Improvements to graphing and visualization, such as titles and axis labels

  • Bug fixes

  • System optimizations

Version 7.16 (08/01/2013)

  • Added ability for comp admins to prefix groups with their compid

  • Bug fixes

Version 7.15 (07/25/2013)

  • Added adaptive aspect ratio for Line2D, Time2D, Trading2D, Hist2D, Scatter2D,Bubble2D

  • Fixed several interface bugs

  • Fixed issue in QuckApp for IE 8

  • Added automatic chart refresh when resizing

  • Back end performance optimazations and bug fixes

Version 7.13 (07/12/2013)

  • Added user pref for autocomplete, syntax highlighting and progress bar

  • Added log panel for viewing most recent log entries

  • Bug fixes and backend performance enhancements

Version 7.12 (06/27/2013)

  • Added shortcuts to maximize and restore the grid window

  • Bug fixes

  • Back-end system optmizations

Version 7.11 (06/20/2013)

  • System performance optimizations

  • Bug fixes

Version 7.10 (06/12/2013)

  • Bug fixes and back-end system optimizations

Version 7.08 (05/29/2013)

  • Bug fixes and back-end system optmizations

Version 7.07 (05/22/2013)

  • Users can now open directly to a table upon logging in

  • Bug fixes and system optmizations

Version 7.05 (05/09/2013)

  • Bug fixes and system updates

Version 7.04 (05/02/2013)

  • Back-end system improvements

  • Numerous bug fixes

Version 7.03 (04/25/2013)

  • Added backslash (\) escaping of @ and {} characters in Macro Language <block>s

  • Small changes to CSS in web interface

  • Bug fixes

Version 7.01 (04/05/2013)

  • Added backslash (\) escaping of the @ character in <block> statements

  • System bug fixes

Version 7.0 (04/05/2013)

  • Added element attributes to autocomplete

  • Several bug fixes for css rules

  • New version number, as beta 6.58 is now officially in production!

Version 6.58 (03/14/2013)

  • Changed CSS for some interface elements

  • Fixed issue with progress bar

  • Improved system feedback for submitted queries

  • Numerous bug fixes and system updates

Version 6.57 (03/14/2013)

  • Improved table resizing when resizing browser window

  • Improved support for utf-8 to unicode

  • <loop> and <pack> tags now active in beta

  • Added feature to expand Block Queries into the API and Edit Actions(XML)

  • Backend and system bug fixes

Version 6.56 (03/14/2013)

  • Backend bug fixes

  • Happy π day

Version 6.55 (03/07/2013)

  • Can now open Quick Queries saved in a earlier version of 1010data

  • Search results have been enhanced to include folders as well as tables

  • Numerous system enhancements

  • Bug fixes

Version 6.54 (02/21/2013)

  • Reorganized and updated User Admin tool

  • Improved information provided by progress bar

  • Misc. bug fixes

Version 6.53 (02/14/2013)

  • Added panel in GUI for generating merge tags

  • Added option in Power Loader to either stripe or mirror tables when loading into 1010data

  • Added support for combinetabs_subst function that allows combinetabs to contain extra substitution columns

  • Improved some error messages

  • Fixed misc. bugs

Version 6.52 (02/07/2013)

  • Added QuickApp code examples to documentation

  • Fixed bugs and stability issues in system

Version 6.51 (02/01/2013)

  • Fixed assorted bugs and performed backend system optimizations

Version 6.49 (01/24/2013)

  • Fixed assorted bugs and performed back-end system optimizations

Version 6.48 (01/17/2013)

  • Fixed bugs for backend system optimization

Version 6.47 (01/10/2013)

  • Implemented several back end optimizations

  • API: Added further changes to check for UTF-8 compliance

Version 6.46 (12/20/12)

  • Fixed a bug in the API that was introduced in the last release.

Version 6.45 (12/14/12)

  • Added auto-complete and in-line help documentation for selection and value expressions

  • Fixed bug for <merge type="complement"> regression

  • Fixed bug that caused error when specifying sortseg= without sort= in materialize

  • Reinstated the r_md5sum function with more efficient algorithm

Version 6.44 (11/29/12)

  • Fixed formatting for decimal places in ansidatetimes.

  • Improvements to help: Updated "All Functions" list, fixed tables in "Advanced Group-based Functions" list.

  • Fixed but that caused g_ functions to sometimes return erroneous results.

Version 6.43 (11/19/12)

  • Added new menu when right-clicking a column header. Initially, this will only be able to hide columns.

  • Edit Actions (XML) now links to the correct help page.

  • Resolved bugs with clicking on > to expand a cell that contains a long value.

Version 6.42 (10/26/12)

  • Added new formatting types: URL, email, pct, ansidate, ansidatetime

  • Fixed bug where formatting month/year types where months required leading '0’s for single-digit months

  • Changed contextual help links (Question Marks ?) to point to articles in the new help structure

Version 6.41 (10/18/12)

  • Fixed bugs for the editor’s auto-complete functionality. Auto-complete will no longer suggest existing attributes, such as name, if there is already a name in the tag

  • Type fixes to several functions including abs(), min(), and max().

  • Added scalar expression support for willbe and sel value expressions

  • Improved optimization for multi-field ad-hoc links

Version 6.40 (10/11/12)

  • PL: Changes to suport ANSI date/time formats

  • HELPDOC: Updated look and feel of help. Improved functionality for functions lists and navigation

Version 6.39 (10/04/12)

  • Improved load speed for 1010data after login

  • Fixed bug where large directories overlapped in IE

  • Fixed autocompletion issue in Edit Actions XML

  • Fixes to UI when viewed with iPad or other mobile browsers

Version 6.38 (09/27/12)

  • Added a stop button for running queries. When pressed, the button stops the current query and clears the cache.

  • Changes to support wsaccum limits in k3.33 and k3.3

  • Added introductions and contextual overviews for many function categories in the General Help section. Added a "Machine Learning Functions" section. Improved/fixed formatting issues.

  • Fixed a but in the Admin interface.

Version 6.37 (09/20/12)

  • Added a progress bar in the GUI for query upload progress. Each line uploaded will move the bar. Current running line will be highlighted in the XML Editor when it is visible.

  • Modified search string in the GUI to reflect what to search "for," instead of what to search "with."

  • Fixed the "Queick Query save" message to the correct color for a successful save.

  • Corrected typo in the Internet Explorer 9 browser detection message.

  • Updated CodeMirror library.

Version 6.36 (09/13/12)

  • Fixed bug where Edit Query functionality was broken for UQs

  • Added a new flag to the SEARCH API transaction: exact_match. Returns a 1 when there is an exact match on a path

  • Improved search bar in GUI so that text no longer overlaps with the X

  • Merged tables now open correctly

  • Enabled unsubscribe functionality

  • Improved information displayed in GUI when a table with 0 rows is displayed

  • When sending K infinities through JSON, the API will now emit and accept 1i1024 as infinity and 1e-1045 as -infinity

Version 6.35 (09/06/12)

  • Fixed bug with AutoComplete failing after value expressions containing the > sign

  • Fixed bug that caused the g key to sometimes act as a shortcut key in the text editor and other text fields

Version 6.34 (08/30/12)

  • Added Categorization functions to help docs.

  • Added search functionality into the table and directory browser in the user interface.

  • Added shift and ctrl clicking for multiselect to table browser and query browser.

  • Added dropdown menus to the top header bar of the user interface.

Version 6.33 (08/23/12)

  • Performance enhancements to result in a more consistent feel across the interface.

  • Added ability to create ACCUM workspace limitations.

  • Categorization functions added into documentation.

  • Formatting improvements in documentation.

  • Changed 1010data logo to new logo.

Version 6.32 (08/16/12)

  • In the menus, Download via FTP no longer displays when user does not have FTP access.

  • Changes to XML Editor Autocompletion: Tabu tags and sub-tags now working correctly.

  • Bugfix: Image for tstat tables were not loaded correctly in the UI.

  • Bugfix: For users who are coming through a proxy, IP restrictions were not working correctly.

  • Bugfix: logging in from other domains than 1010data should no longer be rejected.

  • Minor cosmetic changes in My Downloads, and login pages.

  • Help Documentation: Added more functions, and updated documentation to QuickApp.

Version 6.31 (08/09/12)

  • Added Autocomplete in Edit Actions (XML). Use Tab to pull up list of suggestions where appropriate. Use Tab, Enter, or Right Arrow key to accept. Arrow keys and mouse clicks may be used to select the choice.

  • Fixed bug: Accounts with IP Restrictions were unable to login through load balancer.

  • New Login process will display errors to IE7 users, instead of failing silently.

  • Updated CodeMirror to 2.32. Fixes double/triple-click dragging.

Version 6.30 (8/02/12)

  • New Help Documentation.

  • Fixed bug: Link and Select from an empty folder no longer generates error.

  • Fixed bug: Appending to tables that have been modified since login no longer fail.

  • Fixed critical bug: Fixed bug with Tabulation with tcols with name attribute.

  • Added table optimization information into About This Table.

Version 6.29 (7/19/12)

  • Using Rearrange Columns multiple times in succession will now only generate a single <colord> tag in the XML Actions

  • Performance improvements for Download Query - now much faster

  • Fixed bug: midpoint displayed in Column Information was erroneous with integer columns containing large numbers

  • Fixed bug: "query browser" (used in custom pre-built reports) failed to expand when first column in query was numeric

  • Fixed bug: right click context menu in tables now shows proper value in IE8

  • Fixed bug: tables containing data that looks like XML or HTML now display properly

  • New keyboard shortcut: Shift-Space to comment and uncomment macro code in Edit Actions XML

Version 6.28 (7/12/12)

  • Bugfix: back button now preserves erronous code in Edit Actions XML

  • In Edit Actions XML there is a now a "tooltip" on the "apply" button indicating that CTRL-Enter will also apply actions

  • Bugfix: editing users and uploaders (for tables/folders) now accepts "new lines" and commas as delimiters

  • Bugfix: queries legally returning 0 rows now display without error

  • Bugfix: scrolling to the right after creating a column (under certain circumstances, with fixed columns) now works properly

Version 6.27 (7/5/12)

  • Bugfix: Go to Column immediately after Computed Column now works correctly

  • Edit Actions XML now has syntax highlighting.

  • New keyboard shortcut: CTRL-Enter applies (submits) actions in Edit Actions XML

  • Column Information pop up window no longer contains session info in URL

Version 6.26 (6/28/12)

  • Row selection panel now provides option to toggle logical "relationship" AND/OR

Version 6.25 (6/22/12)

  • Login process rearchitected with security enhancements

  • UI now displays "working" on top while request is in process

  • Fixed bug: moving tab to new window was broken in beta-6.24

Version 6.24 (6/7/12)

  • URL no longer contains session info

  • Fixed bug: g_functions did not work properly after expansion in certain types of tables

  • Fixed bug: inaccuracy in degrees-of-freedom and p-values in g_lsq functions

  • Fixed bug: columns containing model data types were still not displaying without error

Version 6.23 (5/31/12)

  • Fixed bug: tables containing models and other complex (advanced) column types can now be displayed without error

  • Fixed bug: quick queries containing <link> with type include or exclude will run correctly, without omitting the link type

Version 6.22 (5/24/12)

  • <block> and <insert> attributes can now be parameterized in quick queries; this allows creation of quick queries with a single input that is used in multiple operations, eliminating need for duplicate inputs

  • Fixed bug: quick queries containing <block> can now be saved without error

  • Fixed bug: selecting rows from (right click) context menu when cell contains special characters (e.g. &) now works properly. Context menu also now properly displays the full text of cells that are too wide to display in the table, and now shows "N/A" rather than blank for cells that are NA

  • Fixed bug: special characters (e.g. &) in table titles now appear properly when uploading and replacing a table

  • Fixed bug: when logging in from a custom login page that puts user into a specific folder, if user does not have permission to that folder it is now handled gracefully (with default behavior)

  • Fixed bug: success messages when clearing cache and cloning worksheets now show in the correct color

  • Login page updated with new branding and support for entering existing session

Version 6.21 (5/17/12)

  • Under the hood performance optimizations

  • More informative error messages

  • Non-error messages are now blue rather than red

  • Corrected documentation error in year(x) function

  • Fixed bug: Column Information no longer gives error in tables with columns named bucket or count

Version 6.20 (5/10/12)

  • Fixed bug - queries containing table2="*" in <link> and <merge> can now be saved as Quick Query

  • Online help - added material on user manager and group manager

  • Users of Internet Explorer 7 will get a pop up warning upon login that browser is not supported

Version 6.19 (5/1/12)

  • Updated change log now accessible from help menu

  • Enhanced error reporting for pre-built report developers

  • Changes to support faster logins in the future

  • Fixed bug: upload was failing when user’s disk quota was set incorrectly

Version 6.17 (4/12/12)

  • API login transaction now includes a <version> tag (as child of <out>) containing text indicating the version you were logged into (e.g. "prod-5.16")

  • New Keyboard Shortcut: i shows column information

  • Save as new table no longer requires checkbox to enable merging table in the future

  • Users who have permission to a table/folder are now visible to the table owner in "file browser" view info panel

  • Corrected error in the online help as of link section

Version 6.16 (4/9/12)

  • Online help updated to cover previously undocumented functionality

  • Fixed bug: right click to find row gave error under certain circumstances