Go Mysql Server Versions Save

An extensible MySQL server implementation in Go.

v0.6.0

4 years ago

Implemented enhancements:

  • Compile error: parse.go:248:77: undefined sqlparser.SCHEMAS #826
  • Reduce amount of implemented code on Expressions #772
  • Support for regexp_matches #756
  • Request: SLEEP function #647
  • Parallelize index creation #346
  • TPC-H: unsupported feature: HAVING #56
  • sql: implement count distinct #785
  • server: kill queries on connection closed #769
  • sql/analyzer: refactor pushdown rule #752
  • sql/analyzer: refactor resolve_natural_joins rule #750
  • replace all gopkg.in imports and use only go mods #736
  • sql: implement EXPLODE and generators #720
  • sql/analyzer: refactor and fix bugs in qualify_columns rule #706
  • Support SHOW SCHEMAS (upgrade vitess to v1.6.0) #696
  • Add build, tag for oniguruma, remove for mysql_go_regex, update README #660

Fixed bugs:

  • Races detected on running gitbase during the test #828
  • Failing test for connection handler in Linux #821
  • LIKE fails when new lines are present #814
  • ORDER BY does not fail on non-existent columns #813
  • resolveDatabase is not working if database is changed using USE #810
  • Not support types of char and datetime #807
  • Long processing queries don't stop if the connection is dead/killed until the timeout triggers #800
  • sleep function cannot be cancelled #797
  • Connection problems and possible fix #796
  • Error on CASE statements when result is not bool #787
  • Error on Travis testing jdk 10 #782
  • NULL is not printed in the resulting table #779
  • No root span created for a query #778
  • Handle strings on EvaluateCondition #770
  • ARRAY_LENGTH is not handling null values well #766
  • [Panic] - on HAVING query #764
  • JSON_EXTRACT returns strings quoted #761
  • unable to cast <nil> of type <nil> to float64 #759
  • Panic on query using EXPLODE #755
  • LEFT JOIN and RIGHT JOIN are returning more than a single row per left/right row #742
  • Cannot return NULL in a CASE branch #740
  • Cannot parse "show create table a.b" #733
  • gitbase dies for query with WHERE NOT <not boolean value> #726
  • JSON_EXTRACT cannot cast JSON string #709
  • Nested SUBSTRING fails with INVALID_ARGUMENT error #705
  • Incorrect type name for int64 in create table #702
  • Make sure dates and times are within the supported range #698
  • unable to cast "<repository name>" of type string to int64 #691
  • Index generation is slower than previous implementation #676
  • ORDER BY with aggregations fails with a missleading error #675
  • Problems dropping outdated index #674
  • Bug: Mis-formatted error diagnostics for incorrect function use #665
  • Using fqn in SHOW CREATE TABLE errors #662
  • Indexes on language func does not work with aliased cols #639
  • KILL fails with err message "closed network connection" #635
  • commits does not have column commit_author_when #630
  • Incorrect projected fields #619
  • Support DISTINCT and multiple expressions on aggregation functions #162
  • sql: fix SQL method for arrays of JSON #790
  • sql: use custom boolean coercion logic in condition evaluation #768
  • function: correctly transform up explode nodes #757
  • sql: correctly handle nulls in SQL type conversion #753
  • sql/analyzer: back-propagate expression names after adding convert #739
  • Upgrade vitess to v1.7.0 #732
  • Make boolean expression compatible with MySQL #731
  • Make PROCESSLIST and KILL compatible with MySQL #722
  • sql/analyzer: convert_dates should not change column name #721
  • server: guard sessions access in mutex #713
  • sql/analyzer: run convert_dates rule after prune_columns #703
  • sql/analyzer: alias projected columns wrapped in converts #701
  • Try to order by function #692
  • sql/analyzer: only check aliases to qualify in the topmost project #690
  • Make mapping per partition #681
  • server: correctly set binary charset on blob fields #673
  • Fix validation rule to detect tuples in projections or groupbys #672
  • Close iterators #655
  • Check projection aliases when assigned to index. #640

Closed issues:

  • Add sql/expression/literal\_test.go #776
  • FR: Select single fields from substring search or split results #747
  • Add FIRST/LAST aggregations #718
  • Add SUBSTRING_INDEX #716
  • Add LENGTH function (for strings) #715
  • LEFT OUTER JOIN support #707
  • vet tool #686
  • [FEATURE] Suggest similar table/column names when one is not found in a query #684
  • Upgrade pilosa to v1.3.0 #679
  • document environment variables in here, not just gitbase #668
  • Add Greatest, Least #664
  • DATE_SUB and DATE_ADD functions #663
  • Add support for DATE function #653
  • Add support for SHOW SCHEMAS #652
  • count is int32 #642
  • Feature request: don't die on panic #625
  • Suppress build warning for oniguruma #623
  • yearweek function #616
  • Replace and test BoltDB by github.com/etcd-io/bbolt #614
  • Use in-memory join when one of the tables is small enough #577
  • Add TO_BASE64, FROM_BASE64 #549

