MapD Platform Release Notes¶
The latest version of the MapD Platform is 3.1.2
3.1.2 - Released 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 these functions may 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 - Released 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 - Released 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 - Released 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
3.0.0 - Released April 26, 2017¶
Note
please 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
- Supporting High Availability configurations, allowing MapD to be consistently available when there are issues with database instances in a High Availability Group
- 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 - Released April 13, 2017¶
Note
Please 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 - Released 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:9092: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 - Released 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 - Released 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 - Released 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 - Released 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 - Released 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 - Released December 20, 2016¶
2.0.1 - Released 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 - Released 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 - Released 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 - Released 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 - Released 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. NOTE: This will not affect existing tables but any new tables created will be 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 - Released September 12, 2016¶
1.2.6 - Released 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 - Released 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 - Released 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 issue with Postgres importer reporting boolean as bit
- Fixed occasional slowdown for render queries on servers with many GPUs
- Fixed issue affecting non-
GPOUP BY
queries on an empty table - Fixed issue when selecting
MIN
orMAX
from empty table - Fixed issue for
IN
subqueries when inner query result is above a certain size - Fixed issue with performance for “top n” queries
1.2.3 - Released August 1, 2016¶
1.2.2 - Released 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 - Released 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 - Released 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)
1.1.9 - Released 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 — Released 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 — Released June 13, 2016¶
1.1.6 — Released 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 — Released 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 — Released 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 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 — Released 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