# Release 3.x

#### Links to 3.x Documentation

[**3.6.1**](https://docs.omnisci.com/v3.6.1) | [**3.6.0**](https://docs.omnisci.com/v3.6.0) | [**3.5.0**](https://docs.omnisci.com/v3.5.0)[ | **3.4.0**](https://docs.omnisci.com/v3.4.0) | [**3.3.1**](https://docs.omnisci.com/v3.3.1) | [**3.3.0**](https://docs.omnisci.com/v3.3.0) | [**3.2.4**](https://docs.omnisci.com/v3.2.4) | [**3.2.3**](https://docs.omnisci.com/v3.2.3) | [**3.2.2**](https://docs.omnisci.com/v3.2.2)[ | **3.2.1**](https://docs.omnisci.com/v3.2.1) | [**3.2.0**](https://docs.omnisci.com/v3.2.0) | [**3.1.3**](https://docs.omnisci.com/v3.1.3) | [**3.1.2**](https://docs.omnisci.com/v3.1.2) | [**3.1.1**](https://docs.omnisci.com/v3.1.1) | [**3.1.0.1**](https://docs.omnisci.com/v3.1.0.1) | [**3.1.0**](https://docs.omnisci.com/v3.1.0) | [**3.0.0**](https://docs.omnisci.com/v3.0.0)

## 3.6.1 - April 13, 2018 <a href="#id-3-6-1-april-13-2018" id="id-3-6-1-april-13-2018"></a>

### MapD Core <a href="#mapd-core-2" id="mapd-core-2"></a>

**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 <a href="#mapd-core-rendering-engine-1" id="mapd-core-rendering-engine-1"></a>

**Fixed**

* Improved multi-GPU/multilayer rendering compositing

### MapD Immerse <a href="#mapd-immerse-2" id="mapd-immerse-2"></a>

**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 <a href="#id-3-6-0-march-13-2018" id="id-3-6-0-march-13-2018"></a>

### MapD Core <a href="#mapd-core-3" id="mapd-core-3"></a>

**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 <a href="#mapd-core-rendering-engine-2" id="mapd-core-rendering-engine-2"></a>

**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`, and `strokeOpacity` properties to marks so that opacity can be controlled independently of the `fillColor` and `strokeColor` literals.

### MapD Immerse <a href="#mapd-immerse-3" id="mapd-immerse-3"></a>

**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 <a href="#id-3-5-0-february-21-2018" id="id-3-5-0-february-21-2018"></a>

### MapD Core <a href="#mapd-core-4" id="mapd-core-4"></a>

**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 new `get_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` to `mapd_web_server`
* mapdql: fix LineNoise memory leak
* mapdql: Various error handling improvements

### MapD Core Rendering Engine <a href="#mapd-core-rendering-engine-3" id="mapd-core-rendering-engine-3"></a>

**New**

* Significant performance improvements in rendering datasets with large numbers of polygons

**Fixed**

* Better handling of bad data in shapefiles

### MapD Immerse <a href="#mapd-immerse-4" id="mapd-immerse-4"></a>

**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 return `COUNT`.
* 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 <a href="#id-3-4-0-january-16-2018" id="id-3-4-0-january-16-2018"></a>

### MapD Core <a href="#mapd-core-5" id="mapd-core-5"></a>

**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 <a href="#mapd-core-rendering-engine-4" id="mapd-core-rendering-engine-4"></a>

**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 <a href="#mapd-immerse-5" id="mapd-immerse-5"></a>

**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 <a href="#id-3-3-1-november-8-2017" id="id-3-3-1-november-8-2017"></a>

### MapD Core <a href="#mapd-core-6" id="mapd-core-6"></a>

**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 <a href="#mapd-core-rendering-engine-5" id="mapd-core-rendering-engine-5"></a>

**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 <a href="#mapd-immerse-6" id="mapd-immerse-6"></a>

**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 <a href="#id-3-3-0-october-26-2017" id="id-3-3-0-october-26-2017"></a>

### MapD Core <a href="#mapd-core-7" id="mapd-core-7"></a>

**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 <a href="#mapd-core-rendering-engine-6" id="mapd-core-rendering-engine-6"></a>

**New**

* Run all render commands on a dedicated thread, removing connection limit
* Add line mark rendering type

### MapD Immerse <a href="#mapd-immerse-7" id="mapd-immerse-7"></a>

**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 <a href="#id-3-2-4-october-6-2017" id="id-3-2-4-october-6-2017"></a>

### MapD Core <a href="#mapd-core-8" id="mapd-core-8"></a>

**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 <a href="#mapd-core-rendering-engine-7" id="mapd-core-rendering-engine-7"></a>

**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 <a href="#mapd-immerse-8" id="mapd-immerse-8"></a>

**New**

* For Community Edition, added link to the \[Community Forum]\([https://community.mapd.com](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 <a href="#id-3-2-3-september-22-2017" id="id-3-2-3-september-22-2017"></a>

### MapD Core <a href="#mapd-core-9" id="mapd-core-9"></a>

**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 <a href="#mapd-core-rendering-engine-8" id="mapd-core-rendering-engine-8"></a>

**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 <a href="#mapd-immerse-9" id="mapd-immerse-9"></a>

**New**

* Update EULA text
* Added Google Tag Manager for product usage tracking

## **3.2.2** - September 9, 2017 <a href="#id-3-2-2-september-9-2017" id="id-3-2-2-september-9-2017"></a>

### MapD Core <a href="#mapd-core-10" id="mapd-core-10"></a>

**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 <a href="#mapd-core-rendering-engine-9" id="mapd-core-rendering-engine-9"></a>

**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 <a href="#mapd-immerse-10" id="mapd-immerse-10"></a>

**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 <a href="#id-3-2-1-august-25-2017" id="id-3-2-1-august-25-2017"></a>

### MapD Core <a href="#mapd-core-11" id="mapd-core-11"></a>

**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 <a href="#mapd-core-rendering-engine-10" id="mapd-core-rendering-engine-10"></a>

**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 <a href="#mapd-immerse-11" id="mapd-immerse-11"></a>

**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 <a href="#id-3-2-0-august-17-2017" id="id-3-2-0-august-17-2017"></a>

### MapD Core <a href="#mapd-core-12" id="mapd-core-12"></a>

**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 <a href="#mapd-core-rendering-engine-11" id="mapd-core-rendering-engine-11"></a>

**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 <a href="#mapd-immerse-12" id="mapd-immerse-12"></a>

**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 <a href="#id-3-1-3-july-27-2017" id="id-3-1-3-july-27-2017"></a>

### MapD Core <a href="#mapd-core-13" id="mapd-core-13"></a>

**New**

* Improved support for `INTERVAL` data type, and added functions for `TIMESTAMPADD`, `TIMESTAMPDIFF`, `DATEADD`, `DATEDIFF` and `DATEPART`. 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` or `REGEXP_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 <a href="#mapd-core-rendering-engine-12" id="mapd-core-rendering-engine-12"></a>

**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 <a href="#mapd-immerse-13" id="mapd-immerse-13"></a>

**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 <a href="#id-3-1-2-july-19-2017" id="id-3-1-2-july-19-2017"></a>

### MapD Core <a href="#mapd-core-14" id="mapd-core-14"></a>

**New**

* Division by zero behavior is now configurable via flag `null-div-by-zero`. New installs using `systemd` will default to `true` in their config files, meaning that division by zero returns `null`; existing installs will default to `false`, preserving the existing behavior of throwing a `division by zero` exception.
* `round_to_digit(x,y)` function now supported. Rounds `x` to `y` 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` and `AVG` 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 <a href="#mapd-core-rendering-engine-13" id="mapd-core-rendering-engine-13"></a>

**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 <a href="#mapd-immerse-14" id="mapd-immerse-14"></a>

**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 <a href="#id-3-1-1-june-26-2017" id="id-3-1-1-june-26-2017"></a>

### MapD Core <a href="#mapd-core-15" id="mapd-core-15"></a>

**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)` and `APPROX_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 <a href="#mapd-core-rendering-engine-14" id="mapd-core-rendering-engine-14"></a>