Merged pull requests:

  • Fixed null errors during value comparisons #831
  • Fixed a few typos for the DELETE implementation #830
  • plan: fix race conditions in Exchange node #829
  • plan: return types in lowercase in SHOW CREATE TABLE #827
  • Implemented REPLACE #825
  • Also check sockets bind to tcp6 and fail on all closed sockets #824
  • Add CHAR and DATETIME types support #823
  • Added LIKE test with newlines #820
  • Bump ava version #819
  • analyzer: do not erase sort node when pushing it down #818
  • Convert LIKE patterns to specific Go regexes #817
  • Fixed INSERT bugs, added UINT64 support, and added tests #816
  • Add dolt to README #815
  • Removed pilosa-dependent files from Windows compilation #812
  • build(deps): bump mixin-deep from 1.3.1 to 1.3.2 in /_integratio… #811
  • Fix for non linux OS build #808
  • Check for dead sockets before timeout and enforce timeouts #806
  • Fix typos and make style consistent #804
  • sql: implement memory management system for caches #802
  • Make Sleep check for cancelled context every second #798
  • use goproxy #795
  • function: implement regexp_matches #794
  • sql/analyzer: fix order by resolution for all nodes #793
  • README.md -> fix build status link #792
  • build(deps): bump lodash from 4.17.11 to 4.17.14 in /_integration/javascript #791
  • build(deps): bump lodash.merge from 4.6.1 to 4.6.2 in /_integration/javascript #789
  • sql/expression: correctly evaluate conditions in CASE #788
  • Update functionregistry.go #786
  • Zachmu/bug fixes to contribute #784
  • sql: fix how nulls are sent to clients #783
  • server: start root trace span on context creation #781
  • sql/analyzer: fix having resolution #780
  • Varchar type #775
  • Limit / offset bug fixes #774
  • sql: implement new API for node transformation #773
  • Add test to EvaluateCondition function #771
  • function: make array_length not fail with literal null #767
  • function: correctly transform up explode nodes #765
  • build(deps): bump esm from 3.0.84 to 3.2.25 in /_integration/javascript #763
  • docs: add JSON_EXTRACT quoted string gotcha to docs #762
  • sql/expression: handle null values in arithmetic expressions #760
  • sql/parse: error for unsupported distinct on aggregations #754
  • sql: implement FIRST and LAST aggregation functions #749
  • Implement JSON_UNQUOTE #748
  • build(deps): bump js-yaml from 3.12.0 to 3.13.1 in /_integration/javascript #746
  • Replace fork go-vitess by original vitess. #745
  • Add metrics (engine, analyzer, regex, pilosa) based on go-kit interface. #744
  • sql/plan: make LEFT and RIGHT join work as expected #743
  • sql/expression: allow null literals in case branches #741
  • Upgrade vitess to v1.8.0 #738
  • Fix parsing of quoted identifiers in SHOW CREATE TABLE queries #737
  • sql/analyzer: do not wrap aggregations with convert, just their arguments #730
  • sql/expression: allow arithmetic operations with dates/times #729
  • sql/analyzer: case insensitive checks for group by rules #728
  • sql/expression/function: implement char_length and length functions #724
  • Implement SUBSTRING_INDEX UDF #723
  • sql/analyzer: refactor and simplify resolve_columns rule #714
  • sql: implement LEFT and RIGHT join #712
  • Make ARRAY_LENGTH working with JSON arrays #711
  • sql: do not marshal strings containing JSON as a string in convert #710
  • sql/analyzer: do not use plan.Inspect to find available tables #708
  • sql: use correct MySQL display name for types #704
  • add greatest and least #700
  • sql/analyzer: wrap all time and date expressions with convert #699
  • pilosa: set max map count to 0 to avoid index issues on windows #697
  • update readme #695
  • sql: implement HAVING clause #689
  • Some vet tools fixes #688
  • vendor: upgrade pilosa #687
  • Suggest similar table/column/indexes names on missing errors #685
  • Fix jaeger-lib dependency #683
  • sql/expression: relaxed json_extract #682
  • sql/analyzer: correctly qualify aliases with the same name as col #680
  • function: remove print from YearWeek UDF #678
  • sql/plan: make sure outdated indexes can be dropped #677
  • sql/expression: new dayofmonth function (alias of day) #671
  • docs: nicer format for functions and vars in docs, add markers #670
  • docs: add session and environment variables to README #669
  • sql: add support for intervals, DATE_SUB and DATE_ADD #667
  • Pass function name to the registry #666
  • sql/parse: allow qualified table names on SHOW CREATE TABLE #661
  • plan: types in lowecase on SHOW CREATE TABLE #656
  • sql/expression: new date function #654
  • docs: document the architecture of the project #651
  • Added from_base64 and to_base64 #650
  • Added MySQL SLEEP function #649
  • Fix test error after two PR merges. #648
  • sql/index/pilosa: parallelize index creation #644
  • Make count int64 function #643
  • plan: compute all inner joins in memory if they fit #638
  • Add charset to fields #637
  • KILL query always takes processlist_id #636
  • fix prune columns for describe queries #634
  • allow all expressions in grouping, resolve orderby expressions #633
  • go.etcd.io/bbolt v1.3.2 #632
  • Perf: Avoid call to Checksum if there are no indexes. #631
  • YEARWEEK UDF function #628
  • Switch to src-d/go-oniguruma #627
  • recover panic for partitions #626

