OmniSciDB is being intensively developed and is evolving quickly. In order to help the MapD developer community understand our near term priorities, this document shares work targeted for the next 3-6 months. Many of these items are the result of community requests.
We welcome and encourage developer contributions to the project. Please see the contribution guidelines and GitHub issues.
Database
Completed
- Update via subquery (Completed 5.0)
- Binary/dump restore of tables (Completed 5.0)
- In-memory temporary tables (Completed 5.1)
- Support for SQL VALUES syntax, allowing literals to be used inline in SQL queries (Completed 5.1.2)
- More performant multi-fragment joins (Completed 5.2)
ALTER TABLE DROP COLUMN
(Completed 5.2)
SQL SHOW
Commands (Completed 5.2)
- Import of compressed parquet files (Completed 5.2)
- Initial support for UNION ALL (Completed 5.3)
- Initial support of multiple executors for improved concurrency (Completed 5.3+)
- Query hint framework, initially allowing
/*+ cpu_mode */ hint (Completed 5.3.1)
Support for implicit casting for
INSERT AS SELECTqueries to match existing table types when possible
Concurrent
UPDATEand
SELECT` on the same table (Completed 5.5)
- Allow none-encoded inputs into user defined functions (Completed 5.5)
- Initial foreign Server/Table support for CSV and Parquet (Completed 5.4-5.5)
- Query interrupt improvements (Completed 5.5 and ongoing)
Upcoming
APPROX_MEDIAN
and APPROX_PERCENTILE
operators
- Additional string function support
- Queryable system metadata tables
- Accelerated range joins
- Query interrupt improvements
- Query/subquery result set recycling for greater performance
Geospatial/GIS
Completed
- OGC full "simple features" constructive geospatial operators (
ST_Buffer
, ST_Intersects
, ST_Union
, etc) (Completed 5.2+)
- Null support for geo types (5.2)
- Export of conventional and line-oriented geoJSON in geoSQL (5.4)
- Geopandas dataframe generation through Ibis (https://github.com/ibis-project/ibis)
- Support for well-known binary (WKB) in columnar loading for increased import performance (5.5)
- Support for CSV file reprojection on import (5.5)
- ST_Buffer support for automatic planar projections in meters (5.5)
ST_Centroid
operator (5.5)
Upcoming
- Additional OGC multipart geospatial types: Multi(Point|Line)
- Additional geometric constructors (
ST_Line
, ST_Polygon
, etc.)
- Accelerated geospatial joins (with dynamic spatial hashing)
- OGC Geopackage import and export
- GPU-accelerated transforms between supported coordinate systems
Completed
- PyMapD DB-API Python client
- Ibis backend for MapD
- Support for Arrow result sets over the wire (in addition to existing in-situ Arrow egress) (Completed 5.5)
- Basic user-defined row and table functions (Completed 5.0, with ongoing improvements)
- User-defined table function (Completed UDTF) improvements (multiple column/query inputs, composability, lazy linking, function redefinition) (Completed 5.4-5.5)
CREATE DATAFRAME
temporary table creation from csv via Arrow (Completed 5.4 and ongoing)
Upcoming
- Further increase efficiency of Arrow serialization
- Additional UDF/UDTF improvements (dictionary-encoded text column support, variadic types, performance on large inputs, semantics)
- Experimental ML operators built on UDTFs