* No notes this release

### MapD Immerse <a href="#mapd-immerse-15" id="mapd-immerse-15"></a>

**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 <a href="#id-3-1-0-1-june-22-2017" id="id-3-1-0-1-june-22-2017"></a>

{% hint style="info" %}
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.
{% endhint %}

## **3.1.0** - June 15, 2017 <a href="#id-3-1-0-june-15-2017" id="id-3-1-0-june-15-2017"></a>

{% hint style="info" %}
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/>
{% endhint %}

### MapD Core <a href="#mapd-core-16" id="mapd-core-16"></a>

**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 for `MIN` 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` and `AVG` through view of a `JOIN` 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` when `SELECT` 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` and `SUM` 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 all `NULL` now returns correct (empty) result

### MapD Core Rendering Engine <a href="#mapd-core-rendering-engine-15" id="mapd-core-rendering-engine-15"></a>

**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 <a href="#mapd-immerse-16" id="mapd-immerse-16"></a>

**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 <a href="#id-3-0-0-april-26-2017" id="id-3-0-0-april-26-2017"></a>

{% hint style="info" %}

* 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.
* 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.
* To use MapD Core Rendering Engine, CentOS and Redhat users must upgrade to CUDA driver version 375.51 or later.
* The `--disable-rendering` flag has been changed to be `--rendering=false`
  {% endhint %}

### MapD Core <a href="#mapd-core-17" id="mapd-core-17"></a>

**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`` and ``STDDEV_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 for `IN` 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 for `MAX` / `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 <a href="#mapd-core-rendering-engine-16" id="mapd-core-rendering-engine-16"></a>

**New**

* Rendering now uses EGL instead of GLX, removing the Xorg requirement

**Fixed**

* Crash when rendering `JOIN` queries

### MapD Immerse <a href="#mapd-immerse-17" id="mapd-immerse-17"></a>

**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

This [sitemap](https://docs.omnisci.com/latest/sitemap.html) link is for the benefit of the search crawler.
