Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v3: how to draw an owl #1492

Merged
merged 95 commits into from Mar 17, 2016
Merged

v3: how to draw an owl #1492

merged 95 commits into from Mar 17, 2016

Commits on Jan 29, 2016

  1. v3: From->Select for RouteBuilder

    We now need a place to push where clauses and other constructs.
    We'll need all constructs of a Select statement since that's what
    we're eventually building.
    sougou committed Jan 29, 2016
    Copy the full SHA
    75e1151 View commit details
    Browse the repository at this point in the history
  2. sqlparser: Walk functionality for ast

    This will be used for the v3 planbuilder.
    sougou committed Jan 29, 2016
    Copy the full SHA
    fb93159 View commit details
    Browse the repository at this point in the history

Commits on Jan 30, 2016

  1. v3: find rightmost route for WHERE clause

    Skeletal code to identify the rightmost route where
    we can push individual parts of a where clause.
    We also add flags for RouteBuilder and TableAlias
    if they're on the RHS of a left join.
    sougou committed Jan 30, 2016
    Copy the full SHA
    141268d View commit details
    Browse the repository at this point in the history

Commits on Jan 31, 2016

  1. v3: filter push-down and routing changes

    WHERE clause filters can now be pushed down, and we
    also perform routing changes if applicable.
    sougou committed Jan 31, 2016
    Copy the full SHA
    bb711b8 View commit details
    Browse the repository at this point in the history
  2. v3: Add name and String functions to vindexes

    There are no colvindexes in the new v3 routes. So, we need a better way
    to test that the correct vindexes were chosen.
    sougou committed Jan 31, 2016
    Copy the full SHA
    ab5c570 View commit details
    Browse the repository at this point in the history
  3. v3: WHERE clause handling is done

    Still need to write more tests.
    Subqueries won't be addressed till the end.
    sougou committed Jan 31, 2016
    Copy the full SHA
    6c31012 View commit details
    Browse the repository at this point in the history
  4. v3: Left and Right Orders for JoinBuilders

    We need to know the Order of left and right nodes for the
    join builders. This allow us to know the correct path from
    the root node to the necessary RouteBuilder.
    sougou committed Jan 31, 2016
    Copy the full SHA
    54471c3 View commit details
    Browse the repository at this point in the history
  5. v3: ON clause handling

    This part just reuses the filter functions with some slightly
    modified rules.
    sougou committed Jan 31, 2016
    Copy the full SHA
    9779bc5 View commit details
    Browse the repository at this point in the history

Commits on Feb 1, 2016

  1. Copy the full SHA
    cee1d57 View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    3bb205f View commit details
    Browse the repository at this point in the history
  3. v3: group by

    sougou committed Feb 1, 2016
    Copy the full SHA
    d31f605 View commit details
    Browse the repository at this point in the history
  4. v3: post-processing

    sougou committed Feb 1, 2016
    Copy the full SHA
    41a9276 View commit details
    Browse the repository at this point in the history

Commits on Feb 2, 2016

  1. Copy the full SHA
    70df78d View commit details
    Browse the repository at this point in the history

Commits on Feb 3, 2016

  1. v3: misc tweaks

    Changed the symbol table to have slices because map is overkill
    for a handful of symbols.
    Changed select to use rightmost route, just like where clause.
    sougou committed Feb 3, 2016
    Copy the full SHA
    654b498 View commit details
    Browse the repository at this point in the history

Commits on Feb 4, 2016

  1. v3: add metadata to sqlparser.ColName

    When symbols get resolved, those decisions need to be persisted.
    Otherwise, the symbol table evolves and introduces new symbols
    that may hide old ones (when SELECT is parsed). A re-resolution
    after the fact can produce inconsistent/incorrect results.
    In other words, we need the original resolution to be remembered
    when we decide to wire things up at the end.
    sougou committed Feb 4, 2016
    Copy the full SHA
    e288528 View commit details
    Browse the repository at this point in the history
  2. v3: stricter reference checking

    The symtab Find will now return an error if a reference could not
    be resolved. It's also now broken out into another function, Vindex,
    which returns a Vindex of one can be found for the expression.
    sougou committed Feb 4, 2016
    Copy the full SHA
    fc6c18e View commit details
    Browse the repository at this point in the history

