##2.0.0
- Add user supplied primary key support.
- Add partitioning support on Postgresql 10.
- Add sharding support on Postgresql 10 using the Citus extension.
- Optimize the
PropertiesStepandPropertyMapStepto only query the database for the requested properties and not for all properties as is the default. - Remove auto sorting of columns on table creation. It should be done at the application level.
##1.5.2
- Upgrade to TinkerPop 3.3.3
- Add docker image for Postgresql
- Support additional properties on BulkAddEdge #300
- Fix concurrency bug on MsSqlServer batch mode. Take table lock on BulkCopy.
- Fix concurrency bug on Postgresql batch mode. The id sequence is incremented before the copy insert happens.
- Added MySql support. Uses MariaDb dialect but the MySql driver.
- Improve memory consumption by removing closed prepared statements from the cache.
##1.5.1
- Add the ability to set the
fetchSizeon the jdbcjava.sql.Statement. - Fix bug #272
- Make gremlin console work. Tinkerpop made some minor changes to the console that made it stop working.
##1.5.0
- Optimize
DropStepi.e.drop().TRUNCATEis used for the most simplest cases. ElseDELETEstatements are generated. If thetraversalitself can not be optimized then barrier strategy is used to cache the starts before deleted them all in one statement. - Upgrade dependencies to latest in sonatype. #247
- Fix bug #246
- Optimize
OrStepandAndStepto push the predicates down to the db if they are trivial. - Optimize
NotStepto barrier the starts. - Optimize
AndStepto barrier the starts. - Optimize
OrStepto barrier the starts. - Optimize
WhereTraversalStepto barrier the starts. - Optimize
RepeatSteps until traversal to barrier the starts. - Replace
TraversetSetinExpandableStepwith anArrayListinSqlgExpandableStep.TravererSethas a backingMapofTraverserwhich for Sqlg is always aSqlgTraverser. AsSqlgTraverseralways holds the fullPathadding the barriered (cached) starts to the map is to heavy. Seeing as Sqlg does not use bulking theTraverserSets logic is not needed. - Optimize the
TraversalFilterStepto barrier the starts. - Upgrade to Tinkerpop 3.3.0
##1.4.1
- Added new predicate to compare 2 properties on the same label.
- Added support for
has("property")andhasNot("property")
##1.4.0
- Added support for MariaDb
- Added support for MSSqlServer
- Added barrier optimization for unoptimized steps. This optimization barriers (cache) the incoming traversers and
performs the next step for all the traversers at once. It uses the sql
VALUESexpression for this.
Currently the optional, choose, repeat and local steps have this optimization.
- Added batch mode support for all dialects.
##1.3.3
-
TopologyInfsupport forremove(boolean preserveData)added. Thanks to JPMoresmau -
Replace
ResultSet.getObject(index)withResultSet.getString/Int...as its faster. -
Removed Hazelcast. The topology is now distributed using Postgresql's
lockto hold a global lock across multiple Graphs and JVMs and aV_logtable which hold the changes made. The changes are in turn sent to other Graphs and JVMs using Postgresql'snotifymechanism. -
Added
TopologyListeneras a mechanism to observe changes to the topology. -
Added support for global unique indexes. This means that a unique index can be placed on multiple properties from any Vertex or Edge.
-
Rewrite of the topology/schema management.
SchemaManageris replaced withTopology. There are now classes representing the topology.Topology,Schema,VertexLabel,EdgeLabel,PropertyColumn,IndexandGlobalUniqueIndex -
Strengthened the reloading of the topology from the information_schema tables. This highlighted some limitations. It is not possible to tell a primitive array from a object array. As such all arrays are loaded as object arrays. i.e.
int[]{1,2,3}will becomeInteger[]{1,2,3}Example of how to fix a property' type
update sqlg_schema."V_property" set type = 'byte_ARRAY' where name = 'password' and type = 'BYTE_ARRAY' update sqlg_schema."V_property" set type = 'byte_ARRAY' where name = 'password_salt' and type = 'BYTE_ARRAY'
-
Fix bug #116
If a
RepeapStepcould not be optimized then the incoming emitElementdid not get a label so it was not being returned from the sql.
##1.3.2
- Ensure SqlgGraphStepStrategy and SqlgVertexStepStrategy fires before InlineFilterStrategy.
- Fix a bug where hasId uses the P.neq predicate.
- Use BIGSERIAL for auto increment columns in Postgresql #91
- Fix bug #92
- SqlgGraph.bulkAddEdges to take a Collection of ids as opposed to a List. Fix bug #102
- Fix bug #73 Thanks to JPMoresmau
##1.3.1
- 1.3.0 uploaded strange byte code, this fixes that.
##1.3.0
- Upgrade to TinkerPop 3.2.2
- Added H2 support.
- Added support for getting the data source from JNDI.
- Optimize `SqlgGraph.bulkAddEdges(...) to use the correct types for the in and out properties. This has a marginal performance increase.
- Refactored pom to separate out
gremlin-groovyto be an optional dependency.
##1.2.0
- Optimize lazy iteration. Remove unnecessary list creation for managing state.
- Add thread local
PreparedStatementcache, to close all statements on commit or rollback. - Refactor the vertex transaction cache to use a
WeakHashMap. - Refactor Sqlg to lazily iterate the sql
ResultSet. - Add all optimizations to
LocalStep. - Refactor
RepeatStepoptimization to follow the same sql pattern as theOptionalStepoptimization. - Optimized the
OptionalStep. - Optimize
hasId(...) - Sqlg stores the schema in the graph. It is accessible via the
TopologyStrategy. eg.TopologyStrategy.build().selectFrom(SchemaManager.SQLG_SCHEMA_SCHEMA_TABLES) - Remove
SqlgTransaction.batchCommit()as is no longer useful as the embedded topology change forced sqlg to auto flush the batch before any query. - Add support for
java.time.ZonedDateTime,java.time.Durationandjava.time.Period - Add support for array types in batch mode.
String[], int[], double[], long[], float[], short[], byte[]
##1.1.0.RC2
- Use special characters to separate label + schema + table + column as opposed to a period. Periods may now be present in property names.
- Change postgresql copy command to use the csv format. This allows for specifying a quote character which prevents nasty bugs where backslash characters in the value escapes the delimiter.
- Added
SortedTree. A utility class that wraps TinkerPop's Tree using a TreeMap instead.