MapD Platform Release Notes

The latest version of the MapD Platform is 3.6.0

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

Known Issues

  • Version 3.6.0 of Immerse works only with version 3.4.0 and higher of MapD Core. It is NOT compatible with versions of MapD Core lower than 3.4.0.
  • Any update on line or histogram charts also starts an update query for range chart that is not required.
  • Binned columns and date extracts appear as JSON strings when exporting to CSV format.

3.5.0 - Released 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 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

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

Known Issues

  • The 3.5.0 version of Immerse only works with 3.4.0 version of Core and above and is NOT compatible with earlier versions of MapD Core.
  • Any update on line or histogram charts fires an unneeded update query for range chart.
  • Multiple issues with Heatmap/Choropleth map legend:
    • Legend is contained inside a box.
    • Cannot input more than one digit.
    • Can input a value lower than the minimum.
    • Min and Max can have the same value.

3.4.0 - Released 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.

Known Issues

  • The 3.4.0 version of Immerse only works with 3.4.0 version of Core and is NOT compatible with earlier versions of MapD Core
  • Any update on line or histogram charts fires an unneeded update query for range chart.
  • Adding layers in the pointmap chart does not work when using Firefox browser.

3.3.1 - Released 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

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

Known Issues

  • Setting of NULLS FIRST/LAST may not work properly in distributed configuration, fixed in next release

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

Known Issues

  • The Text widget is unable to save text from IE11 browser
  • Sorting by non-grouped column in a table chart may not work properly in a distributed configuration, will be fixed in the next release.

3.2.4 - Released 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

Fixed

  • Fixed issue where a line chart filter could not be removed
  • Fixed issue with old crossfilter instance preventing opening a new dashboard
  • Fixed issue where exceptions/errors prevented histogram and line charts to reload
  • Fixed issue with multi-series line chart filter icon not disappearing
  • Fixed issue creating a numerical binned multi-series line chart
  • Fixed issue where reverting edits on a line chart resulted in error

3.2.3 - Released 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 - Released 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 - Released 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 - Released 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 - Released July 27, 2017

MapD Core

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

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 - Released July 19, 2017

MapD Core

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

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

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

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

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 thrift sql_execute endpoint, which limits the number of results returned to the client
  • Further performance improvements for HAVING queries and IN 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 in IN statement from 10K to 1M
  • Improved performance for queries with GROUP BY a CASE 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 display NULL 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 exact COUNT(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 using max_reject parameter in the WITH 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; nested CAST
  • Problem with floating point zero literal
  • Problem with COUNT(*) in a 3+ way join query
  • Problem with unary minus or ABS on a NOT 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 an ORDER 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 to DATE, TIME or TIMESTAMP

Fixed

  • Problem with HAVING queries which use fixed encoding columns
  • Problem with some IN subqueries which return no results
  • Problem with NULL handling for NOT 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 and BIGINT 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

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 - Released December 16, 2016

MapD Core

Fixed

  • Issue when calling MIN/MAX on a TEXT 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+ way JOIN 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 or TIMESTAMP as a negative UNIX epoch time representation
  • Issue with COPY TO for TIME 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 projection CASE involving NULLs
  • 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 and AVERAGE 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 specified ELSE branch
  • COUNT on non-dictionary encoded strings used in a GROUP BY
  • Issue with MIN or MAX on a string in a GROUP 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

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 - Released September 6, 2016

MapD Core

New

  • Support for POSIX regular expressions, boolean match
  • Performance improvement for some GROUP BY ORDER BY queries with a LIMIT
  • 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 support
  • TRUNCATE support for non-decimal numeric types
  • CAST 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 or MAX 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

MapD Core

New

  • Now allow using aliases in FROM and WHERE 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 - 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 and ALTER 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)

Dependencies

  • Now requiring Java Runtime Environment (JRE) version 1.6 or higher
Version 1.1

1.1.9 - Released June 27, 2016

MapD Core

New

  • Improved logging and system process management
  • Deprecated --disable-fork flag in mapd_server. Please remove this flag from any config files.
  • Removed fork() from mapd_server. Automatic restart should now be handled by an external process, such as systemd.
  • Added graceful shutdown to mapd_web_server so that systemd more accurately reports its status
  • Modified mapd_server service file so that systemd 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 an ELSE 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 where NULLs were present

1.1.7 — Released 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 — 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 onCOUNT(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 to mapdql to supress it’s informational messages from appearing in STDOUT
  • 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 and HAVING clauses wouldn’t execute