Commits on Feb 5, 2016

  1. Copy the full SHA
    7aaa387 View commit details
    Browse the repository at this point in the history
  2. v3: prep-work for subqueries

    sougou committed Feb 5, 2016
    Copy the full SHA
    71b425e View commit details
    Browse the repository at this point in the history
  3. v3: subqueries WIP

    sougou committed Feb 5, 2016
    Copy the full SHA
    2d5feb1 View commit details
    Browse the repository at this point in the history
  4. v3: refactor for better clarity

    Merging FindInScope and Find, because it wasn't clear when to use
    what. Now, Find returns an isLocal flag. This forces you to think
    if that needs to be checked in the current context.
    sougou committed Feb 5, 2016
    Copy the full SHA
    15ac509 View commit details
    Browse the repository at this point in the history

Commits on Feb 6, 2016

  1. v3: wire-up & plan gen WIP

    sougou committed Feb 6, 2016
    Copy the full SHA
    1b95568 View commit details
    Browse the repository at this point in the history
  2. v3: wire up done

    sougou committed Feb 6, 2016
    Copy the full SHA
    cee01d3 View commit details
    Browse the repository at this point in the history
  3. v3: plan generation done

    sougou committed Feb 6, 2016
    Copy the full SHA
    b33a449 View commit details
    Browse the repository at this point in the history

Commits on Feb 7, 2016

  1. v3: execution WIP

    sougou committed Feb 7, 2016
    Copy the full SHA
    ed0f9a7 View commit details
    Browse the repository at this point in the history
  2. v3: reworked wireup

    The previous scheme was hard to implement at execution time.
    In the new scheme, every join node knows contains info about
    which vars it needs to supply.
    sougou committed Feb 7, 2016
    Copy the full SHA
    59ca55e View commit details
    Browse the repository at this point in the history

Commits on Feb 8, 2016

  1. v3: end-to-end is now working, tests passing

    A few features are still to be done, like subquery in FROM
    clause, but everything is functional end-to-end, and the old
    v3 tests are passing against the new code.
    Comprehensive tests need to be written, and the code needs
    commenting and cleanup.
    sougou committed Feb 8, 2016
    Copy the full SHA
    99770f4 View commit details
    Browse the repository at this point in the history
  2. v3: code reorg WIP

    sougou committed Feb 8, 2016
    Copy the full SHA
    09d4c6c View commit details
    Browse the repository at this point in the history
  3. Copy the full SHA
    c642a6e View commit details
    Browse the repository at this point in the history
  4. Copy the full SHA
    6a0ddc1 View commit details
    Browse the repository at this point in the history

Commits on Feb 9, 2016

  1. v3: enable join execution

    sougou committed Feb 9, 2016
    Copy the full SHA
    13f29a0 View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    8d8559a View commit details
    Browse the repository at this point in the history
  3. v3: doc.go

    sougou committed Feb 9, 2016
    Copy the full SHA
    1117013 View commit details
    Browse the repository at this point in the history

Commits on Feb 10, 2016

  1. Copy the full SHA
    b472691 View commit details
    Browse the repository at this point in the history

Commits on Feb 11, 2016

  1. v3: Merge opcodes WIP

    sougou committed Feb 11, 2016
    Copy the full SHA
    9208b53 View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2016

  1. v3: merge Route and DMLRoute

    They're not as different as I thought they were.
    sougou committed Feb 12, 2016
    Copy the full SHA
    b9b4030 View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    076ed6a View commit details
    Browse the repository at this point in the history
  3. Copy the full SHA
    8a3794e View commit details
    Browse the repository at this point in the history

Commits on Feb 13, 2016

  1. Copy the full SHA
    c30a1a5 View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    ecab36b View commit details
    Browse the repository at this point in the history
  3. v3: remove obsolete FirstRoute from symtab

    We now use the more versatile leftmost(plan) construct.
    sougou committed Feb 13, 2016
    Copy the full SHA
    29b9cd6 View commit details
    Browse the repository at this point in the history
  4. Copy the full SHA
    7cb3258 View commit details
    Browse the repository at this point in the history
  5. v3: planBuilder points to symtab

    This containment simplifies paramter-passing across the board.
    sougou committed Feb 13, 2016
    Copy the full SHA
    01a5697 View commit details
    Browse the repository at this point in the history

