Release Notes
Important |
As with any software upgrade, it is important that you back
up your data before you upgrade OmniSci. Each release introduces
efficiencies that are not necessarily compatible with earlier
releases of the platform. OmniSci is never expected to be backward
compatible.
For assistance during the upgrade process, contact OmniSci support at support@omnisci.com before you upgrade your system. |
Release Notes
5.3.0 (latest) | 5.2.2 | 5.2.1 | 5.2.0 | 5.1.2 | 5.1.1 | 5.1.0 | 5.0.1 | 5.0.0 | 4.x | 3.x | 2.x | 1.x
5.3.0 - June 16, 2020
OmniSci release 5.3.0 contains several new features and improvements and fixes a number of issues.
OmniSciDB
Important |
|
New Features and Improvements
- Array support for the Array type over JDBC.
- Added support for SELECT DISTINCT in UNION ALL. UNION ALL is currently prerelease and must be explicitly enabled in the server configuration file.
- Added a query type return to the sql_execute endpoint, allowing API users to determine if a query altered date or a table or was a read-only query.
- Added support for joins on DECIMAL types.
- Added support for retrieving metadata for a given statement after running SQLPrepare in ODBC. For example, after calling SQLPrepare, the SQLColAttribute will return metadata for columns involved in the query.
- Performance improvements on CUDA GPUs, particularly Volta and Turing. OmniSci now generates PTX code targeted at specific GPU architectures, resulting in increased performance for aggregate workloads. Performance of summation on double precision types has increased by 10x in some instances.
- Increased use of CUDA shared memory, resulting in additional performance increases on aggregate queries in the presence of a group by.
- sql_validate now returns column descriptors for each projected column in the order in which columns appear in the select clause. Previously, column descriptors could be in any order.
Fixed Issues
- Resolved an issue where RESTORE TABLE could be exploited to gain shell access on the running Omnisci server.
- Resolved an issue where incorrect GPU memory requirement estimates for JOIN queries could result in a query that would run on GPU being transferred unnecessarily to CPU.
- Reduced memory fragmentation during select queries, particularly with approx_count_distinct aggregates. OmniSci recommends dropping caches or restarting the system after upgrading to OmniSci 5.3.0 to make more large pages available for the server.
- Resolved an issue where a comparison of geometry types could crash. Most comparisons of geometry types are not yet supported.
- Resolved various crashes when sorting, projecting, or otherwise interacting with geospatial columns. These crashes resulted from an unsupported operation being performed on geospatial data, and now result in error messages.
- Fixed a crash on Boolean comparisons where the Boolean column was declared NOT NULL.
- Resolved an issue where DISTINCT * in a subquery was not respected, resulting in an extra rowid being inserted into the subquery result and skewing the overall distribution in the query. Now, rowid is not present in a SELECT * statement unless explicitly projected.
- Resolved an issue where a syntax error in a SQL statement could cause the aggregator node to crash in a distributed setup.
- Resolved an issue where a multicolumn group-by window function could return incorrect results.
- Resolved an issue where the date_trunc function could return incorrect results for dates before the Unix epoch, January 1st 1970.
- Resolved an issue where dictionary encoded string columns using a shared dictionary would incorrectly have an encoding displayed in SHOW CREATE TABLE;` or `\d`. Now, DDL from a table with columns using a shared dictionary can be copied and pasted directly to create a new, identical table.
- Resolved an issue where multiple filter expressions using OR could cause a crash if the same column was used on the left side of the expression with different casts.
- Added logging for OmniSciDB server shutdowns due to exceeding the maximum number of available open files on the system.
- Resolved an issue where `INSERT INTO` commands sent from the ODBC driver would fail.
- Fixed an issue where a series of nested queries grouping on float columns could give incorrect results.
- Fixed an issue where importing geojson files with embedded dates could truncate the date epoch to 0 or NULL.
- Resolved an issue where ST_Contains queries using the overlaps join framework could crash or return incorrect results.
- Resolved an issue where importing from a parquet file with multiple row groups could return incorrect results.
- Resolved an issue in the ODBC driver where incorrect data could be returned for double precision types.
- Resolved an issue where geospatial joins could return incorrect results.
- Resolved inconsistencies in argument support for date/time functions. Now, all date/time functions should support literal arguments with or without quotes (for example, `date_part(day, …` and `date_part(‘day’, …)`
- Resolved a small memory leak in the OmniSciDB SQL parser.
OmniSci Render
Fixed Issues
- Resolved an issue where the server could crash when a user disconnected if the users render session had timed out.
- Resolved a crash where switching between different point renders on the same data could cause a crash if hit testing is disabled.
OmniSci Immerse
New Features and Improvements
- New Combo chart with increased configurability and power:
- New chart configurations like row/column, stacked/percentage bar, stacked/percentage line and area, line/bar combination.
- For numerical base dimensions, measures can be configured to display as cumulative and percentage distributions.
- A new “Top N” experience for charts with a group-by dimension, allowing you to select dimension values dynamically or manually (including a new “Add all” option), as well as the ability to configure sorting logic for Top N.
- Chart legends can be pinned to the right or superimposed on the chart.
- The visibility of individual group by series can be toggled on or off from the chart legend
- Chart orientation can be configured between vertical and horizontal.
- The min and max of chart axes can be independently locked. Existing bar and combo charts can “duplicate as New Combo chart” at the dashboard level.
- Chart-specific filters across all chart types, which can be toggled off when not in use.
- For chart-specific filters that require an exact match on the filter value, you can use “quick filters” to access those filters directly on the chart.
- A simplified filter panel, with two modes: the existing “Advanced” mode, and a new “Simple mode” focused on simplifying the consumption and interactivity of filters.
- An updated filter sets experience targeted at simplifying options and offering greater visibility across filter sets.
- Added sorting by column value for dashboards on the dashboards list.
- On multi-layer charts, visibility of individual map layers can be set by zoom level.
- Different map charts can be synced together for pan and zoom actions, regardless of data source.
Note | The New Combo chart, linked pan and zoom, and default filter panel can be configured using feature flags. |
Fixed Issues
- Resolved issue with global filters adding escapes to string values with underscores or percent marks.
- Resolved issue in histogram and combo charts where binning min and max values changed after saving and reopening the chart.
- Resolved issue in the SQL Editor where newly created tables did not appear on the tables list.
- Resolved issue in pointmap where Boolean values could not be selected for the color parameter.
- Resolved issue where invalid config did not cause the web server to fail in a visible way.
- Resolved issue where switching database while viewing a dashboard did not allow the user to open a dashboard in the new database.
- Resolved issue with database switching where user permissions were set incorrectly.
- Resolved issue in the filter panel where time-based filters were displaying local time vs. UTC.
- Resolved issue where cohort creation errored out on dashboards containing geo-joined multilayer charts.
- Fixed minor UX and display issues, specific to the dark and light mode themes.
5.2.2 - May 7, 2020
OmniSci release 5.2.2 includes a new feature and fixes two issues.
OmniSciDB
New Feature
- Added support for geospatial columns in temporary tables.
Fixed Issues
- Resolved an issue in which a render request and a table modify operation (for example, COPY FROM, DROP TABLE, TRUNCATE TABLE), dispatched simultaneously, could cause a lockup.
- Fixed an incorrect result for queries that sort based on the result of an aggregate in which the aggregate type is not NULL. This typically occurred with an explicit non-NULL filter in the WHERE clause on the input to the aggregate.
5.2.1 - April 20, 2020
OmniSci release 5.2.1 fixes an issue.
OmniSciDB
Fixed Issue
- Resolves an issue where OmniSciDB fails to respond correctly to operating system signals in some contexts.
5.2.0 - April 16, 2020
OmniSci release 5.2.0 contains several new features and improvements and fixes a number of issues.
OmniSciDB
New Features and Improvements
- CUDA requirement is updated to version 10.1. OmniSciDB now requires NVIDIA driver v418.39 or later.
- The UDF compiler now requires Clang++ v9.0.
- Updated embedded Apache Arrow to support v0.16.
- Added INT8 support to Arrow result converter.
- Multi-fragment hash join iterator added to improve performance on multi-fragment inner joins and geospatial joins.
- Added NULL support for geospatial types, including in ALTER TABLE ADD COLUMN.
- Improved performance for query interrupt (currently disabled by default), allowing you to interrupt a query in omnisql (using Ctrl+C) and JDBC (using the Cancel endpoint).
- Added SQL SHOW commands:
- SHOW TABLES -- Show all tables the user currently has access to in the logged-in database.
- SHOW DATABASES -- Show all databases the user can log in to.
- SHOW CREATE TABLE -- Show the DDL CREATE TABLE command for a given table.
- SHOW USER SESSIONS -- Show all persisted sessions on the server (superuser only). Expired sessions are still shown; they are removed from session state on login attempt.
- Added support for the ALTER TABLE DROP COLUMN command.
- Updates and deletes are now supported on temporary tables.
- Added additional UDF command-line options for systems using nondefault Clang++ installation locations.
- Added support for quoted table names in DDL and DML commands. Use quotes if the table name contains special characters or matches a reserved word.
- Added support for window functions in distributed mode.
- JDBC driver updates:
- Supports the cancel method, requesting that the database cancel the current request. The
enable-runtime-query-interrupt
flag must be set to TRUE in OmniSciDB configuration. - Handles JDBC function escape syntax for the fn keyword.
- Supports the getMetaData endpoint.
- Implements setSchema as a null operation (OmniSciDB currently does not support schemas) instead of throwing a "method not implemented" error.
- Supports the cancel method, requesting that the database cancel the current request. The
- Added support for EXTRACT(DATEEPOCH from m), where m is a TIMESTAMP column.
- omnisql now returns a nonzero exit code if the last executed query failed to complete (threw an exception).
- Improved logging of connection failures when using LDAP, SAML, or other external authentication providers.
- Added support for COPY TO in distributed mode.
- Added support for importing compressed parquet files (gzip).
- Various performance improvements, particularly for join queries, projection queries with order by and/or limit, queries with scalar subqueries, and multicolumn group-by queries.
Fixed Issues
- Resolved a series of locking sequence errors, which could cause deadlocks when multiple users were interacting with the database and rendering engine at the same time.
- Improved the ability of omnisci_server to detect a failure in the Calcite service, resulting in automatic restart of omnisci_server when managed by systemd.
- Resolved an issue where projection queries running in columnar mode could crash the server.
- Resolved an issue where queries could fail or crash the server with “error code 8”. Those queries are now gracefully retried or aborted, and a correct error message is now displayed (for example, "not enough GPU memory to execute the query".)
- The geospatial importer is now more tolerant of unsupported types. Instead of causing the import to abort, unsupported types in a shapefile are skipped and a message is logged.
- OmniSciDB now returns an error when running the OPTIMIZE command on a view. OPTIMIZE is not supported on views.
- Resolved a crash on binary operations between TINYINT and DECIMAL/NUMERIC types.
- Resolved a crash when attempting to import to a table with TINYINT columns using StreamImporter or StreamInserter.
- Resolved an issue where a LogicalValues query (query over VALUES with no table in the FROM clause) with a sort could crash the server.
- Resolved an issue where SQLImporter failed to import geo datatypes.
- Disabled ALTER TABLE ADD COLUMN on tables with sort_column. This previously caused the server to crash.
- Improved handling of special characters in SQL queries, including quotes.
- Resolved issues where join query results were not updated correctly with table data changes after an UPDATE, DELETE, TRUNCATE, or ALTER command.
- Resolved an issue where SQL CASE statements with Boolean arguments failed to implicitly cast correctly, resulting in a cast failed error message.
- Resolved an issue where multistep queries with a sort could crash the server. These queries are typically dispatched for choropleth charts in Immerse.
- Fixed an issue where a join on a literal or values table could crash the server.
- Resolved an issue where users created prior to the can_login property being added could not log in.
- Resolved an issue where some API calls would not properly reset a users idle session duration, resulting in premature idle session timeouts.
- Fixed an issue where a string dictionary overflow during CREATE TABLE AS SELECT or INSERT INTO AS SELECT could crash the server. Now, an exception is thrown and the query aborts.
OmniSci Render
New Features and Improvements
- Polygon rendering in cached mode has been deprecated. For migration steps for custom clients, see Migrating Vega Code to Dynamic Poly Rendering.
- Increased default render-mem-bytes config setting from 500MB to 1GB.
- Added a new config option, max-concurrent-render-sessions, to set the maximum number of concurrent render session caches. Default value is 500.
Fixed Issue
- Resolved a hit-test issue when trying to retrieve data from a column that uses LIKE/ILIKE in an expression.
OmniSci Immerse
New Features and Improvements
- SQL Editor is updated:
- SQL query formatting is now available, which inserts whitespace for additional readability.
- You can run a selected portion of the SQL query. Selecting text transforms the “Run query” button to “Run selected”.
- The table browser supports filtering on column type.
- From the table browser, clicking on a table or column name shows options for inserting “query snippets,” or a shortcut to common queries that provide additional information about the table and its columns.
- The query history tab lists previously run queries from the active session, and clicking a query displays previously fetched results. Click the insert icon to insert the query back into the input window to re-run it.
- You can press tab for autocomplete on queries and resize the results window.
- Using multiple databases in Immerse has been enhanced:
- Dashboard URLs are now unique across databases.
- You can access additional databases from the account dropdown in Immerse, either in the current browser tab or as a new tab.
- You can access multiple databases at the same time, as long as the user sessions are active.
- Load time for the dashboards list is reduced significantly.
- Count of records can now be used as filtering criteria during cohort creation.
- Error handling is improved.
- Custom logos can now be configured separately for light and dark themes.
- Logos can be configured to deep-link to a specific URL.
Fixed Issues
- Fixed formatting issue where values above 100M were rounded to two significant digits; additional precision is added to the default number formats.
- Fixed issue on the histogram chart where the last bin was missing. When you log in one browser tab, you are logged out across all other browser tabs.
- Added tooltips in column section to make reading long column names easier.
- Fixed issue with custom measures created with CASE statements not rendering correctly in choropleths.
- Fixed issue where shapefile imports failed on files with uppercase extensions.
- Fixed issue where appending data errored out when import settings were changed.
- In heatmaps, dates are now sorted correctly--by time--instead of alphabetically.
- Upgrading from HTTP to HTTPS now works correctly.
5.1.2 - March 2, 2020
OmniSci release 5.1.2 contains new features and several fixed issues.
OmniSciDB
New Features and Improvements
- Added support for SQL VALUES syntax, allowing literals to be used inline in SQL query expressions.
- Added
calcite-service-timeout
to the OmniSciDB server configuration parameters, allowing the timeout between OmniSciDB and the Calcite process to be increased for high utilization systems. See calcite-service-timeout on the Configuration Parameters page.
Fixed Issues
- Resolved an issue where multiple, concurrent shapefile imports from Immerse could fail.
- Resolved an issue where concurrent imports and render queries could cause a crash.
- Fixed ALTER TABLE ADD COLUMN in the presence of sharded tables. Previously, the new column was not added to all shards.
- Removed a dependency on
nvcc
being available in the user’s PATH when compiling C/C++ UDFs. CUDA is still required, butnvcc
does not need to be accessible to OmniSciDB. - Removed GPL-licensed com.unboundid.unboundid-ldapsdk package that had been included in mapd.jar.
OmniSci Render
Fixed Issue
- Added support for transient string dictionary columns in ordinal scales.
OmniSci Immerse
New Features and Improvements
- Added the ability for polygon borders to be the same color as the polygon fill color, rather than always defaulting to white.
- Added the ability to display a list of databases to choose from at login, configured via servers.json. See login_panel_databases.
5.1.1 - February 18, 2020
OmniSci release 5.1.1 contains one significant fixed issue.
OmniSciDB
Fixed Issue
- Resolves an issue with OmniSciDB 5.1.0 on several cloud service provider marketplaces.
5.1.0 - February 5, 2020
OmniSci release 5.1.0 contains many new features and fixes.
OmniSciDB
New Features and Improvements
- Added an option to the web server which allows users to disable TLS
certificate verification on startup. While this is not recommended for
production deployments, services running in unencrypted mode in a
container require this option to properly start using the
startomnisci
script. The web server backendUrl parameter now also respects https, if configured in the OmniSciDB config. - Enhanced OmniSciDB log files to include inbound client IP address and protocol for all endpoints and additional logging for import queries when CUDA contexts fail to be created.
- Improved error handling for View queries. Errors now display the view DDL and instructions for resolving the underlying issue that prevents the view from being executed.
- Improved support for EXISTS and NOT EXISTS subqueries.
- Added support for LINESTRING, POLYGON, and MULTIPOLYGON in user-defined functions.
- Improved logging of SAML and LDAP roles and associated actions when authenticating with an identity provider. Logs are written to the INFO log when a user establishes a new session.
- Added support for the
can_login
user attribute. When set to false, the user is unable to log in to any database. - Improved performance for multi-column GROUP BY queries, as well as single column group by queries with high cardinality. Performance improvement varies depending on data volume and available hardware, but most use cases can expect a 1.5 to 2x performance increase over OmniSciDB 5.0.
- CREATE TABLE AS SELECT queries now support an optional IF NOT
EXISTS clause. For example:
CREATE TABLE IF NOT EXISTS test AS SELECT. . .
- Improved the resiliency of query parse errors, including allowing for more special characters inside quoted strings.
- Added support for UPDATE via join with a subquery in the WHERE clause.
- Added support for DELETE via join queries.
- Added support for CREATE TEMPORARY TABLE.
- Added support for JDBC authentication using a PKI certificate.
- Added support for signed SSL certificates with a non-system
certificate authority (
-ssl-trust-ca
).
Fixed Issues
- Resolved an issue where embedded tabs or new lines could cause a crash during query parse.
- Resolved an issue where MIN/MAX/SUM over a NOT NULL column could return the NULL sentinel representation instead of NULL when no rows passed the given filter.
- Resolved an issue where SSL keystore passwords were visible in the system process list when OmniSciDB was running.
- Resolved an issue where adding a NULL to a date or timestamp value incorrectly resulted in an addition. Adding a NULL to a date or timestamp now generates an exception.
- Suppressed extraneous log messages when the query completion hints system was activated (typically either by hitting the tab key in `omnisql` or by using the SQL Editor in Immerse).
- Fixed an issue where the GRANT and REVOKE command for dashboard privileges failed when running in distributed mode.
- Resolved various issues when updating variable length datatypes (arrays) containing NULL values.
- Resolved an issue where overflow / underflow errors were not detected during import or cast operations on TIMESTAMP types.
- Improved the stability of JOIN queries in distributed mode.
- Resolved an issue where INSERT INTO TABLE AS SELECT using geospatial columns could incorrectly throw a "column encoding sizes do not match" error.
- Resolved an issue where connections made to the OmniSciDB HTTP(S) endpoint would be refused when running warmup queries.
- Resolved an issue where the
log_severity
configuration file option failed to read quoted values. - Resolved an issue where taking the absolute value of a TINYINT column type using the ABS() function could crash the server.
- Improved type checking when comparing geospatial types. Now, all geospatial types are required to have the same SRID, if specified.
OmniSci Render
Fixed Issues
- Resolved an issue where hit-testing results might be incorrect when rendering cached polygons.
- Resolved an issue where hit-testing an accumulation render in distributed mode would return an empty result when using multi-gpu-configured leaves.
- Resolved an issue where users attempting to render the result of a view were required to have access to the underlying table. Now, only access to the view is required for render query execution.
- Resolved an issue where accumulation renders could crash in distributed mode when the results are relatively unbalanced across the leaves.
- Resolved an issue where an incorrect buffer layout error could be thrown incorrectly when using Vega transforms in successive renders.
OmniSci Immerse
New Features and Improvements
- Log-ins are fully sessionized and persist across page refreshes.
- Pie chart now supports “All Others” and percentage labels.
- Cohorts can now be built with aggregation-based filters.
- New filter sets can be created through duplicating existing filter sets.
- Dashboard URLs now link to individual filter sets.
- The top level "toggle off" filters option now supports toggling those filters back on.
- A 5-second refresh rate has been added as the lowest refresh setting for dashboards.
- Added ability to increase the size of bubbles on the Bubble chart, and to be able to manually configure the MIN and MAX size of bubbles when there is a size measure.
- Improved display and messaging of error modals.
- Added a label for the current database in the account settings dropdown.
Fixed Issues
- Fixed error handling resulting in popup loop due to incorrect Custom Measure syntax, on choropleth rendering, and during specific cases of chart type switching.
- Fixed error handling where there was no error information presented when a dashboard name was duplicated.
- Fixed an issue where after adding a color dimension on one source, the user is unable to change other sources to the bar style.
- Fixed an issue where changes to global filters were not picked up by the Save button.
- Fixed an issue where there was a shape filter delay on the zoom in/out button action.
- Fixed an issue where Bar chart inverse filters did not correctly account for NULLs.
- Fixed an issue where Bar and Table charts were showing errors when switching to charts with a color dimension.
- Fixed an issue in Bubble chart where switching to an extract unit caused Immerse to crash.
- Fixed issues related to dark and light theme font color inconsistencies.
- Fixed an issue where chart filters on extracted timestamps appeared incorrectly in the filter panel when time series charts were brushed.
- Fixed a formatting issue causing x-axis labels to only show two significant digits.
- Fixed an issue where certain filters from charts were not showing up in the filter panel.
- Fixed an issue where filtering on a measures only Table chart caused Immerse to be in an error state.
5.0.1 - November 18, 2019
OmniSci release 5.0.1 contains two critical fixes.
- Fixed an issue where CREATE TABLE AS SELECT or INSERT INTO TABLE AS SELECT could return incorrect results in distributed mode.
- Fixed an issue where projection queries over sharded tables could return incorrect results in GPU mode.
5.0 - November 14, 2019
OmniSci release 5.0 contains many new features and fixes.
OmniSciDB
New Features and Improvements
- OmniSciDB now supports certain forms of correlated subqueries.
- OmniSciDB now supports update via subquery, to allow for updating a table based on calculations performed on another table.
- Added support for binary dump/restore of database tables.
- Added support for compile-time registered user-defined functions in C++, and experimental support for runtime user-defined SQL functions and table functions in Python via the Remote Backend Compiler (see omnisci_examples folder within the OmniSci JupyterLab instance for example UDF/UDTFs).
- Multistep queries that generate large, intermediate result sets now execute up to 2.5 times faster by leveraging new JIT code generator for reductions and optimized columnarization of intermediate query results.
- Added support for LIMIT 0.
- Added SAML support for auth0 and ping, and Oracle Access Manager.
- Added support for window functions inside complex expressions.
- Standardized encrypted transport options across ODBC, JDBC, SQLImporter, and omnisql.
- Added an option to log LLVM IR or NVIDIA PTX to a log file per
query-step using
--log-channels
. - Added support for geospatial POINT construction from literal or computed values.
- Added support for SQL operators IS TRUE and IS NOT TRUE.
- Added support for SQL operators EXISTS and NOT EXISTS.
- Added support for geospatial types to StreamImporter.
- Added support for updates through joins.
- Docker editions now support Ubuntu 18.04.
- Generalized performance and optimization improvements.
Fixed Issues
- Aggregating empty results in distributed mode could cause a crash.
- The Apache Arrow interface (sql_execute_df) properly handles empty results.
- Fixed an issue where join queries could give no results in distributed mode, even if the tables were properly sharded or replicated.
- Fixed an issue where time zones could be parsed incorrectly on import of date/time/timestamp types.
- Improved clarity of the
get_db_objects_for_grantee()
(Thrift) /\object_privileges
(omnisql) APIs and resolved an issue where all privileges were not always included. - Fixed an issue where Calcite could crash on malformed queries.
- Resolved issues where aggregate functions could overflow, returning an incorrect result.
- Resolved an issue where the S3 importer could crash when attempting to import from a SSL encrypted OmniSciDB server.
- Resolved an issue where small deviations in image appearance could occur during anti aliasing.
- Resolved an issue where adding a column to a sharded table could corrupt the table.
- Resolved an issue where commas in log messages could cause the logs to be improperly parsed by OmniSciDB or third-party utilities.
- Resolved an issue where the ARRAY constructor could crash in the presence of a sort or limit.
- Fixed an issue importing MULTIPOLYGON columns from PostGIS via SQL Importer.
- Resolved an issue where NULL was not handled correctly in AND/OR operations.
- Resolved an issue where creating a new table via CTAS would fail with a parse error if the table name contained the word with.
- Resolved an issue where CTAS would not properly apply the LIMIT or OFFSET if present in the query.
- Resolved an issue where DECIMAL columns could overflow when used in a CTAS query.
- Fixed a crash that could occur when a user reauthenticates after session timeout.
- Fixed a crash when filtering geospatial columns by IS NULL/IS NOT NULL. (Geospatial nullability is not yet supported.)
- Resolved an issue where compressed POINTs could be mishandled during result set iteration.
- Addressed known crashes in aggregators with variable-length arguments, including various geometry types and nonencoded strings.
- Fixed an issue during OmniSci ODBC Driver DSN Setup, where the “Ignore Invalid Certificates (not recommended)” field is unavailable in the dialog box.
- Handle more gracefully a Calcite exception error that caused the server to abort.
- Fixed a crash occurring when a prior query result was passed through a SQL function using a cast.
- Resolved a crash that could occur when running aggregate functions on geospatial types in distributed mode.
- Fixed an issue where binary operations on TINYINT types could crash.
- LDAP and SAML role synchronization is now case insensitive, matching OmniSciDB internal representation.
- Fixed an issue where combining columnar support with a shared table under ORDER BY or LIMIT could return an incorrect result.
- Fixed an issue where a long query would time out a session, invalidating the operation or series of operations that required a longer execution time.
- Resolved an issue where a table could be created with a specified shard_key but without a shard_count.
- Fixed an issue where the AVG aggregate function is not properly cast when passing floating-point data.
- Fixed an issue where SELECT queries with no filter and a LIMIT could return incorrect results on a table where one or more rows have been deleted.
- Fixed an issue where a JOIN may not return correct results on a distributed setup.
- Resolved issue where embedded new line characters could cause CTAS or ITAS queries to be rejected.
OmniSci Render
New Features and Improvements
- SPIRV is now the default shader IR, and the --enable-spirv flag has been removed. Fallback to disable SPIRV is supported automatically.
- The
angle
(rotation in degrees & radians) property is now available in Vega symbol marks. - The
wedge
property is now available in Vega symbol shapes.
Fixed Issues
- Fixed a choropleth rendering issue when a FLOAT column is used to drive the color.
- Fixed a data underflow issue for integer inputs for quantitative/qualitative scales.
- Addressed possible validation issue when a floating-point column is used as an input for scales with explicit integral values defined for the domain.
OmniSci Immerse
New Features and Improvements
- New filter panel that delivers major improvements, including:
- Filter Sets providing access to different sets of filters in one dashboard.
- The ability to toggle filters on and off, in addition to removing them.
- The ability to visualize and modify cross-filters directly from the filter panel.
- The ability to visualize from which charts cross-filters are generated.
- The ability to filter columns by type, making it easier to find the correct column for a filter.
- A custom filter builder that gives visual access to table columns for greater context and easier generation of filters
- The ability to filter a text column on whether it starts with or end withs a certain pattern.
- The ability to multi-select patterns on which to filter a text column.
- Cohort building and analysis capabilities, including:
- The ability to use global and cross-filters to interactively build cohorts of interest.
- The ability to apply a cohort as a dashboard filter, either within the existing filter set or in a new filter set.
Fixed Issues
- Fixed issue in multilayer map charts where prior filters were being kept on the dashboard, even after the layer was removed.
- Fixed an issue where color legend min/max inputs were not retained.
- Fixed an issue where table name changes were not saved in the Update Settings flow.
- Fixed experience in combo chart where a chart with all negative values had its axis inverted to positive; now the values stay in the original orientation.
- Fixed an issue in map chart where resizing the chart would create an asymmetric resize animation.
- Fixed an issue in dashboards search where results do not display correctly if only one character is used for the search.
- Fixed an issue where geo join columns can be used in custom color measures across both the fact and geo join tables.
- Fixed an issue in scatter chart where the circle filter goes out of container after clicking the cancel button.
- Fixed an issue where global filters errored with date inputs that returned no results.
- Fixed an issue for combo chart where secondary measure formatting was incorrect.
- Fixed an issue where linemap size measure had incorrect range values.
- Fixed an issue where “OmniSci” appears in browser tab before being overwritten via whitelabeling.
- Fixed an issue where line chart series were not fully migrated to combo chart.
- Fixed an issue where Oracle Access Manager deep links were working incorrectly.
- Fixed an issue in combo chart where bars switched to the secondary axis overlap the bars in the primary axis.
- Fixed an issue where the streets Immerse theme appeared layered on top of points.
- Fixed a lag in shape filters.
- Fixed an issue where invalid custom SQL filters would create a dashboard-level error state.
- Fixed an issue where number charts were not updating with the rest of the dashboard.
- Fixed how web links in text charts were incorrectly deep-linking outside the product.
- Fixed an issue where custom filters containing OR statements were incorrectly applied to queries sent to OmniSciDB from Immerse.
- Fixed an issue where pointmap values would disappear after the map theme was changed.
- Fixed an issue where changing chart type from line to combo would remove locked x-axis values.
- Immerse chart type selections scroll in a width-constrained browser.
- Import/export dashboard metadata icons have been updated for improved clarity.
4.8.1 - August 27, 2019
OmniSci release 4.8.1 contains several fixes.
OmniSciDB
Fixed Issues
- Fixed an issue that occurred when creating a table with an invalid shared dictionary column.
- Resolved an issue where a CSV import with a row delimiter inside a quoted string would cause a premature line break, resulting in incorrect imported values for all subsequent rows.
- Resolved an issue starting OmniSciDB inside a Docker image on legacy versions of Docker (affects version 18.06 and prior).
- Fixed an issue affecting importing data from AWS S3 when the import statement was malformed.
- Fixed an issue where importing geospatial data using the SQLImporter would fail after importing 10,000 records.
- Fixed an issue affecting multi-step distributed queries over empty tables.
4.8.0 - August 6, 2019
OmniSci release 4.8.0 contains several new features and fixes.
OmniSciDB
Major Changes and Known Limitations
- Jupyter notebook integration is an experimental feature. See Jupyter Integration.
- Thrift methods
get_frontend_view
,get_frontend_views
,create_frontend_view
,delete_frontend_view
,get_table_descriptor
, andget_row_descriptor
are deprecated and no longer function. If you use one of these methods, you receive an error message describing how to migrate to the new API calls. - Arrow version upgraded to 0.13.0.
- Minimum supported Nvidia CUDA driver is now 410.48.
- Significant additional controls available in the logging framework. See Logs and Monitoring. Note that the individual file names for the logs have changed from <service_name>.<machine_name>.<severity>.<timestamp> to <service_name>.<severity>.<timestamp>.log.
- When running an encrypted server configuration in Docker
containers there is a current limitation that the aggregator
omnisci_server and the omnisci_web_server must be running in the
same Docker container and they cannot be started with the
startomnisci
script, which is the default. The use of a Docker COMMAND is required to start the services. For example:command: | /bin/bash -c "/omnisci/bin/omnisci_web_server --config /omnisci-storage/omnisci.conf & /omnisci/bin/omnisci_server --config /omnisci-storage/omnisci.conf
For more information, contact OmniSci support.
New Features and Improvements
- Added support to log user's roles information during login event.
- Added support to allow communication among distributed system components to use encrypted binary connections.
- Added OPTIMIZE support for sharded tables, allowing administrators to create more optimal schemas.
- Added support for ST_Point geo constructor.
- Added new flag is_super (whether current session is super user) to session info returned from Thrift get_session_info.
- Improved performance of some high-cardinality group-by queries.
- Improved performance of ST_Contains by adjusting the bounding box heuristic.
- Improved error messages for unsupported function/type combinations.
Fixed Issues
- Fixed issue with ODBC connector not working with PowerBI.
- Fixed segfault during COPY FROM direct to leaf node on distributed setups.
- Fixed issue with Check Failure related to a query on a distributed sharded configuration.
- Improved signal handling and shutdown procedures for OmniSciDB server.
- Fixed an issue in geo join due to table join reordering.
- Fixed an issue where a non-Admin user could set a license key.
- Fixed an error resulting from running the same Vega render twice in quick succession.
- Fixed issue with a program error from a query that casts a TIMESTAMP(0) to TIMESTAMP(3).
- Added support for more graceful shutdown of OmniSciDB when receiving OS signals.
- Fixed issue with web server incorrectly switching to SAML mode if a session ID cookie is present.
- Fixed issue for server program errors on GROUP BY queries with nullable SMALLINT and TINYINT keys.
- Fixed issue where empty string as group name causes server program error.
- Fixed issue where the startomnisci script no longer works on CentOS.
- Fixed issue where ROUND_TO_DIGIT(x, y) (all data types) resulted in a server program error.
- Fixed edge case where Log10(NULL)/ Log(NULL)/LN(NULL)/EXP(NULL) was being computed and resulted in a number.
- Fixed issue where rendering join queries with multiple rowids produced the wrong results.
- Fixed issue where \detect did not appear in \h listing in omnisql.
- Fixed issue where requesting Arrow results on CPU (via select_ipc) results in the query executing on CPU, rather than just the resultset being located in CPU memory.
- Fixed issue to workaround where cuDF does not recognize arrow::date32 type, using arrow::date64 for gpu buffers.
- Fixed issue where query returns different results on distributed and single-node.
- Fixed issue where hit testing on Line map with color measure selection throws an error.
- Fixed issue with a render resulting in CHECK failure from a Choropleth Vega query.
- Exception for a query and subquery with differing limits.
Immerse
Major Changes
- Line charts are deprecated in 4.8. While existing Line charts continue to function normally on dashboards, new edits to those charts cannot be saved. OmniSci recommends upgrading Line charts to Combo charts to take advantage of the latest feature improvements.
- Over the coming releases, OmniSci will stop developing new Immerse features for Internet Explorer. We strongly recommend all customers switch to a non-IE browser to experience the latest Immerse features.
New Features and Improvements
- Immerse now directly integrates with JupyterLab. You can send SQL queries to Jupyter from SQL Editor, or access it directly from top level navigation. See Jupyter Integration.
- Combo chart supports focus zoom. Moving the mouse wheel up and down zooms the chart in/out, while holding an Option or Shift key while scrolling pans the chart from right to left. Clicking the Reset button on hover resets the chart to the original timeframe.
- You can visualize Immerse in a new Dark Mode theme, accessible through account settings.
- Immerse supports importing and visualizing millisecond timestamp data.
- Immerse lets you duplicate charts within dashboards.
- Immerse lets you export and import dashboard metadata within Immerse.
- Immerse now pops up a modal when you are using a non-WebGL supported browser, informing you of the reduced experience.
- + and - buttons appear on geospatial charts as zoom controls.
- Offline maps now include a Minimalist base map layer at the country level.
- Custom base map layers are now defaulted first for easier selection.
Fixed Issues
- Updated combo chart's dynamic top 5 colors to consistently show the five series with the most data volume.
- Fixed issue where pop-ups on Choropleth were failing to appear for views created from multiple data sources.
- Fixed custom colors resulting in an add/remove loop in Combo chart, and added a toggle to control whether the chart is in dynamic or fixed mode.
- Incorrect global filters now error gracefully rather than remain part of the active filters list.
- Fixed issue where Choropleth was representing the Other category always as grey; now the Other category correctly shows the selected color.
- Fixed issue where error messages were showing up during dashboard duplication.
- Fixed issue where key manager shows key issuer instead of client name/company.
- Fixed issue where case-different, same text columns were causing a "table does not exist" error.
- Fixed issue where mapd-connector running under Node.js was incorrectly returning null for some functions.
- Fixed issue causing blank page when Add Chart button is pressed during dashboard load.
- Fixed issue where raster chart gaps showed when a Combo chart was present on the dashboard.
- Fixed issue where x-axis scale on a Combo chart is incorrect when the relative date filter is applied in addition to a second measure.
- Fixed issue where Bar chart was incorrectly applying formatting to color measures and dimensions.
- Fixed issue where filter label and dropdown menu were unconnected during the scroll action.
- Fixed issue where Combo chart binning label was incorrect.
- Fixed issue where certain custom colors were not discoverable in the Combo chart search dropdown.
4.7.1 - June 27, 2019
OmniSci release 4.7.1 contains several fixes.
OmniSciDB
OmniSci Immerse
- Fixed an issue causing an increased margin on the right side of geospatial charts.
- Fixed an issue causing errors during dashboard load.
4.7.0 - June 13, 2019
OmniSci release 4.7.0 contains several new features and fixes.
See also the OmniSci Blog.
Major Changes and Known Limitations
- OmniSci Core has been renamed to OmniSciDB throughout the product and in the documentation.
- Thrift methods
get_frontend_view
andcreate_frontend_view
are deprecated. - Default user and database names are changed. Note and
update your scripts accordingly:
- The default username has been changed from mapd to
admin. All new data directories created with
initdb
create a superuser with the username admin. Existing usernames are not migrated. - The default username for all utilities is now admin. Existing
users must override the default username in connection strings /
command-line arguments of utilities (for example,
omnisql --user mapd
). ALTER USER <
is now supported, allowing you to rename the existing mapd user to admin if you do not want to use username overrides in your applications.> RENAME TO < > - After rename, any sessions connected to the renamed database are invalidated and need to log in again.
- The default username has been changed from mapd to
admin. All new data directories created with
- The default database has changed from mapd to omnisci.
All new data directories create a default database named omnisci
instead of mapd.
- The default database for all utilities is now named omnisci.
Similar to the username change, you can override the default
database: for example,
omnisql --db mapd
for existing installations. ALTER DATABASE <old_db> RENAME TO <new_db>
is now supported, allowing you to rename an existing mapd database to omnisci for convenience.- After rename, any sessions connected to the renamed database are invalidated and must log in again.
- The default database for all utilities is now named omnisci.
Similar to the username change, you can override the default
database: for example,
- OmniSci 4.7 fixes an issue with
OPTIMIZE TABLE WITH VACUUM
, which previously could cause an incorrect entry in the storage for the optimized table. If you have usedOPTIMIZE TABLE WITH VACUUM
, you should export and then re-import or reload your data. - OmniSci 4.7 is the last version to support NVIDIA driver version 386. Future releases will require NVIDIA driver version 410 or higher.
- Any blank passwords (that is, nothing) are reset to a random 72-character string. This is required to prevent any accidental blank passwords enabled in the system. Previous versions automatically created blank passwords when logging on with LDAP or SAML, which creates a conflict with the new fallback to local login support.
- ODBC usage requires the license on the connecting server to be Enterprise enabled.
- \clear_gpu and \clear_cpu now require superuser privileges to run.
- Users that have access to a database through a role are now returned as
part of a
get_users
call for a specific database. More users are now visible in shared Immerse dashboard dialogues. - Apache Calcite version is now 1.19.
- For geojoin-configured Choropleth charts, Immerse now generates a new poly render query that no longer uses the server poly cache. The poly cache may be deprecated completely in a future release. The change includes better distribution of poly data across all available GPUs, causing an overall memory footprint improvement.
TEXT ENCODING DICT(n)
columns cannot be encoded as less than 32 if they are to be used as a SHARD KEY on a sharded table. This restriction will be addressed in a later release.
OmniSciDB
New Features
- OmniSciDB now supports
INSERT TABLE AS SELECT
(ITAS) on both single node and distributed, including sharding support. - Joins on bucketed date/time are now bucket-size aware and more memory-efficient.
- OmniSciDB now supports Window functions. Empty Window function
partitions are currently not supported; that is, all Window functions
must include a
PARTITION BY
key in theOVER
clause. Also, OmniSci recommends that you use Window functions over aggregate query outputs at this time (instead of raw data). Future releases aim to improve scale and performance and remove these restrictions; see the documentation for details on what is supported. - The default username is now admin.
- OmniSci DB now supports
ALTER USER RENAME
, which allows you to rename users. - OmniSciDB now supports Domain-based Authentication, allowing for
multiple login modes (SAML, LDAP, and local) depending on user ID.
This allows you to create OmniSci admin accounts outside of LDAP and
SAML. The server first checks for SAML and then for LDAP. You configure this in the server configuration file. In addition, the server
now allows authorization to fall back to local OmniSci authorization
if LDAP or SAML (or both) are enabled, but fail. The
--allow-local-auth-fallback
controls this behavior, and is set to false by default. - OmniSciDB now supports Distributed Polygon Rendering, allowing for much greater scale in rendering. For Enterprise customers running in Distributed mode, the Choropleth chart in Immerse now supports backend rendering by default.
- ODBC allows for cookies on http and https connections; relevant only if a load balancer is used.
OPTIMIZE TABLE
now recomputes metadata for dictionary-encoded string columns, supporting updates and deletes on dictionary-encoded string data.- Performance improvements:
- (Experimental) Sorting columns at import time (a user operation) can result in improved performance by up to 3.5x on query patterns that involve filters on those columns.
- Improvements in distributed query performance involving joins. Distributed execution mode requires that your tables are structured correctly for optimal query execution. Immerse queries are formulated to work in Distributed mode, but customers using OmniSciDB with custom applications need to ensure that any table on the inside of a join is either replicated or the join relation is on a sharded column in both tables, unless both sides of the join relation are the result of an intermediate query step.
- View optimization is now on by default. OmnisciDB optimizes all view queries through RA rewrite. This should result in a noticeable reduction in the number of steps required by many view queries.
- Improved performance in distributed mode from more efficient result set serialization.
- Improved performance of multistep queries in which subsequent steps are projection nodes.
- Improved performance of filter queries in which the filtered column comes from the inner table in an inner join relation.
- Added support for
SQL WITH
syntax in poly render queries. - Added support for
IF NOT EXISTS
andIF EXISTS
to databaseDROP
andCREATE
statements, respectively. - Added new logging messages for monitoring query execution in Distributed mode.
Fixed Issues
- Fixed SAML-configured login that made regular access to other utilities awkward or restrictive.
- Improved performance by eliminating runtime loads of fixed-length array sizes that slow down POINT geo functions.
- Added cookie support to ODBC driver.
- Fixed a render error in Vega runtime that dumped the entire FRAGMENT SHADER code in the log.
- Fixed an issue where a scalar sub-query returned multiple rows exception was thrown while validating scalar sub-queries.
- Fixed an issue where update storage layer erroneously used
std::numeric_limits< double >::min()
when initializing the max range of a nonnegative number. - Fixed a program error resulting from a multi-level join query.
- Fixed a program error on hash tables with more than 2B entries.
- Fixed an issue where a cast from BOOLEAN to BOOLEAN was not supported, resulting in an error.
- Fixed a program error resulting from tables with a negative epoch.
- Fixed an issue where the importer did not skip rows with incorrectly sized fixed-length arrays.
- Fixed an issue where an exception resulted when \clear_gpu was run after any render.
- License configuration parameter now allows quotes.
- Fixed an issue resulting in incorrect results on CPU for group by query with CASE.
- Fixed a program error that resulted from a
COPY FROM
on Parquet withPOINT
geo type. - Fixed a render error when going from a non-in-situ query to a projection query that uses multiple GPUs.
- Fixed a render error when updating from min/max -> stddev density accum renders.
- Fixed an issue where shard count requested with
CREATE
was different from what was reported with\d
in Distributed mode. - Fixed an issue where lack of rowid in projection queries negatively impacted Vega property updates.
- Fixed program error when shard count exists, but shard key does not.
- Fixed an issue with distributed line rendering not respecting Vega line format with scalar columns.
- Fixed an issue involving joins on a value or null. For example, a.x = b.x or a.x is null and b.x is null.
- Fixed a regression with multilayer render on Distributed systems using Vega xforms and aggregation/projection queries.
- Fixed importer program error resulting from shapefile with null geo features.
- Fixed program error during
SAMPLE
on a geo join in nondistributed mode. - Fixed program error with
GROUP BY
with BIGINT and INT columns. - Fixed server program error resulting from
CASE WHEN/THEN
string test select join with INT, FLOAT, and SMALLINT columns caused a server check and program error. - Fixed an issue where a user could not be dropped if the username contained a period.
- Fixed program error with geo function filters under certain circumstances.
- Fixed an issue with JOIN WITH subquery not returning results in a Distributed environment.
- Fixed an issue where a non-superuser user was not included in
get_users
Thrift call when the user has ACCESS/SELECT database rights. - Setting a license key through Immerse or omnisql now works in HA mode.
- Invalid SQL casts now produce more meaningful error messages.
- Fixed a program error involving render query hit testing in Distributed mode.
- Fixed a Vega bug involving dictionary-encoded string columns from an aggregate target in an ordinal scale.
- Improved performance of projecting queries with geospatial targets in Distributed mode.
- Calcite server no longer has a program error if the user passes in an empty string.
OmniSci Immerse
Known Limitations
- Distributed Poly rendering on Choropleth charts introduced in 4.7
has the following known limitations (Enterprise Edition):
- With the server-side poly cache no longer being used, some render performance issues with geojoin configured Choropleth charts can occur. If the dimension table for the geojoin (that is, the poly table) has a large number of rows, you might see some performance degradation in release 4.7. Internally, tables <100K polygons tend to perform equally to the cache, 100K-500K rows sees mild degradation, and >500K rows can see more substantial degradation. Performance is ultimately dependent on the total number of vertices (not rows).
- Currently, neither Immerse nor the server can be configured to use the poly cache. This limitation impacts Immerse users only. Custom clients doing server-side polygon rendering using join queries can continue using existing Vega code and use the poly cache. OmniSci recommends that you switch to the new query format; instructions for doing so will be included in a future release. If you prefer to make these changes beforehand, contact OmniSci support.
- A known issue with Distributed poly rendering and replicated poly tables can result in overdraw of the polygons from each leaf in projection queries. This might not impact the final render if the polygons are rendered fully opaque. If they are rendered with transparency, the final render is less transparent than expected due to overdraw.
- Line chart in Immerse is scheduled for deprecation in a future release, to be replaced by the Combination Bar/Line (Combo) chart.
- For geospatial charts, changes in release 4.7 introduce an increased margin on the right side. This is scheduled to be fixed in a future release. As a workaround, resize the window to remove the margin.
- You must upgrade to Windows 10 1903 and Edge 44.18362 to use Edge with OmniSci. If you choose not to upgrade, you can use an alternate browser with OmniSci.
New Features
- Visual Data Fusion supports plotting data from multiple data sources on the same Combo chart, which also enables cross-filtering with other charts. This was previously available only on geospatial charts.
- Filtering on an aggregated value is supported in Pointmap and Scatter Plot charts.
- Data import status provides time estimation and information on import success.
- Server-rendered Choropleth charts are supported in Distributed mode.
- Data import popovers provide help text on file formats available for import.
- Binning limits on Line and Combo charts are increased from 400 bins
to 1000 bins.
Note When binning granularity is set to auto mode on a Line or Combo chart created prior to version 4.7, the reported bin granularity on the chart (for example, Hour) might not match the actual bin value (for example, Day). Workaround: Recreate the chart in version 4.7.
Fixed Issues
- Fixed an issue for applying a global timestamp filter to a Combo chart where the displayed dimension is not of TIMESTAMP data type.
- Fixed an issue where user did not appear in list for sharing despite having database permissions.
- Fixed issues with Combo chart related to setting min/max values on the x and y axes.
- Fixed an issue where the locked icon ona Combo chart disappeared, despite having a fixed value set on the axis.
- Fixed an issue where the top bin of binned data was missing values due to rounding discrepancies.
- Fixed an issue where Combo chart did not bin correctly on cross-filter.
- Fixed an issue where a new license could not be pasted in after an previouis license expired.
- Fixed an issue in Bar chart where sorting by measure did not update the chart.
- Fixed an issue to better address auto-binning in Combo chart.
- Fixed an issue in Stacked Bar chart for setting custom colors.
- Fixed an issue in Line chart for setting an incorrect aggregation due to color dimension.
- Fixed an issue in Combo chart for automatic axis labels.
- Fixed issues with Choropleth chart error handling.
- Fixed chart-switching error issues in Pointmaps.
- Removed Append Data button for users without INSERT permission.
- Fixed x-axis label issue in Stacked Bar charts.
- Fixed tooltip sorting in Combo charts so that the ordering is consistent.
- Removed default brush on focus chart after a range chart brush is set.
- Fixed an issue causing an error state for Append Data using Internet Explorer 11.
4.6.1 - April 29, 2019
OmniSci release 4.6.1 contains several fixes.
OmniSci Core
Fixed Issues
- Fixed an issue where a grouped pointmap with multiple "SAMPLE" measures could cause a program error.
- Fixed an issue where a JOIN on the result of an unnest operation caused a program error.
- Fixed an issue where QueryMemoryInitializer was not passed safely to the JOIN loop builder.
- Fixed an issue where queries retried on CPU with subqueries that had already been executed would cause a program error.
- Removed buffer size limitations between cluster aggregator and leaves.
- Fixed an issue where
sql_execute_df
would throw an exception when encountering a BOOL column. - Restored SQL execute timings to std_log output.
- Fixed an issue with intermittent server program errors with CUDA error code 201 in egl compositor.
- Improved error resolution when an error is thrown during the build of a poly cache.
- Fixed an issue with COPY TO behavior when executing in HA mode.
4.6.0 - April 15, 2019
OmniSci release 4.6.0 includes several fixes and performance improvements.
See also the OmniSci Blog.
Important |
|
OmniSci Core
New Features
- CTAS (CREATE TABLE AS SELECT) is now supported on distributed
installations.
Important In release 4.6.0, avoid using CTAS to create tables with very large row counts (for example, in excess of 10 million rows). In such cases, the leaf-aggregate communication via Thrift imposes size limits (2GB), which OmniSci is working to address. - OmniSci supports updates on variable length columns, specifically arrays and strings with encoding NONE.
- Added
partition='replicated'
option for COPY FROM command on geo tables [specified via option WITH (geo = 'true')]. - Further foundational improvements in efficient columnar output, allowing for better memory efficiency with larger result sets. This is behind a configuration flag and will be turned on by default in a future release.
- Added support for importing from gdb(Esri geodatabase) format.
- Added support for importing from Parquet files, from both local and S3, including auto-detect capabilities on omnisql. Immerse will support import of Parquet files in a future release.
- Improved string dictionary performance from use of rk_hash fingerprints. This is behind a configuration flag and will be turned on by default in a future release.
- Added support for custom S3 endpoints, allowing for non-AWS S3-compatible storage systems to be used as input sources.
- Added support for Single Sign-on using Okta (SAML 2.0
Identity provider) for authentication.
Note There is a known limitation with users set up via Okta, where such users cannot be Superusers. OmniSci will address this in an upcoming release. \l
command to list users' database access is now available to non-Superusers.- Added support for PKI-based authentication starting with the ODBC API.
- Users can now be assigned a default database as part of CREATE or ALTER USER command options.
- SQLImporter now supports HTTPS and HTTP besides the binary protocol.
- Lifted limit on dictionary entries from 1B to 2B, allowing for larger string dictionaries.
- Logging format now standardized to allow for better import of OmniSci logs in a delimited file format (some minimal post-processing is required).
- Improved performance of between 25-35% on string dictionary reloads from better thread utilization.
- String dictionary server status now visible as part of
\status
command in omnisql. - Added support for specifying TIMESTAMP precisions, including TIMESTAMP(3) - milliseconds, TIMESTAMP(6) - microseconds and TIMESTAMP(9) - nanoseconds. Immerse will support this feature in a future release.
- Added support for CARDINALITY for array columns (returns the number of elements — for example, the length of an array column).
- Added support to allow variable length array columns to be set to NULL.
- Added early, experimental support for scalar user-defined extension functions written in C++/CUDA. These kernels can now be compiled on server startup and visible to the server runtime immediately. Please refer to the relevant OmniSci documentation for details on how to use this capability.
- Added Thrift support to list the databases that can be accessed by the currently logged in user. Also added support for a user, once logged in, to switch between these databases without needing to login again.
- Added support to allow for dashboards to be shared via roles.
- Eliminated per-fragment overhead for non-lazy GPU projections, allowing larger result sets for rendering and other use cases.
Fixed Issues
- Fixed issues with non-existent source in dashboard metadata which was causing migration to fail - this is now logged to enable better diagnosis of the scenario.
- Fixed an issue where an empty array query resulted in a server program error under certain circumstances.
- Fixed an issue where the Calcite server alone failed, resulting in
an unusable but running OmniSci Server. Now, should the Calcite server
fail, OmniSci Server does not allow new connections. The failure is captured
in the logs, and OmniSci Server is stopped so that the
systemd
utility can restart both the OmniSci and Calcite servers. - Fixed an issue where binary load from arrow load for DATE resulted in incorrect data.
- Fixed an issue where an INTERVAL ADD to timestamp resulted in a program error.
- Fixed a case where a large number of noisy error messages were generated in the logs from auto-completion hint failures.
- Fixed issues with spurious and potentially confusing "Connection refused" Thrift messages on server startup.
- Fixed an issue with inability to export a dashboard from admin account, when admin is not the owner of the dashboard.
- Fixed an issue where OmniSci HA node goes out of sync after program errors during execution of Kafka message instructions.
- Fixed an issue with ALTER TABLE RENAME on multipolygon columns.
- Fixed an issue where querying views with joins resulted in a watchdog error.
- Fixed an issue where dropping a database resulted in recycled database IDs that caused unexpected behavior in the catalog.
- Fixed program error on selecting Geo column from Outer Join.
- Fixed program error resulting from certain SELECT * queries.
- Fixed case where GRANT SELECT VIEW on database resulted in Update privilege.
- Fixed cases where CTAS (CREATE TABLE AS SELECT) involving SELECT *, or CASE statements resulted in a program error.
- Fixed an issue with version 4.4.2 not correctly updating buffer shapes on map unless map boundaries change.
- Fixed a rendering regression related to log/sqrt/pow scale types in Vega.
- Fixed an issue where Optimize Table command resulted in extra disk space being consumed on each run.
- Fixed an issue with ODBC sessions stopping on reconnect. ODBC sessions now continue upon successful reconnect to omnisci_server.
- Fixed an issue regarding incorrect text array length is shown in the new table after running CTAS.
- Fixed an issue where SELECT queries failed after UPDATE on a newly added text column added via ALTER TABLE ADD COLUMN.
- Fixed an issue with visibility of s3 credentials in history file.
- Fixed a threading issue in CTAS that caused server failure.
- Fixed an issue related to LDAP that affected omnisci_server users who had not yet been set up in the system.
- Fixed an issue where multiple SAMPLE invocations in a single query resulted in inconsistent results.
- Fixed an issue with program error on updating copy_params and re-detecting CSV.
- Fixed an issue with approx_count_distinct causing system failure on GROUP BY with more than one group.
OmniSci Render
Fixed Issues
- Fixed an issue where ST_ functions on a geo column used in a color measure were not parsing correctly in render request.
- Fixed an issue with incorrect renders on distributed systems involving Vega transforms with aggregate queries.
OmniSci Immerse
New Features
- Immerse supports integration with OKTA/SAML for Single Sign-On based authentication.
- Tables can be deleted directly from Data Manager.
- Data can be added to any table via the Append functionality in Data Manager.
- All rows within a table can be removed via the Delete All Rows functionality in Data Manager.
- Users can denote when a file has a header row during data import, using the Includes Header Row option within Import Settings.
- Added in situ poly rendering for backend-rendered choropleths, greatly enhancing performance at scale.
- Added sampling to server-rendered Choropleths.
- Added crossfiltering and bounding box filter to server-rendered Choropleths.
- Max number of groups that can be visualized in Bar and Bubble charts increased from 100 to 500.
Fixed Issues
- Fixed an issue where clause sampling caused overflow with greater than 3.4 billion records.
- Fixed an issue where brush was not aligned with bin increment in Combo chart.
- Fixed an issue where Amazon S3 import could not be performed using a full link URL.
- Turned off ability to rotate MapBox base maps to improve usability.
- Import Data button is hidden on Data Manager screen if user lacks privileges to import data.
- Fixed inconsistencies with timezones; all dates shown in Immerse are displayed as UTC.
- Fixed an issue where the OmniSci logo appears before being overwritten by servers.json configurations.
- Fixed an issue where Choropleth pop-up does not disappear when user zooms in on the map.
- Fixed an issue in Bar chart where sort by selection was saved but not applied when switching color measures and aggregates.
- Fixed an issue in Stacked Bar chart where custom colors selected in the color palette were not respected on the chart display.
- Fixed an issue with Stacked Bar where axis label renaming was not persisting.
- Fixed an issue in Combo chart where the chart editor right panel would become unresponsive after certain settings were configured.
- Fixed an issue that prevented a user from changing measure formatting without clearing formatting first.
- Fixed an issue with incorrect default formatting.
- Fixed an issue in chart editor where popup remained active after required measure/dimension had been selected.
- Fixed issues in Table chart, Histogram, and Heatmap that prevented date formatter from showing up correctly.
4.5.0 - February 21, 2019
OmniSci release 4.5.0 includes several fixes and performance improvements.
OmniSci Core
Important |
|
New Features
- Community Edition has been deprecated and replaced with Enterprise Trial. See https://www.omnisci.com/platform/downloads/ for details.
-
Renamed key components from MapD to OmniSci. Specifically:
- mapd_server is now omnisci_server.
- mapd_web_server is now omnisci_web_server.
- mapdql is now omnisql.
- String Dictionary Server is now omnisci_sd_server.
- JDBC connection strings now are jdbc:omnisci:localhost:6273:<dbname> and the JDBC driver class changes to com.omnisci.jdbc.OmniSciDriver.
- Better memory handling through improved estimation of query GPU memory requirement. Allow-cpu-retry is now turned on by default, which allows queries in certain low-GPU-memory situations to be identified and executed on CPU automatically.
- OmniSci Core now supports inserts of array literals containing NULLs.
- OmniSci Core now supports importing csv files with arrays containing NULLs.
- Changed default port from 9092 to 6273 to avoid conflicts with other well known services running on those ports.
- DECIMAL / NUMERIC fields can now be downcast to different scale/precision.
- Dictionary size limit now increased to ~2.15Billion entries.
- Deleting tables using the DROP command will immediately remove the table from the catalog but asynchronously remove data from disk.
-
Added interval support for DATEPART/DATEADD operations.
-
DATEPART
- weekday, quarterday -
DATEADD
- week, weekday, decade
-
- Added ability to recompute table metadata on demand using the OPTIMIZE command.
Fixed Issues and Enhancements
- omnisci.conf is now validated at server start. This is to prevent any erroneous configuration settings taking effect. If erroneous config parameters are found, the server fails to start and throws an error.
- Fixed issues when geo data is imported (for example from PostGIS) via JDBC.
-
Replaced
--gpu
and--cpu
flags with a--cpu-only
flag for OmniSci Server. - Fixed an issue where geo files could not be appended to tables created through Immerse geo file import process.
- Fixed program error caused by selecting SAMPLE on a geo data type column.
- Fixed an issue with ODBC not reconnecting on a server restart.
- Fixed certain cases where DATE was handled incorrectly by SQLImporter.
- Fixed an issue where session IDs were being logged in certain cases.
- Fixed an issue where Importer did not estimate number of rows correctly.
- Fixed an issue with JDBC handling of the type of a geo column.
- Fixed an issue where JDBC needs to filter DB information from Table Priv Call.
- Fixed an issue that prevented sharding on a date column.
- Fixed an issue where projecting a varlen target inside SAMPLE in distributed mode could corrupt subsequent columns.
-
Fixed a typo in table schema output from the
\d
command in omnisql. -
Fixed an issue projecting varlen columns inside a top k query
(for example,
SELECT str, x FROM proj_top ORDER BY x DESC LIMIT 1;
). -
Resolved a program error when running a subquery projecting dictionary encoded
strings inside an
IN
expression. - Fixed an issue where out-of-bound integer ranges fed to timestamp column erroneously get turned into null sentinels.
-
Conditionally remove
ST_CONTAINS
filter when computing the filtered count for a geo join. -
Improved accuracy of
ST_CONTAINS
on certain complex MULTIPOLYGON shapes.
OmniSci Render
Fixed Issues and Enhancements
- Fixed an issue with Vega Scale parse failing if range values are whole numbers.
-
Fixed an issue with GLLayoutBuffer exception related to rendering the same Vega in
two successive
render_vega
calls. - Fixed intermittent error with renders using Percent Accumulation Scale.
- Enhancements to messages related to Vega parse errors.
OmniSci Immerse
New Features
- Enterprise edition trial (see https://www.omnisci.com/platform/downloads/ for details).
- Add support for lasso filter on line map chart.
- Added clarity to formatting options and created a new option to represent billions as B.
- Geo Heatmap colors rendered that do not fall in scheme selected now display in grey rather than purple.
- Sort null measure values to the end by default for grouped chart queries (crossfilter and Stacked Bar charts).
Fixed Issues and Enhancements
- Fixed an issue with session connection being lost on timeout.
- Fixed ability for data tables to be switched via the search interface in Data Manager.
- Fixed an issue where exported CSV does not match chart or omnisql data.
- Fixed circle, polygon and lasso filters for Linemap.
- Fixed cross-filtering for Number chart.
- Fixed an issue with losing color when clicking on column in Stacked Bar chart.
- Fixed an issue with overflow of bars when switching to Stacked Bar chart.
- Fixed issues with non-functioning backend-rendered multi-layer map and backend-rendered multi-layer Scatter Plot examples.
- Fixed an issue where Stacked Bar chart was not maintaining a filter on dashboard load.
- Fixed an issue with HeatMap chart related to the assignment of default green colors for 0 values. Values that are 0 are assigned the mid-range green color.
- Fixed an issue in Chart Editor where disabling NULL values after a dimension drag and drop generated a query causing a 502 error.
- Fixed an issue with Immerse failing to load correctly if there was no servers.json file.
- Fixed an issue with disappearing dashboard header in certain cases.
4.4.2 - January 9, 2019
OmniSci release 4.4.2 includes several fixes and performance improvements.
OmniSci Core
Fixed Issues and Enhancements
- Improved error logging when the
mapd_server
release is older than the server's data directory. - Added support for Arrow DATE values using small date buffers.
OmniSci Immerse
Fixed Issues and Enhancements
- Fixed an issue where using conditional expressions
(
CASE WHEN condition THEN result ELSE default END
) in a custom SQL dimension would cause a chart error.
4.4.1 - January 2, 2019
OmniSci release 4.4.1 includes new features as well as several fixes and performance improvements. It comprises the 4.4.0 release version and a fixed regression.
OmniSci Core
New Features
- Added support for the
ST_Disjoint
,ST_DWithin
, andST_DFullyWithin
geospatial functions. - Added support for
get_session_info()
Thrift API. - DATE datatype is compressed. Dates now have two smaller encoding sizes: 4 bytes (default) and 2 bytes. Existing date columns continue to work as before.
- Added support for SAML authentication with Okta (Enterprise Edition only).
Fixed Issues and Enhancements
- Usernames can now include dashes.
- Attempting an ST_Contains join with a geospatial string literal argument no longer causes a program error.
- User session IDs are no longer potentially exposed in OmniSci Core log files.
- The hit-test cache limit has been removed and should eliminate the following error: "Cannot retrieve results for query <query>. The results have not been cached for hit-testing."
- Fixed database consistency errors that could occur if the underlying filesystem ran out of disk space.
- Fixed a synchronization issue for overflow/underflow checks on NVIDIA Volta and Turing GPUs.
- Improved performance on String Dictionary import for multiple String Dictionary-encoded columns.
- Intermediate ResultSets are now automatically compressed before being shipped between the aggregator and leaf servers. This allows ResultSets over 2 GB in uncompressed size to be passed around the cluster and can result in performance improvements due to better utilization of network bandwidth.
- Fixed an issue where concurrent updates/deletes in import operations could cause table corruption.
- Fixed a corner case where BOOL, TINYINT, or SMALLINT columns could result in invalid data during import.
- Fixed an issue with rowids projected in CTAS that caused an error in table creation, because rowid is a reserved column name.
- Added support for AM/PM designation in timestamps.
- Fixed an issue where sharded tables with geospatial columns could cause a program error during insert or projection queries.
- Improved performance for queries using 32-bit timestamps.
- Improved memory usage during hash joins.
- Fixed an issue in which hash joins on Dictionary-encoded strings, where one of the columns was empty, could cause a program error.
- Deprecated/removed the following obsolete flags:
--disable-rendering
,--db-convert
,fast-strcmp
, andmulti-subquery-exec
.
OmniSci Render
New Feature
- Support is added for pct/blend accumulation rendering modes in distributed configurations.
Fixed Issues and Enhancements
- Multiple point/symbol layers using Vega projections no longer potentially render a blank image.
- In distributed configurations, a multilayer rendering issue occurred in which an aggregate query and a projection query, each referencing Vega transforms, could cause a program error. This has been fixed.
- Using Vega transforms on line/poly queries with empty data no longer causes an error; it now produces an empty image, as expected.
OmniSci Immerse
Fixed Issues and Enhancements
- Improved error tracking to allow better triage and resolution.
- Fractional numbers are now supported in global filters in Immerse.
- Fixed an error that occurred when switching chart types with binned dimensions.
- Deprecated: The Export Chart button has been removed from Text charts.
- SAMPLE aggregate is added as an option for all chart measures in conjunction with GROUP BY.
- Fixed ambiguous-column error for identically named columns on geo joins.
- Fixed issues with importing of tables with geospatial columns.
- Resolved issue with modifications to Custom Colors on Combo charts with color dimensions were reflected in the right pane of the UI, but not the chart palette, which caused incorrect rendering.
- Updated license uploading for Community Edition.
4.3.0 - November 19, 2018
OmniSci release 4.3.0 consists of a number of new features as well as several fixes and performance improvements outlined below.
OmniSci Core
New Features
- Decimal compression: Decimals now automatically use the smallest possible encoding for the specified precision/scale.
- Hash joins now support null left-hand side joined to not null right-hand side and vice-versa.
- Hash joins allow different integer types between the left-hand side and right-hand side.
Fixed Issues
- Ensure MAX_ROWS is an integer literal and properly reject non-integer values.
- Fixed an issue where CTAS did not properly parse date_trunc functions and geometry casts.
- Fixed an issue where DROP DATABASE did not remove all table data from disk.
- Fixed an issue where the minus sign was being counted as part of decimal precision.
- Improved error handling in distributed mode.
- JDBC now properly generates boolean string literals when
setBoolean
is called. - Properly validate DECIMAL type ranges and check for overflows.
- Resolved an issue where DB owners may not have access privileges on new databases by default.
- Resolved a system failure that occured for unsupported DDL statements.
- Resolved a system failure that occured if a database were created then dropped before a user connected to it.
- Resolved a system failure that occured when serializing multiple geospatial types in distributed mode.
- Resolved a system failure when clearing GPU memory from mapdql when no GPUs are present.
- Resolved a misleading error message no dashboards were returned while listing dashboards in mapdql.
- Resolved a problem with geo append when existing table has uncompressed coords
- Resolved an issue where ALTER TABLE on a view caused a system failure.
- Resolved an issue where an invalid geospatial literal could cause a system failure.
- Resolved an issue where approx_count_distinct could send too much data and/or cause a system failure during serialization in distributed mode.
- Resolved an issue where deleted users were not totally purged after being dropped.
- Resolved an issue where hash joins on distributed would run incorrectly if one of the tables was not replicated or both tables were not sharded.
- Resolved an issue where object privilege migration could be incomplete.
- Resolved an issue where precision errors could occur during queries involving aggregates.
- Resolved an issue where session timeouts could cause a system failure in distributed mode.
- Resolved an issue where the roles display for a user could be incorrect.
- Resolved an issue where using privilege APIs could cause a system failure if object level privileges were disabled.
- Resolved precision errors in ST_Distance and ST_Intersect for some geospatial types.
- Resolved various issues in automatic FROM clause table reodering.
- The last row of a CSV file is no longer ignored if the CSV file does not have a trailing new line.
OmniSci Render
New Feature
- Added support for in-situ line rendering (i.e. without a copy) for projection queries (LINESTRING columns only)
Fixed Issues
- Properly handle rows where all columns are NULL in the Vega transforms API.
- Resolved an issue handling NULLs in Vega scales.
- Resolved an issue when multiple sessions ran the same polygon hit testing query.
- Resolved an issue where Vega projections would fail to be applied.
OmniSci Immerse
New Feature
- Enabled in-situ line rendering for linemap.
Fixed Issues and Enhancements
- Added schema validation to prevent an edge case where dashboards could become corrupt and unloadable.
- Fixed an issue with linemap hover popups on single node instances.
- Fixed an issue where decimal-baded global filters returned incorrect results.
- Fixed an issue where the Y-axis measure in the stacked bar chart could be missing a name label.
- Fixed an issue with categorical color measures in choropleth that could result in a hang.
- Fixed an issue where formatting dates on combo chart could result in a hang.
- Added code to ensure measure aggtypes can be updated on linemap.
- Removed an error thrown when changing choropleth color dimensions.
- Fixed an error in linemap where geo column names other than mapd_geo or omnisci_geo could cause errors.
- Improved handling of null data on piechart.
- Adjusted linemap hit testing behavior to match pointmap.
- Added code to prevent an issue where dashboard state was not preserved when switching to SQL Editor.
- Fixed an issue with custom SQL measures in linemap.
- Improved the legend for min/max numerical color scale for linemap.
- Optimized viewport clipping for rectangular/non-complex shapes.
- Added code to ensure measure aggtypes can be updated on linemap.
- Improved handling of color measures for linemap.
- Improved linejoin drawing techniques for linemap.
- Prevented linemap from showing in rendering-disabled environments.
- Added code to ensure adding and deleting custom colors on combo propagates to the chart.
- Improved error logging and persistence for SQLLogger.
- Enabled in-situ line rendering for linemap.
- Fixed timezone issues for certain timestamps set to midnight (00:00:00).
- Properly handle rows where all columns are NULL in the Vega transforms API.
- Resolved an issue handling NULLs in Vega scales.
- Resolved an issue when multiple sessions ran the same polygon hit testing query.
- Resolved an issue where Vega projections would fail to be applied.
OmniSci Immerse
New Feature
- Enabled in-situ line rendering for linemap.
Fixed Issues and Enhancements
- Added schema validation to prevent an edge case where dashboards could become corrupt and unloadable.
- Fixed an issue with linemap hover popups on single node instances.
- Fixed an issue where decimal-baded global filters returned incorrect results.
- Fixed an issue where the Y-axis measure in the stacked bar chart could be missing a name label.
- Fixed an issue with categorical color measures in choropleth that could result in a hang.
- Fixed an issue where formatting dates on combo chart could result in a hang.
- Added code to ensure measure aggtypes can be updated on linemap.
- Removed an error thrown when changing choropleth color dimensions.
- Fixed an error in linemap where geo column names other than mapd_geo or omnisci_geo could cause errors.
- Improved handling of null data on piechart.
- Adjusted linemap hit testing behavior to match pointmap.
- Added code to prevent an issue where dashboard state was not preserved when switching to SQL Editor.
- Fixed an issue with custom SQL measures in linemap.
- Improved the legend for min/max numerical color scale for linemap.
- Optimized viewport clipping for rectangular/non-complex shapes.
- Added code to ensure measure aggtypes can be updated on linemap.
- Improved handling of color measures for linemap.
- Improved linejoin drawing techniques for linemap.
- Prevented linemap from showing in rendering-disabled environments.
- Added code to ensure adding and deleting custom colors on combo propagates to the chart.
- Improved error logging and persistence for SQLLogger.
- Enabled in-situ line rendering for linemap.
- Fixed timezone issues for certain timestamps set to midnight (00:00:00).
4.2.0 - October 29, 2018
OmniSci release 4.2 consists of a number of new features as well as several fixes and performance improvements outlined below.
OmniSci Core
New Features
- Added top-level ACCESS privilege to check if a user logging in has
any object permissions at all, and restrict Immerse capabilities
accordingly.
NOTE This is a backward incompatible change. OmniSci recommends that you back up your existing database before installing OmniSci 4.2. - Added GRANT ALL privilege on database to allow for better management of object privileges
- Added https support now available for major APIs - JDBC, Thrift, pymapd, KafkaImporter, StreamImporter APIs and mapdql
- Added ST_MaxDistance allowing users to compute the maximum distance between a POINT and a LINESTRING
- Added ST_Distance support for MULTIPOLYGONS
- Added ST_Intersects support for MULTIPOLYGONS
Fixed Issues
- Fixed an issue with simple literal additions returning incorrect results
- INSERT now works correctly with text[] column types
- SAMPLE now handled correctly on array types
- Faster imports of dictionary-encoded string data - upto 3x performance improvement, depending on the data
- OmniSci now uses LLVM 7.0
- Catalog properly loaded even if a user logs into the non-default database first
- Roles can now GRANT to other roles, rather than just individual users - this fixes an existing issue with dashboard sharing to/from roles
- get_all_roles_for_user() thrift call now works for roles as well
- OmniSci now supports Arrow 0.10.0 and 0.11.0
- db_object_privs thrift call now supports user privileges
- GRANT now supports granting multiple privileges to multiple grantees in a single command allowing for better privilege management
- has_object_privilege thrift call now supports recursively returning privileges for a given user, which identifies not just their directly granted privileges but also those granted via roles
- Projection queries now support columnar outputs, significantly improving the efficiency of memory management for query results.
- ALTER TABLE now enabled for non-super users
- Fixed incorrect timestamp precision encoding, including handling of leading zeros
- Fixed edge case issues with decimal formatting for display
- SAMPLE now supports varlen arguments in distributed mode with GROUP BY
- Fixed an issue with long-running first load queries disallowing Immerse logins
- Fixed an issue with array projections needed for improved GeoSpatial support in a distributed installation
- Improvements to geo import robustness
- GeoSpatial queries now supported properly in distributed mode
- Fixed issues with POLYGON/MULTIPOLYGON handling within ST_Intersects
- All default GeoSpatial tables now use omnisci_ as the prefix. Please update any scripts that use these tables accordingly
- The default geo column name is now omnisci_geo (from mapd_geo). Please update any scripts accordingly
- Fixed certain edge cases in ST_Contains(POLYGON, LINESTRING) that caused incorrect results
- ST_Contains extended to support ST_Contains(MULTIPOLYGON, LINESTRING)
- Several improvements in CTAS robustness - CTAS now supports most major types including GeoSpatial types (NOTE - currently these improvements are restricted to a single node. This restriction will be removed in an upcoming release)
- OmniSci now uses GDAL 2.3.2 (geo import library)
- Import reports line number of bad geo in CSV files
- Bulk inserts for geo data now supported via JDBC API
OmniSci Render
New Features
- Added support for TINYINT in vega transforms
- Added support for rendering buffers larger than 4GB
- Added distributed line-rendering support.
Fixed Issues
- Fixed an issue preventing Polygon rendering if the first render query returned empty results
- Allow line/poly rendering even if render-mem-bytes is set to zero
- Symbol sizing in vega now supports distance units (meters). Subsequent releases will integrate this into Immerse geo charts.
- Prevent renderer system failure in certain cases on shutdown via SIGINT
- Fixed an issue with switching density accumulation from max/min to stddev
- Fixed issues with apparently incorrect render memory allocation on multiple devices
- Fixed system failure caused with COPY/TRUNCATE/DROP statements executed after clear_gpu_memory is run with rendering enabled
OmniSci Immerse
New Features
- Combo and Stacked bar charts support percentage (relative) views
- Added support to show/hide SQL Editor in a configurable manner. See Roles and Privileges for configuration information
- Added Linemap Geo Chart, allowing for LINESTRING data to be displayed and used in Geo joins as well. This chart type works with multi-layer geo charts
Fixed Issues
- Several improvements in performance, usability and robustness of the Stacked Bar chart
- Stacked Bar chart now supports CSV export
- Multiple improvements and fixes to chart legends on multilayer Geo charts
- Multiple improvements to Combo Chart related to data loading indicators and behavior
- Fixed minor issues with navigation icon alignment on Chart Editor
- Fixed an issue causing overrides of user-specified column names in Table Importer
- Raster charts no longer fail to render correctly if a dimension is added after omnisci_geo measure is added
- Fixed an issue with lineStyle being lost upon save/apply actions in certain cases on the Combo chart
- Fixed edge case issues with handling negative values in Combo and Stacked Bar charts
- Table importer: support for DOUBLE types and also fixed handling of TIME types
- Removed 'atlas' mapbox style (no longer valid) from servers.json
4.1.3 - September 27, 2018
The 4.1.3 release is primarily focused on rebranding MapD to OmniSci.
Core Fixed Issue
- Fixed an issue where Core might experience a system failure when consuming autocomplete data.
Immerse Fixed Issue
- Fixed a performance issue applying a relative date range global filter to a combo chart.
4.1.2 - September 11, 2018
Note | Version 4.1.2 was a limited release with minor fixes and performance enhancements. |
4.1.1 - September 4, 2018
Note |
New users no longer have default access to client tools.
To provide new users with access to Immerse and client tools,
you need to grant them the ACCESS privilege.
See Database Object Privileges . |
Important |
|
MapD Core
New
- UPDATE and DELETE SQL commands let you change values or delete rows from your MapD database.
- Added object permissions model for Database, Table, View, and Dashboard object types.
- Role-based access control allows you to specify who can access different views.
- Countries, US States, and US Counties tables are now automatically created and imported with
initdb
. - Enhanced Geospatial Support lets you import and manipulate geospatial object data.
- Added support for
TINYINT
data type. - Added support for fragment skipping on join queries with the
inner-join-skip-fragments
command line flag. - Add support for
LAST_SAMPLE
aggregate. - Array literal syntax is now supported in insert statements. For example:
mapdql> create table ar1 (ar int[]); mapdql> insert into ar1 values ({1,2,3});
Fixed
- SMALLINT null values are now handled correctly.
- Encryption in core logs is improved; AWS access keys and secrets are no longer logged in clear text.
- Fixed an issue for accessing a shard with a negative shard key.
- Fixed an issue where
table <tablename> must be replicated
error message was inadvertently shown for replicated tables on a distributed join. - Fixed an issue with "lazy" projections (those not in an aggregate or filter) on sharded joins.
- Properly report
SHARD_COUNT
andPARTITIONS
in the DDL generated by the\d
command inmapdql
. - Privileges for secondary databases are now working correctly.
- Hash joins between two sharded tables now work correctly.
- Projection queries on GPU use significantly less memory for lazy projections (for example,
select a, b, c from table where x
).
MapD Rendering Engine
New
- Added four new aggregate transform modes to the Vega transform data block:
distinct
,countdistinct
,median
, andquantile
. - Support for new geospatial types for line and polygon rendering.
- Support for new geospatial types for point rendering using geospatial accessors.
- Improved precision for Vega spatial projections.
- Robust
POLYGON/MULTIPOLYGON
import and rendering. System no longer requires polygon triangulation, so all poly geometry, whether or not it is degenerative, can be imported and rendered without issue. POLYGON/MULTIPOLYGON
holes are now supported.- New procedural rendering technique for symbols significantly improves symbol render times.
Fixed
- Various filtering issues have been fixed.
SMALLINT
null values are now handled correctly.DECIMAL
supported in Vega transform operations.- Better handling of queries that return empty results.
- Better stability in distributed mode when a query fails just prior to rendering.
- More robust poly hit-testing support.
- Appropriately handles
NULLs
, empty results, and decimal types with Vega transforms.
MapD Immerse
New
- Shared Dashboards let you share your dashboard configurations with specific users or user roles.
- Measure Formatting lets you format number and date values on the X-axis.
- You can run Immerse in a completely disconnected environment.
- Backend-rendered Choropleth with geospatial support has been added.
- Import preview now detects all geo column types.
- Vega transforms have been added to Choropleth, Pointmap, and Heatmap charts.
- You can now import compressed archives of geospatial files (such as .shp files).
- Saved Dashboards now have persistent URLs.
Fixed
- Various filtering issues have been fixed, including relative time and date filtering.
- In Internet Explorer, labels for Bar, Pie, and Bubble chart types are no longer dropped.
- Under certain conditions, Immerse would not show data when custom date filters were applied. This has been fixed.
- Global clear filter action now clears all table chart filters.
- Issues with the appearance of tooltips in stacked bar charts have been resolved.
- Zoom on Scatter Plot charts now works as expected.
3.6.1 - April 13, 2018
MapD Core
New
- Data detection to files imported from S3
Fixed
- Multiple fixes and performance improvements to S3 Import to support MapD Cloud
- Improved handling of networked file systems, including EFS
- Fix memory leak with certain style of select query
MapD Core Rendering Engine
Fixed
- Improved multi-GPU/multilayer rendering compositing
MapD Immerse
New
- New user interface for loading data to MapD from Amazon S3
Fixed
- Fixed an issue with MultiPolygon geoJSON parsing bounds (Choropleth).
3.6.0 - March 13, 2018
MapD Core
New
- Enable sharding for (left-deep) outer joins
- Added bulkUpdate support for JDBC to support Pentaho
- Significant performance improvement on string comparisons from using std::sort
Fixed
- Several fixes to auto-completion
- Fix to avoid dictionary collisions in multiple databases
- export_dashboard works with spaces in dashboard name
- Multiple fixes to significantly improve accuracy and performance on APPROX COUNT DISTINCT, for large cardinalities
- Fix issue for filter pushdown into expression range calculation when filter results in empty set
- Fix broken view from changed underlying tables
- ROLLBACK on connection failure with Dictionary server
- Revised TColumn->Datum conversion to fix slow selects of array columns
MapD Core Rendering Engine
New
- Supports spatial projections in Vega.
- Supports running MapD Core in CPU-only mode (with CUDA disabled) with backend rendering enabled if a GPU is available. Requires OpenGL 4.6 or higher.
- Add
opacity
,fillOpacity
, andstrokeOpacity
properties to marks so that opacity can be controlled independently of thefillColor
andstrokeColor
literals.
MapD Immerse
New
- A new Bar/Line combo chart supports multiple measures. This is currently a BETA feature.
- You can export chart data as a CSV file for all frontend-rendered charts.
Fixed
- Filtering on timechart with histogram hangs Immerse.
- Chart dimension/measurements requirement and logo disappears when hovering.
- Text partially cut off in color Legend Item field when hovering.
- An Immerse error occurs when dashboard data takes longer to refresh than the auto-refresh time period set in the dashboard.
- Scatter plots could render two charts on top of one another.
3.5.0 - February 21, 2018
MapD Core
New
- S3 Import:
COPY FROM
now supports directly loading data files (including compressed formats supported in release 3.4) from S3 buckets. KafkaImporter
: MapD can now read delimited rows from Kafka topics using the efficient binary columnar load path.StreamImporter
: New utility with improved streaming reads for data load, using binary columnar load path.- Outer join performance improvements.
- Autocomplete support in
mapdql
based on newget_completion_hints
Thrift call
Fixed
- Multiple issues related to race conditions causing metadata corruption during simultaneous load and query of capped collections
- Multiple JDBC-related issues, including missing checkpoints on bulk distributed loads and reporting correct JDBC versions
- Edge case of filter qual pushdown causing negative cardinality estimation
- Enabled use of hardware accelerated atomics for double-precision aggregates on Volta GPUs
- Better exception handling of arrays in shapefile metadata
- Fixed exception thrown on
DROP...IF NOT EXISTS
- Better error reporting if string dictionary paths not found at startup
startmapd
now passes--config
tomapd_web_server
- mapdql: fix LineNoise memory leak
- mapdql: Various error handling improvements
MapD Core Rendering Engine
New
- Significant performance improvements in rendering datasets with large numbers of polygons
Fixed
- Better handling of bad data in shapefiles
MapD Immerse
New
- SQL Editor now includes autocomplete and syntax highlighting.
- Scatter Plot and Geo Pointmap charts now support aggregations.
- Immerse now allows adding additional Mapbox basemap styles and third party map tiles
- Community Edition EULA is updated.
Fixed
- Skinny histogram charts when using date or time extracts.
- Immerse hangs when editing a chart, with the error message “Cannot read property timeBin of null”.
- Y-Axis has repeating numbers.
- Range chart disappears on clearing color dimension.
- Unable to add second layer in multilayer chart on Firefox.
- Unable to load chart after adding second multilayer in Geo Heatmap chart on Firefox.
SUM
aggregation for measures in Geo Heatmap chart should not returnCOUNT
.- Changing map style before selecting a source prevents selecting source and breaks the Dashboard button.
- Extract binning does not work on timestamp.
- Empty popups in Pointmap chart.
- Dashboards with large number of filters generate bad sql and fail to reload
3.4.0 - January 16, 2018
MapD Core
New
- COPY FROM command supports input files compressed with tar, zip, rar, gzip, bzip2, and tgz.
- DATE_TRUNC and EXTRACT of YEAR, QUARTER and MONTH are 3-5x faster executing on GPU.
- Loading of dictionary-encoded data is 15-30% faster.
- “Top K” queries using LIMIT k OFFSET n with k+n < 1000 are optimized to run using k+n memory per GPU and in linear time; not yet enabled for distributed queries.
- Allow simple predicates to be used in calculation of expression ranges. This allows for faster GROUP BY when binning by timestamp or numeric expressions if a narrow filter is applied on the same column.
- Allow simple predicates with simple casts to be used for skipping fragments.
- New initialize “-i” file option is added to SQLImporter.
- Add get_completion_hints thrift call to enable friendlier SQL clients.
- Add deallocate_df thrift call to deallocate an unused data frame.
- Add thrift calls (and mapdql support) for get_tables, get_views, and get_physical_tables.
- Speed up t and d in mapdql by requesting only the required metadata.
- Add –help-advanced option to mapd_server.
- Add thrift calls to set/get table epochs by name.
Fixed
- Address issue where LDAP parameters cause mapd_web_server to fail to start by allowing passing LDAP parameters enclosed in double quotes.
- Pushdown simple predicates containing casts of TIMESTAMP and INTs into expression range and fragment skip calculations.
- Fix issues with operand nullability for time comparisons.
- Fix crash on outer cross join.
- Add thrift and mapdql commands for get_hardware_info (missing in mapdql help).
- Fix possibly nondeterministic result of left outer join.
- Sink boolean expression in a projection to its reference in the condition.
- Start distributed loads at random leaf to better balance over all nodes.
- Allow export/import of Immerse dashboards with spaces in the name.
- Change default pagesize from 1M to 2M, add version_num to table metadata.
- Recognize and use shared encoding dictionary with IN subqueries, resulting in better performance when inner and outer query use the same dictionary.
- Support DECIMAL and NUMERIC for load_table_binary_columnar; improve errors
- Fix equi-join on dictionary-encoded columns without shared dictionaries.
- Upgrade to JDBC 4.0.
- Fix processing of spaces on JDBC inserts.
- Return correct count of inserted rows in JDBC executeBatch.
- Allow URL format in JDBC driver spec as jdbc:mapd://<hostname:port:db:protocol>.
- Fix JDBC DatabaseMetaData to return MapD version, set JDBC driver version.
- Fix conversion BOOLEAN to LONG for better Hive support in SQLImporter.
- Fix handling of NULL doubles in SQLImporter.
MapD Core Rendering Engine
New
- Multi-thread filling poly and aggregate query render giveing a 2-4x performance improvement.
- Performance of line rendering has been improved by 25% - 50%
- Performance of polygon rendering is significantly faster for large data sets
- New command-line option “render-poly-cache-bytes” is added to MapDServer (default 300M).
- Allow threshold scale to be used with symbol shape property in Vega render spec.
Fixed
- Rendering deals more gracefully with malformed polygons. If simple triangulation fails, a proxy geom will be used in its place. It will first try using a Ramer-Douglas-Peucker simplification algorithm, next will will try to generate a convex hull, and throw an error only if this also fails.
- Addresses issue when the only difference between successive render_vega queries is a change between projection and aggregation.
- Address issue where Rendering a poly table for the first time with a filtered query crashes server.
- Mostly address GL_FRAMEBUFFER_UNSUPPORTED error seen on some older Cuda drivers on Centos.
- Fix issue when a multi-GPU non-accumulation render is followed by a single-GPU accumulation render.
- Always cache non-in-situ renders for get_result_row_for_pixel hit testing.
MapD Immerse
New
- Dashboards can reference multiple data sources.
- Geo charts can incorporate multiple layers.
- Dashboards can be configured to auto-refresh on a set time interval.
- New menu items in Community Edition have been added under Help to request a trial license and manage trial license keys.
- Four new Base Map Themes have been added: Odyssey, Vintage, Decimal, and North Star.
- Shape selection now is allowed in point maps and scatterplot charts.
- A new Top Level menu - Data Manager - has been added.
Fixed
- Immerse now allows highlighting and copying a field in a table chart without inadvertently applying a filter.
- Text Widget can now save text on Internet Explorer 11.
3.3.1 - November 8, 2017
MapD Core
New
- Add initialize file option to SQLImporter
- Add thrift apis and mapdql comands for reporting on role/user privileges
Fixed
- Fix handling of NULL in loading doubles with SQLImporter
- Add export/import dashboard commands to mapdql help
- Fix precision for output of decimal to file
- Fixed nulls first/last sorting for distributed
- Rollback failed table copy from
- Reduce checkpoints to once per load, locking table to limit to one concurrent update
- Apply reverse distribution to logical arguments
- Add optional error percentage argument to APPROX_COUNT_DISTINCT
- Move SQL importer to binary columnar format for better performance
- Upgrade SQL parser to Calcite 1.14
Dependencies
- Now requiring Java Runtime Environment (JRE) version 1.8 or higher
MapD Core Rendering Engine
Fixed
- Fix to reduce GL_FRAMEBUFFER_UNSUPPORTED when running older CUDA drivers on CentOS
- Fix to render thread shutdown
- Fix to error code on framebuffer error
- Address mark property update issue when the only thing changing between render calls is sql and render property
- Add multijoin and left deep inner join to table scan for rendering
MapD Immerse
New
- Add nulls sort first/last to table sort
Fixed
- Fix for exception raised when switching from geoheatmap to other chart type
- Fix to row and pie chart to set minimum number of groups to one instead of zero
- Allow SQL editor to accept SQL statements starting using WITH table expression
3.3.0 - October 26, 2017
MapD Core
New
- Improve support for left-deep joins to allow joins of large numbers of tables
- Automatically reorder tables in a query by row count
- Allow encoding dictionaries to be shared among multiple columns in the same table
- Add new mapdql commands to export/import Immerse dashboard definitions
- Remove the limit on the number of simultaneous connections
Fixed
- Allow object level privileges against multiple databases, still under trial flag
- Throw an error if two operands of IN operator don’t have matching types
- Allow empty IN operands
- Add nested loop code to code generation
- Initial pass at internal catalog functions for viewing object privileges
- Fix jdbc to not ignore substitution parameter at the end of a query
- Add at_most_n parameter to thrift sql_execute endpoint
- Fix to join of a column against an expression
- Fix for possible CPU heap corruption after memory starvation
- Improve error messages on file operation failure
MapD Core Rendering Engine
New
- Run all render commands on a dedicated thread, removing connection limit
- Add line mark rendering type
MapD Immerse
New
- Additional GTM tagging has been included
- Improved error reporting on failure to load a dashboard
- User logout moved to dropdown by navigation bar, count widget moved under dashboard header
Fixed
- In SQL Editor, fixed issue with scrolling
3.2.4 - October 6, 2017
MapD Core
New
- Add Thrift call load_binary_table_arrow for Arrow columnar import
Fixed
- Fix loading of DECIMAL string with leading decimal point
- Create object security tables if feature is enabled
- Fix to checkpoint creation on epoch-based table rollback
- Read fragment metadata in parallel
- Parallelize cold start reload of string dictionary
- Fix table rollback by epoch
- Fix DECIMAL import for values between -1 and 0
MapD Core Rendering Engine
New
- Support rendering of aggregate and projection queries for distributed configuration
- Enable rendering where number of render GPU’s is less than query execution GPUs
Fixed
- Fix logging of rendering calls
MapD Immerse
New
- For Community Edition, added link to the [Community Forum](https://community.mapd.com) under Help
Fixed
- Fixed an issue where a line chart filter could not be removed
- Fixed an issue with old crossfilter instance preventing opening a new dashboard
- Fixed an issue where exceptions/errors prevented histogram and line charts to reload
- Fixed an issue with multi-series line chart filter icon not disappearing
- Fixed an issue creating a numerical binned multi-series line chart
- Fixed an issue where reverting edits on a line chart resulted in error
3.2.3 - September 22, 2017
MapD Core
New
- Add support for object privileges, not enabled by default
- Add Thrift call for load_table_binary_columnar
- Update EULA text
Fixed
- Add basic lock protection for drop and truncate table
- Fix potential incorrect result for filtered outer join queries
- Fix to improve precision in decimal arithmetic
- Optimize queries with combinations of equality and null
- Fix possible crash on sort of empty result
- Fix to bulk import related to decimal scale
- Round when reducing decimal scale on import
- Write temporary install files to temp directory
- Save sample data sets to temp directory during install to reduce required privs
- Fix to command line options while inserting sample data
- Fix to limit pushdown with offset
- Allow case insensitive boolean literals on import
- Fix range checking for fixed width encoded strings
- Fix possible segfault on outer non-equijoin on string
- Fix for distributed query with grouped sort and offset
- Fix for null handling in top k queries on a single-fragment table
- Fix for self-join query
- Fix for possible error on query with empty ranges of type double
- Fix join on fixed encoding dictionary columns with nulls
- Enable HA in build of MapD Enterprise Edition
MapD Core Rendering Engine
Fixed
- Fix for multi-layer rendering in distributed configurations
- Improve support for ordinal scales when domain count exceeds range count
- Fix for floating point issues with heat map hex binning
- Fix for multi-layer rendering with 1 or more accumulation layers
MapD Immerse
New
- Update EULA text
- Added Google Tag Manager for product usage tracking
3.2.2 - September 9, 2017
MapD Core
New
- Equi-joins between expressions and columns are now supported
- Joins on time and date are now supported
- Non-grouped projected top-k queries of form
order by col limit n
are now executed more efficiently - Performance improvement for grouped top-k queries on sharded tables
Fixed
- Fix for projection query with order by a float column not used in a filter
- Fix for null pointer exception in
PreparedStatement
(https://github.com/mapd/mapd-core/pull/53) - Fixes for conditions of potential arithmetic overflow
- Fix for segfault on natural join, or join explicitly including rowid
- Gracefully return exception on scalar subquery returning text
- Fix for failure to execute join query against an empty table
- Fix for failure to execute a query with parenthesis around ilike condition
- Fix to enable some cases of reordering joined tables improve performance
MapD Core Rendering Engine
New
- Symbols now work with multi-layer rendering
- Add support for GPU rendering with EGL on IBM Power
Fixed
- Fix blend accumulator type mismatch bug
- Issue resolved for potential crash with geo-heatmap render
- Various vega symbol update issues
MapD Immerse
New
- New chart type : Text Widget
- Alias for custom measures and custom dimensions
- Geo heatmap (available on single node only)
Fixed
- Range chart is now OFF by default
- “Back to Dashboard” link is now aligned on browser resize
3.2.1 - August 25, 2017
MapD Core
New
- allow group by floating point column, even if watchdog is enabled
- allow one-to-many join on multiple columns
Fixed
- fix for overflow detection for fixed encoding dictionary entry creation
- disallow multi-node export, for now
- fix for subquery with a CASE statement inside a derived table returning a non-grouped column
- explicitly disallow LIMIT 0
- fix for query with sort on a dictionary encoded field containing null values
- add progressive backoff to mapdql connect retries and limit retries
MapD Core Rendering Engine
New
- enable multi-sampling for smoother rendering
Fixed
- Use correct cuda context index during EGL compositing
- Fixing active gl context bug during distributed rendering
MapD Immerse
New
- Allow switching between donut and pie chart styles for pie chart
- Top level Help has one new menu item for Immerse tutorials
- Declining EULA in community edition disconnects user
- Default aggregation on time unit measures is MAX
Fixed
- Fixed spinner on incorrect custom dimension expression
- Fix for switching series dimension in a line chart or histogram to reflect new dimension
- Number chart no longer exposes show range chart toggle
- Fixed isue with histogram range bar width
- Multi-series range chart colors are no longer reset when range chart is toggled off/on
3.2.0 - August 17, 2017
MapD Core
New
- Tables now can be sharded by a numeric or dictionary encoded column
- Dictionaries for encoded columns can be shared across multiple tables
- Multi-column join is allowed provided combination of columns yields a unique join key
- Tables can be joined on columns of type BIGINT, provided the column yields a unique join key
- Join now allows the one-to-many case, with uniqueness in the outer table
- TRUNCATE TABLE command is now supported
- MapD startup has an optional parameter for maximum error for APPROX_COUNT_DISTINCT
- Data import via COPY now reports on specific location of bad data
- COPY TO now supports relative path names
- MapD Server now defaults to ignore divide by zero
Fixed
- Max string length of 32767 is now enforced
- Trailing semicolon is automatically removed from SQL or SQL inside a view
- Incorrect result fixed for selecting with a filter from a join view
- Incorrect result fixed with LEFT JOIN resulting in a cross join
- Fix issue with precision of APPROX_COUNT_DISTINCT when running on CPU
- Fix issue with join on empty inner table
- Fix issue with database.table syntax
- Fix for possible race condition in distributed queries causing query hang
MapD Core Rendering Engine
New
- Improved anti-aliasing using multi-sampling, most noticable stroking polys or symbols < 2 pixels wide
- Allow dictionary-encoded string columns from geo polygon tables to be used as domains in ordinal scales
- Added set of new extension functions as helpers for hexagonal headmap binning and rendering
- Symbols now can be used in accumulation rendering
Fixed
- Symbols that are both filled and stroked now render in the appropriate oder
- Fix issue when using values from a dictionary encoded string column in an ordinal scale when rendering a GROUP BY query
- Fix for crash when trying to render a GROUP BY query also sorted with ORDER BY
MapD Immerse
New
- Top level Help has one additional menu item that displays core version, immerse version and whether backend rendering is enabled.
- Dimension lock axes on histogram and line charts.
- Range charts for histograms
- Stacked histogram charts
Fixed
- Issue with line chart date fields don’t reflect filter dates after clearing filter
- Issue where brushing on initialized chart (Range/Line/Histogram) will extend brush filter beyond what is selected
- Issue where multiple range charts and focus charts created when changing chart type
- Issue where range chart with multi-series changes color of range chart when brushing range
- Issue with Time entry box for line chart not applying time filter
- Bug where Line chart does not cancel changes when switching from binning to extract and clicking cancel
- Multi-series line chart loses color when going to and from SQL editor
- Uncaught TypeError - Cannot read property ‘dimensions’ of undefined when creating a line chart
3.1.3 - July 27, 2017
MapD Core
New
- Improved support for
INTERVAL
data type, and added functions forTIMESTAMPADD
,TIMESTAMPDIFF
,DATEADD
,DATEDIFF
andDATEPART
. For example the following two queries can now be run, which would give equivalent results:
SELECT TIMESTAMP '2016-02-28 1:23:45' + INTERVAL '24' HOUR
SELECT TIMESTAMPADD(HOUR, 24, TIMESTAMP '2016-02-28 1:23:45')
Fixed
- NULL now does not match other values (e.g. another NULL) in hash joins
- Crash in cpu mode when a hash join inner table column is all NULLs
- Crash when
LIKE
orREGEXP_LIKE
pattern is not a literal - Problem with loading through aggregator in multi-node setups when table contains non-encoded strings or arrays
MapD Core Rendering Engine
Fixed
- Bug when using dict-encoded string column as color when rendering a
GROUP BY
query - Crash when using a heatmap query with a
LIMIT
MapD Immerse
New
- SQL Editor Reference panel for tables and columns
Fixed
- Issue with Number chart not removing old charts when changing aggregation type
3.1.2 - July 19, 2017
MapD Core
New
- Division by zero behavior is now configurable via flag
null-div-by-zero
. New installs usingsystemd
will default totrue
in their config files, meaning that division by zero returnsnull
; existing installs will default tofalse
, preserving the existing behavior of throwing adivision by zero
exception. round_to_digit(x,y)
function now supported. Roundsx
toy
digits.- Dictionary encoded columns may now be specified for the
sql_execute_gpudf
endpoint - Fast versions of statistics functions are now available. Note that these functions might overflow; use single precision float instead of double precision.
STDDEV_FLOAT
,STDDEV_POP_FLOAT
,STDDEV_SAMP_FLOAT
,VARIANCE_FLOAT
,VAR_POP_FLOAT
,VAR_SAMP_FLOAT
,CORRELATION_FLOAT
,CORR_FLOAT
,COVAR_POP_FLOAT
,COVAR_SAMP_FLOAT
- Avoid overflows for most literal arithmetic expressions
Fixed
- Crash with certain join queries when inner table is empty
- Incorrect results on order by non-encoded string with filter applied on that column
- Incorrect detection of overflow when multiplying decimals with negative numbers
- Dictionary folders are now dropped in multi-node setups when tables are dropped
SUM
andAVG
overflows for tables with more than 4B rows- Crash on grouped
COUNT(DISTINCT)
in multi-node setups - Crash on join query when column contains all nulls
MapD Core Rendering Engine
New
- Vega API now supports ability to render non-projection (
GROUP BY
) queries - Added new ExtensionFunction
rect_pixel_bin
as a helper for rectangular heatmap binning - New
symbol
vega mark type. Supports circle, square, diamond, cross, triangles, and hexagons - Added support for a new percent accumulation type, which allows a region to be colored based on one category’s percent of all results at that location.
Fixed
- Fix vega update issue when mark property references new data and nothing else changes.
MapD Immerse
New
- Added Custom SQL Dimension feature, allowing SQL to be used to form dimensions
STDDEV
now available in UI as an aggregate type- Immerse now displays End User License Agreement when product is accessed for first time from Community Edition
Fixed
- Issue with pointmap and scatterplot charts, where chart image is larger than the chart widget size
- Issue with widgets shifting on dashboard after changing browser window size then restoring to original size
- Issue when using custom measure on Scatterplot chart
- Values between -1 and 1 now display in a typical decimal format rather than with “m” abbreviation
- Incorrect behavior for points auto-sizing and manual sizing (pointmap and scatterplot)
3.1.1 - June 26, 2017
MapD Core
New
- Multi-column hash joins now work provided the dimension table has unique composite keys
- Loop join is now automatically allowed for inner tables with up to 1,000 rows
- Improved performance for
LIKE
/ILIKE
operations on dictionary-encoded columns - Improved performance for
COUNT(DISTINCT)
andAPPROX_COUNT_DISTINCT
for low cardinalities - Enhanced SQLimporter compatibility and performance with PostgreSQL
- StreamInserter now offers
—-quoted
flag which, when set to true, removes any double-quotes in the output
Fixed
- Due to an issue with the current release of glibc on many operating systems, we have moved away from a JNI interface to Calcite to avoid segfaults
- Better support for batch JDBC insert (statements are no longer case sensitive)
- Fix for possible race condition when using popups on a rendered chart in a distributed system
- Import improvements around column detection and reject row summary
- Improved error messages around user management commands
- Eliminated overflow when comparing integers with high-precision decimals
- Now recording rejected rows properly in case of Overflow
- Now dropping string dictionaries for
DROP TABLE
in distributed case - Issue with
AVG(float)
when number of records is >2B
MapD Core Rendering Engine
- No notes this release
MapD Immerse
New
- Chart y-axis height can now be capped using a control on the axis, for example to exclude outliers from view. Data is not filtered from the dataset, but merely excluded from view.
- X and Y axes for dc charts can now have their labels edited, allowing for friendly names
- SQL editor beta now offers a command-line style interface with query history
Fixed
- No longer incorrectly showing non-encoded strings as available Dimension columns
3.1.0.1 - June 22, 2017
Note | This point release addresses an issue introduced in recent version of glibc. JNI fails with a segfault after the operating system had been updated. This release fixes that issue by removing the JNI usage. |
3.1.0 - June 15, 2017
Note | MapD Core for single-node usage has been open sourced under the Apache 2.0 license (https://github.com/mapd/mapd-core/blob/master/LICENSE.md). Code available at https://github.com/mapd/mapd-core . EULA at https://www.mapd.com/legal/ |
MapD Core
New
- Initial API support for GOAI consortium (http://gpuopenanalytics.com/). New Thrift API endpoint (
sql_execute_gpudf
) creates a query resultset on the GPU in Arrow format and returns a handle. Other GPU kernels can work directly on the data via the returned handle, reducing the data movement normally associated with staged operations. - Improved initial GPU memory load times by more fully utilizing available PCIE bandwidth
- Now supporting
COVAR_POP
,COVAR_SAMP
,CORR
- Performance for certain complex subqueries, for large
IN
subqueries for multi-node environments, and forMIN
on a nullable float or int - Float performance improvement on
AVG
/SUM
/MIN
/MAX
aggregates - Multi-way
JOIN
queries now use memory more efficiently
Fixed
- Issue where sorting
GROUP BY
andAVG
through view of aJOIN
query returns results in non-sorted order - Problem where in some cases
--allow-cpu-retry
flag would not fall back to CPU - Now correctly returning list of columns for views
- Crash on
CREATE TABLE AS SELECT
whenSELECT
statement returns no rows - Incorrect results when doing
MAX
on a float in some cases - Issue with accuracy of results with drawn polygon filters
AVG
andSUM
on float now supported on Kepler GPUs- Allow execution on GPUs for queries larger than can fit in GPU memory when
--enable-watchdog
flag is set to false - Further overflow detection for decimal type
- Improved precision of numeric on initial load
- Reduce data transfer to GPU memory when not required
COUNT(DISTINCT)
on allNULL
now returns correct (empty) result
MapD Core Rendering Engine
New
- Default rendering now done through EGL. No longer dependent on Xorg
- Multi-layered points/polygons can now be rendered in multi-node environments
- Now using blosc/zstd compression for passing image data between nodes
- Accumulation rendering now supported in multi-node environments
Fixed
- Incorrect darkening of color for images with transparent colors composited on multiple GPUs/nodes
- Issue with re-initializing counts for accumulation rendering when rendering a new frame
- Issue with layers incorrectly persisting from one frame to another when number of layers changes from frame to frame
- Problem with EGL compositing in multi-node environments
- Error on accumulation rendering when using
POW
scale - Errors with removal of polygons from cache
- Bugs when rendering polygons against empty query results
- Issue when coloring by dictionary encoded string when string is in inner table of a joined query
- Accumulation rendering crash when data from query doesn’t span the compositor’s gpu
- Now not throwing error when fill/stroke is turned off between successive render frames
- Fixed shader compile issue when updating the data reference for a packed color vega property
MapD Immerse
New
- Pointmap basemap themes can now be changed
- Raster charts can now render with a density color gradient (represents the number of points stacked at each pixel)
- Chart axis labels can now be edited
Fixed
- Various issues with the scatter chart
3.0.0 - April 26, 2017
Note | This version introduces a change in the Thrift API which breaks compatibility between 3.0 servers/clients and older servers/clients. Users with custom Thrift clients will need to re-run Thrift to generate the update client libraries. |
Note | The deprecated v.1 Immerse is no longer available as of this release. Attempts to access v.1 dashboard links will lead to a 404 message. |
Note | In order to use MapD Core Rendering Engine, CentOS and Redhat users must upgrade to CUDA driver version 375.51 or later |
Note | The —-disable-rendering flag has been changed to be —-rendering=false |
MapD Core
New
- Native distributed scale-out capability, allowing deployment of the MapD Core database across a cluster of GPU machines
- Native ODBC support, enabling MapD Core to be connected to 3rd party clients
VARIANCE
`STDDEV_POP
andSTDDEV_SAMPLE`
- Support for more groups in multi-column
GROUP BY
queries (40m - 60m groups) - Up to 10x performance improvement for
IN
subqueries with many values. Additional small performance improvement forIN
queries with at most 3 values. - Ability to have 3+ way
JOIN
on a conjunction of equality expressions when each of them is one-to-one - Now offering ability to specify commonly used columns to be loaded from disk at database startup time
- Supporting HH:MM time format for file import
Fixed
- Issue where
HAVING IS NOT NULL
wasn’t applied to date extraction/truncation expressions - Issue with 3-way
JOIN using
star schema - Fix import correctness issues when rows are rejected
- Issue where non-grouped queries returned incorrect number instead of
NULL
when no rows match forMAX
/MIN
aggregates - Issue with potential corruption during overlapping parallel loads to single table
- Issue where column metadata for
VIEW
/s would show the term “Explanation” instead of proper metadata
MapD Core Rendering Engine
New
- Rendering now uses EGL instead of GLX, removing the Xorg requirement
Fixed
- Crash when rendering
JOIN
queries
MapD Immerse
New
- Dimension axis now dynamically updates during cross-filtering to maintain fine granularity as data ranges get smaller
Fixed
- Issue with Line/Histogram chart where brushing range would extend filter beyond what is selected
- Chart spinners, used to indicate network wait time, are now less intrusive and appear/disappear more quickly
- Restricting arrays from being selectable as dimensions/measures when not available, and visually indicating them more clearly
- Certain problems with handling
NULL
- Certain problems with shape selector tools
2.4.0 - April 13, 2017
Note | The upcoming version 3.0 of MapD will no longer include the deprecated version 1.0 of the MapD Immerse visualization client. Please create dashboards within versions 2.0 and later of MapD Immerse in order to maintain ongoing support. |
MapD Core
New
- Now supporting
CREATE TABLE AS SELECT
. Does not currently support arrays, non-encoded strings, or fixed-encoding integers. IN
expressions may now have a large number of literals (up from 20 formerly)- A new parameter
first_n
is available in the thriftsql_execute
endpoint, which limits the number of results returned to the client - Further performance improvements for
HAVING
queries andIN
subqueries - Dynamic watchdog can now interrupt queries during the reduction phase
- 15-20% performance improvement for reductions for queries with many groups
- mapdql now offers a
\o
command to generate an optimized schema for a table, showing most compact types to use for each column - Views and Tables are now shown in separate commands in mapdql. To see views, use
\v
Fixed
- Failure to identify div/0 errors for certain projection queries
- Views with date_trunc now supported properly
MapD Core Rendering Engine
- No notes this release
MapD Immerse
New
- SQL Editor now available, allowing hand-written SQL queries from Immerse. Query output is tabular, capped at a 1000 row preview.
- Enhanced shape selection tool now is available on all backend-rendered charts (earlier tool was available for pointmap only). New tool offers freehand selection in addition to the previously offered circle and polygon selection. Shapes may also be resized, manipulated, rotated after they are drawn.
Fixed
- Problem with heatmap displaying monochrome when a gradient of colors should have been used
- Bug when switching Line chart measure without first clearing measure, on chart with time dimension
- Bug when switching from categorical to continuous dimension
- Heatmap color incorrectly scaling by universal instead of filtered min/max range
- Error when going from chart editor to Dashboards list screen
2.3.0 - March 28, 2017
MapD Core
New
- Improved performance for
HAVING
queries - Improved performance for
IN
subqueries and raised limit on number of items inIN
statement from 10K to 1M - Improved performance for queries with
GROUP BY
aCASE
statement which buckets different date buckets in different branches - Added http parameter so jdbc session to server can be http protocol (URL example:
jdbc:mapd:localhost:6273:mapd:http
)
Fixed
- Degradation of Calcite parser performance over time
- Problem with 3+ way
JOIN
involved a fixed encoding column - Crash with
GROUP BY
nullable timestamp for Maxwell and Pascal consumer cards - Occasional crash when inserting into newly created fragment
- Crash with
JOIN
projection queries involving a multi-fragment inner table including columns from that inner table - Now reporting correct statistics on
COPY FROM
wildcard input
MapD Core Rendering Engine
- No notes this release
MapD Immerse
New
- Dimensions which have
NULL
rows now displayNULL
results by default. May be optionally turned off
Fixed
- Bug with display of choropleth image layer when Dimension / Measure / Geojson fields are selected in a particular order
- Infinite redraw loop in some cases after brushing line chart
- Bug preventing new filters from being applied after a polygon lasso tool filter was in place
- Proper clearing of cached min/max values for chart axes
- Regression for sampling for backend-rendered charts
2.2.0 - March 14, 2017
MapD Core
New
- Support for
CREATE VIEW
HAVING
queries now faster, particularly for queries with many groups- After table
DROP
disk space for the removed table is now freed INSERT
across multiple tables now support full concurrency- More flexible support for LDAP distinguished names for authentication
- Flag for –allow-cpu-retry allows queries which cannot run on GPU because of lack of memory to run on CPU
Fixed
- Crash for join on conjunction of equality expressions
- Problem on multiplying not null decimals by integer
- Problem with an explicit inner equijoin when a filter is applied on the inner table
- Intermittent problem with not rejecting equijoins with no 1-to-1 relationship
- Issue with projected sub-queries in the
FROM
clause where various filters are applied on each level and where there are 3 or more nesting levels
MapD Core Rendering Engine
New
- Can now hit-test against multiple layers that reference the same table
MapD Immerse
New
- Custom measures may now be applied for backend rendered charts (pointmap, scatterplot)
Fixed
- Range filters are now inclusive on each side of the filter
- Bubble chart now uses padding at sides of the chart to make it easier to view bubbles at the extremes
- Issue where certain large backend rendered datasets would not display until panned/zoomed
- Various bugs with color-by-measure when switching chart type
- Pointmap fails to redraw on zoom change, certain cases
- Spurious error when creating a global filter after previously having gotten valid error on custom measure
2.1.0 - March 1, 2017
Note | This release makes a disk format change in order to solve problems when data is imported concurrently to multiple tables. A data migrator packaged with this release converts the old data format to the new one. Older format will no longer be supported starting from this release, and any newly created databases will be created in the new format. Backup your database before starting the data migrator. Instructions on making use of the migrator may be found in section v2.1.0 Migration. |
MapD Core
New
- Now able to do “top n” counts for more than 4B rows and up to 125M groups
- Now possible to join against a multiple-fragment inner table
- Self-joins now supported. One-to-many self joins can be done via the
--allow-loop-joins
flag but are not currently recommended due to performance considerations. - Faster database startup time by loading table metadata when tables are touched instead of all up front. Benefit greatest for databases with many tables but concentrated usage in a few tables.
- New
UNLIKELY
function provides up to 4x quicker results for Immerse’s drawn polygon lasso tool - Mapdql improvements: multi-line queries now captured in history, and passwords hidden in interactive mapdql prompt
Fixed
- Problem with
OR
queries with literal boolean operand
MapD Core Rendering Engine
New
- Now possible to render multiple layers from the same polygon table. Improved performance when multiple users render concurrently from the same polygon table.
Fixed
- Render bug in certain situations when same user changes data reference in two successive vega calls
MapD Immerse
New
- Scatterplot chart now uses sampling to give a more accurate representation of a dataset’s full distribution
- Larger text field for entering Custom Measure
Fixed
- Scatterplot and pointmap popup box not appearing for saved dashboards
- Line chart not always using “Auto” bin setting when appropriate, and binning labels sometimes falling out of sync with actual data displayed
- Bugs related to switching from Table Chart to other charts, and vice versa
2.0.4 - February 14, 2017
MapD Core
New
APPROX_COUNT_DISTINCT
now automatically uses exactCOUNT(DISTINCT)
when it is more memory efficient to do so- Queries which run longer than 20 seconds on the GPU are now safely timed out
COPY FROM
command now includes detailed output information about rejected rows, and stops after 100k rejected rows, configurable usingmax_reject
parameter in theWITH
clause.distance_in_meters
function now computes up to 5x faster for floating point numbers- Twice as many distinct values can now be stored for fixed-encoding dictionary columns (255 for 8-bit and 65,535 for 16-bit)
Fixed
- Range for fixed-encoding dictionary columns is now validated
- Problem with
APPROX_COUNT_DISTINCT
non-grouped queries on an empty input - Fixed a performance regression for small cardinality
GROUP BY
queries on GPU
MapD Core Rendering Engine
New
- Now able to pack color into 64-bit integers (previously could only do 32-bit integers). 32-bit is still recommended type, as 64-bit is wasteful.
- Now supporting 64-bit integers for shading polygons
Fixed
- Problem with successive vega calls where the mark type which is requested (e.g. point or polygon) is changed between the 2 calls
MapD Immerse
New
- Lasso tool to allow filtering on arbitrary polygon or circle regions on a pointmap
- Added ability to import and create database tables from geojson, KML and shapefile formats
- Heatmap charts now order y-axis descending from top of axis for dates and strings, and use AM/PM format for hours
- Introduced spinners on Dimensions/Measures during chart creation, to give clearer indication when waiting for data to return
Fixed
- Issue with proper application of filter when a Global Filter’s type is changed
- Bubble chart: failure to return to original, unfiltered state after a bubble filter has been removed
- Proper error display when global filter results in error
- Binned queries calculate bin size using higher precision for bin formation (up to 18 decimal places)
- Proper removal of filters for charts which were cancelled mid-creation
- Saved pointmap dashboards now correctly utilize the saved Size Domain settings
- Mouseover popup box now appearing correctly for saved scatterplots
2.0.3 - February 1, 2017
MapD Core
New
- Now running
COUNT DISTINCT
on GPU. >10x speedup over old implementation. - Added
APPROX_COUNT_DISTINCT
(HyperLogLog algorithm) - Improved concurrency in CPU-based portions of query execution yielding 15-20% latency improvement, particularly for queries that are complex or have large result sets.
Fixed
- Problems with
CAST
: decimal to floating point; decimal to decimal; nestedCAST
- Problem with floating point zero literal
- Problem with
COUNT(*)
in a 3+ way join query - Problem with unary minus or
ABS
on aNOT NULL
floating point - Delay while reading table metadata
MapD Core Rendering Engine
Fixed
- Problem rendering polygons when
start_GPU
configuration parameter is not zero - Problem in determining the appropriate data type for scales in the render vega
- Problem with mismatched colors for dictionary-encoded strings when using blended categorical color accumulation
- Problem when moving from blended accumulation to density accumulation or vice versa
MapD Immerse
New
- Enabled
APPROX_COUNT_DISTINCT
aggregation for all types other than non-encoded strings. This appears in Immerse as the Measures aggregate button “# Unique”
Fixed
- Problem escaping single quotes (‘) for multi-series line charts
- Problem with inaccurate bin label when switching dimensions from a binned time dimension to a binned non-time dimension
- Cancelling a chart edit caused Range Chart to disappear
- Problem with number of requested bins not matching the number of rendered bins
- Various errors switching between chart types
- Dragging measures between slots for backend rendered chart fails to update chart
2.0.2 - January 20, 2017
MapD Core
New
- New Python interface to support standard Python database APIs
- More groups now possible in multi-column
GROUP BY
queries - Error messages for unsupported joins now specify problem table
- Error messages for
CREATE TABLE
now specify problem column - Now can use alias for
GROUP BY
in anORDER BY
query - Column and table names may now start with an underscore (_)
- Thrift’s get_server_status call now provides server start time
- Now supporting explicit
CAST
from string literal toDATE
,TIME
orTIMESTAMP
Fixed
- Problem with
HAVING
queries which use fixed encoding columns - Problem with some
IN
subqueries which return no results - Problem with
NULL
handling forNOT IN
subqueries - Fixed the result of
NULL OR TRUE
operations - Fixed conversion to floating point for decimal literals with more than 18 decimal places
MapD Core Rendering Engine
Note | Changes to MapD Core’s GPU rendering engine, the “MapD Core Rendering Engine,” will be tracked in this section going forward. |
New
- Added support for HSL, LAB, and HCL color spaces
- Now supporting rendering of
DECIMAL
andBIGINT
types
Fixed
- Bug when new columns are added to results of embedded vega query w/ no other change
MapD Immerse
New
- Added backend-rendered Scatterplot chart for non-aggregate X/Y visualization. The old chart formerly called Scatterplot, intended for aggregated visualization, is now called Bubble Chart.
- Pointmap: Zoom to geocoded location
- Changed labelling for “row” chart to “bar” chart
- Added area chart view for line chart
- Global filters for
IS NULL
/IS NOT NULL
- Multi-series line chart now has option to display non-enumerated items as “All Others”
Fixed
- Browser crash when removing dimension sorts on table chart
- Re-added visible border around mapbox shift zoom
- Continuous Legend’s user-applied min/max will no longer reset when changing colors on point map
- Range chart can now be removed from IE 11
- No longer re-rendering all charts when entering chart editor mode
- No longer updating deleted charts
- Color Widget will no longer save empty values
- Switching between custom color and quantitative color will no longer cause 2 different types of legend to appear and overlap
- DC: No longer updating Range Chart after user has completed brushing of Range Chart
- DC: Make zoom to bounds safe by snapping to global view if lat/lon values are invalid
- CF: Update binning precision to address occasional incorrect forming of bins
2.0.1.1 - December 20, 2016
MapD Core
Fixed
- Issue related to comparisons with
DATE ENCODING FIXED
columns - Added option to disable query watchdog via the command line option
--enable-watchdog=false
2.0.1 - December 16, 2016
MapD Core
Fixed
- Issue when calling
MIN
/MAX
on aTEXT ENCODING DICT
column - Performance regression with a high cardinality
GROUP BY
MapD Immerse
Fixed
- Issue with pointmap related to handling of out-of-bounds latitude/longitude values
Version 2.0
Note | Please note this version introduces a filesystem-level change to the on-disk data. After the automated migration to this version has occurred, your data directory will no longer be compatible with previous versions. Any risk is low, but please confirm prior to starting a new version of MapD that your backups are current and available. |
Note | This release breaks API compatibility with the previous JDBC driver. You must use the new JDBC driver included in this release with any MapD Core 2.0 instances. |
Note | Version 2 of the MapD visualization web client, Immerse, now is available at
the root of the host, e.g. yourserver/ . Version 1 of Immerse is still
available at yourserver/v1/ . Links to saved version 1 dashboards will
resolve to the correct address. Version 1 is deprecated, but will continue to
be included in the MapD install, with sufficient notice to be given before it
is removed. Henceforth, updates to Immerse will be noted in these release
notes. |
2.0.0 - December 13, 2016
MapD Core
Note | Please note this version introduces a filesystem-level change to the on-disk data. After the automated migration to this version has occurred, your data directory will no longer be compatible with previous versions. Any risk is low, but please confirm prior to starting a new version of MapD that your backups are current and available. |
Note | This release breaks API compatibility with the previous JDBC driver. You must use the new JDBC driver included in this release with any MapD Core 2.0 instances. |
New
- Queries with multiple
GROUP BY
columns perform significantly better than before, particularly for queries which generate a high number of groups - Projection queries without a limit are now allowed most of the time, depending on filter selectivity
- Multi-column
GROUP BY
now uses less memory COPY TO
now accepts any query allowed elsewhere in the system- More
IN
/NOT IN
subqueries are supported and have better performance ATAN
function support- Up to 30% faster StreamInsert and
COPY FROM
import performance - Support for polygon hit testing (checking whether a backend-rendered pixel has an underlying polygon)
- In addition to standard CSS-string color representations, colors can now be represented in a packed 32-bit integer format
- SQL watchdog now enabled by default, to catch queries which would consume excessive resources
- Glob support for
COPY FROM
statement, allowing multiple delimited files to be specified for import - Newly available
EXPLAIN CALCITE
statement show human-readable relational algebra - Full schema now reported in MapDQL when using
\d
option - Improved import times for small files
- Smaller, 2MB JDBC driver now available
- SQLImporter default behavior changed to append, if appropriate table is already available. Truncate option is now required to be specified if you want to import into an empty table.
Fixed
- Issue with
ORDER BY
non-COUNT
aggregates for queries which generate many groups - Data race condition with 3+ way
JOIN
- Issue with
ORDER BY
negative floats - Issue with
ORDER BY
a column when a function of that column is projected - Issue with
IN
subqueries when inner query is a projection query - Robustness issues with simple top count queries which generate many groups before the top operation
- Issue with
LIKE
/REGEX
on non-dictionary encoded strings - Issue when
CASE
expression is an argument to a COUNT aggregate expression - Issue when
TRUNCATE
on integers when second argument is negative - Issue when using
SELECT *
from a 3+ wayJOIN
query - Fixing edge-case Rendering bugs when updating Vega-only without changing SQL query
- Render polygon stroking issue when two adjacent polygon edges overlap one another
- Cleanup long-lasting HTTP connections caused by misbehaving clients. Timeout duration is configurable.
- Issue in a scenario where a table had been named A then renamed to B, then dropped and recreated as A
- Greater precision is now maintained for Lat/lon on rendered maps
- JDBC connector mishandling of
AS
in SQL statements - Issue with importing
DATE
orTIMESTAMP
as a negative UNIXepoch
time representation - Issue with
COPY TO
forTIME
columns - Issue with Linux kernel memory fragmentation
- Issue with JMeter support in the JDBC driver
MapD Immerse
Note | Version 2 of the MapD visualization web client, Immerse, now is available at
the root of the host, e.g. yourserver/ . Version 1 of Immerse is still
available at yourserver/v1/ . Links to saved version 1 dashboards will
resolve to the correct address. Version 1 is deprecated, but will continue to
be included in the MapD install, with sufficient notice to be given before it
is removed. Henceforth, updates to Immerse will be noted in these release
notes. |
1.2.10 - November 3, 2016
MapD Core
New
- Now supporting
JOIN
for three or more tables - Faster loading of cold data from disk
- More detailed error messages for unsupported
JOIN
queries - Enhanced precision when rendering
double
columns for X/Y - New mapdql command
\memory_summary
to show current memory usage
Fixed
- Issue with
SORT
queries containing duplicate count all aggregates - Incorrect results for
OUTER JOIN
queries with a projectionCASE
involvingNULL
s COUNT DISTINCT
for 2 or more columns now properly rejected- Issue with instability when close to limit of physical host memory
- Inaccurate results for
SUM
andAVERAGE
for floating point on GPU - Conversion from string to numeric types on
INSERT
statement CAST
from integer to float for literal constants- Issue with
bigint
interpretation in JDBC
1.2.9 - October 17, 2016
MapD Core
New
- Scalar subqueries may now be run without enabling loop joins
- Allow fully qualified columns not specified in project portion of
query to be used in
ORDER BY
- Additional multi-column
GROUP BY
queries now run on GPU
Fixed
- Issue with sub-queries having empty intermediate results
- Issue with
CASE
statements without a specifiedELSE
branch COUNT
on non-dictionary encoded strings used in aGROUP BY
- Issue with
MIN
orMAX
on a string in aGROUP BY
query - Reliably throw exception instead of returning empty results for division by zero
- Now short-circuiting logical expressions
1.2.8 - October 3, 2016
MapD Core
New
- Text columns now default to dictionary encoding. If old unencoded
behavior required then
TEXT ENCODING NONE
should be used in create table statement. This does not affect existing tables, but any new tables created are affected. - Now able to color by boolean
Fixed
- Issue for some
CASE
statements involving nullability - Issue with sort on very high cardinality column
- Now throwing exception on overflow for arithmetic operations
- Allow hash joins rather than loop joins in queries with
ORDER BY
- Issue when trying to
GROUP BY
array column - Issue with
OR
statements involving NULLs - Issue in comparing decimal column with integer literal
- Issue for any string literal containing the term
all
or other SQL tokens - Now throwing exception for tables with very high number of columns
1.2.7 - September 12, 2016
MapD Core
New
- Add support in JDBC driver for implicit type casting of expressions to double/string, not requiring explicit CAST operator
1.2.6 - September 6, 2016
MapD Core
New
- Support for POSIX regular expressions, boolean match
- Performance improvement for some
GROUP BY
ORDER BY
queries with aLIMIT
- Added NVARCHAR support to SQLImporter
- Added function distance_in_meters
- Now supporting sub-pixel morphological anti-aliasing, for better line anti-aliasing
Fixed
- Problem when coloring by string with null value
- Failure to update pointmap color when range of the scale changes
- Parsing problem with SQL text containing “all” or “any”
1.2.5 - August 23, 2016
MapD Core
New
- Improvement in memory efficiency for
GROUP BY
unnested string arrays - Added fragment size option to SQL Importer
- Optimization to leverage hardware-accelerated FP64 atomics on Pascal architecture
- Improved stability and performance for high cardinality group by queries
Fixed
- Issue with multi-key
GROUP BY
on empty table - Regression with coloring by string on backend rendered images
- Issue on certain hardware where backend rendered pointmap images draw to a corner/side
1.2.4 - August 15, 2016
MapD Core
New
EXTRACT
week supportTRUNCATE
support for non-decimal numeric typesCAST
from timestamp to date- Partial
INTERVAL
support - Performance improvement for
GROUP BY
date - Additional performance optimizations for subqueries
LOG10
support- Backend rendering now supports all quantitative scales in vega specification, including pow, sqrt, and log
Fixed
- Fixed an issue with Postgres importer reporting boolean as bit
- Fixed occasional slowdown for render queries on servers with many GPUs
- Fixed an issue affecting non-
GPOUP BY
queries on an empty table - Fixed an issue when selecting
MIN
orMAX
from empty table - Fixed an issue for
IN
subqueries when inner query result is above a certain size - Fixed an issue with performance for “top n” queries
1.2.3 - August 1, 2016
MapD Core
New
- Now allow using aliases in
FROM
andWHERE
clauses
Fixed
- Made loading from cold cache (disk) faster
- Fixed memory leaks around unsupported queries
- Fixed problem when recreating a previously dropped table
- Fixed problem when parsing CSVs with inconsistent number of columns
1.2.2 - July 25, 2016
MapD Core
New
- Added math functions
(
ACOS
,ASIN
,ATAN
,ATAN2
,COS
,COT
,SIN
,TAN
,ABS
,CEIL
,DEGREES
,EXP
,FLOOR
,LN
,LOG
,MOD
,PI
,POWER
,RADIANS
,ROUND
,SIGN
) - Improved performance for top k IN subqueries
- Added partial support for NOT IN subqueries
- Added automatic reprojection of lat/long to mercator for mapping display
Fixed
- Fixed an issue for CAST from a literal decimal
- Fixed CAST of NULL to a numeric type
- Fixed unary minus operator for nullable inputs
1.2.1 - July 18, 2016
MapD Core
New
- Backend rendered images can now be colored along a spectrum between two colors, based on an accumulated measure (e.g. accumulated red or blue datapoints can result in purple)
- Added
DROP
andALTER
table support for Apache Calcite
Fixed
- Added a more robust conversion of decimal literals to float, retaining more precision
- Fixed an issue for
CASE
expressions which return booleans
1.2.0 - July 11, 2016
MapD Core
New
- Changed SQL parser to Apache Calcite
- Subquery support
- Further join support (e.g. left outer join)
- Case insensitivity for column and table names
- New core execution engine, Relational Algebra Virtual Machine (“RAVM”), gives more flexibility allowing execution of arbitrarily complex queries
- Added additional formats for date import
- MapD Immerse v.2 technical preview
- Redesigned user interface allows more powerful chart creation and intuitive data exploration
- To access the Immerse Technical Preview Dashboards page, go to
http://<server>:<port>/v2/
- Immerse v.2 technical preview is an unstable preview release. A subset of major known bugs is here
Fixed
- Fixed a problem with count distinct and group by queries
- Fixed a problem with count on float
- Fixed a problem with projection queries in limited cases
- Fixed a problem where tables created via MapD web-based table importer were not consistent with tables built via SQL CREATE
- Disallowed use of reserved SQL keywords as column names
Removed
- Loss of Group By ordinals (would restore pending Calcite support)
Dependencies
- Now requiring Java Runtime Environment (JRE) version 1.6 or higher
Version 1.1
1.1.9 - June 27, 2016
MapD Core
New
- Improved logging and system process management
- Deprecated
--disable-fork
flag inmapd_server
. Please remove this flag from any config files. - Removed
fork()
frommapd_server
. Automatic restart should now be handled by an external process, such assystemd
. - Added graceful shutdown to
mapd_web_server
so thatsystemd
more accurately reports its status - Modified
mapd_server
service file so thatsystemd
more accurately reports its status - Improved logging of various mapd_server operations
- Improved memory handling to better maximize GPU RAM usage
Fixed
- Fixed a bug that prevented queries from running which were joining an empty table
- Fixed a subtle stroke/line visual defect when polygons are rendered on the backend
1.1.8 — June 21, 2016
MapD Core
New
- Added
\copygeo
command to support ingesting shapefiles - Added backend API for rendering polygons
Fixed
- Improved performance of
CASE
queries that don’t have anELSE
clause - Fixed a crash that would occur when certain large output results were generated
- Improved performance of queries, such as
SELECT * FROM table_name LIMIT 5
- Fixed a bug that would sometimes omit results from queries with
AVG
whereNULL
s were present
1.1.7 — June 13, 2016
MapD Core
Fixed
- Fixed bug where certain long-running queries would needlessly block others
- Immerse: fixed a problem where embedding apostrophes or % in filters or custom filters could cause errors
- Immerse: added MapDCon example for Node.js
1.1.6 — May 31, 2016
MapD Core
New
- Added Apache Sqoop support to the MapD JDBC driver. Please contact us
at
support@mapd.com
to obtain the JDBC driver. - Improved performance when grouping on
date_trunc
with additional columns
Fixed
- Fixed a bug that would appear when calculated fields tried to divide by zero
- Fixed bug with CASE expressions
- Fixed bug where COPY statement blocks execution of other queries
1.1.5 — May 23, 2016
MapD Core
New
- Improved error logging to reveal the root kernel launch error for group by queries
- Added a new API endpoint
sql_validate
to the API
Fixed
- Fixed a bug that calculated incorrect results on
COUNT(CASE....)
style conditional counting queries - Fixed a memory usage and performance bug which was causing some
render
API calls to timeout
1.1.4 — May 16, 2016
MapD Core
New
- Improved memory fragmentation handling by adding support for huge pages.
- Improved performance when joining large tables to small tables.
- Improved join on dictionary strings performance.
Fixed
- Fixed out-of-bound access in VRAM when out-of-slot exception raised
- Fixed an issue with queries returning empty result sets
- More conservative tuple threshold for compaction, fixing count overflow on large tables
- Reduced memory fragmentation for long-running servers
1.1.3 — May 9, 2016
MapD Core
New
- Added a new chart type: Number Chart. The Number Chart shows a single value, making it simpler to point out important averages, totals, etc.
- Added a
--quiet
flag tomapdql
to supress it’s informational messages from appearing inSTDOUT
- Added frontend-rendered choropleth overlays to Point Map charts
- Added a watchdog capability to catch SQL queries that are poorly formulated
- Improved the Database Engine log messages to improve readability, and consistency
- Improved the
render()
API to work with more column types. You can now color output by values taken from your boolean and decimal columns
Fixed
- Fixed a bug that caused Bar Charts to jump around when users clicked on certain rows in long multi-page chart instances
- Fixed a bug where the CSV import logic prevented some quoted empty strings from being handled properly
- Fixed a bug where the CSV import logic rejected rows with empty strings in the last position
- Fixed a bug where the import logic wouldn’t properly handle string
arrays with embedded
NULL
elements - Fixed a bug where the SQL
AVG()
function would introduce rounding errors under some circumstances - Fixed a bug where SQL statements with
JOIN
andHAVING
clauses wouldn’t execute
This sitemap link is for the benefit of the search crawler.