v0.5.1

5 years ago

Implemented enhancements:

  • Provide a single, default, performant and stable regex implementation #615
  • Make oniguruma a default regex engine #618

Fixed bugs:

  • mysql.NewAuthServerStatic does not implement auth.Auth interface #622
  • Boolean type does not work in raw CREATE TABLE queries #611
  • Upgrade go-vitess.v1 to version v1.5.0 #617

Merged pull requests:

  • Fix KILL to try to kill by the query ID instead of connID #629
  • Update readme #624

v0.4.0

5 years ago

Implemented enhancements:

  • Supported client examples do not use defaults for user, pass and database names #597
  • Improve Function invalid argument number error specifying the affected function name #591
  • Run staticcheck on go-mysql-server - list of things to verify/check #581
  • CASE statement #575
  • sql: add Databaser interface for cleaner analyzer rules #592

Fixed bugs:

  • Restart gitbase makes indexes outdated #612
  • Running a query containing the REGEXP function with an invalid pattern breaks #606
  • KILL generates an error by not returning an error or a result #601
  • Warnings are being cleared after every query #600
  • Possible error in SHOW CREATE TABLE #594
  • Improve Function invalid argument number error specifying the affected function name #591
  • alias used on a expression in the same projection should fail always #590
  • EXPLAIN only shows the first index #585
  • Round with decimal panics #579
  • [SQLAlchemy] missing column in SHOW FULL TABLES #562
  • Upgrade go-vitess.v1 to version v1.5.0 #617
  • Fix checksum for multi underlying tables. #613
  • Clear warnings just after successful query. #608
  • Check if regexp matcher is nil. #607
  • Support SQLAlchemy syntax for show create table #598
  • sql: fix row construction in innerJoinIter #595

Closed issues:

  • [SQLAlchemy] SELECT @@transaction_isolation support or workaround #564
  • [SQLAlchemy] support SHOW collation #561

