Details

    • Type: Task
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None

      Description

      Implement some new functions (maybe UDF),

      1)return a JSON object with token tree of SQL parser, example

      SELECT SQL_TOKEN_TREE(
      "SELECT * FROM (SELECT 1 AS a) AS b WHERE a=@var"
      )
      

      Result

      {Query:[select, *, from, [select, var<1>, as, const<a>], as, const<b>, where, var<2>, =, var<3>], vars:{1:'1', 2:'a',3:'@var','@var':'qwert'}}
      

      Or something more intelligent since i don't know how mysql parser works

      2)SQL_TOKEN_SQL(sql tree)
      Result a string removing consts with a willchar (like prepared statments)

      SELECT * FROM TABLE WHERE A=1234
      

      should return

      SELECT * FROM TABLE WHERE A=?
      

      this is something like percona tools, but it run inside server with server parse and not a third part parser:

      $pt-fingerprint --query "/* -- S++ SU ABORTABLE -- spd_user: rspadim */SELECT SQL_SMALL_RESULT SQL_CACHE DISTINCT centro_atividade FROM est_dia WHERE unidade_id=1001 AND item_id=67 AND item_id_red=573"
      
      SELECT DISTINCT centro_atividade FROM est_dia WHERE unidade_id=? AND item_id=? AND item_id_red=?
      

      3)Add a SQL_PARSER_OPTIMIZE(QUERY)
      it parse the query and execute optimizations (opt_range and others)
      example

      SELECT * FROM TABLE WHERE A=1234 AND 0=0
      

      rewrite to

      SELECT * FROM TABLE WHERE A=1234
      

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

              There are no comments yet on this issue.

                People

                • Assignee:
                  Unassigned
                  Reporter:
                  rspadim roberto spadim
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                  Dates

                  • Created:
                    Updated:

                    Time Tracking

                    Estimated:
                    Original Estimate - 1 week
                    1w
                    Remaining:
                    Remaining Estimate - 1 week
                    1w
                    Logged:
                    Time Spent - Not Specified
                    Not Specified