Skip to content
This repository has been archived by the owner on Jan 28, 2021. It is now read-only.

v0.1.0

Compare
Choose a tag to compare
@ajnavarro ajnavarro released this 17 Oct 12:54
· 719 commits to master since this release
49c4028

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 and Has functions should take multiple key 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