Merged pull requests:

  • Update examples #610
  • sql/analyzer: fix use of declared aliases in the same projection #609
  • add experimental optional feature to use in memory joins #605
  • server: return empty results when query is KILL #604
  • sql/analyzer: remove QueryProcess nodes from subqueries #603
  • sql: better errors for invalid argument number #596
  • sql: implement dummy ROLLBACK #593
  • sql: add transaction_isolation default value #589
  • sql/*: fix show tables to match MySQL spec #588
  • sql/*: implement show collation #587
  • sql/index/pilosa: return all index ids in lookups #586
  • sql: use checksums to determine if indexes are outdated #583
  • fix errors pointed out by staticcheck #582
  • Fix ROUND function for 2 args. #580
  • sql/plan: speed up InnerJoin iterator #578
  • sql/(analyzer,parse,expression): implement case expression #576

v0.3.0

5 years ago

Implemented enhancements:

  • Add IF(), IFNULL(), NULLIF() #527
  • Add NOW function #566
  • Rule to remove unused columns from projections and pushdown #570
  • [Tableau] - Support DEFAULT expression #487
  • Reference substring with substr and mid #483

Fixed bugs:

  • Add Tableau to SUPPORTED_CLIENTS.md #558
  • unsupported syntax: <nil> #553
  • IsNullable does not retain null when we return nil in expressions #546
  • Check correct usage of Null value #542
  • Unable to connect to _example/main.go mem server using Java JDBC driver #319
  • Replace one regex by pool of regex matchers. #557
  • Implement ifnull and nullif functions. #555
  • Add explicit error when ON clause is missed for JOIN statement #554

Closed issues:

  • go 1.11.2 doesn't fetch auth #551

Merged pull requests:

  • analyzer: fix fields of subqueries too on prune_columns #574
  • analyzer: correctly search for subquery used columns #573
  • analyzer: add rule to prune unnecessary columns #572
  • function: implement NOW function #568
  • analyzer: wait until NaturalJoins are resolved on reorder rule #567
  • *: fix query cancellation #565
  • Fix soundex type #560
  • docs: add tableau to supported clients #559
  • Make conversion error clearer and less detailed. #556
  • Add error for subqueries #552
  • Feature/mid substr #548

v0.1.1

5 years ago

Implemented enhancements:

  • Traces should be more granular #466
  • Implement table locking #410
  • Implement SHOW CREATE DATABASE #407
  • Add configuration per engine instance and per session #109

Fixed bugs:

  • pilosa holder has to sync up data with indexes #472
  • No holder! #478

Merged pull requests:

  • update license with year and org name #475
  • Fix Apache License #473
  • sql: add timing info to span traces #470
  • sql: implement SHOW CREATE DATABASE statement #460
  • *: implement LOCK and UNLOCK of tables #448
  • sql: plan: Add SHOW CREATE TABLE [Fix #406] #435

v0.2.0

5 years ago

Implemented enhancements:

  • Add REVERSE, REPLACE, REPEAT #540
  • Add RTRIM, TRIM, LTRIM #537
  • Add SQRT/POWER function #523
  • add navicat support #521
  • Add support for using desc table (short version of describe table) #494
  • Implement RPAD, LPAD #484
  • Update year and org name in LICENSE #476
  • Define a simple interface to be able to implement authentication and authorization. #469
  • Test tableau with go-mysql-server and add integration tests with the queries used by the application itself. #468
  • Test grafana with go-mysql-server and add integration tests with the queries used by the application itself. #467
  • Collect session warnings #465
  • Support negative integers in expressions #444
  • Implement SHOW WARNINGS; #442
  • Add support for LOG, LOG2, LOG10, LN #392
  • Test 3rd party applications integration #387
  • Show warnings - implementation #464

Fixed bugs:

  • go get is downloading a different version or readme is wrong #541
  • [Tableau]: GROUP BY X with alias (as columnd name) and INNER JOIN #535
  • Substring function is not parsed correctly #532
  • Show table status without from/in/like or where fails to parse #530
  • Group by alias (alias name is the same as column name) #524
  • Disable or capture log from go-vitess #490
  • panic in group by #481
  • support database qualifiers #118
  • Fix filtered index #550
  • upgrade vitess to v1.4.0 #545
  • Implement group by index #525
  • Do not pull vt/logutil/level.go #514

Closed issues:

  • Update missing statement on SUPPORTED.md file #533
  • [Tableau] - add support for GROUP BY X #520
  • this is a bug with go-vitess.v1 ? with roolback to go-vitess.v1:v1.0.0 ok when run _example/main.go #519
  • [Tableau]: Add support for information_schema.columns #510
  • [Tableau] - support for DATABASE() function #503
  • Rule to remove unnecessary CAST nodes #502
  • [Tableau] - Support for sql_select_limit #492
  • [Tableau] - support for INFORMATION_SCHEMA.TABLES queries #489
  • [Tableau] - default db name cannot be an empty string #488
  • Please, add me as contributor #Hacktoberbest #485
  • Inconsistent Errors using backticks #447

Merged pull requests:

  • docs: add go-vitess dependency information #544
  • Add Reverse, Repeat, Replace #543
  • Add Trim, Ltrim, Rtrim #539
  • docs: add missing supported expressions #538
  • auth: add Audit to log user interactions #536
  • Feature/pow sqrt #534
  • sql/(plan,parse): fix show table status behaviour #531
  • level.go doesn't panic anymore. #529
  • sql: add information_schema.schemata table #528
  • sql/analyzer: add rule to avoid unnecessary casts #526
  • Feature/lpad rpad #522
  • [email protected] #518
  • sql: process list now shows client address #517
  • Revert "update license with year and org name" #515
  • Upgrade vitess to v1.2.1 #512
  • Add support for information_schema.columns #511
  • Added badges in readme file #509
  • sql, function: add weekday and dayofweek #507
  • Implement sql_select_limit #506
  • Implement DATABASE() function. #505
  • Implement information_schema.tables #504
  • _scripts: replace glog with logrus #501
  • Add support for CONCAT_WS #500
  • analyzer: fix pushdown of filters with repeated table names #498
  • Correct spelling #497
  • auth: add authentication and authorization interface #496
  • Add support for using desc table #495
  • Add support for set DEFAULT #493
  • Check if eval buffer is empty. #491
  • sql: function, added soundex #486
  • Feature/logarithms #482
  • sql: support more timestamp formats #480
  • Feature/collect warnings #479
  • integration: add grafana queries to go integration #477
  • *: remaining fixes to make mysqldump work with go-mysql-server #474
  • sql/(parse,expression): implement unary minus #456

v0.1.0

5 years ago

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