Commits on Feb 15, 2016

  1. v3: fix nested subquery merge issue

    For more than one level of subquery nesting. The route symbol
    table was getting repointed only at the first level. In order
    to address this, I'm using a new redirect scheme where a route
    can redirect to another route.
    In the new scheme we just redirect the current route to the new
    one. So, if there are other routes that are redirected to the
    current one, they will also get redirected to the new route.
    sougou committed Feb 15, 2016
    Copy the full SHA
    0767323 View commit details
    Browse the repository at this point in the history
  2. v3: subquery support in FROM clause

    We still don't support joins there, but routes will work.
    sougou committed Feb 15, 2016
    Copy the full SHA
    652f24d View commit details
    Browse the repository at this point in the history
  3. v3: use impossible queries to get field info

    If the LHS of a join returns no rows, we still need to get
    the field info from the RHS. For this, we need to send a
    query with an impossible where clause, which is a low cost
    way of fetching field info from mysql.
    sougou committed Feb 15, 2016
    Copy the full SHA
    4d28c16 View commit details
    Browse the repository at this point in the history
  4. v3: value based merge

    Two routes can be merged if they target the same shard
    sougou committed Feb 15, 2016
    Copy the full SHA
    a7548ae View commit details
    Browse the repository at this point in the history

Commits on Feb 16, 2016

  1. v3: optimized field building

    Field info was being built for every call to join. It was
    wasteful for the case of nested loops.
    sougou committed Feb 16, 2016
    Copy the full SHA
    b3a91ed View commit details
    Browse the repository at this point in the history

Commits on Feb 17, 2016

  1. Copy the full SHA
    0be2d9e View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    0883e17 View commit details
    Browse the repository at this point in the history

Commits on Feb 19, 2016

  1. Copy the full SHA
    736f238 View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    5029f3e View commit details
    Browse the repository at this point in the history
  3. Copy the full SHA
    7e8cd57 View commit details
    Browse the repository at this point in the history

Commits on Feb 20, 2016

  1. Copy the full SHA
    1d2ac15 View commit details
    Browse the repository at this point in the history
  2. v3: filter test cases

    sougou committed Feb 20, 2016
    Copy the full SHA
    d4ffd90 View commit details
    Browse the repository at this point in the history
  3. v3: group by tests

    sougou committed Feb 20, 2016
    Copy the full SHA
    370954d View commit details
    Browse the repository at this point in the history
  4. v3: order by & limit tests

    sougou committed Feb 20, 2016
    Copy the full SHA
    0fa7712 View commit details
    Browse the repository at this point in the history

Commits on Feb 21, 2016

  1. v3: code reorg

    Push functions have been moved as members of the
    primitives. This structure will be more convenient
    if we add more primitives in the future.
    sougou committed Feb 21, 2016
    Copy the full SHA
    b2ebe83 View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    61e1263 View commit details
    Browse the repository at this point in the history
  3. Copy the full SHA
    8c921ec View commit details
    Browse the repository at this point in the history

Commits on Feb 22, 2016

  1. Copy the full SHA
    894b996 View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    bd19239 View commit details
    Browse the repository at this point in the history
  3. Copy the full SHA
    a2f6232 View commit details
    Browse the repository at this point in the history
  4. v3: reorder subqueries in filters

    If subqueries are processed last, then we generally get better
    plans because other conditions could improve the outer query's
    plan first.
    sougou committed Feb 22, 2016
    Copy the full SHA
    436700b View commit details
    Browse the repository at this point in the history

Commits on Feb 23, 2016

  1. Copy the full SHA
    17906c0 View commit details
    Browse the repository at this point in the history

