This repository has been archived by the owner on Jan 28, 2021. It is now read-only.
v0.1.0
Implemented enhancements:
- Add support for CONNECTION_ID #433
- Implement LIKE expression #426
- Strip comments from queries #413
- Show databases #412
- USE command to change database #411
- Implement SHOW VARIABLES #409
- Implement INFORMATION_SCHEMA database with FILES and COLUMN_STATISTICS tables #408
- Implement SHOW CREATE TABLE #406
- Implement JSON_EXTRACT UDF #405
- Implement show fields from #404
- Implement show table status #403
- Resolve tables with database qualifier #402
- Add support for ROUND, FLOOR, CEIL #393
- Add support for LOWER, UPPER #390
- Add support for COALESCE #389
- Improve error on nested query without aliasing #376
- Support ON/OFF as synonyms of 1/0 #374
- Remove pilosa index driver #370
- Make compatible gitbase with MariaDB JDBC driver #359
- Upgrade go-pilosa to version 0.10.0 #353
- Show full process list #348
- Cancel creating an index by
DROP
#343 - Proposal: add build flag to be able to use REGEXP statement with Oniguruma #341
- sql.IndexLookup should be able to return the IDs of all indexes involved #333
- Improve the information returned by
show indexes
#315 - Partitions: Rules to apply Exchange operator into query trees #313
- Partitions: Exchange operator. #312
- Partitions: Change Indexable interfaces to make use of partitions #311
- Data source api: change Project and Filter pushdown interfaces #310
- Partitions: Make tables use partitions #309
- Add support for
SHOW INDEXES
#303 - Implement a new pilosa (server-less) index driver #302
- Rules review #294
- Implement NegateIndex in pilosa #291
- Introduce better config mechanism to engine constructor #285
- Create optimization rule to evaluate filter expressions if possible #280
- Code refactor to make use of IsUnary and IsBinary functions. #272
- Sync create index queries #271
- Split analyzer rules into several files #267
- Add SUM aggregation function #236
- Create rule to move filters from Join conditions to where clauses #235
- Index creation appears to do nothing. #231
- Add support for basic query EXPLAIN #216
- analyzer: Add to resolve index rule range checking using DescendIndex and AscendIndex. #214
- analyzer: Check rule that try merge compatible indexes. #213
- PilosaDriver: Implement SetOperations and Mergeable interfaces on IndexLookup #212
- PilosaDriver: Implement AscendIndex and DescendIndex interfaces #211
- Document motivation and scope of the project #203
- Mobiles with gomobile #198
- Implement Pilosa IndexDriver #174
- IndexLoader pilosa index implementation #173
- Standardise logging library across multiple projects #164
- Register a DUAL table by default #153
- Some changes to opentracing reported metrics #151
- Support arithmetic operators #142
- Save performance metrics #137
- Differences between MySQL parser and vitess parser regarding star expr #120
- Create String() method on Node Interface #95
- Split UDFs into several files in their own package #67
- BETWEEN Expresion #62
- Implement avg() Function #61
- Add support to sqlparser.ValTuple and sqlparser.SQLVal #60
- TPC-H: Implement Inner Join #57
- TPC-H queries #47
- Fix unsupported feature: non simple tables #46
- Implement DATE data type #45
- Implement YEAR(date) Function #43
- Implement SUBSTRING(string, start, length) function #42
- Unsupported syntax: sqlparser.ParenExpr #41
- Proposal: Specify function arity instead of using reflection #37
- Pass session around #36
- Implement null logic #33
- Implement array_length(Array)Number function #7
- Implement SHOW VARIABLES #452
- Register COALESCE function. Update docs. Add integration test to engine. #437
- Implementation of COALESCE function. #431
- Support ON/OFF for SET autocommit #383
- Drop indexes in progress. #354
- Pilosa index driver as library #308
- Implementation of Pilosa Index Driver #205
Fixed bugs:
- CREATE INDEX logs are counting elements per partition. #455
- SHOW PROCESSLIST is not showing correctly processed partitons on CREATE INDEX queries. #454
- Float results get truncated #450
- Support quoted numbers as strings #445
- SUBSTRING does not conform to MySQL behavior for 2 arguments #418
- Column name resolution in SELECT is ambigious even when using NATURAL JOIN #415
- Table names must be case insensitive #385
- Support for
GROUP BY
on aliased fields #375 - Describe String() method is not well implemented #358
- DESCRIBE outputs too many columns #357
- Don't preload all rows computing aggregations #331
- No data for NOT expressions with non existing value and index #323
- Panic when querying for non existing value with pilosa index #322
- crossJoinIterator is not using contexts, so queries cannot be cancelled. #292
- Error on CREATE INDEX parser with column called index #282
- AVG does not handle text columns #278
- Indexes don't handle negation correctly #262
- order by can only use columns in the projection #248
- TestPilosaHiccup fails randomly #244
- Error using aliases in where clause #242
- Queries do not work correctly after the index is created #238
- When index creation fails, deletion throws error because index is not usable #233
- Order by does not work with group by #228
- Auto-detect when pilosa index is corrupt and remove it #220
- Inner join calls RowIter on one of the leafs more than one time, breaking indexes #217
- Panic when misusing star #197
- Row's indexes are not handled properly #180
- sqllogictests: group by result with incorrect number of rows #144
- sqllogictests: panic comparing literal and column #143
- Make queries cancellable #130
- Unexpected query ended #122
- Use src-d/go-errors.v1 on the entire project #115
- Filters are not being pushed down, but are removed from the filter node #114
- star is resolved, but columns are not qualified, so they are not pushed down #113
- Narrow star expression #112
- table subqueries don't work well with some analyzer rules #101
- Improve error messages #93
- Panic comparing literals and columns numbers #92
- ambiguous columns cannot be used #88
- unsupported feature: not regexp #58
- TPC-H queries #47
- Unsupported syntax: &sqlparser.AndExpr{Left:(*sqlparser.AndExpr)(0xc42899c480), Right:(*sqlparser.ComparisonExpr)(0xc4289c4340)} #40
- Improve README #39
- CROSS JOIN doesn't support more than 2 tables #38
- Invalid queries #21
- For numberT cast to the sqltype. #457
- Fix substring/2 #421
- If deferredColumns is an alias then resolve it. #395
- Fix get/set from global table. #394
- Fix bitBatch.Clean in pilosalib #334
- Fix merging indexes when row is nil. #320
- Fix LoadAll when .pilosa doesn't exist. #317
- sql/parse: fix parsing when there are preceding spaces #284
- engine: Register default functions on New(...) constructor too #254
- Evaluate expression for index iterator. #240
Closed issues:
- ROUND Panics #443
- One pilosa.Holder per index driver #429
- Add documentation about compatible clients #391
- Fix behaviour of query cancellation #371
- Potential data race when one driver
Saves
two indexes at the same time #364 - Use only one pilosa package for both drivers #338
- performance issue - indexed queries are much slower than non indexed #324
- Move
ExpressionHash
logic to the driver #305 - Refactor indexes design #276
- Create Pilosa Index - Performance Improvements #241
Get
andHas
functions should take multiplekey
parameters. #196- Specify what
sql. IndexKeyValueIter.Next\(\)
function returns #195 - Make
sql.Expression
interface de/serializable... #194 - Support NATURAL INNER JOIN statements #190
- Make UnaryNode and BinaryNode interfaces #189
- Implement index rule for multi-column indexes #186
- Implement IndexDriver Load and Delete for pilosa index #184
- Implement Index rule for equalities (Index.Get(...)) #176
- Implement pilosa index simple interface (Index.Get(...)) #175
- DROP INDEX statement #172
- CREATE INDEX statement #171
- General IndexCatalog implementation #170
- Add interfaces needed for Index implementation #169
- go dep #165
- Improve README #156
- Analyzer rules should be split in groups, phases or priorities #141
- Array type #134
- Session souldn't be created per query #132
- Plan pretty printer #108
- Add Walk function to expression #107
- Add Walk function to plan #106
- Make named types for Transform callbacks #91
- Expression and Node should have a Walk method #85
- Type Compare method should also return an error #68
- Ignore SET keyword #63
- Pushdown filters to Tables #28
- Pushdown Projections to Tables #27
- Implement is_binary(Blob)bool function #8
- Modify SHOW TABLES to use the sql parser #6
- Modify DESCRIBE to use the sql parser #5
- Add MAX aggregation #4
- Add MIN aggregation #3
- Add DISTINCT aggregation #2
- Add UDF support #1
Merged pull requests:
- [WIP] travis: use jdk9 instead #462
- sql/plan: correctly count processed index rows globally instead of per partition #461
- sql/(plan,analyzer): track partitions of indexable tables too #459
- function: add CONNECTION_ID UDF #458
- function: handle non number arguments in ceil, floor and round #453
- One pilosa holder #451
- Improvement/use latest pilosa #449
- sql: expression: function: ROUND Panic fix (typo) (Fix 443) #446
- analyzer: fix crash with aliases used multiple times #441
- Remove go-tip to do not use unnecessary Travis slots #440
- sql/analyzer: fix ambiguous table after natural join #439
- Add missing functions to documentation. #438
- Adds Proper Apache License 2.0 #436
- function: implement JSON_EXTRACT UDF #434
- sql: implement show table status #432
- *: add information_schema db with files and column_statistics tables #430
- sql: implement LIKE expression #427
- sql: resolve tables with database qualifier #424
- pilosa: use different holder per db/table pair #423
- sql: implement SHOW FIELDS statement #422
- sql: implement USE <table> statement #420
- sql: expression: function: Add LOWER, UPPER [Fix #390] #419
- sql: implement SHOW DATABASES #417
- sql/parse: strip comments from queries #416
- sql: expression: function: Add CEIL, CEILING, FLOOR, ROUND. [Fixes #393] #401
- sql: give types a String method #399
- server: do not set timeouts by default #398
- Docs/3rd parties #397
- add integration tests for a variety of 3rd party clients #396
- update readme example snippet to match complete example #388
- sql: make table resolution case insensitive #386
- Update go-vitess Makefile #384
- sql/analyzer: also check node if it is not wrapped in query process #380
- sql/analyzer: check non-parallelizable nodes under QueryProcess #379
- sql/analyzer: execute parallelize as last rule #377
- sql/index: remove pilosa driver and rename pilosalib to pilosa #373
- *: correctly handle process management using processlist #372
- sql/plan: make create index sync by default #369
- sql/analyzer: resolve aggregate aliases in groupby grouping #368
- sql/*: fix small issues to make Set resolve correctly #367
- fix compilation error on master. #366
- Fix potential data race #365
- pilosalib: fix index usage with parallelism #363
- sql/plan: make sure ResolvedTable closes row iterators #362
- *: implement session configuration #361
- Fix/describe partitions #360
- sql/index/pilosa: upgrade to go-pilosa v0.10.0 and migrate API #356
- sql/parse: allow numbers in index names #355
- *: implement show full processlist #352
- travis: execute ci-script to test and send coverage #351
- build: upgrade ci makefile and go version in travis #350
- expression: support multiple regex engines #349
- fix: convert nil value properly for blob type #347
- sql/analyzer: don't parallelize index operations #345
- sql/analyzer: parallelize sql.Table, not just ResolvedTable #344
- Partitions #342
- *: make index drivers work with partitions #340
- sql/parse: fix parsing USING on CREATE INDEX #337
- sql/analyzer: add rule to parallelize adding exchanges #336
- *: make IndexLookup return index IDs #335
- sql/plan: more efficient implementation of GroupBy #332
- sql/plan: implement Exchange node #330
- *: partitions interfaces and ResolvedTable node #329
- SUPPORTED.md: add show indexes syntax to the supported index expressions #328
- remove CNAME #327
- Fix "NOT expressions with non existing value" #326
- Fix Panic when querying for non existing value with pilosa index #325
- sql/index/pilosalib: create processing file on index creation #321
- sql/plan: improve information returned by show indexes #316
- sql: change Index and IndexDriver interfaces and remove ExpressionHash logic #314
- sql/plan: fix ShowIndexes.TransformUp #306
- sql: add support for show indexes #304
- sql/analyzer: remove unnecessary qualification of star #301
- sql/analyzer: fix resolveNaturalJoins rule for chained natural joins #300
- docs: specify caveats about pilosa version on README #299
- travis: fix pilosa version installation to v0.9.0 #298
- *: pass context to Insert #297
- sql/analyzer: fix resolveNaturalJoins rule to work properly with table aliases #296
- sqle: add tests checking the rule to merge indexes works #295
- sql/index/pilosa: implement negation indexes #293
- docs: add how to implement a new index driver #290
- sql/analyzer: add negate index #289
- sql/plan: disallow indexes on blob and json columns #288
- sqle: change Engine constructor to accept a Config struct #287
- sql/analyzer: add rule to reorder aggregations inside projections #286
- sql/analyzer: add rule to evaluate filters ahead of time #283
- Implementation of Mergeable and SetOperations for pilosa's lookups #281
- sql/expression/function/aggregation: allow conversion in AVG #279
- One index per table. #277
- sql/plan: allow synchronous index creations #275
- add version udf #274
- Update example #273
- sql/(plan,expression): add assertions for Unary and Binary nodes and exprs #270
- sql/analyzer: add tests to ensure deviating behaviour regarding stars #269
- sql/analyzer: split rules in multiple files #268
- sqle: log query in debug #266
- sql/analyzer: resolve ascend and descend indexes #265
- README: add indexes section #264
- Tidy pilosa tests #263
- sql/analyzer: fix columns in the resolveNaturalJoins rule #260
- index/pilosa: do not error when key is not found #259
- index/pilosa: speedup index iterator #257
- functions: Add CONCAT(...) function. #256
- Improvement/better tracing #255
- sql/function: make time functions not return errors on conversion #253
- Fix drop index panic #252
- sql/analyzer: add rules for ensuring read only queries #251
- index/pilosa: batch boltdb and pilosa writes #250
- sql/analyzer: rule to resolve sort based on dependencies #249
- sql/index/pilosa: fix TestPilosaHiccup random failures #247
- sql/analyzer: improve error message when an alias is misused #246
- plan/index: Add tracing to index creation #245
- sql/analyzer: rule to move join conditions to filters #243
- sql/function/aggregation: add SUM aggregation function #239
- sql/analyzer: fix star resolution when there are natural joins involved #237
- sql/(plan,index): force index deletion on save failure #234
- sql/(index,plan): add logs for index creation #232
- readme: add scope, motivation and goals to README #230
- sql/parse: fix order by with group by #229
- sql/driver/pilosa: implement AscendIndex and DescendIndex #227
- *: added supported sql syntax in new markdown file #226
- sql/expression/function: add function split to the default functions to add to the registry #225
- analyzer: execute rules in batches. #224
- sql/index: auto delete corrupted indexes #223
- sql/(parse,plan): implement describe queries #222
- sql/index: set indexes as ready when they are loaded #221
- sql/index/pilosa: do not error if index directory does not exist #219
- sql/analyzer: lock indexes per-query and not per-lookup #218
- sql: load all indexes and find them only if they are ready #209
- *: fix create index resolution #208
- Improve README #207
- sql/plan: return a new instance of sql.Row in cross join iterator's next method #206
- sql/analyzer: ensure Star expression is resolved on GroupBy node #204
- .*: Add DCO and CONTRIBUTING.md files #202
- Replace expressions by hashes in IndexDriver #200
- Refactor index iterator interface. #199
- sql: Add *sql.Context to Indexable interface's methods #193
- all: add vanity import specs #192
- *: implement natural join #191
- sql/analyzer: support multi-column indexes in assign_indexes #188
- sql/analyzer: implement a rule to assign indexes #185
- sql/*: implement drop index statement #183
- sql/*: add support for create index statement #182
- sql/analyzer: resolve correctly GetField expressions indexes #181
- sql: implement index catalog #179
- Use go-errors.v1 #178
- sql: implement index interfaces #177
- Create MAINTAINERS #168
- server: remove specific tracer implementation #166
- license: relicense code as Apache 2.0 #163
- ci: test Go 1.9.x, 1.10.x and tip #161
- sql/expression/function: add concat and split functions #159
- sql/analyzer: resolve columns from the projection down the tree #158
- Improve README #157
- sql/analyzer: resolve DUAL table #155
- Opentracing #154
- Fixes - add missed pointers #152
- Support arithmetic operators #150
- sql: implement functional options pattern for context building #149
- sql/analyzer: add AddRule and AddValidationRule methods to analyzer #148
- sql/plan: expose pushdown node fields #147
- sql/analyzer: replace column indexes with GetFields in SortFields #146
- Fix literal comparison with columns #145
- sql/(plan,expression,parse,analyzer): trace node execution #140
- sql/analyzer: propagate context throughout the analyzer #139
- *: implement span tracing in sql.Context #138
- sql: add Array type #135
- *: make Session per connection and Context per query #133
- Implement kill query #131
- sql/expression: split functions and aggregations #128
- sql/*: make transform callbacks named types #127
- Fix unexpected error when an empty set is returned #126
- Walk the tree #125
- sql/analyzer: improve error message when column with no table is not found #124
- sql/analyzer: fix indexes of pushed down GetFields #123
- sql/(parse,analyzer): support qualified Star expressions #121
- Improve errors #119
- sql/(plan,analyzer): fix filter and column pushdown #117
- sql/(plan,expression): implement String method to make tree printable #111
- Change assertion to check content without order #110
- Session not set in InnerJoin RowIter #105
- sql/(plan,analyzer): resolve subqueries and groupby validation #104
- Implement CONVERT expression and cast expressions in comparisons. #103
- handler: stream rows in batches #102
- sql/analyzer: add logs and debug mode #99
- Fixes for analyzer and resolution of inner joins #98
- sql/expression: fix substring resolve and isnullable methods #97
- sql/analyzer: fix ErrColumnTableNotFound message #96
- sql/(plan,analyzer): implement OrderedDistinct for sorted results #90
- sql/analyzer: resolve GetField on schemas with repeated column names #89
- server: implement session manager #87
- sql/(plan,analyzer): implement pushdown of filters and cols #86
- Add CREATE TABLE DDL statement #84
- sql/*: implement rule for column resolution #82
- Pass session to nodes #80
- Some Time Functions #79
- Added AVG aggregation to README #78
- Fix Engine comment #77
- Unified Aggregation's interfaces #76
- fix README #75
- sql/expression: correctly handle nulls in all expressions #74
- sql/parse: add support for NOT REGEXP operator #73
- sql/(parse,plan): implement inner join #72
- sql/expression: implement between and not between #71
- sql/(plan,expression): simplify and fix transforms #70
- AVG aggregation #69
- sql/expression: implement year UDF #66
- sql: implement Date type #65
- sql: implement Tuple type and support all literals #64
- sql/expression: implement substring function #55
- sql: implement table aliases and subqueries as tables #54
- sql: implement logic operators #52
- Fix GroupBy #51
- Add tpc-h benchmark #50
- sql/parse: support more than 2 tables on cross join #49
- sql/parse: support sqlparser.ParenExpr #48
- sql: implement type-safe function arity #44
- sql/expression: implement array_length UDF #35
- sql/expression: implement is_binary UDF #34
- go-vitess: replace glog with logrus #32
- sql: make Eval return an error as well #31
- sql/expression: fix docs #30
- sql/expression: remove legacy type check code in comparisons #29
- sql/expression: mark as placeholder unresolved expressions #26
- tests: move from assert to require #25
- sql: better coverage of star rule and clarify it's a placeholder #24
- *: add comments to all exported members #20
- Change import path to gopkg.in #19
- sql: implement offset node #18
- scripts: go-vitess package generator #17
- MAX aggregation #16
- Remove FIRST aggregation expression #15
- MIN aggregation #14
- *: implement distinct clause #13
- Fix tests and CI #12
- Parse 'SHOW TABLES' statement properly #10
- sql: MySQL type implementation following the sqltype package #9