Releases: dgraph-io/dgraph
Dgraph v1.1.1
Changed
- Breaking changes for expand() queries
- Add support for Go Modules. (#4146)
- Simplify type definitions: type definitions no longer require the type (string, int, etc.) per field name. (#4017)
- Adding log lines to help troubleshoot snapshot and rollup. (#3889)
- Add
--http
flag to configure pprof endpoint for live loader. (#3846) - Use snappy compression for internal gRPC communication. (#3368)
- Periodically run GC in all dgraph commands. (#4032, #4075)
- Exit early if data files given to bulk loader are empty. (#4253)
- Add support for first and offset directive in has function. (#3970)
- Pad encData to 17 bytes before decoding. (#4066)
- Remove usage of deprecated methods. (#4076)
- Show line and column numbers for errors in HTTP API responses. (#4012)
- Do not store non-pointer values in sync.Pool. (#4089)
- Verify that all the fields in a type exist in the schema. (#4114)
- Update badger to version v2.0.0. (#4200)
- Introduce StreamDone in bulk loader. (#4297)
Enterprise features:
- ACL: Disallow schema queries when an user has not logged in. (#4107)
- Block delete if predicate permission is zero. Fixes #4265. (#4349)
Added
- Support
@cascade
directive at subqueries. (#4006) - Support
@normalize
directive for subqueries. (#4042) - Support
val()
function inside upsert mutations (both RDF and JSON). (#3877, #3947) - Support GraphQL Variables for facet values in
@facets
filters. (#4061) - Support filtering by facets on values. (#4217)
- Add ability to query
expand(TypeName)
only on certain types. (#3920) - Expose numUids metrics per query to estimate query cost. (#4033)
- Upsert queries now return query results in the upsert response. (#4269, #4375)
- Add support for multiple mutations blocks in upsert blocks. (#4210)
- Add total time taken to process a query in result under
"total_ns"
field. (#4312)
Enterprise features:
- Add encryption-at-rest. (#4351)
Removed
- Breaking change: Remove
@type
directive from query language. To filter
an edge by a type, use@filter(type(TypeName))
instead of@type(TypeName)
.
(#4016)
Enterprise features:
- Remove regexp ACL rules. (#4360)
Fixed
- Avoid changing order if multiple versions of the same edge is found.
- Consider reverse count index keys for conflict detection in transactions. Fixes #3893. (#3932)
- Clear the unused variable tlsCfg. (#3937)
- Do not require the last type declaration to have a new line. (#3926)
- Verify type definitions do not have duplicate fields. Fixes #3924. (#3925)
- Fix bug in bulk loader when store_xids is true. Fixes #3922. (#3950)
- Call cancel function only if err is not nil. Fixes #3966. (#3990)
- Change the mapper output directory from $TMP/shards to $TMP/map_output. Fixes #3959. (#3960)
- Return error if keywords used as alias in groupby. (#3725)
- Fix bug where language strings are not filtered when using custom tokenizer. Fixes #3991. (#3992)
- Support named queries without query variables. Fixes #3994. (#4028)
- Correctly set up client connection in x package. (#4036)
- Fix data race in regular expression processing. Fixes #4030. (#4065)
- Check for n.Raft() to be nil, Fixes #4053. (#4084)
- Fix file and directory permissions for bulk loader. (#4088)
- Ensure that clients can send OpenCensus spans over to the server. (#4144)
- Change lexer to allow unicode escape sequences. Fixes #4157.(#4175)
- Handle the count(uid) subgraph correctly. Fixes #4038. (#4122)
- Don't traverse immutable layer while calling iterate if deleteBelowTs > 0. Fixes #4182. (#4204)
- Bulk loader allocates reserved predicates in first reduce shard. Fixes #3968. (#4202)
- Only allow one alias per predicate. (#4236)
- Change member removal logic to remove members only once. (#4254)
- Disallow uid as a predicate name. (#4219)
- Drain apply channel when a snapshot is received. (#4273)
- Added RegExp filter to func name. Fixes #3268. (#4230)
- Acquire read lock instead of exclusive lock for langBaseCache. (#4279)
- Added proper handling of int and float for math op. #4132. (#4257)
- Don't delete group if there is no member in the group. (#4274)
- Sort alphabets of languages for non indexed fields. Fixes #4005. (#4260)
- Copy xid string to reduce memory usage in bulk loader. (#4287)
- Adding more details for mutation error messages with scalar/uid type mismatch. (#4317)
- Limit UIDs per variable in upsert. Fixes #4021. (#4268)
- Return error instead of panic when geo data is corrupted. Fixes #3740. (#4318)
- Use txn writer to write schema postings. (#4296)
- Fix connection log message in dgraph alpha from "CONNECTED" to "CONNECTING" when establishing a connection to a peer. Fixes #4298. (#4303)
- Fix segmentation fault in backup. (#4314)
- Close store after stopping worker. (#4356)
- Don't pre allocate mutation map. (#4343)
- Cmd: fix config file from env variable issue in subcommands. Fixes #4311. (#4344)
- Fix segmentation fault in Alpha. Fixes #4288. (#4394)
- Fix handling of depth parameter for shortest path query for numpaths=1 case. Fixes #4169. (#4347)
- Do not return dgo.ErrAborted when client calls txn.Discard(). (#4389)
- Fix
has
pagination when predicate is queried with@lang
. Fixes #4282. (#4331) - Make uid function work with value variables in upsert blocks. Fixes #4424. (#4425)
Enterprise features:
Dgraph v1.0.18
Fixed
- Preserve the order of entries in a mutation if multiple versions of the same
edge are found. This addresses the mutation re-ordering change (#2987) from v1.0.15. - Fixing the zero client in live loader to avoid using TLS. Fixes #3919. (#3936)
- Remove query cache which is causing contention. (#4071).
- Fix bug when querying with nested levels of
expand(_all_)
. Fixes #3807. (#4143). - Vendor in Badger to fix a vlog bug "Unable to find log file". (#4212)
- Change lexer to allow unicode escape sequences. Fixes #4157. (#4252)
Dgraph v1.1.1-rc2
Dgraph v1.1.1-rc2
Dgraph v1.1.1-rc1
Dgraph v1.1.1-rc1
Dgraph v1.1.0
Changed
-
Breaking changes
-
uid schema type: The
uid
schema type now means a one-to-one relation,
not a one-to-many relation as in Dgraph v1.1. To specify a one-to-many
relation in Dgraph v1.0, use the[uid]
schema type. (#2895, #3173, #2921) -
_predicate_ is removed from the query language.
-
expand(_all_) only works for nodes with attached type information via
the type system. The type system is used to determine the predicates to expand
out from a node. (#3262) -
S * * deletion only works for nodes with attached type information via
the type system. The type system is used to determine the predicates to
delete from a node. ForS * *
deletions, only the predicates specified by
the type are deleted. -
HTTP API: The HTTP API has been updated to replace the custom HTTP headers
with standard headers.- Change
/commit
endpoint to accept a list of preds for conflict detection. (#3020) - Remove custom HTTP Headers, cleanup API. (#3365)
- The startTs path parameter is now a query parameter
startTs
for the
/query
,/mutate
, and/commit
endpoints. - Dgraph custom HTTP Headers
X-Dgraph-CommitNow
,
X-Dgraph-MutationType
, andX-Dgraph-Vars
are now ignored.
- The startTs path parameter is now a query parameter
- Update HTTP API Content-Type headers. (#3550) (#3532)
- Queries over HTTP must have the Content-Type header
application/graphql+-
orapplication/json
. - Queries over HTTP with GraphQL Variables (e.g.,
query queryName($a: string) { ... }
) must use the query format viaapplication/json
to pass query variables. - Mutations over HTTP must have the Content-Type header set to
application/rdf
for RDF format orapplication/json
for JSON format. - Commits over HTTP must have the
startTs
query parameter along with the JSON map of conflict keys and predicates.
- Queries over HTTP must have the Content-Type header
- Change
-
Datetime index: Use UTC Hour, Day, Month, Year for datetime
comparison. This is a bug fix that may result in different query results for
existing queries involving the datetime index. (#3251) -
Blank node name generation for JSON mutations. For JSON mutations that
do not explicitly set the"uid"
field, the blank name format has changed
to contain randomly generated identifiers. This fixes a bug where two JSON
objects within a single mutation are assigned the same blank node.
(#3795)
-
-
Improve hash index. (#2887)
-
Use a stream connection for internal connection health checking. (#2956)
-
Use defer statements to release locks. (#2962)
-
VerifyUid should wait for membership information. (#2974)
-
Switching to perfect use case of sync.Map and remove the locks. (#2976)
-
Tablet move and group removal. (#2880)
-
Delete tablets which don't belong after tablet move. (#3051)
-
Alphas inform Zero about tablets in its postings directory when Alpha starts. (3271f64)
-
Prevent alphas from asking zero to serve tablets during queries. (#3091)
-
Put data before extensions in JSON response. (#3194)
-
Always parse language tag. (#3243)
-
Populate the StartTs for the commit gRPC call so that clients can double check the startTs still matches. (#3228)
-
Replace MD5 with SHA-256 in
dgraph cert ls
. (#3254) -
Fix use of deprecated function
grpc.WithTimeout()
. (#3253) -
Introduce multi-part posting lists. (#3105)
-
Fix format of the keys to support startUid for multi-part posting lists. (#3310)
-
Access groupi.gid atomically. (#3402)
-
Move Raft checkpoint key to w directory. (#3444)
-
Remove list.SetForDeletion method, remnant of the global LRU cache. (#3481)
-
Whitelist by hostname. (#2953)
-
Use CIDR format for whitelists instead of the previous range format.
-
Introduce Badger's DropPrefix API into Dgraph to simplify how predicate deletions and drop all work internally. (#3060)
-
Replace integer compression in UID Pack with groupvarint algorithm. (#3527, #3650)
-
Rebuild reverse index before count reverse. (#3688)
-
Breaking change: Use one atomic variable to generate blank node ids for
json objects. This changes the format of automatically generated blank node
names in JSON mutations. (#3795) -
Print commit SHA256 when invoking "make install". (#3786)
-
Print SHA-256 checksum of Dgraph binary in the version section logs. (#3828)
-
Change anonynmous telemetry endpoint. (#3872)
-
Add support for API required for multiple mutations within a single call. (#3839)
-
Make
lru_mb
optional. (#3898) -
Logging
- Suppress logging before
flag.Parse
from glog. (#2970) - Move glog of missing value warning to verbosity level 3. (#3092)
- Change time threshold for Raft.Ready warning logs. (#3901)
- Add log prefix to stream used to rebuild indices. (#3696)
- Add additional logs to show progress of reindexing operation. (#3746)
- Suppress logging before
-
Error messages
- Output the line and column number in schema parsing error messages. (#2986)
- Improve error of empty block queries. (#3015)
- Update flag description and error messaging related to
--query_edge_limit
flag. (#2979) - Reports line-column numbers for lexer/parser errors. (#2914)
- Replace fmt.Errorf with errors.Errorf (#3627)
- Return GraphQL compliant
"errors"
field for HTTP requests. (#3728)
-
Optimizations
- Don't read posting lists from disk when mutating indices. (#3695, #3713)
- Avoid preallocating uid slice. It was slowing down unpackBlock.
- Reduce memory consumption in bulk loader. (#3724)
- Reduce memory consumptino by reusing lexer for parsing RDF. (#3762)
- Use the stream framework to rebuild indices. (#3686)
- Use Stream Writer for full snapshot transfer. (#3442)
- Reuse postings and avoid fmt.Sprintf to reduce mem allocations (#3767)
- Speed up JSON chunker. (#3825)
- Various optimizations for Geo queries. (#3805)
-
Update various govendor dependencies
- Add OpenCensus deps to vendor using govendor. (#2989)
- Govendor in latest dgo. (#3078)
- Vendor in the Jaeger and prometheus exporters from their own repos (#3322)
- Vendor in Shopify/sarama to use its Kafka clients. (#3523)
- Update dgo dependency in vendor. (#3412)
- Update vendored dependencies. (#3357)
- Bring in latest changes from badger and fix broken API calls. (#3502)
- Vendor badger with the latest changes. (#3606)
- Vendor in badger, dgo and regenerate protobufs. (#3747)
- Vendor latest badger. (#3784)
- Breaking change: Vendor in latest Badger with data-format changes. (#3906)
Dgraph Debug Tool
- When looking up a key, print if it's a multi-part list and its splits. (#3311)
- Diagnose Raft WAL via debug tool. (#3319)
- Allow truncating Raft logs via debug tool. (#3345)
- Allow modifying Raft snapshot and hardstate in debug tool. (#3364)
Dgraph Live Loader / Dgraph Bulk Loader
- Add
--format
flag to Dgraph Live Loader and Dgraph Bulk Loader to specify input data format type. (#2991) - Update live loader flag help text. (#3278)
- Improve reporting of aborts and retries during live load. (#3313)
- Remove xidmap storage on disk from bulk loader.
- Optimize XidtoUID map used by live and bulk loader.
- Export data contains UID literals instead of blank nodes. Using Live Loader or Bulk Loader to load exported data will result in the same UIDs as the original database. (#3004, #3045) To preserve the previous behavior, set the
--new_uids
flag in the live or bulk loader. (1827787) - Use StreamWriter in bulk loader. (#3542) (#3635, #3649)
- Add timestamps during bulk/live load. (#3287)
- Use initial schema during bulk load. (#3333)
- Adding the verbose flag to suppress excessive logging in live loader. (#3560)
- Fix user meta of schema and type entries in bulk loader. (#3628)
- Check that all data files passed to bulk loader exist. (#3681)
- Handle non-list UIDs predicates in bulk loader. #3659
- Use sync.Pool for MapEntries in bulk loader. (#3763, 802ec4c)
Dgraph Increment Tool
- Add server-side and client-side latency numbers to increment tool. (#3422)
- Add
--retries
flag to specify number of retry requests to set up a gRPC connection. (#3584) - Add TLS support to
dgraph increment
command. (#3257)
Added
-
Add bash and zsh shell completion. See
dgraph completion bash --help
ordgraph completion zsh --help
for usage instructions. (#3084) -
Add support for ECDSA in dgraph cert. (#3269)
-
Add support for JSON export via
/admin/export?format=json
. (#3309) -
Add the SQL-to-Dgraph migration tool
dgraph migrate
. (#3295) -
Add
assign_timestamp_ns
latency field to fix encoding_ns calculation. Fixes #3668. (#3692, #3711) -
Adding draining mode to Alpha. (#3880)
-
Enterprise features
Query
-
Type system
- Add
type
function to query types. (#2933) - Parser for type declaration. (#2950)
- Add
@type
directive to enforce type constraints. (#3003) - Store and query types. (#3018)
- Rename type predicate to dgraph.type (#3204)
- Change definition of dgraph.type pred to [string]. (#3235)
- Use type when available to resolve expand predicates. (#3214)
- Include types in results of export operation. (#3493)
- Support types in the bulk loader. (#3506)
- Add
-
Add the
upsert
block to send "query-mutate-commit" updates as a single
call to Dgraph. This is especially helpful to do upserts with the@upsert
schema directive. Addresses #3059. (#3412)- Add support for conditional mutation in Upsert Block. (#3612)
-
Allow querying all lang values of a predicate. (#2910)
-
Allow
regexp()
in@filter
even for predicates without the trigram index. (#2913) -
Add
minweight
andmaxweight
arguments to k-shortest path algorithm....
Dgraph v1.0.17
Changed
- Increase max trace logs per span in Alpha. (#3886)
- Include line and column numbers in lexer errors. Fixes #2900. (#3772)
- Release binaries built with Go 1.12.7.
Fixed
- Decrease rate of Raft heartbeat messages. (#3708, #3753)
- Fix bug when exporting a predicate name to the schema. Fixes #3699. (#3701)
- Return error instead of asserting in handleCompareFunction. (#3665)
- Fix bug where aliases in a query incorrectly alias the response depending on alias order. Fixes #3814. (#3837)
- Fix for panic in fillGroupedVars. Fixes #3768. (#3781)
Dgraph v1.1.0-rc3
Dgraph v1.1.0-rc3
Dgraph v1.1.0-rc2
Dgraph v1.1.0-rc2
Dgraph v1.1.0-rc1
Dgraph v1.1.0-rc1