Commits on Feb 24, 2016

  1. Copy the full SHA
    65e9207 View commit details
    Browse the repository at this point in the history
  2. v3: streaming join tests

    sougou committed Feb 24, 2016
    Copy the full SHA
    6f7058e View commit details
    Browse the repository at this point in the history
  3. v3: join failure tests

    sougou committed Feb 24, 2016
    Copy the full SHA
    3b6ab7c View commit details
    Browse the repository at this point in the history

Commits on Feb 25, 2016

  1. Copy the full SHA
    deae1cb View commit details
    Browse the repository at this point in the history

Commits on Feb 26, 2016

  1. v3: vtgatev3_test

    sougou committed Feb 26, 2016
    Copy the full SHA
    896d4df View commit details
    Browse the repository at this point in the history

Commits on Feb 27, 2016

  1. Copy the full SHA
    b14fca5 View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    654aeb2 View commit details
    Browse the repository at this point in the history

Commits on Feb 29, 2016

  1. Copy the full SHA
    51f6d7b View commit details
    Browse the repository at this point in the history

Commits on Mar 1, 2016

  1. Copy the full SHA
    eaa6565 View commit details
    Browse the repository at this point in the history

Commits on Mar 2, 2016

  1. Copy the full SHA
    6b99a57 View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2016

  1. Copy the full SHA
    a75e1ff View commit details
    Browse the repository at this point in the history
  2. v3: select * support on popular demand

    Allowing '*' expressions for simple routes. This is for
    supporting legacy apps that may still be using this construct.
    sougou committed Mar 3, 2016
    Copy the full SHA
    9f4ca4a View commit details
    Browse the repository at this point in the history

Commits on Mar 4, 2016

  1. Copy the full SHA
    3eb4c8b View commit details
    Browse the repository at this point in the history
  2. v3: support right join

    sougou committed Mar 4, 2016
    Copy the full SHA
    d3d7a7c View commit details
    Browse the repository at this point in the history
  3. v3: process->push

    Renamed some functions for better readability
    sougou committed Mar 4, 2016
    Copy the full SHA
    1282cca View commit details
    Browse the repository at this point in the history

Commits on Mar 5, 2016

  1. seq: add NEXTVAL to parser

    Adding NEXTVAL as keyword. This lets us control
    where this can or cannot be allowed at the parser level.
    Also, the argument to NEXTVAL is a table name, which
    is technically a different syntax than a normal function.
    sougou committed Mar 5, 2016
    Copy the full SHA
    4c3d6c0 View commit details
    Browse the repository at this point in the history

Commits on Mar 6, 2016

  1. Copy the full SHA
    5dacbd6 View commit details
    Browse the repository at this point in the history

Commits on Mar 7, 2016

  1. Copy the full SHA
    6b0d669 View commit details
    Browse the repository at this point in the history
  2. seq: planbuilder support

    sougou committed Mar 7, 2016
    Copy the full SHA
    9685665 View commit details
    Browse the repository at this point in the history
  3. seq: plan execution

    sougou committed Mar 7, 2016
    Copy the full SHA
    2efe93b View commit details
    Browse the repository at this point in the history

Commits on Mar 8, 2016

  1. Copy the full SHA
    c6a11ef View commit details
    Browse the repository at this point in the history

Commits on Mar 9, 2016

  1. Copy the full SHA
    28df8eb View commit details
    Browse the repository at this point in the history

Commits on Mar 10, 2016

  1. Copy the full SHA
    5ffd67f View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    98c97f6 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #1553 from sougou/sequence

    Sequences for vttablet: initial cut
    sougou committed Mar 10, 2016
    Copy the full SHA
    000b8f3 View commit details
    Browse the repository at this point in the history
  4. Copy the full SHA
    239092a View commit details
    Browse the repository at this point in the history
  5. Copy the full SHA
    8a09b6c View commit details
    Browse the repository at this point in the history
  6. Copy the full SHA
    907c547 View commit details
    Browse the repository at this point in the history

Commits on Mar 15, 2016

  1. Copy the full SHA
    fc8f0b5 View commit details
    Browse the repository at this point in the history

Commits on Mar 17, 2016

  1. Copy the full SHA
    d2d50cc View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    8414580 View commit details
    Browse the repository at this point in the history