Releases: src-d/gitbase
v0.17.0
Breaking changes
-
UAST UDFs now returns data in a specific format, in a BLOB column.
-
You must regenerate indexes to use this version.
pilosalib
index driver is now calledpilosa
, and the oldpilosa
driver does not exists anymore.
Bugfixing
- *: pushdown projections properly in the files table
- remove oniguruma support from prebuilt binaries
- gitbase: close repositories in squash table
- pilosalib: fix index usage with parallelism
- sql/plan: make sure ResolvedTable closes row iterators
- vendor: upgrade go-git, fix closed file in pack iter
- gitbase: remove warnings on symbolic references
- function: fix race condition getting UASTs
- sql/analyzer: check non-parallelizable nodes under QueryProcess
- sql/analyzer: execute parallelize as last rule
- rule: do not error when parts of joins are not squashable
- gitbase: close siva FS after use
- If deferredColumns is an alias then resolve it.
- Fix get/set from global table.
- build: disable static linking and oniguruma
- rule: fix unability to check conditions of natural joins
New features
- A new way to serialize UASTs
- uast_children new UDF
- uast_extract new UDF
- *: implement show full processlist
- *: implement session configuration
- sql/index: remove old pilosa driver and rename pilosalib to pilosa
- gitbase: implement sql.PartitionCounter in all tables
- *: correctly handle process management using processlist
- sql/plan: make create index sync by default
- sql/analyzer: resolve aggregate aliases in groupby grouping
- Upgrade mysql and vitess.
- build: only tag latest in docker when version is not prerelease.
- build: make static build with oniguruma enabled
- internal/function: modify uast_extract to return a flattened array
- sql: make table resolution case insensitive
- Support ON/OFF for SET autocommit
- Update go-mysql-server to do not force timeouts
- Add timeout on the configuration
Performance improvements
- Update pilosa to the latest version
- Add partitions to process several repositories at the same time
- Add UAST cache
- Add language cache
- Compile gitbase using oniguruma instead regular regex expressions to make LANGUAGE function faster
- One cache for repository pool.
- gitbase: use KeepDescriptors go-git option
- *: make SquashedTable not implement sql.Node
Documentation
- Make some snippets copyable
- docs: fix how to install oniguruma on linux
- docs: fix uast function descriptions to reflect the new uast serialization
- docs: explain how uast and uast_mode functions serialize data
- docs: add GITBASE_CACHESIZE_MB to the documentation
- docs: add note about oniguruma support in static binary
- docs: guide on how to optimize queries
- docs: add code example on how to manage serialized uast data
- docs: fix optional dependencies
- docs: Add instructions how to run in docker with bblfsh
- docs: improve uast functions documentation
v0.17.0-rc.7
Bugfixing
- Update go-mysql-server and pilosa dependencies
v0.17.0-rc.6
Bugfixing
- build: disable static linking and oniguruma
- rule: fix unability to check conditions of natural joins
Documentation
- docs: guide on how to optimize queries
- docs: add code example on how to manage serialized uast data
- docs: fix optional dependencies
- docs: Add instructions how to run in docker with bblfsh
- docs: improve uast functions documentation
v0.17.0-rc.5
- Update go-mysql-server to do not force timeouts
- Add timeout on the configuration
v0.17.0-rc.4
Breaking changes
With this version is not possible to use old UAST serialization anymore.
New features
- Upgrade mysql and vitess.
- build: only tag latest in docker when version is not prerelease.
- build: make static build with oniguruma enabled
- internal/function: modify uast_extract to return a flattened array
- sql: make table resolution case insensitive
- Support ON/OFF for SET autocommit
Bugfixing
- rule: do not error when parts of joins are not squashable
- gitbase: close siva FS after use
- If deferredColumns is an alias then resolve it.
- Fix get/set from global table.
Documentation
- docs: explain how uast and uast_mode functions serialize data
- docs: add GITBASE_CACHESIZE_MB to the documentation
- docs: add note about oniguruma support in static binary
v0.17.0-rc.3
Breaking changes
You must need to regenerate indexes to use this version. pilosalib
index driver is now called pilosa
, and the old pilosa driver does not exists anymore.
New features
- sql/index: remove old pilosa driver and rename pilosalib to pilosa
- gitbase: implement sql.PartitionCounter in all tables
- *: correctly handle process management using processlist
- sql/plan: make create index sync by default
- sql/analyzer: resolve aggregate aliases in groupby grouping
Bugfixing
- vendor: upgrade go-git, fix closed file in pack iter
- gitbase: remove warnings on symbolic references
- function: fix race condition getting UASTs
- sql/analyzer: check non-parallelizable nodes under QueryProcess
- sql/analyzer: execute parallelize as last rule
Documentation
- docs: fix uast function descriptions to reflect the new uast serialization
v0.17.0-rc.2
New features
- *: implement show full processlist
- *: implement session configuration
Bugfixing
- *: pushdown projections properly in the files table
- remove oniguruma support from prebuilt binaries
- gitbase: close repositories in squash table
- pilosalib: fix index usage with parallelism
- sql/plan: make sure ResolvedTable closes row iterators
Performance improvements
- One cache for repository pool.
- gitbase: use KeepDescriptors go-git option
- *: make SquashedTable not implement sql.Node
Documentation
- docs: fix how to install oniguruma on linux
v0.17.0-RC1
Breaking changes
UAST UDFs now returns data in a specific format, in a BLOB column. To make gitbase able to return the old JSON format, you need to add --old-uast-serialization
on gitbase execution. This format and the flag will be removed in future versions.
New features
- A new way to serialize UASTs
- uast_children new UDF
- uast_extract new UDF
Performance improvements
- Update pilosa to the latest version
- Add partitions to process several repositories at the same time
- Add UAST cache
- Add language cache
- Compile gitbase using oniguruma instead regular regex expressions to make LANGUAGE function faster
Documentation
- Make some snippets copyable
v0.16.0
This version introduces an incompatible change processing UASTs. Now the format of UAST returned by the UDF uast
is semantic
. Previously the format was annotated
A new UDF uast_mode
was added to get UASTs in a specific format (semantic
, annotated
or native
). Example:
uast_mode('annotated', blob_content, language(tree_entry_name, blob_content)), '//*[@roleIdentifier]')
New Features
- Upgrade bblfsh client and add
uast_mode
function #439 - Pilosa index driver as library (pilosalib)
- sql: add support for show indexes
- vendor: upgrade bblfsh client-go
- Dockerfile: update to use --directories flag
- cmd/gitbase: load siva files and git indistinctly
- *: rename ref_commits index to history_index
- gitbase: add a more descriptive error connecting to bblfsh
- internal/rule,gitbase: use refs indexes in squash tables
- internal/rule: display indexed tables in squash
- gitbase: do not warn on not found HEAD
- Now, DESCRIBE statement return used indexed ids on queries
Performance improvements
- Optimize struct layout #437
- Add regression testing queries #431
- Do not register pilosa driver if no connection.
- *: add siva files to the repository pool with an ID
- Update to new go-git version (~ 40%-60% speed performance, 60% less memory)
- sql/plan: more efficient implementation of GroupBy
Bugfixing
- Solved a problem parsing USING in CREATE INDEX
- gitbase: do not skip repo when it has no head in squash
- internal/function: recover from panics in uast functions
- Fix "NOT expressions with non existing value"
- fix panic when bmp is nil
- Fix merging indexes when row is nil.
- Add regression queries
Documentation
v0.16.0-RC4
This version introduces an incompatible change processing UASTs. Now the format of UAST returned by the UDF uast
is semantic
. Previously the format was annotated
A new UDF uast_mode
was added to get UASTs in a specific format (semantic
, annotated
or native
). Example:
uast_mode('annotated', blob_content, language(tree_entry_name, blob_content)), '//*[@roleIdentifier]')