Copy disabled (too large)
Download .txt
Showing preview only (15,500K chars total). Download the full file to get everything.
Repository: NLPchina/elasticsearch-sql
Branch: master
Commit: 11abd6153bbc
Files: 690
Total size: 14.6 MB
Directory structure:
gitextract_oinxtvpa/
├── .github/
│ └── workflows/
│ └── actions.yml
├── .gitignore
├── .travis.yml
├── BUILDING.md
├── LICENSE
├── README.md
├── doc/
│ └── features.md
├── open-source.pom.xml
├── pom.xml
└── src/
├── _site/
│ ├── controllers.js
│ ├── editor.js
│ ├── index.html
│ ├── mapping_parser.js
│ ├── query.js
│ ├── style.css
│ ├── table_presenter.js
│ ├── tests/
│ │ ├── SpecRunner.html
│ │ ├── resources/
│ │ │ ├── expectedBody4nestedAggregation.json
│ │ │ ├── expectedBody4simpleAggregation.json
│ │ │ ├── expectedBody4simpleQueryResult.json
│ │ │ ├── expectedBody4statsAgg.json
│ │ │ ├── nestedAggregationResult.json
│ │ │ ├── simpleAggregationResult.json
│ │ │ ├── simpleQueryResult.json
│ │ │ └── statsAggResult.json
│ │ └── spec/
│ │ ├── ResultHandlersSpec.js
│ │ └── TablePresenterSpec.js
│ └── vendor/
│ ├── bootstrap/
│ │ ├── css/
│ │ │ ├── bootstrap-theme.css
│ │ │ └── bootstrap.css
│ │ └── js/
│ │ ├── bootstrap.js
│ │ └── npm.js
│ ├── codemirror/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── addon/
│ │ │ ├── comment/
│ │ │ │ ├── comment.js
│ │ │ │ └── continuecomment.js
│ │ │ ├── dialog/
│ │ │ │ ├── dialog.css
│ │ │ │ └── dialog.js
│ │ │ ├── display/
│ │ │ │ ├── fullscreen.css
│ │ │ │ ├── fullscreen.js
│ │ │ │ ├── placeholder.js
│ │ │ │ └── rulers.js
│ │ │ ├── edit/
│ │ │ │ ├── closebrackets.js
│ │ │ │ ├── closetag.js
│ │ │ │ ├── continuelist.js
│ │ │ │ ├── matchbrackets.js
│ │ │ │ ├── matchtags.js
│ │ │ │ └── trailingspace.js
│ │ │ ├── fold/
│ │ │ │ ├── brace-fold.js
│ │ │ │ ├── comment-fold.js
│ │ │ │ ├── foldcode.js
│ │ │ │ ├── foldgutter.css
│ │ │ │ ├── foldgutter.js
│ │ │ │ ├── indent-fold.js
│ │ │ │ ├── markdown-fold.js
│ │ │ │ └── xml-fold.js
│ │ │ ├── hint/
│ │ │ │ ├── anyword-hint.js
│ │ │ │ ├── css-hint.js
│ │ │ │ ├── html-hint.js
│ │ │ │ ├── javascript-hint.js
│ │ │ │ ├── python-hint.js
│ │ │ │ ├── show-hint.css
│ │ │ │ ├── show-hint.js
│ │ │ │ ├── sql-hint.js
│ │ │ │ └── xml-hint.js
│ │ │ ├── lint/
│ │ │ │ ├── coffeescript-lint.js
│ │ │ │ ├── css-lint.js
│ │ │ │ ├── javascript-lint.js
│ │ │ │ ├── json-lint.js
│ │ │ │ ├── lint.css
│ │ │ │ ├── lint.js
│ │ │ │ └── yaml-lint.js
│ │ │ ├── merge/
│ │ │ │ ├── merge.css
│ │ │ │ └── merge.js
│ │ │ ├── mode/
│ │ │ │ ├── loadmode.js
│ │ │ │ ├── multiplex.js
│ │ │ │ ├── multiplex_test.js
│ │ │ │ ├── overlay.js
│ │ │ │ └── simple.js
│ │ │ ├── runmode/
│ │ │ │ ├── colorize.js
│ │ │ │ ├── runmode-standalone.js
│ │ │ │ ├── runmode.js
│ │ │ │ └── runmode.node.js
│ │ │ ├── scroll/
│ │ │ │ └── scrollpastend.js
│ │ │ ├── search/
│ │ │ │ ├── match-highlighter.js
│ │ │ │ ├── search.js
│ │ │ │ └── searchcursor.js
│ │ │ ├── selection/
│ │ │ │ ├── active-line.js
│ │ │ │ └── mark-selection.js
│ │ │ ├── tern/
│ │ │ │ ├── tern.css
│ │ │ │ ├── tern.js
│ │ │ │ └── worker.js
│ │ │ └── wrap/
│ │ │ └── hardwrap.js
│ │ ├── bin/
│ │ │ ├── authors.sh
│ │ │ ├── compress
│ │ │ ├── lint
│ │ │ ├── release
│ │ │ └── source-highlight
│ │ ├── bower.json
│ │ ├── demo/
│ │ │ ├── activeline.html
│ │ │ ├── anywordhint.html
│ │ │ ├── bidi.html
│ │ │ ├── btree.html
│ │ │ ├── buffers.html
│ │ │ ├── changemode.html
│ │ │ ├── closebrackets.html
│ │ │ ├── closetag.html
│ │ │ ├── complete.html
│ │ │ ├── emacs.html
│ │ │ ├── folding.html
│ │ │ ├── fullscreen.html
│ │ │ ├── hardwrap.html
│ │ │ ├── html5complete.html
│ │ │ ├── indentwrap.html
│ │ │ ├── lint.html
│ │ │ ├── loadmode.html
│ │ │ ├── marker.html
│ │ │ ├── markselection.html
│ │ │ ├── matchhighlighter.html
│ │ │ ├── matchtags.html
│ │ │ ├── merge.html
│ │ │ ├── multiplex.html
│ │ │ ├── mustache.html
│ │ │ ├── placeholder.html
│ │ │ ├── preview.html
│ │ │ ├── requirejs.html
│ │ │ ├── resize.html
│ │ │ ├── rulers.html
│ │ │ ├── runmode.html
│ │ │ ├── search.html
│ │ │ ├── simplemode.html
│ │ │ ├── spanaffectswrapping_shim.html
│ │ │ ├── sublime.html
│ │ │ ├── tern.html
│ │ │ ├── theme.html
│ │ │ ├── trailingspace.html
│ │ │ ├── variableheight.html
│ │ │ ├── vim.html
│ │ │ ├── visibletabs.html
│ │ │ ├── widget.html
│ │ │ └── xmlcomplete.html
│ │ ├── doc/
│ │ │ ├── activebookmark.js
│ │ │ ├── compress.html
│ │ │ ├── docs.css
│ │ │ ├── internals.html
│ │ │ ├── manual.html
│ │ │ ├── realworld.html
│ │ │ ├── releases.html
│ │ │ ├── reporting.html
│ │ │ ├── upgrade_v2.2.html
│ │ │ ├── upgrade_v3.html
│ │ │ └── upgrade_v4.html
│ │ ├── index.html
│ │ ├── keymap/
│ │ │ ├── emacs.js
│ │ │ ├── sublime.js
│ │ │ └── vim.js
│ │ ├── lib/
│ │ │ ├── codemirror.css
│ │ │ └── codemirror.js
│ │ ├── mode/
│ │ │ ├── apl/
│ │ │ │ ├── apl.js
│ │ │ │ └── index.html
│ │ │ ├── asterisk/
│ │ │ │ ├── asterisk.js
│ │ │ │ └── index.html
│ │ │ ├── clike/
│ │ │ │ ├── clike.js
│ │ │ │ ├── index.html
│ │ │ │ └── scala.html
│ │ │ ├── clojure/
│ │ │ │ ├── clojure.js
│ │ │ │ └── index.html
│ │ │ ├── cobol/
│ │ │ │ ├── cobol.js
│ │ │ │ └── index.html
│ │ │ ├── coffeescript/
│ │ │ │ ├── coffeescript.js
│ │ │ │ └── index.html
│ │ │ ├── commonlisp/
│ │ │ │ ├── commonlisp.js
│ │ │ │ └── index.html
│ │ │ ├── css/
│ │ │ │ ├── css.js
│ │ │ │ ├── index.html
│ │ │ │ ├── less.html
│ │ │ │ ├── less_test.js
│ │ │ │ ├── scss.html
│ │ │ │ ├── scss_test.js
│ │ │ │ └── test.js
│ │ │ ├── cypher/
│ │ │ │ ├── cypher.js
│ │ │ │ └── index.html
│ │ │ ├── d/
│ │ │ │ ├── d.js
│ │ │ │ └── index.html
│ │ │ ├── diff/
│ │ │ │ ├── diff.js
│ │ │ │ └── index.html
│ │ │ ├── django/
│ │ │ │ ├── django.js
│ │ │ │ └── index.html
│ │ │ ├── dockerfile/
│ │ │ │ ├── dockerfile.js
│ │ │ │ └── index.html
│ │ │ ├── dtd/
│ │ │ │ ├── dtd.js
│ │ │ │ └── index.html
│ │ │ ├── dylan/
│ │ │ │ ├── dylan.js
│ │ │ │ └── index.html
│ │ │ ├── ecl/
│ │ │ │ ├── ecl.js
│ │ │ │ └── index.html
│ │ │ ├── eiffel/
│ │ │ │ ├── eiffel.js
│ │ │ │ └── index.html
│ │ │ ├── erlang/
│ │ │ │ ├── erlang.js
│ │ │ │ └── index.html
│ │ │ ├── fortran/
│ │ │ │ ├── fortran.js
│ │ │ │ └── index.html
│ │ │ ├── gas/
│ │ │ │ ├── gas.js
│ │ │ │ └── index.html
│ │ │ ├── gfm/
│ │ │ │ ├── gfm.js
│ │ │ │ ├── index.html
│ │ │ │ └── test.js
│ │ │ ├── gherkin/
│ │ │ │ ├── gherkin.js
│ │ │ │ └── index.html
│ │ │ ├── go/
│ │ │ │ ├── go.js
│ │ │ │ └── index.html
│ │ │ ├── groovy/
│ │ │ │ ├── groovy.js
│ │ │ │ └── index.html
│ │ │ ├── haml/
│ │ │ │ ├── haml.js
│ │ │ │ ├── index.html
│ │ │ │ └── test.js
│ │ │ ├── haskell/
│ │ │ │ ├── haskell.js
│ │ │ │ └── index.html
│ │ │ ├── haxe/
│ │ │ │ ├── haxe.js
│ │ │ │ └── index.html
│ │ │ ├── htmlembedded/
│ │ │ │ ├── htmlembedded.js
│ │ │ │ └── index.html
│ │ │ ├── htmlmixed/
│ │ │ │ ├── htmlmixed.js
│ │ │ │ └── index.html
│ │ │ ├── http/
│ │ │ │ ├── http.js
│ │ │ │ └── index.html
│ │ │ ├── idl/
│ │ │ │ ├── idl.js
│ │ │ │ └── index.html
│ │ │ ├── index.html
│ │ │ ├── jade/
│ │ │ │ ├── index.html
│ │ │ │ └── jade.js
│ │ │ ├── javascript/
│ │ │ │ ├── index.html
│ │ │ │ ├── javascript.js
│ │ │ │ ├── json-ld.html
│ │ │ │ ├── test.js
│ │ │ │ └── typescript.html
│ │ │ ├── jinja2/
│ │ │ │ ├── index.html
│ │ │ │ └── jinja2.js
│ │ │ ├── julia/
│ │ │ │ ├── index.html
│ │ │ │ └── julia.js
│ │ │ ├── kotlin/
│ │ │ │ ├── index.html
│ │ │ │ └── kotlin.js
│ │ │ ├── livescript/
│ │ │ │ ├── index.html
│ │ │ │ └── livescript.js
│ │ │ ├── lua/
│ │ │ │ ├── index.html
│ │ │ │ └── lua.js
│ │ │ ├── markdown/
│ │ │ │ ├── index.html
│ │ │ │ ├── markdown.js
│ │ │ │ └── test.js
│ │ │ ├── meta.js
│ │ │ ├── mirc/
│ │ │ │ ├── index.html
│ │ │ │ └── mirc.js
│ │ │ ├── mllike/
│ │ │ │ ├── index.html
│ │ │ │ └── mllike.js
│ │ │ ├── modelica/
│ │ │ │ ├── index.html
│ │ │ │ └── modelica.js
│ │ │ ├── nginx/
│ │ │ │ ├── index.html
│ │ │ │ └── nginx.js
│ │ │ ├── ntriples/
│ │ │ │ ├── index.html
│ │ │ │ └── ntriples.js
│ │ │ ├── octave/
│ │ │ │ ├── index.html
│ │ │ │ └── octave.js
│ │ │ ├── pascal/
│ │ │ │ ├── index.html
│ │ │ │ └── pascal.js
│ │ │ ├── pegjs/
│ │ │ │ ├── index.html
│ │ │ │ └── pegjs.js
│ │ │ ├── perl/
│ │ │ │ ├── index.html
│ │ │ │ └── perl.js
│ │ │ ├── php/
│ │ │ │ ├── index.html
│ │ │ │ ├── php.js
│ │ │ │ └── test.js
│ │ │ ├── pig/
│ │ │ │ ├── index.html
│ │ │ │ └── pig.js
│ │ │ ├── properties/
│ │ │ │ ├── index.html
│ │ │ │ └── properties.js
│ │ │ ├── puppet/
│ │ │ │ ├── index.html
│ │ │ │ └── puppet.js
│ │ │ ├── python/
│ │ │ │ ├── index.html
│ │ │ │ └── python.js
│ │ │ ├── q/
│ │ │ │ ├── index.html
│ │ │ │ └── q.js
│ │ │ ├── r/
│ │ │ │ ├── index.html
│ │ │ │ └── r.js
│ │ │ ├── rpm/
│ │ │ │ ├── changes/
│ │ │ │ │ └── index.html
│ │ │ │ ├── index.html
│ │ │ │ └── rpm.js
│ │ │ ├── rst/
│ │ │ │ ├── index.html
│ │ │ │ └── rst.js
│ │ │ ├── ruby/
│ │ │ │ ├── index.html
│ │ │ │ ├── ruby.js
│ │ │ │ └── test.js
│ │ │ ├── rust/
│ │ │ │ ├── index.html
│ │ │ │ └── rust.js
│ │ │ ├── sass/
│ │ │ │ ├── index.html
│ │ │ │ └── sass.js
│ │ │ ├── scheme/
│ │ │ │ ├── index.html
│ │ │ │ └── scheme.js
│ │ │ ├── shell/
│ │ │ │ ├── index.html
│ │ │ │ ├── shell.js
│ │ │ │ └── test.js
│ │ │ ├── sieve/
│ │ │ │ ├── index.html
│ │ │ │ └── sieve.js
│ │ │ ├── slim/
│ │ │ │ ├── index.html
│ │ │ │ ├── slim.js
│ │ │ │ └── test.js
│ │ │ ├── smalltalk/
│ │ │ │ ├── index.html
│ │ │ │ └── smalltalk.js
│ │ │ ├── smarty/
│ │ │ │ ├── index.html
│ │ │ │ └── smarty.js
│ │ │ ├── smartymixed/
│ │ │ │ ├── index.html
│ │ │ │ └── smartymixed.js
│ │ │ ├── solr/
│ │ │ │ ├── index.html
│ │ │ │ └── solr.js
│ │ │ ├── sparql/
│ │ │ │ ├── index.html
│ │ │ │ └── sparql.js
│ │ │ ├── sql/
│ │ │ │ ├── index.html
│ │ │ │ └── sql.js
│ │ │ ├── stex/
│ │ │ │ ├── index.html
│ │ │ │ ├── stex.js
│ │ │ │ └── test.js
│ │ │ ├── tcl/
│ │ │ │ ├── index.html
│ │ │ │ └── tcl.js
│ │ │ ├── textile/
│ │ │ │ ├── index.html
│ │ │ │ ├── test.js
│ │ │ │ └── textile.js
│ │ │ ├── tiddlywiki/
│ │ │ │ ├── index.html
│ │ │ │ ├── tiddlywiki.css
│ │ │ │ └── tiddlywiki.js
│ │ │ ├── tiki/
│ │ │ │ ├── index.html
│ │ │ │ ├── tiki.css
│ │ │ │ └── tiki.js
│ │ │ ├── toml/
│ │ │ │ ├── index.html
│ │ │ │ └── toml.js
│ │ │ ├── tornado/
│ │ │ │ ├── index.html
│ │ │ │ └── tornado.js
│ │ │ ├── turtle/
│ │ │ │ ├── index.html
│ │ │ │ └── turtle.js
│ │ │ ├── vb/
│ │ │ │ ├── index.html
│ │ │ │ └── vb.js
│ │ │ ├── vbscript/
│ │ │ │ ├── index.html
│ │ │ │ └── vbscript.js
│ │ │ ├── velocity/
│ │ │ │ ├── index.html
│ │ │ │ └── velocity.js
│ │ │ ├── verilog/
│ │ │ │ ├── index.html
│ │ │ │ ├── test.js
│ │ │ │ └── verilog.js
│ │ │ ├── xml/
│ │ │ │ ├── index.html
│ │ │ │ ├── test.js
│ │ │ │ └── xml.js
│ │ │ ├── xquery/
│ │ │ │ ├── index.html
│ │ │ │ ├── test.js
│ │ │ │ └── xquery.js
│ │ │ ├── yaml/
│ │ │ │ ├── index.html
│ │ │ │ └── yaml.js
│ │ │ └── z80/
│ │ │ ├── index.html
│ │ │ └── z80.js
│ │ ├── package.json
│ │ ├── test/
│ │ │ ├── comment_test.js
│ │ │ ├── doc_test.js
│ │ │ ├── driver.js
│ │ │ ├── emacs_test.js
│ │ │ ├── index.html
│ │ │ ├── lint/
│ │ │ │ ├── acorn.js
│ │ │ │ ├── lint.js
│ │ │ │ └── walk.js
│ │ │ ├── mode_test.css
│ │ │ ├── mode_test.js
│ │ │ ├── multi_test.js
│ │ │ ├── phantom_driver.js
│ │ │ ├── run.js
│ │ │ ├── search_test.js
│ │ │ ├── sublime_test.js
│ │ │ ├── test.js
│ │ │ └── vim_test.js
│ │ └── theme/
│ │ ├── 3024-day.css
│ │ ├── 3024-night.css
│ │ ├── ambiance-mobile.css
│ │ ├── ambiance.css
│ │ ├── base16-dark.css
│ │ ├── base16-light.css
│ │ ├── blackboard.css
│ │ ├── cobalt.css
│ │ ├── eclipse.css
│ │ ├── elegant.css
│ │ ├── erlang-dark.css
│ │ ├── lesser-dark.css
│ │ ├── mbo.css
│ │ ├── mdn-like.css
│ │ ├── midnight.css
│ │ ├── monokai.css
│ │ ├── neat.css
│ │ ├── neo.css
│ │ ├── night.css
│ │ ├── paraiso-dark.css
│ │ ├── paraiso-light.css
│ │ ├── pastel-on-dark.css
│ │ ├── rubyblue.css
│ │ ├── solarized.css
│ │ ├── the-matrix.css
│ │ ├── tomorrow-night-eighties.css
│ │ ├── twilight.css
│ │ ├── vibrant-ink.css
│ │ ├── xq-dark.css
│ │ └── xq-light.css
│ ├── dataTables/
│ │ ├── css/
│ │ │ ├── dataTables.bootstrap.css
│ │ │ ├── dataTables.foundation.css
│ │ │ ├── dataTables.jqueryui.css
│ │ │ ├── jquery.dataTables.css
│ │ │ └── jquery.dataTables_themeroller.css
│ │ └── js/
│ │ ├── dataTables.bootstrap.js
│ │ ├── dataTables.foundation.js
│ │ ├── dataTables.jqueryui.js
│ │ └── jquery.dataTables.js
│ ├── download/
│ │ └── download.js
│ ├── jasmine-2.1.3/
│ │ ├── boot.js
│ │ ├── console.js
│ │ ├── jasmine-html.js
│ │ ├── jasmine.css
│ │ └── jasmine.js
│ └── jasmine-jquery/
│ └── jasmine-jquery.js
├── assembly/
│ └── zip.xml
├── main/
│ ├── java/
│ │ ├── com/
│ │ │ └── alibaba/
│ │ │ └── druid/
│ │ │ └── pool/
│ │ │ ├── ElasticSearchConnection.java
│ │ │ ├── ElasticSearchDruidDataSource.java
│ │ │ ├── ElasticSearchDruidDataSourceFactory.java
│ │ │ ├── ElasticSearchDruidPooledConnection.java
│ │ │ ├── ElasticSearchDruidPooledPreparedStatement.java
│ │ │ ├── ElasticSearchPreparedStatement.java
│ │ │ ├── ElasticSearchResultSet.java
│ │ │ └── ElasticSearchResultSetMetaDataBase.java
│ │ └── org/
│ │ ├── elasticsearch/
│ │ │ ├── action/
│ │ │ │ ├── ParsedDocWriteResponse.java
│ │ │ │ ├── admin/
│ │ │ │ │ ├── cluster/
│ │ │ │ │ │ └── settings/
│ │ │ │ │ │ └── ParsedClusterUpdateSettingsResponse.java
│ │ │ │ │ └── indices/
│ │ │ │ │ ├── create/
│ │ │ │ │ │ └── ParsedCreateIndexResponse.java
│ │ │ │ │ └── refresh/
│ │ │ │ │ └── ParsedRefreshResponse.java
│ │ │ │ ├── bulk/
│ │ │ │ │ ├── ParsedBulkItemResponse.java
│ │ │ │ │ └── ParsedBulkResponse.java
│ │ │ │ ├── delete/
│ │ │ │ │ └── ParsedDeleteResponse.java
│ │ │ │ ├── index/
│ │ │ │ │ └── ParsedIndexResponse.java
│ │ │ │ ├── search/
│ │ │ │ │ ├── ParsedMultiSearchResponse.java
│ │ │ │ │ ├── ParsedSearchResponse.java
│ │ │ │ │ └── ParsedShardSearchFailure.java
│ │ │ │ ├── support/
│ │ │ │ │ └── master/
│ │ │ │ │ ├── ParsedAcknowledgedResponse.java
│ │ │ │ │ └── ParsedShardsAcknowledgedResponse.java
│ │ │ │ └── update/
│ │ │ │ └── ParsedUpdateResponse.java
│ │ │ ├── aggregations/
│ │ │ │ └── pipeline/
│ │ │ │ ├── BucketSelectorPipelineAggregationBuilder.java
│ │ │ │ └── MovFnPipelineAggregationBuilder.java
│ │ │ ├── index/
│ │ │ │ ├── get/
│ │ │ │ │ └── ParsedGetResult.java
│ │ │ │ └── reindex/
│ │ │ │ ├── ParsedBulkByScrollResponse.java
│ │ │ │ └── ParsedBulkByScrollTask.java
│ │ │ ├── join/
│ │ │ │ ├── aggregations/
│ │ │ │ │ └── ChildrenAggregationBuilder.java
│ │ │ │ └── query/
│ │ │ │ └── HasChildQueryBuilder.java
│ │ │ ├── plugin/
│ │ │ │ └── nlpcn/
│ │ │ │ ├── ActionRequestRestExecuter.java
│ │ │ │ ├── ComperableHitResult.java
│ │ │ │ ├── ElasticHitsExecutor.java
│ │ │ │ ├── ElasticJoinExecutor.java
│ │ │ │ ├── ElasticResultHandler.java
│ │ │ │ ├── ElasticUtils.java
│ │ │ │ ├── GetIndexRequestRestListener.java
│ │ │ │ ├── HashJoinComparisonStructure.java
│ │ │ │ ├── HashJoinElasticExecutor.java
│ │ │ │ ├── IntersectExecutor.java
│ │ │ │ ├── MetaSearchResult.java
│ │ │ │ ├── MinusExecutor.java
│ │ │ │ ├── MultiRequestExecutorFactory.java
│ │ │ │ ├── NamedXContentRegistryHolder.java
│ │ │ │ ├── NestedLoopsElasticExecutor.java
│ │ │ │ ├── QueryActionElasticExecutor.java
│ │ │ │ ├── RestSqlAction.java
│ │ │ │ ├── SearchHitsResult.java
│ │ │ │ ├── SqlPlug.java
│ │ │ │ ├── UnionExecutor.java
│ │ │ │ ├── client/
│ │ │ │ │ ├── ElasticsearchRestClient.java
│ │ │ │ │ └── handler/
│ │ │ │ │ ├── ActionHandler.java
│ │ │ │ │ ├── BulkActionHandler.java
│ │ │ │ │ ├── ClusterStateActionHandler.java
│ │ │ │ │ ├── ClusterUpdateSettingsActionHandler.java
│ │ │ │ │ ├── CreateIndexActionHandler.java
│ │ │ │ │ ├── DeleteByQueryActionHandler.java
│ │ │ │ │ ├── DeleteIndexActionHandler.java
│ │ │ │ │ ├── GetIndexActionHandler.java
│ │ │ │ │ ├── MultiSearchActionHandler.java
│ │ │ │ │ ├── NodesInfoActionHandler.java
│ │ │ │ │ ├── PutMappingActionHandler.java
│ │ │ │ │ ├── RefreshActionHandler.java
│ │ │ │ │ ├── SearchActionHandler.java
│ │ │ │ │ └── SearchScrollActionHandler.java
│ │ │ │ ├── executors/
│ │ │ │ │ ├── ActionRequestRestExecuterFactory.java
│ │ │ │ │ ├── CSVResult.java
│ │ │ │ │ ├── CSVResultRestExecutor.java
│ │ │ │ │ ├── CSVResultsExtractor.java
│ │ │ │ │ ├── CsvExtractorException.java
│ │ │ │ │ ├── ElasticDefaultRestExecutor.java
│ │ │ │ │ └── RestExecutor.java
│ │ │ │ └── package-info.java
│ │ │ ├── reindex/
│ │ │ │ └── BulkIndexByScrollResponseContentListener.java
│ │ │ └── search/
│ │ │ ├── ParsedSearchHit.java
│ │ │ ├── ParsedSearchHits.java
│ │ │ ├── ParsedSearchSortValues.java
│ │ │ ├── aggregations/
│ │ │ │ ├── ParsedAggregation.java
│ │ │ │ ├── ParsedInternalAggregations.java
│ │ │ │ ├── ParsedMultiBucketAggregation.java
│ │ │ │ ├── bucket/
│ │ │ │ │ ├── ParsedSingleBucketAggregation.java
│ │ │ │ │ ├── composite/
│ │ │ │ │ │ └── ParsedComposite.java
│ │ │ │ │ ├── filter/
│ │ │ │ │ │ ├── ParsedFilter.java
│ │ │ │ │ │ └── ParsedFilters.java
│ │ │ │ │ ├── geogrid/
│ │ │ │ │ │ ├── ParsedGeoGrid.java
│ │ │ │ │ │ ├── ParsedGeoGridBucket.java
│ │ │ │ │ │ ├── ParsedGeoHashGrid.java
│ │ │ │ │ │ ├── ParsedGeoHashGridBucket.java
│ │ │ │ │ │ ├── ParsedGeoTileGrid.java
│ │ │ │ │ │ └── ParsedGeoTileGridBucket.java
│ │ │ │ │ ├── global/
│ │ │ │ │ │ └── ParsedGlobal.java
│ │ │ │ │ ├── histogram/
│ │ │ │ │ │ ├── ParsedDateHistogram.java
│ │ │ │ │ │ ├── ParsedHistogram.java
│ │ │ │ │ │ └── ParsedVariableWidthHistogram.java
│ │ │ │ │ ├── missing/
│ │ │ │ │ │ └── ParsedMissing.java
│ │ │ │ │ ├── nested/
│ │ │ │ │ │ ├── ParsedNested.java
│ │ │ │ │ │ └── ParsedReverseNested.java
│ │ │ │ │ ├── range/
│ │ │ │ │ │ ├── ParsedBinaryRange.java
│ │ │ │ │ │ ├── ParsedDateRange.java
│ │ │ │ │ │ ├── ParsedGeoDistance.java
│ │ │ │ │ │ └── ParsedRange.java
│ │ │ │ │ ├── sampler/
│ │ │ │ │ │ └── ParsedSampler.java
│ │ │ │ │ └── terms/
│ │ │ │ │ ├── ParsedDoubleTerms.java
│ │ │ │ │ ├── ParsedLongRareTerms.java
│ │ │ │ │ ├── ParsedLongTerms.java
│ │ │ │ │ ├── ParsedRareTerms.java
│ │ │ │ │ ├── ParsedSignificantLongTerms.java
│ │ │ │ │ ├── ParsedSignificantStringTerms.java
│ │ │ │ │ ├── ParsedSignificantTerms.java
│ │ │ │ │ ├── ParsedStringRareTerms.java
│ │ │ │ │ ├── ParsedStringTerms.java
│ │ │ │ │ └── ParsedTerms.java
│ │ │ │ ├── metrics/
│ │ │ │ │ ├── ParsedAvg.java
│ │ │ │ │ ├── ParsedBucketMetricValue.java
│ │ │ │ │ ├── ParsedCardinality.java
│ │ │ │ │ ├── ParsedExtendedStats.java
│ │ │ │ │ ├── ParsedGeoBounds.java
│ │ │ │ │ ├── ParsedGeoCentroid.java
│ │ │ │ │ ├── ParsedHDRPercentileRanks.java
│ │ │ │ │ ├── ParsedHDRPercentiles.java
│ │ │ │ │ ├── ParsedMax.java
│ │ │ │ │ ├── ParsedMedianAbsoluteDeviation.java
│ │ │ │ │ ├── ParsedMin.java
│ │ │ │ │ ├── ParsedPercentileRanks.java
│ │ │ │ │ ├── ParsedPercentiles.java
│ │ │ │ │ ├── ParsedScriptedMetric.java
│ │ │ │ │ ├── ParsedSingleValueNumericMetricsAggregation.java
│ │ │ │ │ ├── ParsedStats.java
│ │ │ │ │ ├── ParsedSum.java
│ │ │ │ │ ├── ParsedTDigestPercentileRanks.java
│ │ │ │ │ ├── ParsedTDigestPercentiles.java
│ │ │ │ │ ├── ParsedTopHits.java
│ │ │ │ │ ├── ParsedValueCount.java
│ │ │ │ │ └── ParsedWeightedAvg.java
│ │ │ │ └── pipeline/
│ │ │ │ ├── ParsedExtendedStatsBucket.java
│ │ │ │ ├── ParsedPercentilesBucket.java
│ │ │ │ ├── ParsedSimpleValue.java
│ │ │ │ └── ParsedStatsBucket.java
│ │ │ ├── fetch/
│ │ │ │ └── subphase/
│ │ │ │ └── highlight/
│ │ │ │ └── ParsedHighlightField.java
│ │ │ ├── profile/
│ │ │ │ ├── ParsedProfileResult.java
│ │ │ │ ├── ParsedSearchProfileDfsPhaseResult.java
│ │ │ │ ├── ParsedSearchProfileResults.java
│ │ │ │ ├── aggregation/
│ │ │ │ │ └── ParsedAggregationProfileShardResult.java
│ │ │ │ └── query/
│ │ │ │ ├── ParsedCollectorResult.java
│ │ │ │ └── ParsedQueryProfileShardResult.java
│ │ │ └── suggest/
│ │ │ └── ParsedSuggest.java
│ │ └── nlpcn/
│ │ └── es4sql/
│ │ ├── SQLFunctions.java
│ │ ├── SearchDao.java
│ │ ├── Test.java
│ │ ├── Util.java
│ │ ├── domain/
│ │ │ ├── Condition.java
│ │ │ ├── Delete.java
│ │ │ ├── Field.java
│ │ │ ├── From.java
│ │ │ ├── JoinSelect.java
│ │ │ ├── KVValue.java
│ │ │ ├── MethodField.java
│ │ │ ├── Order.java
│ │ │ ├── Paramer.java
│ │ │ ├── Query.java
│ │ │ ├── SearchResult.java
│ │ │ ├── Select.java
│ │ │ ├── TableOnJoinSelect.java
│ │ │ ├── Where.java
│ │ │ └── hints/
│ │ │ ├── Hint.java
│ │ │ ├── HintFactory.java
│ │ │ └── HintType.java
│ │ ├── exception/
│ │ │ └── SqlParseException.java
│ │ ├── jdbc/
│ │ │ ├── ObjectResult.java
│ │ │ ├── ObjectResultsExtractException.java
│ │ │ └── ObjectResultsExtractor.java
│ │ ├── parse/
│ │ │ ├── CaseWhenParser.java
│ │ │ ├── CastParser.java
│ │ │ ├── ChildrenType.java
│ │ │ ├── ElasticLexer.java
│ │ │ ├── ElasticSqlExprParser.java
│ │ │ ├── ElasticSqlSelectParser.java
│ │ │ ├── ElasticSqlStatementParser.java
│ │ │ ├── FieldMaker.java
│ │ │ ├── NestedType.java
│ │ │ ├── SQLOdbcExpr.java
│ │ │ ├── SQLParensIdentifierExpr.java
│ │ │ ├── ScriptFilter.java
│ │ │ ├── SelectParser.java
│ │ │ ├── SqlParser.java
│ │ │ ├── SubQueryExpression.java
│ │ │ └── WhereParser.java
│ │ ├── query/
│ │ │ ├── AggregationQueryAction.java
│ │ │ ├── DefaultQueryAction.java
│ │ │ ├── DeleteQueryAction.java
│ │ │ ├── ESActionFactory.java
│ │ │ ├── QueryAction.java
│ │ │ ├── ShowQueryAction.java
│ │ │ ├── SqlElasticDeleteByQueryRequestBuilder.java
│ │ │ ├── SqlElasticRequestBuilder.java
│ │ │ ├── SqlElasticSearchRequestBuilder.java
│ │ │ ├── join/
│ │ │ │ ├── ESHashJoinQueryAction.java
│ │ │ │ ├── ESJoinQueryAction.java
│ │ │ │ ├── ESJoinQueryActionFactory.java
│ │ │ │ ├── ESNestedLoopsQueryAction.java
│ │ │ │ ├── HashJoinElasticRequestBuilder.java
│ │ │ │ ├── JoinRequestBuilder.java
│ │ │ │ ├── NestedLoopsElasticRequestBuilder.java
│ │ │ │ └── TableInJoinRequestBuilder.java
│ │ │ ├── maker/
│ │ │ │ ├── AggMaker.java
│ │ │ │ ├── FilterMaker.java
│ │ │ │ ├── Maker.java
│ │ │ │ └── QueryMaker.java
│ │ │ └── multi/
│ │ │ ├── ESMultiQueryActionFactory.java
│ │ │ ├── MultiQueryAction.java
│ │ │ ├── MultiQueryRequestBuilder.java
│ │ │ └── MultiQuerySelect.java
│ │ └── spatial/
│ │ ├── BoundingBoxFilterParams.java
│ │ ├── CellFilterParams.java
│ │ ├── DistanceFilterParams.java
│ │ ├── Point.java
│ │ ├── PolygonFilterParams.java
│ │ ├── RangeDistanceFilterParams.java
│ │ ├── SpatialParamsFactory.java
│ │ └── WktToGeoJsonConverter.java
│ └── resources/
│ ├── es-plugin.properties
│ └── plugin-descriptor.properties
├── site-server/
│ ├── node-server.js
│ ├── package.json
│ └── site_configuration.json
└── test/
├── java/
│ ├── com/
│ │ └── zhongshu/
│ │ └── ZhongshuTest.java
│ └── org/
│ └── nlpcn/
│ └── es4sql/
│ ├── AggregationTest.java
│ ├── CSVResultsExtractorTests.java
│ ├── DeleteTest.java
│ ├── ExplainTest.java
│ ├── JDBCTests.java
│ ├── JoinTests.java
│ ├── MainTestSuite.java
│ ├── MethodQueryTest.java
│ ├── MultiQueryTests.java
│ ├── QueryTest.java
│ ├── SQLFunctionsTest.java
│ ├── ShowTest.java
│ ├── SourceFieldTest.java
│ ├── SqlParserTests.java
│ ├── TestsConstants.java
│ ├── UtilTests.java
│ └── WktToGeoJsonConverterTests.java
└── resources/
├── accounts.json
├── accounts_temp.json
├── dogs.json
├── elasticsearch.yml
├── expectedOutput/
│ ├── aggregation_cardinality_explain.json
│ ├── aggregation_query_explain.json
│ ├── between_query.json
│ ├── delete_explain.json
│ ├── multi_match_query.json
│ ├── script_value.json
│ ├── search_explain.json
│ ├── search_explain_filter.json
│ └── search_spatial_explain.json
├── game_of_thrones_complex.json
├── join_objects.json
├── locations.json
├── locations2.json
├── nested_objects.json
├── odbc-date-formats.json
├── online.json
├── peoples.json
├── phrases.json
└── systems.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/workflows/actions.yml
================================================
name: CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'
cache: 'maven'
- name: Install Elasticsearch
env:
ES_VERSION: 9.3.0
run: |
sudo rm -rf /var/lib/elasticsearch
curl -fsSL --retry 3 --retry-delay 5 "https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${ES_VERSION}-amd64.deb" -o elasticsearch.deb
ls -lh elasticsearch.deb
sudo dpkg -i --force-confnew elasticsearch.deb
sudo cp ./src/test/resources/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml
sudo cat /etc/elasticsearch/elasticsearch.yml
sudo java -version
sudo chown -R elasticsearch:elasticsearch /etc/default/elasticsearch
sudo systemctl start elasticsearch
sudo systemctl status elasticsearch
sleep 30
- name: Install dependencies
run: mvn install -DskipTests=true -Dmaven.javadoc.skip=true -Dgpg.skip=true
- name: Run tests
run: |
ulimit -a
mvn test
================================================
FILE: .gitignore
================================================
*.class
.settings/
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
#*.jar
*.war
*.ear
.classpath
.project
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
/bin/
/target/
log/
elasticsearch-sql.iml
.idea
src/_site/vendor/codemirror/mode/jinja2/.goutputstream-*
src/_site/node_modules
src/site-server/node_modules
*~
.DS_Store
================================================
FILE: .travis.yml
================================================
language: java
dist: focal
jdk:
- openjdk21
before_install:
- sudo rm -rf /var/lib/elasticsearch
- curl https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-9.3.0-amd64.deb -o elasticsearch.deb && sudo dpkg -i --force-confnew elasticsearch.deb
- sudo cp ./src/test/resources/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml
- sudo cat /etc/elasticsearch/elasticsearch.yml
- sudo java -version
- sudo chown -R elasticsearch:elasticsearch /etc/default/elasticsearch
- sudo service elasticsearch start
- sleep 30
install:
- mvn install -DskipTests=true -Dmaven.javadoc.skip=true -Dgpg.skip=true
script:
- ulimit -a
- mvn test
================================================
FILE: BUILDING.md
================================================
## Building
To build zip release of the plugin, run this command:
````
mvn clean package assembly:single -DskipTests
````
Running this command will create zip release named elasticsearch-sql-{version}.zip under 'target' directory. which can be installed from the file system using elasticsearch plugin bash script:
````
./bin/plugin -u file:///home/omershelef/IdeaProjects/elasticsearch-sql/target/elasticsearch-sql-1.3.2.zip --install sql
````
## Tests
To run the tests, you will need elasticsearch instance running on your local machine. Alternatively you can set the environment variables ES_TEST_HOST and ES_TEST_PORT to point the tests to some other elasticsearch instance instead local machine on default port 9200.
To run the test all you need is running:
````
mvn test
````
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright {yyyy} {name of copyright owner}
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: README.md
================================================
## IMPORTANT
### Since 7.5.0.0, the path `/_sql` is changed to `/_nlpcn/sql`, and the path `/_sql/_explain` is changed to `/_nlpcn/sql/explain`.
----------
## DEPRECATED
### Please note, this project is no longer in active development, and is deprecated, please use official version [x-pack-sql](https://github.com/elastic/elasticsearch/tree/master/x-pack/plugin/sql) and [OpenDistro for Elasticsearch SQL](https://github.com/opendistro-for-elasticsearch/sql) supported by AWS and licensed under Apache 2.
----------
Elasticsearch-SQL
=================
### build status
**6.8.23** [](https://travis-ci.com/github/NLPchina/elasticsearch-sql)
**7.17.28** [](https://travis-ci.com/github/NLPchina/elasticsearch-sql)
**8.19.11** [](https://github.com/NLPchina/elasticsearch-sql/actions/workflows/actions.yml)
**9.3.0** [](https://github.com/NLPchina/elasticsearch-sql/actions/workflows/actions.yml)
**master** [](https://github.com/NLPchina/elasticsearch-sql/actions/workflows/actions.yml)
Query elasticsearch using familiar SQL syntax.
You can also use ES functions in SQL.
**Check out our [wiki!](https://github.com/NLPchina/elasticsearch-sql/wiki)**
## explain example
## Web frontend overview

## SETUP
Install as plugin:
Versions
------------
| elasticsearch version | latest version | remarks | branch |
| --------------------- | ------------- | ----------------------------- | ------------ |
| 1.x | 1.7.6 | tested against elastic 1.7.6 | elastic1.x |
| 2.0.0 | 2.0.4 | delete commands not supported | elastic2.0 |
| 2.1.0 | 2.1.0.2 | delete commands not supported | elastic2.1 |
| 2.1.1 | 2.1.1.1 | delete commands not supported | elastic2.1.1 |
| 2.1.2 | 2.1.2.0 | delete commands not supported | elastic2.1.2 |
| 2.2.0 | 2.2.0.1 | delete commands not supported | elastic2.2.0 |
| 2.2.1 | 2.2.1.0 | delete commands not supported | elastic2.2.1 |
| 2.3.0 | 2.3.0.0 | delete commands not supported | elastic2.3.0 |
| 2.3.1 | 2.3.1.1 | delete commands not supported | elastic2.3.1 |
| 2.3.2 | 2.3.2.0 | delete commands not supported | elastic2.3.2 |
| 2.3.3 | 2.3.3.0 | delete commands not supported | elastic2.3.3 |
| 2.3.4 | 2.3.4.0 | delete commands not supported | elastic2.3.4 |
| 2.3.5 | 2.3.5.0 | delete commands not supported | elastic2.3.5 |
| 2.4.0 | 2.4.0.1 | delete commands not supported | elastic2.4.0 |
| 2.4.1 | 2.4.1.0 | delete commands not supported | elastic2.4.1 |
| 2.4.2 | 2.4.2.1 | delete commands not supported | elastic2.4.2 |
| 2.4.3 | 2.4.3.0 | delete commands not supported | elastic2.4.3 |
| 2.4.4 | 2.4.4.0 | delete commands not supported | elastic2.4.4 |
| 2.4.5 | 2.4.5.0 | delete commands not supported | elastic2.4.5 |
| 2.4.6 | 2.4.6.0 | delete commands not supported | elastic2.4.6 |
| 5.0.1 | 5.0.1.0 | delete commands not supported | elastic5.0.1 |
| 5.1.1 | 5.1.1.0 | delete commands not supported | elastic5.1.1 |
| 5.1.2 | 5.1.2.0 | delete commands not supported | elastic5.1.2 |
| 5.2.0 | 5.2.0.0 | delete commands not supported | elastic5.2.0 |
| 5.2.1 | 5.2.1.0 | delete commands not supported | elastic5.2.1 |
| 5.2.2 | 5.2.2.0 | delete commands not supported | elastic5.2.2 |
| 5.3.0 | 5.3.0.0 | delete commands not supported | elastic5.3.0 |
| 5.3.1 | 5.3.1.0 | delete commands not supported | elastic5.3.1 |
| 5.3.2 | 5.3.2.0 | delete commands not supported | elastic5.3.2 |
| 5.3.3 | 5.3.3.0 | delete commands not supported | elastic5.3.3 |
| 5.4.0 | 5.4.0.0 | delete commands not supported | elastic5.4.0 |
| 5.4.1 | 5.4.1.0 | delete commands not supported | elastic5.4.1 |
| 5.4.2 | 5.4.2.0 | delete commands not supported | elastic5.4.2 |
| 5.4.3 | 5.4.3.0 | delete commands not supported | elastic5.4.3 |
| 5.5.0 | 5.5.0.1 | delete commands not supported | elastic5.5.0 |
| 5.5.1 | 5.5.1.0 | delete commands not supported | elastic5.5.1 |
| 5.5.2 | 5.5.2.0 | delete commands not supported | elastic5.5.2 |
| 5.5.3 | 5.5.3.0 | delete commands not supported | elastic5.5.3 |
| 5.6.0 | 5.6.0.0 | delete commands not supported | elastic5.6.0 |
| 5.6.1 | 5.6.1.0 | delete commands not supported | elastic5.6.1 |
| 5.6.2 | 5.6.2.0 | delete commands not supported | elastic5.6.2 |
| 5.6.3 | 5.6.3.0 | delete commands not supported | elastic5.6.3 |
| 5.6.4 | 5.6.4.0 | delete commands not supported | elastic5.6.4 |
| 5.6.5 | 5.6.5.0 | delete commands not supported | elastic5.6.5 |
| 5.6.6 | 5.6.6.0 | | elastic5.6.6 |
| 5.6.7 | 5.6.7.0 | | elastic5.6.7 |
| 5.6.8 | 5.6.8.0 | | elastic5.6.8 |
| 5.6.9 | 5.6.9.0 | | elastic5.6.9 |
| 5.6.10 | 5.6.10.0 | | elastic5.6.10|
| 5.6.11 | 5.6.11.0 | | elastic5.6.11|
| 5.6.12 | 5.6.12.0 | | elastic5.6.12|
| 5.6.13 | 5.6.13.0 | | elastic5.6.13|
| 5.6.14 | 5.6.14.0 | | elastic5.6.14|
| 5.6.15 | 5.6.15.0 | | elastic5.6.15|
| 5.6.16 | 5.6.16.0 | | elastic5.6.16|
| 6.0.0 | 6.0.0.0 | | elastic6.0.0 |
| 6.0.1 | 6.0.1.0 | | elastic6.0.1 |
| 6.1.0 | 6.1.0.0 | | elastic6.1.0 |
| 6.1.1 | 6.1.1.0 | | elastic6.1.1 |
| 6.1.2 | 6.1.2.0 | | elastic6.1.2 |
| 6.1.3 | 6.1.3.0 | | elastic6.1.3 |
| 6.1.4 | 6.1.4.0 | | elastic6.1.4 |
| 6.2.0 | 6.2.0.0 | | elastic6.2.0 |
| 6.2.1 | 6.2.1.0 | | elastic6.2.1 |
| 6.2.2 | 6.2.2.0 | | elastic6.2.2 |
| 6.2.3 | 6.2.3.0 | | elastic6.2.3 |
| 6.2.4 | 6.2.4.0 | | elastic6.2.4 |
| 6.3.0 | 6.3.0.0 | | elastic6.3.0 |
| 6.3.1 | 6.3.1.0 | | elastic6.3.1 |
| 6.3.2 | 6.3.2.0 | | elastic6.3.2 |
| 6.4.0 | 6.4.0.0 | | elastic6.4.0 |
| 6.4.1 | 6.4.1.0 | | elastic6.4.1 |
| 6.4.2 | 6.4.2.0 | | elastic6.4.2 |
| 6.4.3 | 6.4.3.0 | | elastic6.4.3 |
| 6.5.0 | 6.5.0.0 | | elastic6.5.0 |
| 6.5.1 | 6.5.1.0 | | elastic6.5.1 |
| 6.5.2 | 6.5.2.0 | | elastic6.5.2 |
| 6.5.3 | 6.5.3.0 | | elastic6.5.3 |
| 6.5.4 | 6.5.4.0 | | elastic6.5.4 |
| 6.6.0 | 6.6.0.0 | | elastic6.6.0 |
| 6.6.1 | 6.6.1.0 | | elastic6.6.1 |
| 6.6.2 | 6.6.2.0 | | elastic6.6.2 |
| 6.7.0 | 6.7.0.0 | | elastic6.7.0 |
| 6.7.1 | 6.7.1.0 | | elastic6.7.1 |
| 6.7.2 | 6.7.2.0 | | elastic6.7.2 |
| 6.8.0 | 6.8.0.0 | | elastic6.8.0 |
| 6.8.1 | 6.8.1.0 | | elastic6.8.1 |
| 6.8.2 | 6.8.2.0 | | elastic6.8.2 |
| 6.8.3 | 6.8.3.0 | | elastic6.8.3 |
| 6.8.4 | 6.8.4.0 | | elastic6.8.4 |
| 6.8.5 | 6.8.5.0 | | elastic6.8.5 |
| 6.8.6 | 6.8.6.0 | | elastic6.8.6 |
| 6.8.7 | 6.8.7.0 | | elastic6.8.7 |
| 6.8.8 | 6.8.8.0 | | elastic6.8.8 |
| 6.8.9 | 6.8.9.0 | | elastic6.8.9 |
| 6.8.10 | 6.8.10.0 | | elastic6.8.10|
| 6.8.11 | 6.8.11.0 | | elastic6.8.11|
| 6.8.12 | 6.8.12.0 | | elastic6.8.12|
| 6.8.13 | 6.8.13.0 | | elastic6.8.13|
| 6.8.14 | 6.8.14.0 | | elastic6.8.14|
| 6.8.15 | 6.8.15.0 | | elastic6.8.15|
| 6.8.16 | 6.8.16.0 | | elastic6.8.16|
| 6.8.17 | 6.8.17.0 | | elastic6.8.17|
| 6.8.18 | 6.8.18.0 | | elastic6.8.18|
| 6.8.19 | 6.8.19.0 | | elastic6.8.19|
| 6.8.20 | 6.8.20.0 | | elastic6.8.20|
| 6.8.21 | 6.8.21.0 | | elastic6.8.21|
| 6.8.22 | 6.8.22.0 | | elastic6.8.22|
| 6.8.23 | 6.8.23.0 | | elastic6.8.23|
| 7.0.0 | 7.0.0.0 | | elastic7.0.0 |
| 7.0.1 | 7.0.1.0 | | elastic7.0.1 |
| 7.1.0 | 7.1.0.0 | | elastic7.1.0 |
| 7.1.1 | 7.1.1.0 | | elastic7.1.1 |
| 7.2.0 | 7.2.0.0 | | elastic7.2.0 |
| 7.2.1 | 7.2.1.0 | | elastic7.2.1 |
| 7.3.0 | 7.3.0.0 | | elastic7.3.0 |
| 7.3.1 | 7.3.1.0 | | elastic7.3.1 |
| 7.3.2 | 7.3.2.0 | | elastic7.3.2 |
| 7.4.0 | 7.4.0.0 | | elastic7.4.0 |
| 7.4.1 | 7.4.1.0 | | elastic7.4.1 |
| 7.4.2 | 7.4.2.0 | | elastic7.4.2 |
| 7.5.0 | 7.5.0.0 | | elastic7.5.0 |
| 7.5.1 | 7.5.1.0 | | elastic7.5.1 |
| 7.5.2 | 7.5.2.0 | | elastic7.5.2 |
| 7.6.0 | 7.6.0.0 | | elastic7.6.0 |
| 7.6.1 | 7.6.1.0 | | elastic7.6.1 |
| 7.6.2 | 7.6.2.0 | | elastic7.6.2 |
| 7.7.0 | 7.7.0.0 | | elastic7.7.0 |
| 7.7.1 | 7.7.1.0 | | elastic7.7.1 |
| 7.8.0 | 7.8.0.0 | | elastic7.8.0 |
| 7.8.1 | 7.8.1.0 | | elastic7.8.1 |
| 7.9.0 | 7.9.0.0 | | elastic7.9.0 |
| 7.9.1 | 7.9.1.0 | | elastic7.9.1 |
| 7.9.2 | 7.9.2.0 | | elastic7.9.2 |
| 7.9.3 | 7.9.3.0 | | elastic7.9.3 |
| 7.10.0 | 7.10.0.0 | | elastic7.10.0|
| 7.10.1 | 7.10.1.0 | | elastic7.10.1|
| 7.10.2 | 7.10.2.0 | | elastic7.10.2|
| 7.11.0 | 7.11.0.0 | | elastic7.11.0|
| 7.11.1 | 7.11.1.0 | | elastic7.11.1|
| 7.11.2 | 7.11.2.0 | | elastic7.11.2|
| 7.12.0 | 7.12.0.0 | | elastic7.12.0|
| 7.12.1 | 7.12.1.0 | | elastic7.12.1|
| 7.13.0 | 7.13.0.0 | | elastic7.13.0|
| 7.13.1 | 7.13.1.0 | | elastic7.13.1|
| 7.13.2 | 7.13.2.0 | | elastic7.13.2|
| 7.13.3 | 7.13.3.0 | | elastic7.13.3|
| 7.13.4 | 7.13.4.0 | | elastic7.13.4|
| 7.14.0 | 7.14.0.0 | | elastic7.14.0|
| 7.14.1 | 7.14.1.0 | | elastic7.14.1|
| 7.14.2 | 7.14.2.0 | | elastic7.14.2|
| 7.15.0 | 7.15.0.0 | | elastic7.15.0|
| 7.15.1 | 7.15.1.0 | | elastic7.15.1|
| 7.15.2 | 7.15.2.0 | | elastic7.15.2|
| 7.16.0 | 7.16.0.0 | | elastic7.16.0|
| 7.16.1 | 7.16.1.0 | | elastic7.16.1|
| 7.16.2 | 7.16.2.0 | | elastic7.16.2|
| 7.16.3 | 7.16.3.0 | | elastic7.16.3|
| 7.17.0 | 7.17.0.0 | | elastic7.17.0|
| 7.17.1 | 7.17.1.0 | | elastic7.17.1|
| 7.17.2 | 7.17.2.0 | | elastic7.17.2|
| 7.17.3 | 7.17.3.0 | | elastic7.17.3|
| 7.17.4 | 7.17.4.0 | | elastic7.17.4|
| 7.17.5 | 7.17.5.0 | | elastic7.17.5|
| 7.17.6 | 7.17.6.0 | | elastic7.17.6|
| 7.17.7 | 7.17.7.0 | | elastic7.17.7|
| 7.17.8 | 7.17.8.0 | | elastic7.17.8|
| 7.17.9 | 7.17.9.0 | | elastic7.17.9|
| 7.17.10 | 7.17.10.0 | |elastic7.17.10|
| 7.17.11 | 7.17.11.0 | |elastic7.17.11|
| 7.17.12 | 7.17.12.0 | |elastic7.17.12|
| 7.17.13 | 7.17.13.0 | |elastic7.17.13|
| 7.17.14 | 7.17.14.0 | |elastic7.17.14|
| 7.17.15 | 7.17.15.0 | |elastic7.17.15|
| 7.17.16 | 7.17.16.0 | |elastic7.17.16|
| 7.17.17 | 7.17.17.0 | |elastic7.17.17|
| 7.17.18 | 7.17.18.0 | |elastic7.17.18|
| 7.17.19 | 7.17.19.0 | |elastic7.17.19|
| 7.17.20 | 7.17.20.0 | |elastic7.17.20|
| 7.17.21 | 7.17.21.0 | |elastic7.17.21|
| 7.17.22 | 7.17.22.0 | |elastic7.17.22|
| 7.17.23 | 7.17.23.0 | |elastic7.17.23|
| 7.17.24 | 7.17.24.0 | |elastic7.17.24|
| 7.17.25 | 7.17.25.0 | |elastic7.17.25|
| 7.17.26 | 7.17.26.0 | |elastic7.17.26|
| 7.17.27 | 7.17.27.0 | |elastic7.17.27|
| 7.17.28 | 7.17.28.0 | |elastic7.17.28|
| 8.5.3 | 8.5.3.0 | | elastic8.5.3 |
| 8.6.0 | 8.6.0.0 | | elastic8.6.0 |
| 8.6.1 | 8.6.1.0 | | elastic8.6.1 |
| 8.6.2 | 8.6.2.0 | | elastic8.6.2 |
| 8.7.0 | 8.7.0.0 | | elastic8.7.0 |
| 8.7.1 | 8.7.1.0 | | elastic8.7.1 |
| 8.8.0 | 8.8.0.0 | | elastic8.8.0 |
| 8.8.1 | 8.8.1.0 | | elastic8.8.1 |
| 8.8.2 | 8.8.2.0 | | elastic8.8.2 |
| 8.9.0 | 8.9.0.0 | | elastic8.9.0 |
| 8.9.1 | 8.9.1.0 | | elastic8.9.1 |
| 8.9.2 | 8.9.2.0 | | elastic8.9.2 |
| 8.10.0 | 8.10.0.0 | | elastic8.10.0|
| 8.10.1 | 8.10.1.0 | | elastic8.10.1|
| 8.10.2 | 8.10.2.0 | | elastic8.10.2|
| 8.10.3 | 8.10.3.0 | | elastic8.10.3|
| 8.10.4 | 8.10.4.0 | | elastic8.10.4|
| 8.11.0 | 8.11.0.0 | | elastic8.11.0|
| 8.11.1 | 8.11.1.0 | | elastic8.11.1|
| 8.11.2 | 8.11.2.0 | | elastic8.11.2|
| 8.11.3 | 8.11.3.0 | | elastic8.11.3|
| 8.11.4 | 8.11.4.0 | | elastic8.11.4|
| 8.12.0 | 8.12.0.0 | | elastic8.12.0|
| 8.12.1 | 8.12.1.0 | | elastic8.12.1|
| 8.12.2 | 8.12.2.0 | | elastic8.12.2|
| 8.13.0 | 8.13.0.0 | | elastic8.13.0|
| 8.13.1 | 8.13.1.0 | | elastic8.13.1|
| 8.13.2 | 8.13.2.0 | | elastic8.13.2|
| 8.13.3 | 8.13.3.0 | | elastic8.13.3|
| 8.13.4 | 8.13.4.0 | | elastic8.13.4|
| 8.14.0 | 8.14.0.0 | | elastic8.14.0|
| 8.14.1 | 8.14.1.0 | | elastic8.14.1|
| 8.14.2 | 8.14.2.0 | | elastic8.14.2|
| 8.14.3 | 8.14.3.0 | | elastic8.14.3|
| 8.15.0 | 8.15.0.0 | | elastic8.15.0|
| 8.15.1 | 8.15.1.0 | | elastic8.15.1|
| 8.15.2 | 8.15.2.0 | | elastic8.15.2|
| 8.15.3 | 8.15.3.0 | | elastic8.15.3|
| 8.15.4 | 8.15.4.0 | | elastic8.15.4|
| 8.15.5 | 8.15.5.0 | | elastic8.15.5|
| 8.16.0 | 8.16.0.0 | | elastic8.16.0|
| 8.16.1 | 8.16.1.0 | | elastic8.16.1|
| 8.16.2 | 8.16.2.0 | | elastic8.16.2|
| 8.16.3 | 8.16.3.0 | | elastic8.16.3|
| 8.17.0 | 8.17.0.0 | | elastic8.17.0|
| 8.17.1 | 8.17.1.0 | | elastic8.17.1|
| 8.17.2 | 8.17.2.0 | | elastic8.17.2|
| 8.17.3 | 8.17.3.0 | | elastic8.17.3|
| 8.17.4 | 8.17.4.0 | | elastic8.17.4|
| 8.17.5 | 8.17.5.0 | | elastic8.17.5|
| 8.18.0 | 8.18.0.0 | | elastic8.18.0|
| 8.18.1 | 8.18.1.0 | | elastic8.18.1|
| 8.18.2 | 8.18.2.0 | | elastic8.18.2|
| 8.18.3 | 8.18.3.0 | | elastic8.18.3|
| 8.18.4 | 8.18.4.0 | | elastic8.18.4|
| 8.18.5 | 8.18.5.0 | | elastic8.18.5|
| 8.18.6 | 8.18.6.0 | | elastic8.18.6|
| 8.18.7 | 8.18.7.0 | | elastic8.18.7|
| 8.19.0 | 8.19.0.0 | | elastic8.19.0|
| 8.19.1 | 8.19.1.0 | | elastic8.19.1|
| 8.19.2 | 8.19.2.0 | | elastic8.19.2|
| 8.19.3 | 8.19.3.0 | | elastic8.19.3|
| 8.19.4 | 8.19.4.0 | | elastic8.19.4|
| 8.19.9 | 8.19.9.0 | | elastic8.19.9|
| 8.19.10 | 8.19.10.0 | |elastic8.19.10|
| 8.19.11 | 8.19.11.0 | |elastic8.19.11|
| 9.0.0 | 9.0.0.0 | | elastic9.0.0 |
| 9.0.1 | 9.0.1.0 | | elastic9.0.1 |
| 9.0.2 | 9.0.2.0 | | elastic9.0.2 |
| 9.0.3 | 9.0.3.0 | | elastic9.0.3 |
| 9.0.4 | 9.0.4.0 | | elastic9.0.4 |
| 9.0.5 | 9.0.5.0 | | elastic9.0.5 |
| 9.0.6 | 9.0.6.0 | | elastic9.0.6 |
| 9.0.7 | 9.0.7.0 | | elastic9.0.7 |
| 9.1.0 | 9.1.0.0 | | elastic9.1.0 |
| 9.1.1 | 9.1.1.0 | | elastic9.1.1 |
| 9.1.2 | 9.1.2.0 | | elastic9.1.2 |
| 9.1.3 | 9.1.3.0 | | elastic9.1.3 |
| 9.1.4 | 9.1.4.0 | | elastic9.1.4 |
| 9.1.8 | 9.1.8.0 | | elastic9.1.8 |
| 9.1.9 | 9.1.9.0 | | elastic9.1.9 |
| 9.1.10 | 9.1.10.0 | | elastic9.1.10|
| 9.2.3 | 9.2.3.0 | | elastic9.2.3 |
| 9.2.4 | 9.2.4.0 | | elastic9.2.4 |
| 9.2.5 | 9.2.5.0 | | elastic9.2.5 |
| 9.3.0 | 9.3.0.0 | | elastic9.3.0 |
### Elasticsearch 1.x
````
./bin/plugin -u https://github.com/NLPchina/elasticsearch-sql/releases/download/1.7.6/elasticsearch-sql-1.7.6.zip --install sql
````
### Elasticsearch 2.0.0
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.0.4/elasticsearch-sql-2.0.4.zip
````
### Elasticsearch 2.1.0
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.1.0.2/elasticsearch-sql-2.1.0.2.zip
````
### Elasticsearch 2.1.1
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.1.1.1/elasticsearch-sql-2.1.1.1.zip
````
### Elasticsearch 2.1.2
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.1.2.0/elasticsearch-sql-2.1.2.0.zip
````
### Elasticsearch 2.2.0
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.2.0.1/elasticsearch-sql-2.2.0.1.zip
````
### Elasticsearch 2.2.1
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.2.1.0/elasticsearch-sql-2.2.1.0.zip
````
### Elasticsearch 2.3.0
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.3.0.0/elasticsearch-sql-2.3.0.0.zip
````
### Elasticsearch 2.3.1
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.3.1.1/elasticsearch-sql-2.3.1.1.zip
````
### Elasticsearch 2.3.2
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.3.2.0/elasticsearch-sql-2.3.2.0.zip
````
### Elasticsearch 2.3.3
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.3.3.0/elasticsearch-sql-2.3.3.0.zip
````
### Elasticsearch 2.3.4
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.3.4.0/elasticsearch-sql-2.3.4.0.zip
````
### Elasticsearch 2.3.5
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.3.5.0/elasticsearch-sql-2.3.5.0.zip
````
### Elasticsearch 2.4.0
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.4.0.1/elasticsearch-sql-2.4.0.1.zip
````
### Elasticsearch 2.4.1
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.4.1.0/elasticsearch-sql-2.4.1.0.zip
````
### Elasticsearch 2.4.2
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.4.2.1/elasticsearch-sql-2.4.2.1.zip
````
### Elasticsearch 2.4.3
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.4.3.0/elasticsearch-sql-2.4.3.0.zip
````
### Elasticsearch 2.4.4
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.4.4.0/elasticsearch-sql-2.4.4.0.zip
````
### Elasticsearch 2.4.5
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.4.5.0/elasticsearch-sql-2.4.5.0.zip
````
### Elasticsearch 2.4.6
````
./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/2.4.6.0/elasticsearch-sql-2.4.6.0.zip
````
### Elasticsearch 5.0.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.0.1/elasticsearch-sql-5.0.1.0.zip
````
### Elasticsearch 5.1.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.1.1.0/elasticsearch-sql-5.1.1.0.zip
````
### Elasticsearch 5.1.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.1.2.0/elasticsearch-sql-5.1.2.0.zip
````
### Elasticsearch 5.2.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.2.0.0/elasticsearch-sql-5.2.0.0.zip
````
### Elasticsearch 5.2.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.2.1.0/elasticsearch-sql-5.2.1.0.zip
````
### Elasticsearch 5.2.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.2.2.0/elasticsearch-sql-5.2.2.0.zip
````
### Elasticsearch 5.3.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.3.0.0/elasticsearch-sql-5.3.0.0.zip
````
### Elasticsearch 5.3.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.3.1.0/elasticsearch-sql-5.3.1.0.zip
````
### Elasticsearch 5.3.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.3.2.0/elasticsearch-sql-5.3.2.0.zip
````
### Elasticsearch 5.3.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.3.3.0/elasticsearch-sql-5.3.3.0.zip
````
### Elasticsearch 5.4.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.4.0.0/elasticsearch-sql-5.4.0.0.zip
````
### Elasticsearch 5.4.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.4.1.0/elasticsearch-sql-5.4.1.0.zip
````
### Elasticsearch 5.4.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.4.2.0/elasticsearch-sql-5.4.2.0.zip
````
### Elasticsearch 5.4.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.4.3.0/elasticsearch-sql-5.4.3.0.zip
````
### Elasticsearch 5.5.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.5.0.0/elasticsearch-sql-5.5.0.1.zip
````
### Elasticsearch 5.5.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.5.1.0/elasticsearch-sql-5.5.1.0.zip
````
### Elasticsearch 5.5.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.5.2.0/elasticsearch-sql-5.5.2.0.zip
````
### Elasticsearch 5.5.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.5.3.0/elasticsearch-sql-5.5.3.0.zip
````
### Elasticsearch 5.6.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.0.0/elasticsearch-sql-5.6.0.0.zip
````
### Elasticsearch 5.6.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.1.0/elasticsearch-sql-5.6.1.0.zip
````
### Elasticsearch 5.6.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.2.0/elasticsearch-sql-5.6.2.0.zip
````
### Elasticsearch 5.6.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.3.0/elasticsearch-sql-5.6.3.0.zip
````
### Elasticsearch 5.6.4
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.4.0/elasticsearch-sql-5.6.4.0.zip
````
### Elasticsearch 5.6.5
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.5.0/elasticsearch-sql-5.6.5.0.zip
````
### Elasticsearch 5.6.6
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.6.0/elasticsearch-sql-5.6.6.0.zip
````
### Elasticsearch 5.6.7
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.7.0/elasticsearch-sql-5.6.7.0.zip
````
### Elasticsearch 5.6.8
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.8.0/elasticsearch-sql-5.6.8.0.zip
````
### Elasticsearch 5.6.9
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.9.0/elasticsearch-sql-5.6.9.0.zip
````
### Elasticsearch 5.6.10
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.10.0/elasticsearch-sql-5.6.10.0.zip
````
### Elasticsearch 5.6.11
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.11.0/elasticsearch-sql-5.6.11.0.zip
````
### Elasticsearch 5.6.12
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.12.0/elasticsearch-sql-5.6.12.0.zip
````
### Elasticsearch 5.6.13
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.13.0/elasticsearch-sql-5.6.13.0.zip
````
### Elasticsearch 5.6.14
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.14.0/elasticsearch-sql-5.6.14.0.zip
````
### Elasticsearch 5.6.15
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.15.0/elasticsearch-sql-5.6.15.0.zip
````
### Elasticsearch 5.6.16
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.16.0/elasticsearch-sql-5.6.16.0.zip
````
### Elasticsearch 6.0.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.0.0.0/elasticsearch-sql-6.0.0.0.zip
````
### Elasticsearch 6.0.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.0.1.0/elasticsearch-sql-6.0.1.0.zip
````
### Elasticsearch 6.1.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.1.0.0/elasticsearch-sql-6.1.0.0.zip
````
### Elasticsearch 6.1.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.1.1.0/elasticsearch-sql-6.1.1.0.zip
````
### Elasticsearch 6.1.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.1.2.0/elasticsearch-sql-6.1.2.0.zip
````
### Elasticsearch 6.1.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.1.3.0/elasticsearch-sql-6.1.3.0.zip
````
### Elasticsearch 6.1.4
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.1.4.0/elasticsearch-sql-6.1.4.0.zip
````
### Elasticsearch 6.2.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.2.0.0/elasticsearch-sql-6.2.0.0.zip
````
### Elasticsearch 6.2.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.2.1.0/elasticsearch-sql-6.2.1.0.zip
````
### Elasticsearch 6.2.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.2.2.0/elasticsearch-sql-6.2.2.0.zip
````
### Elasticsearch 6.2.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.2.3.0/elasticsearch-sql-6.2.3.0.zip
````
### Elasticsearch 6.2.4
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.2.4.0/elasticsearch-sql-6.2.4.0.zip
````
### Elasticsearch 6.3.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.3.0.0/elasticsearch-sql-6.3.0.0.zip
````
### Elasticsearch 6.3.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.3.1.0/elasticsearch-sql-6.3.1.1.zip
````
### Elasticsearch 6.3.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.3.2.0/elasticsearch-sql-6.3.2.0.zip
````
### Elasticsearch 6.4.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.4.0.0/elasticsearch-sql-6.4.0.0.zip
````
### Elasticsearch 6.4.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.4.1.0/elasticsearch-sql-6.4.1.0.zip
````
### Elasticsearch 6.4.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.4.2.0/elasticsearch-sql-6.4.2.0.zip
````
### Elasticsearch 6.4.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.4.3.0/elasticsearch-sql-6.4.3.0.zip
````
### Elasticsearch 6.5.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.5.0.0/elasticsearch-sql-6.5.0.0.zip
````
### Elasticsearch 6.5.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.5.1.0/elasticsearch-sql-6.5.1.0.zip
````
### Elasticsearch 6.5.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.5.2.0/elasticsearch-sql-6.5.2.0.zip
````
### Elasticsearch 6.5.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.5.3.0/elasticsearch-sql-6.5.3.0.zip
````
### Elasticsearch 6.5.4
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.5.4.0/elasticsearch-sql-6.5.4.0.zip
````
### Elasticsearch 6.6.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.6.0.0/elasticsearch-sql-6.6.0.0.zip
````
### Elasticsearch 6.6.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.6.1.0/elasticsearch-sql-6.6.1.0.zip
````
### Elasticsearch 6.6.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.6.2.0/elasticsearch-sql-6.6.2.0.zip
````
### Elasticsearch 6.7.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.7.0.0/elasticsearch-sql-6.7.0.0.zip
````
### Elasticsearch 6.7.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.7.1.0/elasticsearch-sql-6.7.1.0.zip
````
### Elasticsearch 6.7.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.7.2.0/elasticsearch-sql-6.7.2.0.zip
````
### Elasticsearch 6.8.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.0.0/elasticsearch-sql-6.8.0.0.zip
````
### Elasticsearch 6.8.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.1.0/elasticsearch-sql-6.8.1.0.zip
````
### Elasticsearch 6.8.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.2.0/elasticsearch-sql-6.8.2.0.zip
````
### Elasticsearch 6.8.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.3.0/elasticsearch-sql-6.8.3.0.zip
````
### Elasticsearch 6.8.4
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.4.0/elasticsearch-sql-6.8.4.0.zip
````
### Elasticsearch 6.8.5
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.5.0/elasticsearch-sql-6.8.5.0.zip
````
### Elasticsearch 6.8.6
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.6.0/elasticsearch-sql-6.8.6.0.zip
````
### Elasticsearch 6.8.7
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.7.0/elasticsearch-sql-6.8.7.0.zip
````
### Elasticsearch 6.8.8
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.8.0/elasticsearch-sql-6.8.8.0.zip
````
### Elasticsearch 6.8.9
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.9.0/elasticsearch-sql-6.8.9.0.zip
````
### Elasticsearch 6.8.10
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.10.0/elasticsearch-sql-6.8.10.0.zip
````
### Elasticsearch 6.8.11
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.11.0/elasticsearch-sql-6.8.11.0.zip
````
### Elasticsearch 6.8.12
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.12.0/elasticsearch-sql-6.8.12.0.zip
````
### Elasticsearch 6.8.13
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.13.0/elasticsearch-sql-6.8.13.0.zip
````
### Elasticsearch 6.8.14
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.14.0/elasticsearch-sql-6.8.14.0.zip
````
### Elasticsearch 6.8.15
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.15.0/elasticsearch-sql-6.8.15.0.zip
````
### Elasticsearch 6.8.16
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.16.0/elasticsearch-sql-6.8.16.0.zip
````
### Elasticsearch 6.8.17
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.17.0/elasticsearch-sql-6.8.17.0.zip
````
### Elasticsearch 6.8.18
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.18.0/elasticsearch-sql-6.8.18.0.zip
````
### Elasticsearch 6.8.19
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.19.0/elasticsearch-sql-6.8.19.0.zip
````
### Elasticsearch 6.8.20
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.20.0/elasticsearch-sql-6.8.20.0.zip
````
### Elasticsearch 6.8.21
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.21.0/elasticsearch-sql-6.8.21.0.zip
````
### Elasticsearch 6.8.22
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.22.0/elasticsearch-sql-6.8.22.0.zip
````
### Elasticsearch 6.8.23
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.8.23.0/elasticsearch-sql-6.8.23.0.zip
````
### Elasticsearch 7.0.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.0.0.0/elasticsearch-sql-7.0.0.0.zip
````
### Elasticsearch 7.0.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.0.1.0/elasticsearch-sql-7.0.1.0.zip
````
### Elasticsearch 7.1.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.1.0.0/elasticsearch-sql-7.1.0.0.zip
````
### Elasticsearch 7.1.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.1.1.0/elasticsearch-sql-7.1.1.0.zip
````
### Elasticsearch 7.2.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.2.0.0/elasticsearch-sql-7.2.0.0.zip
````
### Elasticsearch 7.2.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.2.1.0/elasticsearch-sql-7.2.1.0.zip
````
### Elasticsearch 7.3.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.3.0.0/elasticsearch-sql-7.3.0.0.zip
````
### Elasticsearch 7.3.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.3.1.0/elasticsearch-sql-7.3.1.0.zip
````
### Elasticsearch 7.3.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.3.2.0/elasticsearch-sql-7.3.2.0.zip
````
### Elasticsearch 7.4.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.4.0.0/elasticsearch-sql-7.4.0.0.zip
````
### Elasticsearch 7.4.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.4.1.0/elasticsearch-sql-7.4.1.0.zip
````
### Elasticsearch 7.4.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.4.2.0/elasticsearch-sql-7.4.2.0.zip
````
### Elasticsearch 7.5.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.5.0.0/elasticsearch-sql-7.5.0.0.zip
````
### Elasticsearch 7.5.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.5.1.0/elasticsearch-sql-7.5.1.0.zip
````
### Elasticsearch 7.5.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.5.2.0/elasticsearch-sql-7.5.2.0.zip
````
### Elasticsearch 7.6.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.6.0.0/elasticsearch-sql-7.6.0.0.zip
````
### Elasticsearch 7.6.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.6.1.0/elasticsearch-sql-7.6.1.0.zip
````
### Elasticsearch 7.6.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.6.2.0/elasticsearch-sql-7.6.2.0.zip
````
### Elasticsearch 7.7.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.7.0.0/elasticsearch-sql-7.7.0.0.zip
````
### Elasticsearch 7.7.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.7.1.0/elasticsearch-sql-7.7.1.0.zip
````
### Elasticsearch 7.8.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.8.0.0/elasticsearch-sql-7.8.0.0.zip
````
### Elasticsearch 7.8.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.8.1.0/elasticsearch-sql-7.8.1.0.zip
````
### Elasticsearch 7.9.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.9.0.0/elasticsearch-sql-7.9.0.0.zip
````
### Elasticsearch 7.9.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.9.1.0/elasticsearch-sql-7.9.1.0.zip
````
### Elasticsearch 7.9.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.9.2.0/elasticsearch-sql-7.9.2.0.zip
````
### Elasticsearch 7.9.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.9.3.0/elasticsearch-sql-7.9.3.0.zip
````
### Elasticsearch 7.10.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.10.0.0/elasticsearch-sql-7.10.0.0.zip
````
### Elasticsearch 7.10.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.10.1.0/elasticsearch-sql-7.10.1.0.zip
````
### Elasticsearch 7.10.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.10.2.0/elasticsearch-sql-7.10.2.0.zip
````
### Elasticsearch 7.11.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.11.0.0/elasticsearch-sql-7.11.0.0.zip
````
### Elasticsearch 7.11.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.11.1.0/elasticsearch-sql-7.11.1.0.zip
````
### Elasticsearch 7.11.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.11.2.0/elasticsearch-sql-7.11.2.0.zip
````
### Elasticsearch 7.12.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.12.0.0/elasticsearch-sql-7.12.0.0.zip
````
### Elasticsearch 7.12.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.12.1.0/elasticsearch-sql-7.12.1.0.zip
````
### Elasticsearch 7.13.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.13.0.0/elasticsearch-sql-7.13.0.0.zip
````
### Elasticsearch 7.13.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.13.1.0/elasticsearch-sql-7.13.1.0.zip
````
### Elasticsearch 7.13.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.13.2.0/elasticsearch-sql-7.13.2.0.zip
````
### Elasticsearch 7.13.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.13.3.0/elasticsearch-sql-7.13.3.0.zip
````
### Elasticsearch 7.13.4
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.13.4.0/elasticsearch-sql-7.13.4.0.zip
````
### Elasticsearch 7.14.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.14.0.0/elasticsearch-sql-7.14.0.0.zip
````
### Elasticsearch 7.14.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.14.1.0/elasticsearch-sql-7.14.1.0.zip
````
### Elasticsearch 7.14.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.14.2.0/elasticsearch-sql-7.14.2.0.zip
````
### Elasticsearch 7.15.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.15.0.0/elasticsearch-sql-7.15.0.0.zip
````
### Elasticsearch 7.15.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.15.1.0/elasticsearch-sql-7.15.1.0.zip
````
### Elasticsearch 7.15.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.15.2.0/elasticsearch-sql-7.15.2.0.zip
````
### Elasticsearch 7.16.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.16.0.0/elasticsearch-sql-7.16.0.0.zip
````
### Elasticsearch 7.16.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.16.1.0/elasticsearch-sql-7.16.1.0.zip
````
### Elasticsearch 7.16.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.16.2.0/elasticsearch-sql-7.16.2.0.zip
````
### Elasticsearch 7.16.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.16.3.0/elasticsearch-sql-7.16.3.0.zip
````
### Elasticsearch 7.17.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.17.0.0/elasticsearch-sql-7.17.0.0.zip
````
### Elasticsearch 7.17.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.17.1.0/elasticsearch-sql-7.17.1.0.zip
````
### Elasticsearch 7.17.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.17.2.0/elasticsearch-sql-7.17.2.0.zip
````
### Elasticsearch 7.17.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.17.3.0/elasticsearch-sql-7.17.3.0.zip
````
### Elasticsearch 7.17.4
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.17.4.0/elasticsearch-sql-7.17.4.0.zip
````
### Elasticsearch 7.17.5
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.17.5.0/elasticsearch-sql-7.17.5.0.zip
````
### Elasticsearch 7.17.6
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.17.6.0/elasticsearch-sql-7.17.6.0.zip
````
### Elasticsearch 7.17.7
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.17.7.0/elasticsearch-sql-7.17.7.0.zip
````
### Elasticsearch 7.17.8
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.8/elasticsearch-sql-7.17.8.0.zip
````
### Elasticsearch 7.17.9
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.9/elasticsearch-sql-7.17.9.0.zip
````
### Elasticsearch 7.17.10
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.10/elasticsearch-sql-7.17.10.0.zip
````
### Elasticsearch 7.17.11
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.11/elasticsearch-sql-7.17.11.0.zip
````
### Elasticsearch 7.17.12
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.12/elasticsearch-sql-7.17.12.0.zip
````
### Elasticsearch 7.17.13
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.13/elasticsearch-sql-7.17.13.0.zip
````
### Elasticsearch 7.17.14
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.14/elasticsearch-sql-7.17.14.0.zip
````
### Elasticsearch 7.17.15
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.15/elasticsearch-sql-7.17.15.0.zip
````
### Elasticsearch 7.17.16
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.16/elasticsearch-sql-7.17.16.0.zip
````
### Elasticsearch 7.17.17
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.17/elasticsearch-sql-7.17.17.0.zip
````
### Elasticsearch 7.17.18
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.18/elasticsearch-sql-7.17.18.0.zip
````
### Elasticsearch 7.17.19
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.19/elasticsearch-sql-7.17.19.0.zip
````
### Elasticsearch 7.17.20
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.20/elasticsearch-sql-7.17.20.0.zip
````
### Elasticsearch 7.17.21
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.21/elasticsearch-sql-7.17.21.0.zip
````
### Elasticsearch 7.17.22
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.22/elasticsearch-sql-7.17.22.0.zip
````
### Elasticsearch 7.17.23
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.23/elasticsearch-sql-7.17.23.0.zip
````
### Elasticsearch 7.17.24
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.24/elasticsearch-sql-7.17.24.0.zip
````
### Elasticsearch 7.17.25
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.25/elasticsearch-sql-7.17.25.0.zip
````
### Elasticsearch 7.17.26
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.26/elasticsearch-sql-7.17.26.0.zip
````
### Elasticsearch 7.17.27
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.27/elasticsearch-sql-7.17.27.0.zip
````
### Elasticsearch 7.17.28
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v7.17.28/elasticsearch-sql-7.17.28.0.zip
````
### Elasticsearch 8.5.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/8.5.3.0/elasticsearch-sql-8.5.3.0.zip
````
### Elasticsearch 8.6.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.6.0/elasticsearch-sql-8.6.0.0.zip
````
### Elasticsearch 8.6.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.6.1/elasticsearch-sql-8.6.1.0.zip
````
### Elasticsearch 8.6.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.6.2/elasticsearch-sql-8.6.2.0.zip
````
### Elasticsearch 8.7.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.7.0/elasticsearch-sql-8.7.0.0.zip
````
### Elasticsearch 8.7.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.7.1/elasticsearch-sql-8.7.1.0.zip
````
### Elasticsearch 8.8.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.8.0/elasticsearch-sql-8.8.0.0.zip
````
### Elasticsearch 8.8.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.8.1/elasticsearch-sql-8.8.1.0.zip
````
### Elasticsearch 8.8.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.8.2/elasticsearch-sql-8.8.2.0.zip
````
### Elasticsearch 8.9.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.9.0/elasticsearch-sql-8.9.0.0.zip
````
### Elasticsearch 8.9.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.9.1/elasticsearch-sql-8.9.1.0.zip
````
### Elasticsearch 8.9.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.9.2/elasticsearch-sql-8.9.2.0.zip
````
### Elasticsearch 8.10.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.10.0/elasticsearch-sql-8.10.0.0.zip
````
### Elasticsearch 8.10.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.10.1/elasticsearch-sql-8.10.1.0.zip
````
### Elasticsearch 8.10.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.10.2/elasticsearch-sql-8.10.2.0.zip
````
### Elasticsearch 8.10.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.10.3/elasticsearch-sql-8.10.3.0.zip
````
### Elasticsearch 8.10.4
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.10.4/elasticsearch-sql-8.10.4.0.zip
````
### Elasticsearch 8.11.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.11.0/elasticsearch-sql-8.11.0.0.zip
````
### Elasticsearch 8.11.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.11.1/elasticsearch-sql-8.11.1.0.zip
````
### Elasticsearch 8.11.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.11.2/elasticsearch-sql-8.11.2.0.zip
````
### Elasticsearch 8.11.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.11.3/elasticsearch-sql-8.11.3.0.zip
````
### Elasticsearch 8.11.4
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.11.4/elasticsearch-sql-8.11.4.0.zip
````
### Elasticsearch 8.12.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.12.0/elasticsearch-sql-8.12.0.0.zip
````
### Elasticsearch 8.12.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.12.1/elasticsearch-sql-8.12.1.0.zip
````
### Elasticsearch 8.12.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.12.2/elasticsearch-sql-8.12.2.0.zip
````
### Elasticsearch 8.13.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.13.0/elasticsearch-sql-8.13.0.0.zip
````
### Elasticsearch 8.13.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.13.1/elasticsearch-sql-8.13.1.0.zip
````
### Elasticsearch 8.13.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.13.2/elasticsearch-sql-8.13.2.0.zip
````
### Elasticsearch 8.13.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.13.3/elasticsearch-sql-8.13.3.0.zip
````
### Elasticsearch 8.13.4
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.13.4/elasticsearch-sql-8.13.4.0.zip
````
### Elasticsearch 8.14.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.14.0/elasticsearch-sql-8.14.0.0.zip
````
### Elasticsearch 8.14.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.14.1/elasticsearch-sql-8.14.1.0.zip
````
### Elasticsearch 8.14.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.14.2/elasticsearch-sql-8.14.2.0.zip
````
### Elasticsearch 8.14.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.14.3/elasticsearch-sql-8.14.3.0.zip
````
### Elasticsearch 8.15.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.15.0/elasticsearch-sql-8.15.0.0.zip
````
### Elasticsearch 8.15.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.15.1/elasticsearch-sql-8.15.1.0.zip
````
### Elasticsearch 8.15.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.15.2/elasticsearch-sql-8.15.2.0.zip
````
### Elasticsearch 8.15.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.15.3/elasticsearch-sql-8.15.3.0.zip
````
### Elasticsearch 8.15.4
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.15.4/elasticsearch-sql-8.15.4.0.zip
````
### Elasticsearch 8.15.5
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.15.5/elasticsearch-sql-8.15.5.0.zip
````
### Elasticsearch 8.16.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.16.0/elasticsearch-sql-8.16.0.0.zip
````
### Elasticsearch 8.16.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.16.1/elasticsearch-sql-8.16.1.0.zip
````
### Elasticsearch 8.16.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.16.2/elasticsearch-sql-8.16.2.0.zip
````
### Elasticsearch 8.16.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.16.3/elasticsearch-sql-8.16.3.0.zip
````
### Elasticsearch 8.17.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.17.0/elasticsearch-sql-8.17.0.0.zip
````
### Elasticsearch 8.17.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.17.1/elasticsearch-sql-8.17.1.0.zip
````
### Elasticsearch 8.17.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.17.2/elasticsearch-sql-8.17.2.0.zip
````
### Elasticsearch 8.17.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.17.3/elasticsearch-sql-8.17.3.0.zip
````
### Elasticsearch 8.17.4
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.17.4/elasticsearch-sql-8.17.4.0.zip
````
### Elasticsearch 8.17.5
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.17.5/elasticsearch-sql-8.17.5.0.zip
````
### Elasticsearch 8.18.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.18.0/elasticsearch-sql-8.18.0.0.zip
````
### Elasticsearch 8.18.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.18.1/elasticsearch-sql-8.18.1.0.zip
````
### Elasticsearch 8.18.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.18.2/elasticsearch-sql-8.18.2.0.zip
````
### Elasticsearch 8.18.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.18.3/elasticsearch-sql-8.18.3.0.zip
````
### Elasticsearch 8.18.4
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.18.4/elasticsearch-sql-8.18.4.0.zip
````
### Elasticsearch 8.18.5
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.18.5/elasticsearch-sql-8.18.5.0.zip
````
### Elasticsearch 8.18.6
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.18.6/elasticsearch-sql-8.18.6.0.zip
````
### Elasticsearch 8.18.7
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.18.7/elasticsearch-sql-8.18.7.0.zip
````
### Elasticsearch 8.19.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.19.0/elasticsearch-sql-8.19.0.0.zip
````
### Elasticsearch 8.19.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.19.1/elasticsearch-sql-8.19.1.0.zip
````
### Elasticsearch 8.19.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.19.2/elasticsearch-sql-8.19.2.0.zip
````
### Elasticsearch 8.19.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.19.3/elasticsearch-sql-8.19.3.0.zip
````
### Elasticsearch 8.19.4
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.19.4/elasticsearch-sql-8.19.4.0.zip
````
### Elasticsearch 8.19.9
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.19.9/elasticsearch-sql-8.19.9.0.zip
````
### Elasticsearch 8.19.10
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.19.10/elasticsearch-sql-8.19.10.0.zip
````
### Elasticsearch 8.19.11
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v8.19.11/elasticsearch-sql-8.19.11.0.zip
````
### Elasticsearch 9.0.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.0.0/elasticsearch-sql-9.0.0.0.zip
````
### Elasticsearch 9.0.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.0.1/elasticsearch-sql-9.0.1.0.zip
````
### Elasticsearch 9.0.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.0.2/elasticsearch-sql-9.0.2.0.zip
````
### Elasticsearch 9.0.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.0.3/elasticsearch-sql-9.0.3.0.zip
````
### Elasticsearch 9.0.4
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.0.4/elasticsearch-sql-9.0.4.0.zip
````
### Elasticsearch 9.0.5
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.0.5/elasticsearch-sql-9.0.5.0.zip
````
### Elasticsearch 9.0.6
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.0.6/elasticsearch-sql-9.0.6.0.zip
````
### Elasticsearch 9.0.7
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.0.7/elasticsearch-sql-9.0.7.0.zip
````
### Elasticsearch 9.1.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.1.0/elasticsearch-sql-9.1.0.0.zip
````
### Elasticsearch 9.1.1
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.1.1/elasticsearch-sql-9.1.1.0.zip
````
### Elasticsearch 9.1.2
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.1.2/elasticsearch-sql-9.1.2.0.zip
````
### Elasticsearch 9.1.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.1.3/elasticsearch-sql-9.1.3.0.zip
````
### Elasticsearch 9.1.4
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.1.4/elasticsearch-sql-9.1.4.0.zip
````
### Elasticsearch 9.1.8
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.1.8/elasticsearch-sql-9.1.8.0.zip
````
### Elasticsearch 9.1.9
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.1.9/elasticsearch-sql-9.1.9.0.zip
````
### Elasticsearch 9.1.10
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.1.10/elasticsearch-sql-9.1.10.0.zip
````
### Elasticsearch 9.2.3
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.2.3/elasticsearch-sql-9.2.3.0.zip
````
### Elasticsearch 9.2.4
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.2.4/elasticsearch-sql-9.2.4.0.zip
````
### Elasticsearch 9.2.5
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.2.5/elasticsearch-sql-9.2.5.0.zip
````
### Elasticsearch 9.3.0
````
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/v9.3.0/elasticsearch-sql-9.3.0.0.zip
````
After doing this, you need to restart the Elasticsearch server. Otherwise you may get errors like `Invalid index name [sql], must not start with '']; ","status":400}`.
## Basic Usage
On elasticsearch 1.x / 2.x, visit the elasticsearch-sql web front-end:
````
http://localhost:9200/_plugin/sql/
````
On elasticsearch 5.x/6.x, use [elasticsearch sql site chrome extension](https://github.com/shi-yuan/elasticsearch-sql-site-chrome) (make sure to enable cors on elasticsearch.yml). Alternatively, [download and extract site](https://github.com/NLPchina/elasticsearch-sql/releases/download/5.4.1.0/es-sql-site-standalone.zip), then start the web front-end like this:
```shell
cd site-server
npm install express --save
node node-server.js
```
* Simple query
````
curl -X GET "localhost:9200/_nlpcn/sql" -H 'Content-Type: application/json' -d'select * from indexName limit 10'
````
* Explain SQL to elasticsearch query DSL
````
curl -X GET "localhost:9200/_nlpcn/sql/explain" -H 'Content-Type: application/json' -d'select * from indexName limit 10'
````
## SQL Usage
* Query
SELECT * FROM bank WHERE age >30 AND gender = 'm'
* Aggregation
select COUNT(*),SUM(age),MIN(age) as m, MAX(age),AVG(age)
FROM bank GROUP BY gender ORDER BY SUM(age), m DESC
* Delete
DELETE FROM bank WHERE age >30 AND gender = 'm'
## Beyond SQL
* Search
SELECT address FROM bank WHERE address = matchQuery('880 Holmes Lane') ORDER BY _score DESC LIMIT 3
* Aggregations
+ range age group 20-25,25-30,30-35,35-40
SELECT COUNT(age) FROM bank GROUP BY range(age, 20,25,30,35,40)
+ range date group by day
SELECT online FROM online GROUP BY date_histogram(field='insert_time','interval'='1d')
+ range date group by your config
SELECT online FROM online GROUP BY date_range(field='insert_time','format'='yyyy-MM-dd' ,'2014-08-18','2014-08-17','now-8d','now-7d','now-6d','now')
* ES Geographic
SELECT * FROM locations WHERE GEO_BOUNDING_BOX(fieldname,100.0,1.0,101,0.0)
* Select type
SELECT * FROM indexName/type
## SQL Features
* SQL Select
* SQL Delete
* SQL Where
* can use "case when" in where clause
* SQL Order By
* can use "case when" in order by clause
* SQL Group By
* SQL AND & OR
* SQL Like
* SQL COUNT distinct
* SQL In
* SQL Between
* SQL Aliases
* SQL Not Null
* SQL(ES) Date
* SQL avg()
* SQL count()
* SQL last()
* SQL max()
* SQL min()
* SQL sum()
* SQL Nulls
* SQL isnull()
* SQL now()
* SQL floor
* SQL split
* SQL trim
* SQL log
* SQL log10
* SQL substring
* SQL round
* eg: round(10.135, 2) --> 10.14
* SQL sqrt
* SQL concat_ws
* SQL union and minus
* SQL case when
* can use "in"、"not in" judge in case when clause
* can execute simple calculation in case when clause, eg : case when 1 = 1 then field_1 + field_2 else 0 end
* SQL if
* select if(sex='1','男','女') from t_user;
* SQL limit
* can set aggregation bucket size and shard size by setting limit, shardSize = 20 * bucketSize
* eg: select city,count(*) as user_count from t_user group by city limit 100;
* on the above example, the bucket size is 100, shard size is 20*100 = 2000
## JDBC Support (Experimental feature)
Check details : [JDBC Support](https://github.com/NLPchina/elasticsearch-sql/pull/283)
## Beyond sql features
* ES TopHits
* ES MISSING
* ES STATS
* ES GEO_INTERSECTS
* ES GEO_BOUNDING_BOX
* ES GEO_DISTANCE
* ES GEOHASH_GRID aggregation
================================================
FILE: doc/features.md
================================================
## Elasticsearch-SQL
[Elasticsearch-SQL](https://github.com/allwefantasy/elasticsearch-sql/) fork from [https://github.com/NLPchina/elasticsearch-sql](https://github.com/NLPchina/elasticsearch-sql)
visit [interactive web](http://www.nlpcn.org:9999/web/) to feel.
## features
All features following require ES with groovy script enabled.
* Distinct precision_threshold depends on ES or you can specify by second parameters.
When you have lot of shards, 40000 consume too much memory.
* select,groupBy now support functions and field alias
* nested function is also available,eg. `split(substring('newtype',0,3),'c')[0]`
* Binary operation support now, eg. `floor(substring(newtype,0,14)/100)/5)*5`
## functions support
* floor
* split
* trim
* log
* log10
* substring
* round
* sqrt
* concat_ws
* +
* -
* *
* /
* %
## Example
check Example file:
```
org.nlpcn.es4sql.Test
```
SQLs:
```sql
SELECT newtype as nt from twitter2
SELECT sum(num) as num2,newtype as nt
from twitter2
group by nt order by num2
SELECT sum(num_d) as num2,split(newtype,',') as nt
from twitter2
group by nt
order by num2
SELECT sum(num_d) as num2,floor(num) as nt
from twitter2
group by floor(num),newtype
order by num2
SELECT split('newtype','b')[1] as nt,sum(num_d) as num2
from twitter2
group by nt
SELECT split(substring('newtype',0,3),'c')[0] as nt,num_d
from twitter2
group by nt
SELECT trim(newtype) as nt
from twitter2
SELECT floor(floor(substring(time,0,14)/100)/5)*5 as nt,
count(distinct(mid)) as cvalue
FROM twitter2
where ty='buffer' and day='20160815' and domain='baidu.com'
group by nt
order by cvalue
```
================================================
FILE: open-source.pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.nlpcn</groupId>
<artifactId>elasticsearch-sql</artifactId>
<version>2.4.0.0</version>
<packaging>jar</packaging>
<description>Query elasticsearch using SQL</description>
<name>elasticsearch-sql</name>
<url>https://github.com/NLPchina/elasticsearch-sql/</url>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<id>ansj</id>
<name>ansj</name>
<email>ansj-sun@163.com</email>
</developer>
<developer>
<id>omershelef</id>
<name>Omer shelef</name>
<email>shlaflaf@gmail.com</email>
</developer>
<developer>
<id>eliranmoyal</id>
<name>Eliran Moyal</name>
<email>eliran.moyal1@gmail.com</email>
</developer>
</developers>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<runSuite>**/MainTestSuite.class</runSuite>
<elasticsearch.plugin.name>sql</elasticsearch.plugin.name>
<elasticsearch.plugin.site>true</elasticsearch.plugin.site>
<elasticsearch.plugin.jvm>true</elasticsearch.plugin.jvm>
<elasticsearch.version>2.4.0</elasticsearch.version>
<elasticsearch.plugin.classname>org.elasticsearch.plugin.nlpcn.SqlPlug</elasticsearch.plugin.classname>
</properties>
<profiles>
<profile>
<id>local</id>
<dependencies>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.plugin</groupId>
<artifactId>delete-by-query</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>online</id>
<activation></activation>
<dependencies>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>${elasticsearch.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.elasticsearch.plugin</groupId>
<artifactId>delete-by-query</artifactId>
<version>${elasticsearch.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<scope>provided</scope>
</dependency>
</dependencies>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.41</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.15</version>
</dependency>
<dependency>
<groupId>com.vividsolutions</groupId>
<artifactId>jts</artifactId>
<version>1.13</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>es-plugin.properties</include>
<include>plugin-descriptor.properties</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.1</version>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}</outputDirectory>
<destFileName>druid.jar</destFileName>
</artifactItem>
<artifactItem>
<groupId>org.elasticsearch.plugin</groupId>
<artifactId>delete-by-query</artifactId>
<overWrite>true</overWrite>
<outputDirectory>${project.build.directory}</outputDirectory>
<destFileName>deleteByQuery.jar</destFileName>
</artifactItem>
</artifactItems>
<outputDirectory>${project.build.directory}</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>plugin-descriptor.properties</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<appendAssemblyId>all</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptor>src/assembly/zip.xml</descriptor>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>${runSuite}</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.nlpcn</groupId>
<artifactId>elasticsearch-sql</artifactId>
<version>9.3.0.0</version>
<packaging>jar</packaging>
<description>Query elasticsearch using SQL</description>
<name>elasticsearch-sql</name>
<url>https://github.com/NLPchina/elasticsearch-sql/</url>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<connection>scm:git:git@github.com:NLPchina/elasticsearch-sql.git</connection>
<developerConnection>scm:git:git@github.com:NLPchina/elasticsearch-sql.git</developerConnection>
<url>git@github.com:NLPchina/elasticsearch-sql.git</url>
</scm>
<developers>
<developer>
<id>ansj</id>
<name>ansj</name>
<email>ansj-sun@163.com</email>
</developer>
<developer>
<id>omershelef</id>
<name>Omer shelef</name>
<email>shlaflaf@gmail.com</email>
</developer>
<developer>
<id>eliranmoyal</id>
<name>Eliran Moyal</name>
<email>eliran.moyal1@gmail.com</email>
</developer>
</developers>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<runSuite>**/MainTestSuite.class</runSuite>
<elasticsearch.plugin.name>sql</elasticsearch.plugin.name>
<elasticsearch.version>9.3.0</elasticsearch.version>
<elasticsearch.plugin.classname>org.elasticsearch.plugin.nlpcn.SqlPlug</elasticsearch.plugin.classname>
<druid.version>1.2.15</druid.version>
<guava.version>32.0.0-jre</guava.version>
</properties>
<repositories>
<repository>
<id>elasticsearch-releases</id>
<url>https://artifacts.elastic.co/maven</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.spatial4j</groupId>
<artifactId>spatial4j</artifactId>
<version>0.8</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<dependency>
<groupId>org.locationtech.jts</groupId>
<artifactId>jts-core</artifactId>
<version>1.19.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>${elasticsearch.version}</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch-preallocate</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>co.elastic.clients</groupId>
<artifactId>elasticsearch-java</artifactId>
<version>9.3.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
<version>${elasticsearch.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.14.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.unboundid</groupId>
<artifactId>unboundid-ldapsdk</artifactId>
<version>6.0.7</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.70</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>es-plugin.properties</include>
<include>plugin-descriptor.properties</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>21</source>
<target>21</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
<phase>package</phase>
<id>default-jar</id>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.1</version>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.3</version>
<configuration>
<additionalparam>-Xdoclint:none</additionalparam>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}</outputDirectory>
</artifactItem>
</artifactItems>
<outputDirectory>${project.build.directory}</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>plugin-descriptor.properties</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<appendAssemblyId>all</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptor>src/assembly/zip.xml</descriptor>
<finalName>elasticsearch</finalName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>${runSuite}</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<distributionManagement>
<snapshotRepository>
<id>sonatype-nexus-snapshots</id>
<name>Sonatype Nexus snapshot repository</name>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>sonatype-nexus-staging</id>
<name>Sonatype Nexus release repository</name>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
</repository>
</distributionManagement>
</project>
================================================
FILE: src/_site/controllers.js
================================================
// settings
var settings = location.search.substring(1).split("&").reduce(function (r, p) {
r[decodeURIComponent(p.split("=")[0])] = decodeURIComponent(p.split("=")[1]);
return r;
}, {});
var elasticsearchSqlApp = angular.module('elasticsearchSqlApp', ["ngAnimate", "ngSanitize"]);
// auth
if (settings['username']) localStorage.setItem("auth", "Basic " + window.btoa(settings['username'] + ":" + settings['password']));
if (localStorage.getItem("auth")) {
elasticsearchSqlApp.config(function ($httpProvider) {
$httpProvider.interceptors.push(function () {
return {
request: function (config) {
config.headers['Authorization'] = localStorage.getItem("auth");
return config;
}
};
});
});
}
elasticsearchSqlApp.controller('MainController', function ($scope, $http, $sce,$compile) {
scroll_url = "_search/scroll?scroll=1m&scroll_id=";
$scope.url = getUrl();
$scope.showResults = false;
$scope.error = "";
$scope.resultsColumns =[];
$scope.resultsRows = [];
$scope.searchLoading = false;
$scope.explainLoading = false;
$scope.nextLoading = false;
$scope.fetchAllLoading = false;
$scope.resultExplan = false;
$scope.scrollId = undefined;
$scope.amountDescription = "";
var optionsKey = "essql-options-v1";
var fetched = 0;
var total = 0 ;
//checkboxes
$scope.gotNext = false;
$scope.config = loadOptionsFromStorageOrDefault();
var tablePresenter = new TablePresenter('searchResult','#searchResultZone');
/* todo move to class - options handler */
$scope.saveConfigToStorage = function () {
localStorage.setItem(optionsKey,JSON.stringify($scope.config));
}
function loadOptionsFromStorageOrDefault () {
var defaultOptions = {
isFlat : false,
showId : false,
useOldTable : false,
scrollSize : 10,
alwaysScroll : false,
isAutoSave : false,
delimiter : ',',
showScore : false,
showType : false
}
if (typeof(Storage) !== "undefined") {
options = localStorage.getItem(optionsKey);
if(options!=undefined)
return JSON.parse(options);
else
return defaultOptions;
}
}
// pull version and put it on the scope
$http.get($scope.url).success(function (data) {
$http.get($scope.url + "_nodes/" + data.name).success(function (nodeData) {
var node = nodeData.nodes[Object.keys(nodeData.nodes)[0]];
angular.forEach(node.plugins, function (plugin) {
if (plugin.name === "sql") {
$scope.version = plugin.version;
}
});
});
});
/* todo move to class fetch*/
$scope.fetchAll = function(){
$scope.showResults = true;
callScrollAndFillBodyTillEnd($scope.scrollId,$scope.resultsColumns,$scope.resultsRows,true,false,true);
}
$scope.nextSearch = function(){
$scope.error = "";
$scope.nextLoading = true;
$scope.$apply();
var needToBuildTable = false;
if($scope.scrollId == undefined || $scope.scrollId == "" ){
$scope.error = "tryed scrolling with empty scrollId";
return;
}
$http.get($scope.url + scroll_url + $scope.scrollId)
.success(function(data, status, headers, config) {
var handler = ResultHandlerFactory.create(data,$scope.config.isFlat,$scope.config.showScore,$scope.config.showType,$scope.config.showId);
updateDescription(handler);
var body = handler.getBody()
if(body.length == undefined || body.length == 0){
$scope.gotNext=false;
}
else
{
$scope.scrollId = handler.getScrollId();
}
if($scope.resultsRows.length > 0){
tablePresenter.addRows(handler.getBody());
$scope.resultsRows = $scope.resultsRows.concat(handler.getBody());
}
else {
$scope.resultsColumns = handler.getHead();
$scope.resultsRows = handler.getBody();
needToBuildTable = true;
}
})
.error(function(data, status, headers, config) {
if(data == "") {
$scope.error = "Error occured! response is not available.";
}
else {
$scope.error = JSON.stringify(data);
$scope.scrollId = undefined;
}
})
.finally(function() {
$scope.nextLoading = false;
$scope.$apply();
if(needToBuildTable) {
tablePresenter.createOrReplace($scope.resultsColumns,$scope.resultsRows);
}
});
}
function updateWithScrollIfNeeded (query) {
if(!$scope.config.alwaysScroll)
return query;
if(query.indexOf("USE_SCROLL")!=-1)
return query;
var scrollHint = "/*! USE_SCROLL("+$scope.config.scrollSize+","+120000+") */";
if(query.indexOf("select") !=-1)
return query.replace("select","select " + scrollHint);
if(query.indexOf("SELECT") !=-1)
return query.replace("SELECT","select " + scrollHint);
return query;
}
$scope.search = function() {
// Reset results and error box
$scope.error = "";
fetched = 0;
total = 0;
$scope.amountDescription = 0;
$scope.resultsColumns = [];
$scope.resultsRows = [];
$scope.searchLoading = true;
$scope.resultExplan = false;
tablePresenter.destroy();
$scope.$apply();
saveUrl()
var query = window.editor.getValue();
var selectedQuery = window.editor.getSelection();
if(selectedQuery != "" && selectedQuery != undefined){
query = selectedQuery;
}
query = updateWithScrollIfNeeded(query);
$http.post($scope.url + "_nlpcn/sql", query)
.success(function(data, status, headers, config) {
var handler = ResultHandlerFactory.create(data,$scope.config.isFlat,$scope.config.showScore,$scope.config.showType,$scope.config.showId);
updateDescription(handler);
if(handler.isScroll){
$scope.showResults=true;
$scope.scrollId = handler.getScrollId();
if($scope.config.isAutoSave){
searchTillEndAndExportCsv($scope.scrollId);
}
else {
$scope.gotNext=true;
scrollBudy = handler.getBody();
//not using scan type
if(scrollBudy.length >0 ){
$scope.resultsColumns = handler.getHead();
$scope.resultsRows = scrollBudy;
}
}
}
else {
if($scope.config.isAutoSave){
$scope.showResults=true;
exportCSVWithoutScope(handler.getHead(),handler.getBody());
}
else {
$scope.resultsColumns = handler.getHead();
$scope.resultsRows = handler.getBody();
}
}
})
.error(function(data, status, headers, config) {
if(data == "") {
$scope.error = "Error occured! response is not available.";
}
else {
$scope.error = JSON.stringify(data);
}
})
.finally(function() {
$scope.searchLoading = false;
$scope.$apply();
if($scope.resultsColumns.length >0){
tablePresenter.createOrReplace($scope.resultsColumns,$scope.resultsRows);
}
});
}
$scope.explain = function() {
// Reset results and error box
$scope.error = "";
$scope.resultsColumns = [];
$scope.resultsRows = [];
$scope.explainLoading = true;
$scope.showResults = false;
tablePresenter.destroy();
$scope.resultExplan = true;
$scope.$apply();
saveUrl()
var query = window.editor.getValue();
$http.post($scope.url + "_nlpcn/sql/explain", query)
.success(function(data, status, headers, config) {
$scope.resultExplan = true;
window.explanResult.setValue(JSON.stringify(data, null, "\t"));
})
.error(function(data, status, headers, config) {
$scope.resultExplan = false;
if(data == "") {
$scope.error = "Error occured! response is not available.";
}
else {
$scope.error = JSON.stringify(data);
}
})
.finally(function() {
$scope.explainLoading = false;
$scope.$apply()
});
}
function exportCSVWithoutScope(columns,rows) {
var delimiter = $scope.config.delimiter;
var data =arr2csvStr(columns,delimiter) ;
for(var i=0; i<rows.length ; i++){
data += "\n";
data += map2csvStr(columns,rows[i],delimiter) ;
}
var plain = 'data:text/csv;charset=utf8,' + encodeURIComponent(data);
download(plain, "query_result.csv", "text/plain");
return true;
}
$scope.onChangeTablePresnterType = function(){
//value = ?
value = $scope.config.useOldTable;
tablePresenter.destroy();
tablePresenter.changeTableType(value,$compile,$scope);
}
function searchTillEndAndExportCsv (scrollId) {
//todo: get total amount show fetched/total
head = []
body = []
$scope.showResults = true;
callScrollAndFillBodyTillEnd(scrollId,head,body,true,true,false);
}
function updateDescription (handler) {
total = handler.getTotal();
fetched += handler.getCurrentHitsSize();
if(total == undefined){
$scope.amountDescription = fetched
}
else {
if(total == fetched){
$scope.gotNext = false;
}
$scope.amountDescription = fetched + "/" + total
}
}
function callScrollAndFillBodyTillEnd (scrollId,head,body,firstTime,needToExport,updatePresenter) {
var url = $scope.url + scroll_url + scrollId;
$http.get(url)
.success(function(data, status, headers, config) {
var handler = ResultHandlerFactory.create(data,$scope.isFlat);
updateDescription(handler);
recieved = handler.getBody()
if(body.length > 0){
body = body.concat(recieved);
head = $.extend(head,handler.getHead());
if(updatePresenter){
tablePresenter.addRows(recieved);
}
}
else {
body = recieved;
head = handler.getHead();
if(updatePresenter){
tablePresenter.createOrReplace(head,body);
}
}
if(recieved == undefined || recieved.length == undefined || recieved.length == 0){
if(firstTime){
callScrollAndFillBodyTillEnd(handler.getScrollId(),head,body,false,needToExport,updatePresenter);
}
else {
if(needToExport){
exportCSVWithoutScope(head,body);
}
}
}
else {
callScrollAndFillBodyTillEnd(handler.getScrollId(),head,body,false,needToExport,updatePresenter);
}
})
.error(function(data, status, headers, config) {
if(data == "") {
$scope.error = "Error occured! response is not available.";
}
else {
$scope.error = JSON.stringify(data);
$scope.scrollId = undefined;
}
})
.finally(function() {
$scope.nextLoading = false;
$scope.$apply()
});
// body...
}
$scope.exportCSV = function() {
var columns = $scope.resultsColumns ;
var rows = $scope.resultsRows ;
exportCSVWithoutScope(columns,rows);
}
$scope.getButtonContent = function(isLoading , defName) {
var loadingContent = "<span class=\"glyphicon glyphicon-refresh glyphicon-refresh-animate\"></span> Loading...";
var returnValue = isLoading ? loadingContent : defName;
return $sce.trustAsHtml(returnValue);
}
function arr2csvStr(arr,op){
var data = arr[0];
for(var i=1; i<arr.length ; i++){
data += op;
data += arr[i] ;
}
return data ;
}
function map2csvStr(columns,arr,op){
var data = JSON.stringify(arr[columns[0]]);
for(var i=1; i<columns.length ; i++){
data += op;
data += JSON.stringify(arr[columns[i]]) ;
}
return data ;
}
function getUrl() {
var url = settings['base_uri'] || localStorage.getItem("lasturl");
if(url == undefined) {
if (location.protocol == "file") {
url = "http://localhost:9200"
}
else {
url = location.protocol+'//' + location.hostname + (location.port ? ':'+location.port : '');
}
}
if (url.indexOf('http://') !== 0 && url.indexOf('https://') !== 0) {
url = 'http://' + url;
}
if(url.substr(url.length - 1, 1) != '/') {
url += '/'
}
return url
}
function saveUrl() {
localStorage.setItem("lasturl", $scope.url);
}
});
================================================
FILE: src/_site/editor.js
================================================
// Create the queryTextarea editor
window.onload = function() {
window.editor = CodeMirror.fromTextArea(document.getElementById('queryTextarea'), {
mode: 'text/x-mysql',
indentWithTabs: true,
smartIndent: true,
lineNumbers: true,
matchBrackets : true,
autofocus: true,
extraKeys: {
"Ctrl-Space": "autocomplete",
"Ctrl-Enter": angular.element($("#queryTextarea")).scope().search
}
});
window.explanResult = CodeMirror.fromTextArea(document.getElementById('explanResult'), {
mode: 'application/json',
indentWithTabs: true,
smartIndent: true,
lineNumbers: true,
matchBrackets : true
});
};
================================================
FILE: src/_site/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="../../favicon.ico">
<title>Elasticsearch-sql client</title>
<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="vendor/bootstrap/css/bootstrap.min.css">
<link href="style.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="vendor/dataTables/css/jquery.dataTables.min.css"/>
</head>
<body ng-app="elasticsearchSqlApp" ng-controller="MainController">
<!-- Top navbar -->
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#">Elasticsearch-sql</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li ng-cloak>
<a>{{version ? 'Version: ' + version : ''}}</a>
</li>
<li>
<form class="navbar-form">
<input type="text" id="urlBox" class="form-control" ng-model="url" />
</form>
</li>
<li id="help_btn" data-toggle="modal" data-target="#help_popup">
<a title="Help" href="#" data-placement="bottom">Help</a>
</li>
</ul>
</div>
</div>
</nav>
<!-- Help modal -->
<div id="help_popup" tabindex="-1" class="modal fade" data-keyboard="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3>Help</h3>
</div>
<div class="modal-body">
<h4>SQL queries</h4>
<p>
Write your SQL query and run it against elasticsearch. The results will be displayed in the table. You can use autocomple to write
your queries easier.
</p>
<p> Enter our <a href="https://github.com/NLPchina/elasticsearch-sql/wiki">Wiki</a> for more Information on how to query </p>
<div class="keyboardSection">
<h4>Keyboard tips</h4>
<dl class="dl-horizontal">
<dt></dt>
<dd><strong>General editing</strong></dd>
<dt>Ctrl + Space</dt>
<dd>Open Auto complete</dd>
<dt>Ctrl + Enter</dt>
<dd>Submit query</dd>
</dl>
<dl class="dl-horizontal">
<dt></dt>
<dd><strong>When auto-complete is visible</strong></dd>
<dt>Arrows</dt>
<dd>Use arrows to select the term to auto complete.</dd>
<dt>Enter/Tab</dt>
<dd>Select the currently selected auto-complete menu</dd>
<dt>Esc</dt>
<dd>Close auto-complete menu</dd>
</dl>
</div>
</div>
<div class="modal-footer">
<a href="#" class="btn btn-primary" data-dismiss="modal" aria-hidden="true">Got it</a>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row">
<div class="col-sm-4 col-md-2 result_options panel-group" id="accordion">
<h3>Options <button class="btn btn-link" ng-click="saveConfigToStorage()"><span class="glyphicon glyphicon-floppy-disk"></span></button></h3>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
Show Settings </span>
</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse">
<div class="panel-body">
<div class="checkbox">
<label><input type="checkbox" ng-model="config.isFlat" value="">Flat Results</label>
</div>
<div class="checkbox">
<label><input type="checkbox" ng-model="config.useOldTable" ng-change="onChangeTablePresnterType()" value="">Old Table</label>
</div>
<div class="checkbox">
<label><input type="checkbox" ng-model="config.showId" ng-change="onChangeTablePresnterType()" value="">Show Id</label>
</div>
<div class="checkbox">
<label><input type="checkbox" ng-model="config.showScore" ng-change="onChangeTablePresnterType()" value="">Show Score</label>
</div>
<div class="checkbox">
<label><input type="checkbox" ng-model="config.showType" ng-change="onChangeTablePresnterType()" value="">Show Type</label>
</div>
<div class="checkbox">
<label><input type="checkbox" ng-model="config.alwaysScroll" ng-change="alwatsScrollChanged()" value="">always scroll</label>
</div>
<div class="">
<label class="scrollSizeLable">scroll per shard<input type="text" class="scrollSize" name="scrollSizeText" ng-model="config.scrollSize" maxlength="5" value="10" /></label>
</div>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">
Download Settings
</a>
</h4>
</div>
<div id="collapseTwo" class="panel-collapse collapse">
<div class="panel-body">
<div class="checkbox">
<label><input type="checkbox" ng-model="config.isAutoSave" value="">AutoExportCSV</label>
</div>
<div class="">
<label class="delimiterLable" >delimiter<input type="text" class="delimiter" name="delimiterText" ng-model="config.delimiter" maxlength="1" value="," /></label>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-8 col-md-10 main">
<h1 class="page-header">SQL Query</h1>
<!-- Query area -->
<div class="search-area">
<textarea id="queryTextarea">SELECT * FROM myindex</textarea>
<button type="button" ng-click="search()" id="searchButton" class="btn btn-success search-button" ng-bind-html="getButtonContent(searchLoading,'Search')" ng-cloak>
</button>
<button type="button" ng-click="explain()" id="explainButton" class="btn btn-info explain-button" ng-bind-html="getButtonContent(explainLoading,'Explain')" ng-cloak>
</button>
<button type="button" ng-click="exportCSV()" id="exportCSV" class="btn btn-primary " ng-cloak>Export CSV <span class="glyphicon glyphicon-share"></span></button>
<button type="next" ng-click="nextSearch()" id="nextButton" class="btn btn-warning next-button" ng-disabled="!gotNext" ng-bind-html="getButtonContent(nextLoading,'<span class=\'glyphicon rotate-glyph glyphicon-step-forward\'></span>')" ng-cloak>
</button>
<button type="fetchAll" ng-click="fetchAll()" id="fetchAllButton" class="btn btn-warning next-button" ng-disabled="!gotNext" ng-bind-html="getButtonContent(fetchAllLoading ,'<span class=\'glyphicon rotate-glyph glyphicon-fast-forward\'></span>')" ng-cloak>
</button>
</div>
<!-- Error box, displayed only on errors -->
<div id="errorBox" ng-hide="error == ''" class="alert alert-danger fadein" role="alert" ng-cloak>
<span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>
<span class="sr-only">Error:</span>
<span ng-model="error">{{error}}</span>
</div>
<!-- Results area, displayed after search -->
<div class="fadein" ng-show="resultsColumns.length > 0 || showResults" ng-cloak>
<div>
<h2 class="sub-header">Results ({{amountDescription}})</h2>
</div>
<div class="table-responsive" id ="searchResultZone">
<table class="table table-striped" id="searchResult">
<!-- <thead>
<tr id="tableHead">
<th ng-repeat="column in resultsColumns">{{column}}</th>
</tr>
</thead>
<tbody id="tableBody">
<tr ng-repeat="row in resultsRows">
<td ng-repeat="column in resultsColumns">
{{row[column]}}
</td>
</tr>
</tbody> -->
</table>
</div>
</div>
<!-- explan area , displayed after explan -->
<div class="fadein" ng-show="resultExplan" ng-cloak>
<h2 class="sub-header">Results</h2>
<div class="table-responsive">
<textarea id="explanResult"></textarea>
</div>
</div>
</div>
</div>
</div>
<!-- Jquery include -->
<script src="vendor/jquery/jquery-2.1.4.min.js"></script>
<script src="vendor/bootstrap/js/bootstrap.min.js"></script>
<!-- Bootstrap core JavaScript -->
<script src="vendor/dataTables/js/jquery.dataTables.min.js"></script>
<!-- CodeMirror includes -->
<script src="vendor/codemirror/lib/codemirror.js"></script>
<link rel="stylesheet" href="vendor/codemirror/lib/codemirror.css">
<script src="vendor/codemirror/mode/sql/sql.js"></script>
<script src="vendor/codemirror/mode/javascript/javascript.js"></script>
<link rel="stylesheet" href="vendor/codemirror/addon/hint/show-hint.css" />
<script src="vendor/codemirror/addon/hint/show-hint.js"></script>
<script src="vendor/codemirror/addon/hint/sql-hint.js"></script>
<!-- AngularJS -->
<script src="vendor/download/download.min.js"></script>
<script src="vendor/angularjs/angular.min.js"></script>
<script src="vendor/angularjs/angular-animate.min.js"></script>
<script src="vendor/angularjs/angular-sanitize.min.js"></script>
<script src="table_presenter.js"></script>
<script src="editor.js"></script>
<script src="mapping_parser.js"></script>
<script src="query.js"></script>
<script src="controllers.js"></script>
<script type="text/javascript">
// show errorText in error box.
function errorOccured(errorText) {
if(errorText == undefined) {
errorText = "Error occured! response is not avalible."
}
$("#errorBoxText").html(errorText)
$("#errorBox").show('slow')
}
</script>
</body>
</html>
================================================
FILE: src/_site/mapping_parser.js
================================================
var MappingParser = function(data) {
var parsedMapping = parseMapping(data);
this.mapping = parsedMapping;
}
function parseMapping(mapping){
var indexToTypeToFields = {};
for(index in mapping){
var types = mapping[index]["mappings"];
var typeToFields = {};
for(type in types){
var fields = types[type]["properties"];
fieldsFlatten = {};
getFieldsRecursive(fields,fieldsFlatten,"");
typeToFields[type] = fieldsFlatten;
}
indexToTypeToFields[index] = typeToFields;
}
return indexToTypeToFields;
}
function getFieldsRecursive(fields,fieldsFlatten,prefix){
for(field in fields){
var fieldMapping = fields[field];
if("type" in fieldMapping){
fieldsFlatten[prefix+field] = fieldMapping;
}
if(!("type" in fieldMapping) || fieldMapping.type == "nested") {
getFieldsRecursive(fieldMapping["properties"],fieldsFlatten,prefix+field+".");
}
}
}
MappingParser.prototype.getIndices = function() {
return Object.keys(this.mapping);
};
MappingParser.prototype.getTypes = function(index) {
return Object.keys(this.mapping[index]);
};
MappingParser.prototype.getFieldsForType = function(index,type) {
return Object.keys(this.mapping[index][type]);
};
MappingParser.prototype.getFieldsForTypeWithMapping = function(index,type) {
return this.mapping[index][type];
};
================================================
FILE: src/_site/query.js
================================================
/* ResultHandlerFactory
Returns the right Result Handler depend
on the results */
var ResultHandlerFactory = {
"create": function(data,isFlat,showScore,showType,showId) {
function isSearch(){
return "hits" in data
}
// Is query is of aggregation type? (SQL group by)
function isAggregation() {
return "aggregations" in data
}
function isDelete(){
return "_indices" in data
}
if(isSearch()){
return isAggregation() ? new AggregationQueryResultHandler(data) :
new DefaultQueryResultHandler(data,isFlat,showScore,showType,showId)
}
if(isDelete()){
return new DeleteQueryResultHandler(data);
}
return new ShowQueryResultHandler(data);
}
}
/* DefaultQueryResultHandler object
Handle the query result,
in case of regular query
(Not aggregation)
*/
var DefaultQueryResultHandler = function(data,isFlat,showScore,showType,showId) {
// createScheme by traverse hits field
function createScheme() {
var hits = data.hits.hits
scheme = []
for(index=0; index<hits.length; index++) {
hit = hits[index]
header = $.extend({},hit._source,hit.fields)
if(isFlat){
findKeysRecursive(scheme,header,"");
}
else {
for(key in header) {
if(scheme.indexOf(key) == -1) {
scheme.push(key)
}
}
}
}
if(showType){
scheme.push("_type");
}
if(showScore){
scheme.push("_score");
}
if(showScore){
scheme.push("_id");
}
return scheme
}
this.data = data
this.head = createScheme()
this.isFlat = isFlat;
this.showScore = showScore;
this.showType = showType;
this.showId = showId;
this.scrollId = data["_scroll_id"];
this.isScroll = this.scrollId!=undefined && this.scrollId!="";
};
DefaultQueryResultHandler.prototype.isScroll = function() {
return this.isScroll;
};
DefaultQueryResultHandler.prototype.getScrollId = function() {
return this.scrollId;
};
DefaultQueryResultHandler.prototype.getHead = function() {
return this.head
};
DefaultQueryResultHandler.prototype.getBody = function() {
var hits = this.data.hits.hits
var body = []
for(var i = 0; i < hits.length; i++) {
var row = hits[i]._source;
if("fields" in hits[i]){
addFieldsToRow(row,hits[i])
}
if(this.isFlat){
row = flatRow(this.head,row);
}
if(this.showType){
row["_type"] = hits[i]._type
}
if(this.showScore){
row["_score"] = hits[i]._score
}
if(this.showId){
row["_id"] = hits[i]._id
}
body.push(row)
}
return body
};
DefaultQueryResultHandler.prototype.getTotal = function() {
let total = this.data.hits.total;
return angular.isObject(total) ? total.value : total;
};
DefaultQueryResultHandler.prototype.getCurrentHitsSize = function() {
return this.data.hits.hits.length;
};
function findKeysRecursive (scheme,keys,prefix) {
for(key in keys){
if(typeof(keys[key])=="object" && (!(keys[key] instanceof Array))){
findKeysRecursive(scheme,keys[key],prefix+key+".")
}
else {
if(scheme.indexOf(prefix+key) == -1){
scheme.push(prefix+key);
}
}
}
}
function flatRow (keys,row) {
var flattenRow = {}
for( i = 0 ; i< keys.length ; i++ ){
key = keys[i];
splittedKey = key.split(".");
var found = true;
currentObj = row;
for( j = 0 ; j < splittedKey.length ; j++){
if(currentObj[splittedKey[j]]==undefined){
found = false;
break;
}
else {
currentObj = currentObj[splittedKey[j]];
}
}
if(found){
flattenRow[key] = currentObj;
}
}
return flattenRow;
}
function addFieldsToRow (row,hit) {
for(field in hit.fields){
fieldValue = hit.fields[field];
if( fieldValue instanceof Array ){
if(fieldValue.length > 1)
row[field] = fieldValue;
else row[field] = fieldValue[0];
}
else {
row[field] = fieldValue;
}
}
}
function removeNestedAndFilters (aggs) {
for(field in aggs)
{
if (field.endsWith("@NESTED") || field.endsWith("@FILTER") || field.endsWith("@NESTED_REVERSED") || field.endsWith("@CHILDREN")){
delete aggs[field]["doc_count"];
delete aggs[field]["key"];
leftField = Object.keys(aggs[field])[0];
aggs[leftField] = aggs[field][leftField];
delete aggs[field];
removeNestedAndFilters(aggs);
}
if(typeof(aggs[field])=="object"){
removeNestedAndFilters(aggs[field]);
}
}
}
/* AggregationQueryResultHandler object
Handle the query result,
in case of Aggregation query
(SQL group by)
*/
var AggregationQueryResultHandler = function(data) {
removeNestedAndFilters(data.aggregations);
function getRows(bucketName, bucket, additionalColumns) {
var rows = []
var subBuckets = getSubBuckets(bucket)
if(subBuckets.length > 0) {
for(var i = 0; i < subBuckets.length; i++) {
var subBucketName = subBuckets[i]["bucketName"];
var subBucket = subBuckets[i]["bucket"];
var newAdditionalColumns = {};
// bucket without parents.
if(bucketName != undefined) {
var newColumn = {};
newColumn[bucketName] = bucket.key;
newAdditionalColumns = $.extend(newColumn, additionalColumns);
}
var newRows = getRows(subBucketName, subBucket, newAdditionalColumns)
$.merge(rows, newRows);
}
}
else { //zhongshu-comment 没有子bucket了,就是最里面的那一层了
var obj = $.extend({}, additionalColumns)
if(bucketName != undefined) {
if(bucketName != undefined) {
if("key_as_string" in bucket){
obj[bucketName] = bucket["key_as_string"] //zhongshu-comment 给字段取别名
}
else {
obj[bucketName] = bucket.key
}
}
}
for(var field in bucket) {
var bucketValue = bucket[field]
if(bucketValue.buckets != undefined ){ //zhongshu-comment 如果还有子bucket的话,那就继续递归
var newRows = getRows(subBucketName, bucketValue, newAdditionalColumns);
$.merge(rows, newRows);
continue;
}
if(bucketValue.value != undefined) {
if("value_as_string" in bucket[field]){
obj[field] = bucketValue["value_as_string"]
}
else {
obj[field] = bucketValue.value
}
}
else {
if(typeof(bucketValue)=="object"){
/*subBuckets = getSubBuckets(bucketValue);
if(subBuckets.length >0){
var newRows = getRows(subBucketName, {"buckets":subBuckets}, newAdditionalColumns);
$.merge(rows, newRows);
continue;
}*/
fillFieldsForSpecificAggregation(obj,bucketValue,field);
}
}
}
rows.push(obj)
}
return rows
}
//zhongshu-comment 递归
function fillFieldsForSpecificAggregation(obj,value,field)
{
for(key in value){
if(key == "values"){
fillFieldsForSpecificAggregation(obj,value[key],field);
}
else {
obj[field+"." +key] = value[key];
}
}
return;
}
//zhongshu-comment 递归
function getSubBuckets(bucket) {
var subBuckets = [];
for(var field in bucket) {
var buckets = bucket[field].buckets
if(buckets != undefined) {
for(var i = 0; i < buckets.length; i++) {
subBuckets.push({"bucketName": field, "bucket": buckets[i]})
}
}
else {
innerAgg = bucket[field]; //zhongshu-comment innerAgg这个变量是哪来的,貌似没声明,到时问问松哥
for(var innerField in innerAgg){
if(typeof(innerAgg[innerField])=="object"){
innerBuckets = getSubBuckets(innerAgg[innerField]);
$.merge(subBuckets,innerBuckets);
}
}
}
}
return subBuckets
}
this.data = data
this.flattenBuckets = getRows(undefined, data.aggregations, {}) //zhongshu-comment 入口
};
AggregationQueryResultHandler.prototype.getHead = function() {
head = []
for(var i = 0; i < this.flattenBuckets.length; i++) {
var keys = Object.keys(this.flattenBuckets[i])
for(var j = 0; j < keys.length; j++) {
if($.inArray(keys[j], head) == -1) {
head.push(keys[j])
}
}
}
return head
};
AggregationQueryResultHandler.prototype.getBody = function() {
return this.flattenBuckets
};
AggregationQueryResultHandler.prototype.getTotal = function() {
return undefined;
};
AggregationQueryResultHandler.prototype.getCurrentHitsSize = function() {
return this.flattenBuckets.length;
};
/* ShowQueryResultHandler object
for showing mapping in some levels (cluster, index and types)
*/
var ShowQueryResultHandler = function(data) {
var mappingParser = new MappingParser(data);
var indices = mappingParser.getIndices();
body = [];
if(indices.length > 1){
this.head = ["index","types"];
for(indexOfIndex in indices){
var indexToTypes = {};
var index = indices[indexOfIndex]
indexToTypes["index"] = index;
indexToTypes["types"] = mappingParser.getTypes(index);
body.push(indexToTypes);
}
}
else {
var index = indices[0];
var types = mappingParser.getTypes(index);
if(types.length > 1) {
this.head = ["type","fields"];
for(typeIndex in types){
var typeToFields = {};
var type = types[typeIndex];
typeToFields["type"] = type;
typeToFields["fields"] = mappingParser.getFieldsForType(index,type);
body.push(typeToFields)
}
}
else {
this.head = ["field","type"];
anyFieldContainsMore = false;
fieldsWithMapping = mappingParser.getFieldsForTypeWithMapping(index,types[0]);
for(field in fieldsWithMapping){
fieldRow = {};
fieldMapping = fieldsWithMapping[field];
fieldRow["field"] = field;
fieldRow["type"] = fieldMapping["type"];
delete fieldMapping["type"];
if(!$.isEmptyObject(fieldMapping)){
anyFieldContainsMore = true;
fieldRow["more"] = fieldMapping;
}
body.push(fieldRow);
}
if(anyFieldContainsMore) this.head.push("more");
}
}
this.body = body;
};
ShowQueryResultHandler.prototype.getHead = function() {
return this.head
};
ShowQueryResultHandler.prototype.getBody = function() {
return this.body;
};
ShowQueryResultHandler.prototype.getTotal = function() {
return this.body.length;
};
ShowQueryResultHandler.prototype.getCurrentHitsSize = function() {
return this.body.length;
};
/* DeleteQueryResultHandler object
to show delete result status
*/
var DeleteQueryResultHandler = function(data) {
this.head = ["index_deleted_from","shards_successful","shards_failed"];
body = []
deleteData = data["_indices"];
for(index in deleteData){
deleteStat = {};
deleteStat["index_deleted_from"] = index;
shardsData = deleteData[index]["_shards"];
deleteStat["shards_successful"] = shardsData["successful"];
deleteStat["shards_failed"] = shardsData["failed"];
body.push(deleteStat);
}
this.body = body;
};
DeleteQueryResultHandler.prototype.getHead = function() {
return this.head;
};
DeleteQueryResultHandler.prototype.getBody = function() {
return this.body;
};
DeleteQueryResultHandler.prototype.getTotal = function() {
return 1;
};
DeleteQueryResultHandler.prototype.getCurrentHitsSize = function() {
return 1;
};
================================================
FILE: src/_site/style.css
================================================
/*
* Base structure
*/
/* Move down content because we have a fixed navbar that is 50px tall */
body {
padding-top: 50px;
}
/*
* Global add-ons
*/
.sub-header {
padding-bottom: 10px;
border-bottom: 1px solid #eee;
}
/*
* Top navigation
* Hide default border to remove 1px line.
*/
.navbar-fixed-top {
border: 0;
}
/*
* Sidebar
*/
/* Hide for mobile, show later */
.sidebar {
display: none;
}
@media (min-width: 768px) {
.sidebar {
position: fixed;
top: 51px;
bottom: 0;
left: 0;
z-index: 1000;
display: block;
padding: 20px;
overflow-x: hidden;
overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */
background-color: #f5f5f5;
border-right: 1px solid #eee;
}
}
/* Sidebar navigation */
.nav-sidebar {
margin-right: -21px; /* 20px padding + 1px border */
margin-bottom: 20px;
margin-left: -20px;
}
.nav-sidebar > li > a {
padding-right: 20px;
padding-left: 20px;
}
.nav-sidebar > .active > a,
.nav-sidebar > .active > a:hover,
.nav-sidebar > .active > a:focus {
color: #fff;
background-color: #428bca;
}
/*
* Main content
*/
.main {
padding: 20px;
}
@media (min-width: 768px) {
.main {
padding-right: 40px;
padding-left: 40px;
}
}
.main .page-header {
margin-top: 0;
}
/*
* Placeholder dashboard ideas
*/
.placeholders {
margin-bottom: 30px;
text-align: center;
}
.placeholders h4 {
margin-bottom: 0;
}
.placeholder {
margin-bottom: 20px;
}
.placeholder img {
display: inline-block;
border-radius: 50%;
}
.search-area {
margin-bottom: 50px;
}
.search-button {
float:right;
margin-right: 20%;
margin-top: 10px;
}
#exportCSV {
float:left;
margin-top: 10px;
height: 100%;
}
.explain-button {
float:right;
margin-right: 25px;
margin-top: 10px;
}
.next-button {
float:left;
margin-left:5px;
margin-top: 10px;
}
.keyboardSection {
margin-top:35px;
}
#errorBox {
width:80%;
margin-top:70px;
}
[ng\:cloak], [ng-cloak], .ng-cloak {
display: none !important;
}
/* After the transition this will be the only class remaining */
.fadein {
-webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s;
-moz-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s;
-o-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s;
transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.0s;
opacity: 1; /* Default value but added for clarity */
}
/* Initial state when showing */
.fadein.ng-hide {
-webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0s;
-moz-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0s;
-o-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0s;
transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0s;
opacity: 0;
}
/* Loading button animation */
.glyphicon-refresh-animate {
-animation: spin .7s infinite linear;
-webkit-animation: spin2 .7s infinite linear;
}
@-webkit-keyframes spin2 {
from { -webkit-transform: rotate(0deg);}
to { -webkit-transform: rotate(360deg);}
}
@keyframes spin {
from { transform: scale(1) rotate(0deg);}
to { transform: scale(1) rotate(360deg);}
}
/* result options */
.result_options {
padding-top: 2%;
}
.delimiter {
display: inline;
width: 20%;
margin-left: 10%;
}
.delimiterLable {
font-weight: 100;
}
.scrollSize {
display: inline;
width: 30%;
margin-left: 10%;
}
.scrollSizeLable {
font-weight: 100;
}
#searchResultZone{
width: 80%;
}
/* accordion */
.panel-heading .accordion-toggle:after {
/* symbol for "opening" panels */
font-family: 'Glyphicons Halflings'; /* essential for enabling glyphicon */
content: "\e114"; /* adjust as needed, taken from bootstrap.css */
float: right; /* adjust as needed */
color: grey; /* adjust as needed */
}
.panel-heading .accordion-toggle.collapsed:after {
/* symbol for "collapsed" panels */
content: "\e080"; /* adjust as needed, taken from bootstrap.css */
}
.rotate-glyph {
-webkit-transform:rotate(90deg) scaleX(1.5) ;
-moz-transform:rotate(90deg) scaleX(1.5) ;
-o-transform:rotate(90deg) scaleX(1.5) ;
-ms-transform:rotate(90deg) scaleX(1.5);
}
================================================
FILE: src/_site/table_presenter.js
================================================
var TablePresenter = function(tableId,tableZoneSelector) {
this.tableId = tableId;
this.tableSelector = "#"+tableId;
this.tableZoneSelector = tableZoneSelector;
this.oldTable = false;
this.table = undefined;
}
TablePresenter.prototype.addRows = function(rows) {
if(this.oldTable) return;
this.table.rows.add(createRows(rows)).draw();
};
TablePresenter.prototype.createOrReplace = function(columns,rows) {
if(this.oldTable) return;
clearTableIfNeeded(this.table,this.tableZoneSelector,this.tableId);
dataTablesColumns = createColumns(columns);
dataTableRows = createRows(rows);
this.table = $(this.tableSelector).DataTable(
{
"aaData": dataTableRows,
"aoColumns": dataTablesColumns,
"destroy": true,
"scrollX": true,
"order": [],
"lengthMenu": [[10, 25, 50,100, -1], [10, 25, 50,100, "All"]]
});
};
TablePresenter.prototype.destroy = function() {
clearTableIfNeeded(this.table,this.tableZoneSelector,this.tableId);
};
TablePresenter.prototype.changeTableType = function(old,$compile,$scope){
if(old) {
createOldTable(this.tableZoneSelector,this.tableId ,$compile,$scope);
this.oldTable = true;
}
else {
this.oldTable = false;
}
}
function clearTableIfNeeded(table,tableZoneSelector,tableId){
if(table != undefined){
table.clear();
$(tableZoneSelector).empty();
$(tableZoneSelector).html('<table id="'+tableId+'"></table>');
}
}
function createColumns(columns){
dataTablesColumns = [];
for(i = 0 ; i < columns.length ; i++){
var column = columns[i];
dataTableColumn = {}
dataTableColumn["data"] = column.replace(/\./g,"&");
dataTableColumn["sTitle"] = column;
dataTableColumn["defaultContent"]="";
dataTableColumn["render"] = function(data,type,row){
if(typeof(data)=="object")
return JSON.stringify(data);
else
return data;
}
dataTablesColumns.push(dataTableColumn);
}
return dataTablesColumns;
}
function createRows(rows){
dataTableRows = [];
for(i =0;i<rows.length;i++){
var row = rows[i]
dataTableRow = {};
for(key in row){
dataTableRow[key.replace(/\./g,"&")] = row[key];
}
dataTableRows.push(dataTableRow);
}
return dataTableRows;
}
function createOldTable (tableZoneSelector,tableId,$compile,$scope) {
$(tableZoneSelector).empty();
var html = '<table class=\'table table-striped\' id=\''+tableId+'\'>';
html = html + '<thead><tr id=\'tableHead\'><th ng-repeat=\'column in resultsColumns\'>{{column}}</th></tr>';
html += ' </thead> <tbody id=\'tableBody\'><tr ng-repeat=\'row in resultsRows\'><td ng-repeat=\'column in resultsColumns\'>{{row[column]}}</td></tr></tbody> </table>'
$(tableZoneSelector).html($compile(html)($scope));
}
================================================
FILE: src/_site/tests/SpecRunner.html
================================================
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Jasmine Spec Runner v2.1.3</title>
<link rel="shortcut icon" type="image/png" href="../vendor/jasmine-2.1.3/jasmine-2.1.3/jasmine_favicon.png">
<link rel="stylesheet" href="../vendor/jasmine-2.1.3/jasmine.css">
<script src="../vendor/jasmine-2.1.3/jasmine.js"></script>
<script src="../vendor/jasmine-2.1.3/jasmine-html.js"></script>
<script src="../vendor/jasmine-2.1.3/boot.js"></script>
<script src="../vendor/jquery/jquery-2.1.1.min.js"></script>
<script src="../vendor/jasmine-jquery/jasmine-jquery.js"></script>
<script src="../vendor/dataTables/js/jquery.dataTables.min.js"></script>
<!-- AngularJS -->
<script src="../vendor/angularjs/angular.min.js"></script>
<script src="../vendor/angularjs/angular-animate.min.js"></script>
<script src="../vendor/angularjs/angular-sanitize.min.js"></script>
<!-- include source files here... -->
<script src="../query.js"></script>
<script src="../table_presenter.js"></script>
<!-- include spec files here... -->
<script src="spec/ResultHandlersSpec.js"></script>
<script src="spec/TablePresenterSpec.js"></script>
</head>
<body>
<div id="myTableZone" style="visibility: hidden;height:0px;width:0px">
<table id="myTable"></table>
</div>
</body>
</html>
================================================
FILE: src/_site/tests/resources/expectedBody4nestedAggregation.json
================================================
[
{"gender": "f", "age": 28, "count": 31, "sum_balance": 839381, "averge_balance": 27076.8064516129},
{"gender": "f", "age": 29, "count": 12, "sum_balance": 343217, "averge_balance": 28601.416666666668},
{"gender": "m", "age": 29, "count": 23, "sum_balance": 688693, "averge_balance": 29943.17391304348},
{"gender": "m", "age": 28, "count": 20, "sum_balance": 602587, "averge_balance": 30129.35}
]
================================================
FILE: src/_site/tests/resources/expectedBody4simpleAggregation.json
================================================
[
{"gender": "m", "averge_age": 30.027613412228796, "count": 507, "balance_sum": 13082527},
{"gender": "f", "averge_age": 30.3184584178499, "count": 493, "balance_sum": 12632310}
]
================================================
FILE: src/_site/tests/resources/expectedBody4simpleQueryResult.json
================================================
[{"city": "Eastvale", "firstname": "Rodriquez", "lastname": "Flores", "age": 31, "address": "986 Wyckoff Avenue", "employer": "Tourmania", "state": "HI", "account_number": 4, "gender": "F", "balance": 27658, "email": "rodriquezflores@tourmania.com"}, {"city": "Olney", "firstname": "Opal", "lastname": "Meadows", "age": 39, "address": "963 Neptune Avenue", "employer": "Cedward", "state": "OH", "account_number": 9, "gender": "M", "balance": 24776, "email": "opalmeadows@cedward.com"}, {"city": "Steinhatchee", "firstname": "Jenkins", "lastname": "Haney", "age": 20, "address": "740 Ferry Place", "employer": "Qimonk", "state": "GA", "account_number": 11, "gender": "M", "balance": 20203, "email": "jenkinshaney@qimonk.com"}, {"city": "Remington", "firstname": "Adrian", "lastname": "Pitts", "age": 34, "address": "963 Fay Court", "employer": "Combogene", "state": "SD", "account_number": 16, "gender": "F", "balance": 35883, "email": "adrianpitts@combogene.com"}, {"city": "Walton", "firstname": "Kirsten", "lastname": "Fox", "age": 20, "address": "330 Dumont Avenue", "employer": "Codax", "state": "AK", "account_number": 23, "gender": "M", "balance": 42374, "email": "kirstenfox@codax.com"}, {"city": "Masthope", "firstname": "Vega", "lastname": "Flynn", "age": 20, "address": "647 Hyman Court", "employer": "Accupharm", "state": "OH", "account_number": 28, "gender": "M", "balance": 42112, "email": "vegaflynn@accupharm.com"}, {"city": "Epworth", "firstname": "Lamb", "lastname": "Townsend", "age": 26, "address": "169 Lyme Avenue", "employer": "Geeknet", "state": "AL", "account_number": 30, "gender": "M", "balance": 19087, "email": "lambtownsend@geeknet.com"}, {"city": "Woodlake", "firstname": "Darla", "lastname": "Bridges", "age": 27, "address": "315 Central Avenue", "employer": "Xeronk", "state": "RI", "account_number": 35, "gender": "F", "balance": 42039, "email": "darlabridges@xeronk.com"}, {"city": "Heil", "firstname": "Harding", "lastname": "Hobbs", "age": 26, "address": "474 Ridgewood Place", "employer": "Xth", "state": "ND", "account_number": 42, "gender": "F", "balance": 21137, "email": "hardinghobbs@xth.com"}, {"city": "Dellview", "firstname": "Georgia", "lastname": "Wilkerson", "age": 23, "address": "369 Herbert Street", "employer": "Endipin", "state": "WI", "account_number": 47, "gender": "M", "balance": 33044, "email": "georgiawilkerson@endipin.com"}, {"city": "Calverton", "firstname": "Angel", "lastname": "Mann", "age": 22, "address": "229 Ferris Street", "employer": "Amtas", "state": "WA", "account_number": 54, "gender": "F", "balance": 23406, "email": "angelmann@amtas.com"}, {"city": "Trucksville", "firstname": "Malone", "lastname": "Justice", "age": 37, "address": "721 Russell Street", "employer": "Emoltra", "state": "HI", "account_number": 59, "gender": "F", "balance": 37728, "email": "malonejustice@emoltra.com"}, {"city": "Darlington", "firstname": "Shawn", "lastname": "Baird", "age": 20, "address": "605 Monument Walk", "employer": "Moltonic", "state": "MN", "account_number": 61, "gender": "M", "balance": 6856, "email": "shawnbaird@moltonic.com"}, {"city": "Chase", "firstname": "Franks", "lastname": "Salinas", "age": 28, "address": "437 Hamilton Walk", "employer": "Cowtown", "state": "VT", "account_number": 66, "gender": "M", "balance": 25939, "email": "frankssalinas@cowtown.com"}, {"city": "Levant", "firstname": "Irene", "lastname": "Stephenson", "age": 32, "address": "684 Miller Avenue", "employer": "Hawkster", "state": "AR", "account_number": 73, "gender": "M", "balance": 33457, "email": "irenestephenson@hawkster.com"}, {"city": "Dunbar", "firstname": "Elvira", "lastname": "Patterson", "age": 23, "address": "834 Amber Street", "employer": "Assistix", "state": "TN", "account_number": 78, "gender": "F", "balance": 48656, "email": "elvirapatterson@assistix.com"}, {"city": "Matthews", "firstname": "Lacey", "lastname": "Blanchard", "age": 30, "address": "823 Himrod Street", "employer": "Comdom", "state": "MO", "account_number": 80, "gender": "F", "balance": 13445, "email": "laceyblanchard@comdom.com"}, {"city": "Kipp", "firstname": "Wilcox", "lastname": "Sellers", "age": 20, "address": "212 Irving Avenue", "employer": "Confrenzy", "state": "MT", "account_number": 85, "gender": "M", "balance": 48735, "email": "wilcoxsellers@confrenzy.com"}, {"city": "Moquino", "firstname": "Gay", "lastname": "Brewer", "age": 34, "address": "369 Ditmars Street", "employer": "Savvy", "state": "HI", "account_number": 92, "gender": "M", "balance": 26753, "email": "gaybrewer@savvy.com"}, {"city": "Fredericktown", "firstname": "Karen", "lastname": "Trujillo", "age": 40, "address": "512 Cumberland Walk", "employer": "Tsunamia", "state": "MO", "account_number": 97, "gender": "F", "balance": 49671, "email": "karentrujillo@tsunamia.com"}, {"city": "Deercroft", "firstname": "Madden", "lastname": "Woods", "age": 32, "address": "696 Ryder Avenue", "employer": "Slumberia", "state": "ME", "account_number": 100, "gender": "F", "balance": 29869, "email": "maddenwoods@slumberia.com"}, {"city": "Succasunna", "firstname": "Castillo", "lastname": "Dickerson", "age": 33, "address": "673 Oxford Street", "employer": "Tellifly", "state": "NY", "account_number": 105, "gender": "F", "balance": 29654, "email": "castillodickerson@tellifly.com"}, {"city": "Orovada", "firstname": "Frederick", "lastname": "Case", "age": 30, "address": "580 Lexington Avenue", "employer": "Talkalot", "state": "MA", "account_number": 112, "gender": "F", "balance": 38395, "email": "frederickcase@talkalot.com"}, {"city": "Sims", "firstname": "Robin", "lastname": "Hays", "age": 38, "address": "347 Hornell Loop", "employer": "Pasturia", "state": "WY", "account_number": 117, "gender": "F", "balance": 48831, "email": "robinhays@pasturia.com"}, {"city": "Cloverdale", "firstname": "Fern", "lastname": "Lambert", "age": 20, "address": "511 Jay Street", "employer": "Furnitech", "state": "FL", "account_number": 124, "gender": "M", "balance": 16425, "email": "fernlambert@furnitech.com"}, {"city": "Concho", "firstname": "Alexandria", "lastname": "Sanford", "age": 33, "address": "934 Ridgecrest Terrace", "employer": "Kyagoro", "state": "UT", "account_number": 129, "gender": "F", "balance": 42409, "email": "alexandriasanford@kyagoro.com"}, {"city": "Shasta", "firstname": "Dollie", "lastname": "Koch", "age": 22, "address": "287 Manhattan Avenue", "employer": "Skinserve", "state": "PA", "account_number": 131, "gender": "F", "balance": 28030, "email": "dolliekoch@skinserve.com"}, {"city": "Urie", "firstname": "Winnie", "lastname": "Holland", "age": 38, "address": "198 Mill Lane", "employer": "Neteria", "state": "IL", "account_number": 136, "gender": "M", "balance": 45801, "email": "winnieholland@neteria.com"}, {"city": "Norvelt", "firstname": "Cohen", "lastname": "Noble", "age": 39, "address": "454 Nelson Street", "employer": "Buzzworks", "state": "CO", "account_number": 143, "gender": "M", "balance": 43093, "email": "cohennoble@buzzworks.com"}, {"city": "Hollins", "firstname": "Annmarie", "lastname": "Snider", "age": 34, "address": "857 Lafayette Walk", "employer": "Edecine", "state": "OH", "account_number": 148, "gender": "F", "balance": 3662, "email": "annmariesnider@edecine.com"}, {"city": "Maxville", "firstname": "Ortega", "lastname": "Dalton", "age": 20, "address": "237 Mermaid Avenue", "employer": "Rameon", "state": "NH", "account_number": 150, "gender": "M", "balance": 15306, "email": "ortegadalton@rameon.com"}, {"city": "Hoehne", "firstname": "Atkinson", "lastname": "Hudson", "age": 39, "address": "434 Colin Place", "employer": "Qualitern", "state": "OH", "account_number": 155, "gender": "F", "balance": 27878, "email": "atkinsonhudson@qualitern.com"}, {"city": "Barclay", "firstname": "Griffith", "lastname": "Calderon", "age": 35, "address": "871 Vandervoort Place", "employer": "Quotezart", "state": "FL", "account_number": 162, "gender": "M", "balance": 6302, "email": "griffithcalderon@quotezart.com"}, {"city": "Irwin", "firstname": "Hampton", "lastname": "Ryan", "age": 20, "address": "618 Fleet Place", "employer": "Zipak", "state": "KS", "account_number": 167, "gender": "M", "balance": 42051, "email": "hamptonryan@zipak.com"}, {"city": "Abiquiu", "firstname": "Gamble", "lastname": "Pierce", "age": 23, "address": "650 Eagle Street", "employer": "Matrixity", "state": "OR", "account_number": 174, "gender": "F", "balance": 1464, "email": "gamblepierce@matrixity.com"}, {"city": "Loretto", "firstname": "Elise", "lastname": "Drake", "age": 25, "address": "305 Christopher Avenue", "employer": "Turnling", "state": "LA", "account_number": 179, "gender": "M", "balance": 13265, "email": "elisedrake@turnling.com"}, {"city": "Rodman", "firstname": "Bennett", "lastname": "Hampton", "age": 22, "address": "435 Billings Place", "employer": "Voipa", "state": "WY", "account_number": 181, "gender": "F", "balance": 27983, "email": "bennetthampton@voipa.com"}, {"city": "Klondike", "firstname": "Kline", "lastname": "Joyce", "age": 32, "address": "285 Falmouth Street", "employer": "Tetratrex", "state": "SD", "account_number": 186, "gender": "M", "balance": 18373, "email": "klinejoyce@tetratrex.com"}, {"city": "Grantville", "firstname": "Patty", "lastname": "Petty", "age": 34, "address": "251 Vermont Street", "employer": "Kinetica", "state": "MS", "account_number": 193, "gender": "F", "balance": 13412, "email": "pattypetty@kinetica.com"}, {"city": "Canoochee", "firstname": "Rachael", "lastname": "Sharp", "age": 38, "address": "443 Vernon Avenue", "employer": "Powernet", "state": "UT", "account_number": 198, "gender": "F", "balance": 19686, "email": "rachaelsharp@powernet.com"}, {"city": "Colton", "firstname": "Ronda", "lastname": "Perry", "age": 25, "address": "856 Downing Street", "employer": "Artiq", "state": "WV", "account_number": 201, "gender": "F", "balance": 14586, "email": "rondaperry@artiq.com"}, {"city": "Babb", "firstname": "Kelli", "lastname": "Francis", "age": 20, "address": "671 George Street", "employer": "Exoswitch", "state": "NJ", "account_number": 206, "gender": "M", "balance": 47423, "email": "kellifrancis@exoswitch.com"}, {"city": "Oceola", "firstname": "Bauer", "lastname": "Summers", "age": 27, "address": "257 Boynton Place", "employer": "Voratak", "state": "NC", "account_number": 213, "gender": "M", "balance": 34172, "email": "bauersummers@voratak.com"}, {"city": "Comptche", "firstname": "Garrison", "lastname": "Bryan", "age": 24, "address": "478 Greenpoint Avenue", "employer": "Uniworld", "state": "WI", "account_number": 218, "gender": "F", "balance": 26702, "email": "garrisonbryan@uniworld.com"}, {"city": "Linwood", "firstname": "Tania", "lastname": "Middleton", "age": 22, "address": "541 Gunther Place", "employer": "Zerology", "state": "IN", "account_number": 220, "gender": "F", "balance": 3086, "email": "taniamiddleton@zerology.com"}, {"city": "Cartwright", "firstname": "Maryann", "lastname": "Murphy", "age": 24, "address": "894 Bridgewater Street", "employer": "Cinesanct", "state": "RI", "account_number": 225, "gender": "F", "balance": 21949, "email": "maryannmurphy@cinesanct.com"}, {"city": "Waikele", "firstname": "Carr", "lastname": "Jensen", "age": 34, "address": "995 Micieli Place", "employer": "Biohab", "state": "OH", "account_number": 232, "gender": "F", "balance": 11984, "email": "carrjensen@biohab.com"}, {"city": "Freelandville", "firstname": "Kirby", "lastname": "Watkins", "age": 27, "address": "348 Blake Court", "employer": "Sonique", "state": "PA", "account_number": 237, "gender": "F", "balance": 5603, "email": "kirbywatkins@sonique.com"}, {"city": "Gorham", "firstname": "Judith", "lastname": "Riggs", "age": 27, "address": "590 Kosciusko Street", "employer": "Arctiq", "state": "DC", "account_number": 244, "gender": "F", "balance": 8048, "email": "judithriggs@arctiq.com"}, {"city": "Catharine", "firstname": "Mckinney", "lastname": "Gallagher", "age": 38, "address": "939 Seigel Court", "employer": "Premiant", "state": "NH", "account_number": 249, "gender": "F", "balance": 16822, "email": "mckinneygallagher@premiant.com"}, {"city": "Waukeenah", "firstname": "Marks", "lastname": "Graves", "age": 39, "address": "427 Lawn Court", "employer": "Dentrex", "state": "IL", "account_number": 251, "gender": "F", "balance": 13475, "email": "marksgraves@dentrex.com"}, {"city": "Dargan", "firstname": "Simon", "lastname": "Hogan", "age": 31, "address": "789 Suydam Place", "employer": "Dancerity", "state": "GA", "account_number": 256, "gender": "M", "balance": 48318, "email": "simonhogan@dancerity.com"}, {"city": "Dotsero", "firstname": "Thornton", "lastname": "Meyer", "age": 29, "address": "575 Elliott Place", "employer": "Peticular", "state": "NH", "account_number": 263, "gender": "M", "balance": 12837, "email": "thorntonmeyer@peticular.com"}, {"city": "Bethany", "firstname": "Avis", "lastname": "Blackwell", "age": 36, "address": "569 Jerome Avenue", "employer": "Magnina", "state": "MD", "account_number": 268, "gender": "M", "balance": 20925, "email": "avisblackwell@magnina.com"}, {"city": "Elwood", "firstname": "Moody", "lastname": "Harmon", "age": 39, "address": "233 Vanderbilt Street", "employer": "Otherside", "state": "MT", "account_number": 270, "gender": "F", "balance": 43951, "email": "moodyharmon@otherside.com"}, {"city": "Grandview", "firstname": "Reynolds", "lastname": "Barnett", "age": 31, "address": "394 Stockton Street", "employer": "Austex", "state": "MS", "account_number": 275, "gender": "M", "balance": 2384, "email": "reynoldsbarnett@austex.com"}, {"city": "Tampico", "firstname": "Gay", "lastname": "Schultz", "age": 25, "address": "805 Claver Place", "employer": "Handshake", "state": "MA", "account_number": 282, "gender": "F", "balance": 38540, "email": "gayschultz@handshake.com"}, {"city": "Cannondale", "firstname": "Valerie", "lastname": "Lang", "age": 35, "address": "423 Midwood Street", "employer": "Quarx", "state": "VT", "account_number": 287, "gender": "F", "balance": 10845, "email": "valerielang@quarx.com"}, {"city": "Turah", "firstname": "Pitts", "lastname": "Haynes", "age": 26, "address": "901 Broome Street", "employer": "Aquazure", "state": "SD", "account_number": 294, "gender": "M", "balance": 29582, "email": "pittshaynes@aquazure.com"}, {"city": "Bethpage", "firstname": "Angela", "lastname": "Talley", "age": 36, "address": "822 Bills Place", "employer": "Remold", "state": "DC", "account_number": 299, "gender": "F", "balance": 40825, "email": "angelatalley@remold.com"}, {"city": "Blanford", "firstname": "Isabella", "lastname": "Hewitt", "age": 40, "address": "455 Bedford Avenue", "employer": "Cincyr", "state": "IN", "account_number": 302, "gender": "M", "balance": 11298, "email": "isabellahewitt@cincyr.com"}, {"city": "Catherine", "firstname": "Enid", "lastname": "Ashley", "age": 23, "address": "412 Emerson Place", "employer": "Avenetro", "state": "WI", "account_number": 307, "gender": "M", "balance": 43355, "email": "enidashley@avenetro.com"}, {"city": "Veyo", "firstname": "Norton", "lastname": "Norton", "age": 35, "address": "252 Ditmas Avenue", "employer": "Talkola", "state": "SC", "account_number": 314, "gender": "M", "balance": 5848, "email": "nortonnorton@talkola.com"}, {"city": "Rose", "firstname": "Ferrell", "lastname": "Mckinney", "age": 36, "address": "874 Cranberry Street", "employer": "Portaline", "state": "WV", "account_number": 319, "gender": "M", "balance": 15430, "email": "ferrellmckinney@portaline.com"}, {"city": "Sisquoc", "firstname": "Marta", "lastname": "Larsen", "age": 35, "address": "617 Williams Court", "employer": "Manufact", "state": "MA", "account_number": 321, "gender": "M", "balance": 43370, "email": "martalarsen@manufact.com"}, {"city": "Westmoreland", "firstname": "Pearl", "lastname": "Reese", "age": 30, "address": "451 Colonial Court", "employer": "Accruex", "state": "MD", "account_number": 326, "gender": "F", "balance": 9692, "email": "pearlreese@accruex.com"}, {"city": "Kent", "firstname": "Trudy", "lastname": "Sweet", "age": 27, "address": "881 Kiely Place", "employer": "Acumentor", "state": "IA", "account_number": 333, "gender": "F", "balance": 22778, "email": "trudysweet@acumentor.com"}, {"city": "Iola", "firstname": "Pierce", "lastname": "Lawrence", "age": 35, "address": "318 Gallatin Place", "employer": "Lunchpad", "state": "MD", "account_number": 338, "gender": "M", "balance": 6969, "email": "piercelawrence@lunchpad.com"}, {"city": "Malott", "firstname": "Juarez", "lastname": "Gutierrez", "age": 40, "address": "802 Seba Avenue", "employer": "Billmed", "state": "OH", "account_number": 340, "gender": "F", "balance": 42072, "email": "juarezgutierrez@billmed.com"}, {"city": "Blackgum", "firstname": "Parker", "lastname": "Hines", "age": 38, "address": "715 Mill Avenue", "employer": "Baluba", "state": "KY", "account_number": 345, "gender": "M", "balance": 9812, "email": "parkerhines@baluba.com"}, {"city": "Bladensburg", "firstname": "Kendra", "lastname": "Mcintosh", "age": 31, "address": "963 Wolf Place", "employer": "Orboid", "state": "AK", "account_number": 352, "gender": "F", "balance": 20290, "email": "kendramcintosh@orboid.com"}, {"city": "Springville", "firstname": "Adele", "lastname": "Carroll", "age": 39, "address": "381 Arion Place", "employer": "Aquafire", "state": "RI", "account_number": 357, "gender": "F", "balance": 15102, "email": "adelecarroll@aquafire.com"}, {"city": "Dola", "firstname": "Felicia", "lastname": "Merrill", "age": 40, "address": "229 Branton Street", "employer": "Prosely", "state": "MA", "account_number": 364, "gender": "F", "balance": 35247, "email": "feliciamerrill@prosely.com"}, {"city": "Greenbackville", "firstname": "Mcfadden", "lastname": "Guy", "age": 28, "address": "445 Lott Avenue", "employer": "Kangle", "state": "DE", "account_number": 369, "gender": "F", "balance": 17047, "email": "mcfaddenguy@kangle.com"}, {"city": "Nanafalia", "firstname": "Barker", "lastname": "Allen", "age": 32, "address": "295 Wallabout Street", "employer": "Nexgene", "state": "NE", "account_number": 371, "gender": "F", "balance": 19751, "email": "barkerallen@nexgene.com"}, {"city": "Yogaville", "firstname": "Mcmillan", "lastname": "Dunn", "age": 21, "address": "771 Dorchester Road", "employer": "Eargo", "state": "RI", "account_number": 376, "gender": "F", "balance": 44407, "email": "mcmillandunn@eargo.com"}, {"city": "Smeltertown", "firstname": "Knox", "lastname": "Larson", "age": 28, "address": "962 Bartlett Place", "employer": "Bostonic", "state": "TX", "account_number": 383, "gender": "F", "balance": 48889, "email": "knoxlarson@bostonic.com"}, {"city": "Alleghenyville", "firstname": "Julianne", "lastname": "Nicholson", "age": 26, "address": "338 Crescent Street", "employer": "Viasia", "state": "MO", "account_number": 388, "gender": "F", "balance": 9606, "email": "juliannenicholson@viasia.com"}, {"city": "Dodge", "firstname": "Ramona", "lastname": "Roy", "age": 32, "address": "135 Banner Avenue", "employer": "Deminimum", "state": "ID", "account_number": 390, "gender": "M", "balance": 7464, "email": "ramonaroy@deminimum.com"}, {"city": "Yonah", "firstname": "Juliet", "lastname": "Whitaker", "age": 31, "address": "128 Remsen Avenue", "employer": "Toyletry", "state": "LA", "account_number": 395, "gender": "M", "balance": 18679, "email": "julietwhitaker@toyletry.com"}, {"city": "Bawcomville", "firstname": "Williamson", "lastname": "Horn", "age": 32, "address": "223 Strickland Avenue", "employer": "Nimon", "state": "NJ", "account_number": 403, "gender": "M", "balance": 18833, "email": "williamsonhorn@nimon.com"}, {"city": "Fairlee", "firstname": "Lidia", "lastname": "Guerrero", "age": 30, "address": "254 Stratford Road", "employer": "Snowpoke", "state": "LA", "account_number": 408, "gender": "M", "balance": 34666, "email": "lidiaguerrero@snowpoke.com"}, {"city": "Southview", "firstname": "Fox", "lastname": "Cardenas", "age": 39, "address": "987 Monitor Street", "employer": "Corpulse", "state": "NE", "account_number": 410, "gender": "M", "balance": 31200, "email": "foxcardenas@corpulse.com"}, {"city": "Chumuckla", "firstname": "Martinez", "lastname": "Benson", "age": 36, "address": "172 Berkeley Place", "employer": "Enersol", "state": "AL", "account_number": 415, "gender": "M", "balance": 19449, "email": "martinezbenson@enersol.com"}, {"city": "Elrama", "firstname": "Brigitte", "lastname": "Scott", "age": 26, "address": "662 Vermont Court", "employer": "Waretel", "state": "VA", "account_number": 422, "gender": "M", "balance": 40162, "email": "brigittescott@waretel.com"}, {"city": "Zarephath", "firstname": "Rebekah", "lastname": "Garrison", "age": 36, "address": "837 Hampton Avenue", "employer": "Niquent", "state": "NY", "account_number": 427, "gender": "F", "balance": 1463, "email": "rebekahgarrison@niquent.com"}, {"city": "Stevens", "firstname": "Christa", "lastname": "Huff", "age": 25, "address": "454 Oriental Boulevard", "employer": "Earthpure", "state": "DC", "account_number": 434, "gender": "M", "balance": 11329, "email": "christahuff@earthpure.com"}, {"city": "Newcastle", "firstname": "Lula", "lastname": "Williams", "age": 35, "address": "630 Furman Avenue", "employer": "Vinch", "state": "ME", "account_number": 439, "gender": "M", "balance": 22752, "email": "lulawilliams@vinch.com"}, {"city": "Laurelton", "firstname": "Dickson", "lastname": "Mcgee", "age": 29, "address": "478 Knight Court", "employer": "Gogol", "state": "AR", "account_number": 441, "gender": "M", "balance": 47947, "email": "dicksonmcgee@gogol.com"}, {"city": "Brownlee", "firstname": "Lolita", "lastname": "Fleming", "age": 32, "address": "918 Bridge Street", "employer": "Vidto", "state": "HI", "account_number": 446, "gender": "F", "balance": 23071, "email": "lolitafleming@vidto.com"}, {"city": "Alderpoint", "firstname": "Hood", "lastname": "Powell", "age": 24, "address": "479 Brevoort Place", "employer": "Vortexaco", "state": "CT", "account_number": 453, "gender": "F", "balance": 21520, "email": "hoodpowell@vortexaco.com"}, {"city": "Bordelonville", "firstname": "Aida", "lastname": "Wolf", "age": 21, "address": "403 Thames Street", "employer": "Isis", "state": "ME", "account_number": 458, "gender": "F", "balance": 8865, "email": "aidawolf@isis.com"}, {"city": "Albany", "firstname": "Aguirre", "lastname": "White", "age": 21, "address": "190 Crooke Avenue", "employer": "Unq", "state": "NJ", "account_number": 460, "gender": "F", "balance": 37734, "email": "aguirrewhite@unq.com"}, {"city": "Needmore", "firstname": "Pearlie", "lastname": "Holman", "age": 29, "address": "916 Evergreen Avenue", "employer": "Hometown", "state": "UT", "account_number": 465, "gender": "M", "balance": 10681, "email": "pearlieholman@hometown.com"}, {"city": "Movico", "firstname": "Lee", "lastname": "Long", "age": 32, "address": "288 Mill Street", "employer": "Comverges", "state": "MT", "account_number": 472, "gender": "F", "balance": 25571, "email": "leelong@comverges.com"}, {"city": "Byrnedale", "firstname": "Holcomb", "lastname": "Cobb", "age": 40, "address": "369 Marconi Place", "employer": "Steeltab", "state": "CA", "account_number": 477, "gender": "M", "balance": 25892, "email": "holcombcobb@steeltab.com"}, {"city": "Harborton", "firstname": "Staci", "lastname": "Melendez", "age": 35, "address": "751 Otsego Street", "employer": "Namebox", "state": "NV", "account_number": 484, "gender": "F", "balance": 3274, "email": "stacimelendez@namebox.com"}, {"city": "Riviera", "firstname": "Garrett", "lastname": "Langley", "age": 36, "address": "331 Bowne Street", "employer": "Zillidium", "state": "LA", "account_number": 489, "gender": "M", "balance": 7879, "email": "garrettlangley@zillidium.com"}, {"city": "Bartonsville", "firstname": "Teresa", "lastname": "Owen", "age": 24, "address": "713 Canton Court", "employer": "Plasmos", "state": "NH", "account_number": 491, "gender": "F", "balance": 42942, "email": "teresaowen@plasmos.com"}, {"city": "Cliffside", "firstname": "Alison", "lastname": "Conrad", "age": 35, "address": "347 Varet Street", "employer": "Perkle", "state": "OH", "account_number": 496, "gender": "F", "balance": 14869, "email": "alisonconrad@perkle.com"}, {"city": "Cashtown", "firstname": "Shanna", "lastname": "Chambers", "age": 23, "address": "220 Beard Street", "employer": "Corporana", "state": "AZ", "account_number": 504, "gender": "M", "balance": 49205, "email": "shannachambers@corporana.com"}, {"city": "Loveland", "firstname": "Durham", "lastname": "Pacheco", "age": 40, "address": "129 Plymouth Street", "employer": "Datacator", "state": "NC", "account_number": 509, "gender": "M", "balance": 34754, "email": "durhampacheco@datacator.com"}, {"city": "Coyote", "firstname": "Elba", "lastname": "Grant", "age": 24, "address": "157 Bijou Avenue", "employer": "Dognost", "state": "MT", "account_number": 511, "gender": "F", "balance": 40908, "email": "elbagrant@dognost.com"}, {"city": "Carrsville", "firstname": "Roy", "lastname": "Smith", "age": 37, "address": "770 Cherry Street", "employer": "Parleynet", "state": "RI", "account_number": 516, "gender": "M", "balance": 44940, "email": "roysmith@parleynet.com"}, {"city": "Jacumba", "firstname": "Amalia", "lastname": "Benjamin", "age": 40, "address": "173 Bushwick Place", "employer": "Sentia", "state": "OK", "account_number": 523, "gender": "F", "balance": 28729, "email": "amaliabenjamin@sentia.com"}, {"city": "Knowlton", "firstname": "Thompson", "lastname": "Hoover", "age": 27, "address": "580 Garden Street", "employer": "Portalis", "state": "AL", "account_number": 528, "gender": "F", "balance": 4071, "email": "thompsonhoover@portalis.com"}, {"city": "Biddle", "firstname": "Kathrine", "lastname": "Evans", "age": 37, "address": "422 Division Place", "employer": "Spherix", "state": "CO", "account_number": 530, "gender": "M", "balance": 8840, "email": "kathrineevans@spherix.com"}, {"city": "Kenmar", "firstname": "Fry", "lastname": "George", "age": 34, "address": "722 Green Street", "employer": "Ewaves", "state": "DE", "account_number": 535, "gender": "M", "balance": 8715, "email": "frygeorge@ewaves.com"}, {"city": "Beaverdale", "firstname": "Michelle", "lastname": "Mayo", "age": 35, "address": "657 Caton Place", "employer": "Biflex", "state": "WY", "account_number": 542, "gender": "M", "balance": 23285, "email": "michellemayo@biflex.com"}, {"city": "Chelsea", "firstname": "Eaton", "lastname": "Rios", "age": 32, "address": "744 Withers Street", "employer": "Podunk", "state": "IA", "account_number": 547, "gender": "M", "balance": 12870, "email": "eatonrios@podunk.com"}, {"city": "Valle", "firstname": "Townsend", "lastname": "Atkins", "age": 39, "address": "566 Ira Court", "employer": "Acruex", "state": "IA", "account_number": 554, "gender": "M", "balance": 33163, "email": "townsendatkins@acruex.com"}, {"city": "Newry", "firstname": "Tonia", "lastname": "Schmidt", "age": 38, "address": "508 Sheffield Avenue", "employer": "Extro", "state": "CT", "account_number": 559, "gender": "F", "balance": 11450, "email": "toniaschmidt@extro.com"}, {"city": "Trail", "firstname": "Sellers", "lastname": "Davis", "age": 30, "address": "860 Madoc Avenue", "employer": "Isodrive", "state": "KS", "account_number": 561, "gender": "M", "balance": 12370, "email": "sellersdavis@isodrive.com"}, {"city": "Rosewood", "firstname": "Cox", "lastname": "Roman", "age": 37, "address": "349 Winthrop Street", "employer": "Medcom", "state": "WY", "account_number": 566, "gender": "M", "balance": 6183, "email": "coxroman@medcom.com"}, {"city": "Marshall", "firstname": "Callie", "lastname": "Castaneda", "age": 36, "address": "799 Scott Avenue", "employer": "Earthwax", "state": "NH", "account_number": 573, "gender": "M", "balance": 32171, "email": "calliecastaneda@earthwax.com"}, {"city": "Aguila", "firstname": "Holmes", "lastname": "Mcknight", "age": 37, "address": "969 Metropolitan Avenue", "employer": "Cubicide", "state": "PA", "account_number": 578, "gender": "M", "balance": 34259, "email": "holmesmcknight@cubicide.com"}, {"city": "Farmington", "firstname": "Mcmahon", "lastname": "York", "age": 34, "address": "475 Beacon Court", "employer": "Zillar", "state": "MO", "account_number": 580, "gender": "M", "balance": 13716, "email": "mcmahonyork@zillar.com"}, {"city": "Eastmont", "firstname": "Nieves", "lastname": "Nolan", "age": 32, "address": "115 Seagate Terrace", "employer": "Jumpstack", "state": "UT", "account_number": 585, "gender": "M", "balance": 26745, "email": "nievesnolan@jumpstack.com"}, {"city": "Rockingham", "firstname": "Head", "lastname": "Webster", "age": 36, "address": "987 Lefferts Avenue", "employer": "Empirica", "state": "TN", "account_number": 592, "gender": "F", "balance": 32968, "email": "headwebster@empirica.com"}, {"city": "Vallonia", "firstname": "Penny", "lastname": "Knowles", "age": 33, "address": "139 Forbell Street", "employer": "Ersum", "state": "IA", "account_number": 597, "gender": "M", "balance": 11246, "email": "pennyknowles@ersum.com"}, {"city": "Wanship", "firstname": "Simmons", "lastname": "Byers", "age": 37, "address": "250 Dictum Court", "employer": "Qualitex", "state": "OH", "account_number": 600, "gender": "M", "balance": 10336, "email": "simmonsbyers@qualitex.com"}, {"city": "Calvary", "firstname": "Mcclain", "lastname": "Manning", "age": 24, "address": "832 Leonard Street", "employer": "Qiao", "state": "TX", "account_number": 605, "gender": "M", "balance": 38427, "email": "mcclainmanning@qiao.com"}, {"city": "Virgie", "firstname": "Dunn", "lastname": "Cameron", "age": 32, "address": "156 Lorimer Street", "employer": "Isonus", "state": "ND", "account_number": 612, "gender": "F", "balance": 11868, "email": "dunncameron@isonus.com"}, {"city": "Clarktown", "firstname": "Kitty", "lastname": "Cooley", "age": 22, "address": "788 Seagate Avenue", "employer": "Ultrimax", "state": "MD", "account_number": 617, "gender": "M", "balance": 35445, "email": "kittycooley@ultrimax.com"}, {"city": "Roulette", "firstname": "Roxanne", "lastname": "Franklin", "age": 39, "address": "299 Woodrow Court", "employer": "Silodyne", "state": "VA", "account_number": 624, "gender": "F", "balance": 27538, "email": "roxannefranklin@silodyne.com"}, {"city": "Brownsville", "firstname": "Mcclure", "lastname": "Rodgers", "age": 26, "address": "806 Pierrepont Place", "employer": "Elita", "state": "MI", "account_number": 629, "gender": "M", "balance": 32987, "email": "mcclurerodgers@elita.com"}, {"city": "Wyano", "firstname": "Corrine", "lastname": "Barber", "age": 32, "address": "447 Hunts Lane", "employer": "Quarmony", "state": "IL", "account_number": 631, "gender": "F", "balance": 21657, "email": "corrinebarber@quarmony.com"}, {"city": "Sperryville", "firstname": "Agnes", "lastname": "Hooper", "age": 25, "address": "865 Hanson Place", "employer": "Digial", "state": "OK", "account_number": 636, "gender": "M", "balance": 8036, "email": "agneshooper@digial.com"}, {"city": "Lewis", "firstname": "Hendricks", "lastname": "Stokes", "age": 23, "address": "142 Barbey Street", "employer": "Remotion", "state": "MA", "account_number": 643, "gender": "F", "balance": 8057, "email": "hendricksstokes@remotion.com"}, {"city": "Bascom", "firstname": "Terry", "lastname": "Montgomery", "age": 21, "address": "115 Franklin Avenue", "employer": "Enervate", "state": "MA", "account_number": 648, "gender": "F", "balance": 11506, "email": "terrymontgomery@enervate.com"}, {"city": "Cobbtown", "firstname": "Benton", "lastname": "Knight", "age": 28, "address": "850 Aitken Place", "employer": "Pholio", "state": "AL", "account_number": 650, "gender": "F", "balance": 18091, "email": "bentonknight@pholio.com"}, {"city": "Wacissa", "firstname": "Eula", "lastname": "Taylor", "age": 30, "address": "520 Orient Avenue", "employer": "Miracula", "state": "IN", "account_number": 655, "gender": "M", "balance": 22912, "email": "eulataylor@miracula.com"}, {"city": "Grahamtown", "firstname": "Daisy", "lastname": "Burnett", "age": 33, "address": "114 Norman Avenue", "employer": "Liquicom", "state": "MD", "account_number": 662, "gender": "M", "balance": 10138, "email": "daisyburnett@liquicom.com"}, {"city": "Wilsonia", "firstname": "Juliana", "lastname": "Chase", "age": 32, "address": "496 Coleridge Street", "employer": "Comtract", "state": "NJ", "account_number": 667, "gender": "M", "balance": 22559, "email": "julianachase@comtract.com"}, {"city": "Fairhaven", "firstname": "Watts", "lastname": "Shannon", "age": 22, "address": "600 Story Street", "employer": "Joviold", "state": "ID", "account_number": 674, "gender": "F", "balance": 36038, "email": "wattsshannon@joviold.com"}, {"city": "Richville", "firstname": "Henrietta", "lastname": "Bonner", "age": 33, "address": "461 Bond Street", "employer": "Geekol", "state": "WA", "account_number": 679, "gender": "M", "balance": 20149, "email": "henriettabonner@geekol.com"}, {"city": "Smock", "firstname": "Velazquez", "lastname": "Wolfe", "age": 33, "address": "773 Eckford Street", "employer": "Zisis", "state": "ME", "account_number": 681, "gender": "M", "balance": 34244, "email": "velazquezwolfe@zisis.com"}, {"city": "Gibbsville", "firstname": "Decker", "lastname": "Mcclure", "age": 30, "address": "236 Commerce Street", "employer": "Everest", "state": "TN", "account_number": 686, "gender": "F", "balance": 10116, "email": "deckermcclure@everest.com"}, {"city": "Esmont", "firstname": "Tabatha", "lastname": "Zimmerman", "age": 30, "address": "284 Emmons Avenue", "employer": "Pushcart", "state": "NC", "account_number": 693, "gender": "F", "balance": 31233, "email": "tabathazimmerman@pushcart.com"}, {"city": "Starks", "firstname": "Baker", "lastname": "Armstrong", "age": 36, "address": "796 Tehama Street", "employer": "Nurplex", "state": "UT", "account_number": 698, "gender": "F", "balance": 14965, "email": "bakerarmstrong@nurplex.com"}, {"city": "Coventry", "firstname": "Gardner", "lastname": "Griffith", "age": 27, "address": "187 Moore Place", "employer": "Vertide", "state": "NV", "account_number": 701, "gender": "M", "balance": 23772, "email": "gardnergriffith@vertide.com"}, {"city": "Woodruff", "firstname": "Eliza", "lastname": "Potter", "age": 39, "address": "945 Dunham Place", "employer": "Playce", "state": "AK", "account_number": 706, "gender": "M", "balance": 5282, "email": "elizapotter@playce.com"}, {"city": "Hillsboro", "firstname": "Iris", "lastname": "Mcguire", "age": 21, "address": "508 Benson Avenue", "employer": "Duflex", "state": "MO", "account_number": 713, "gender": "F", "balance": 20054, "email": "irismcguire@duflex.com"}, {"city": "Curtice", "firstname": "Hickman", "lastname": "Dillard", "age": 22, "address": "132 Etna Street", "employer": "Genmy", "state": "NV", "account_number": 718, "gender": "F", "balance": 13876, "email": "hickmandillard@genmy.com"}, {"city": "Allison", "firstname": "Ruth", "lastname": "Vance", "age": 32, "address": "229 Adams Street", "employer": "Zilidium", "state": "IA", "account_number": 720, "gender": "F", "balance": 31356, "email": "ruthvance@zilidium.com"}, {"city": "Navarre", "firstname": "Reeves", "lastname": "Tillman", "age": 26, "address": "674 Ivan Court", "employer": "Cemention", "state": "MA", "account_number": 725, "gender": "M", "balance": 14677, "email": "reevestillman@cemention.com"}, {"city": "Cresaptown", "firstname": "Delia", "lastname": "Cruz", "age": 37, "address": "870 Cheever Place", "employer": "Multron", "state": "NH", "account_number": 732, "gender": "F", "balance": 38445, "email": "deliacruz@multron.com"}, {"city": "Brazos", "firstname": "Sampson", "lastname": "Yates", "age": 23, "address": "214 Cox Place", "employer": "Signidyne", "state": "GA", "account_number": 737, "gender": "F", "balance": 40431, "email": "sampsonyates@signidyne.com"}, {"city": "Moraida", "firstname": "Bernard", "lastname": "Martinez", "age": 21, "address": "148 Dunne Place", "employer": "Dragbot", "state": "MN", "account_number": 744, "gender": "M", "balance": 8690, "email": "bernardmartinez@dragbot.com"}, {"city": "Brady", "firstname": "Rush", "lastname": "Boyle", "age": 36, "address": "310 Argyle Road", "employer": "Sportan", "state
gitextract_oinxtvpa/
├── .github/
│ └── workflows/
│ └── actions.yml
├── .gitignore
├── .travis.yml
├── BUILDING.md
├── LICENSE
├── README.md
├── doc/
│ └── features.md
├── open-source.pom.xml
├── pom.xml
└── src/
├── _site/
│ ├── controllers.js
│ ├── editor.js
│ ├── index.html
│ ├── mapping_parser.js
│ ├── query.js
│ ├── style.css
│ ├── table_presenter.js
│ ├── tests/
│ │ ├── SpecRunner.html
│ │ ├── resources/
│ │ │ ├── expectedBody4nestedAggregation.json
│ │ │ ├── expectedBody4simpleAggregation.json
│ │ │ ├── expectedBody4simpleQueryResult.json
│ │ │ ├── expectedBody4statsAgg.json
│ │ │ ├── nestedAggregationResult.json
│ │ │ ├── simpleAggregationResult.json
│ │ │ ├── simpleQueryResult.json
│ │ │ └── statsAggResult.json
│ │ └── spec/
│ │ ├── ResultHandlersSpec.js
│ │ └── TablePresenterSpec.js
│ └── vendor/
│ ├── bootstrap/
│ │ ├── css/
│ │ │ ├── bootstrap-theme.css
│ │ │ └── bootstrap.css
│ │ └── js/
│ │ ├── bootstrap.js
│ │ └── npm.js
│ ├── codemirror/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── addon/
│ │ │ ├── comment/
│ │ │ │ ├── comment.js
│ │ │ │ └── continuecomment.js
│ │ │ ├── dialog/
│ │ │ │ ├── dialog.css
│ │ │ │ └── dialog.js
│ │ │ ├── display/
│ │ │ │ ├── fullscreen.css
│ │ │ │ ├── fullscreen.js
│ │ │ │ ├── placeholder.js
│ │ │ │ └── rulers.js
│ │ │ ├── edit/
│ │ │ │ ├── closebrackets.js
│ │ │ │ ├── closetag.js
│ │ │ │ ├── continuelist.js
│ │ │ │ ├── matchbrackets.js
│ │ │ │ ├── matchtags.js
│ │ │ │ └── trailingspace.js
│ │ │ ├── fold/
│ │ │ │ ├── brace-fold.js
│ │ │ │ ├── comment-fold.js
│ │ │ │ ├── foldcode.js
│ │ │ │ ├── foldgutter.css
│ │ │ │ ├── foldgutter.js
│ │ │ │ ├── indent-fold.js
│ │ │ │ ├── markdown-fold.js
│ │ │ │ └── xml-fold.js
│ │ │ ├── hint/
│ │ │ │ ├── anyword-hint.js
│ │ │ │ ├── css-hint.js
│ │ │ │ ├── html-hint.js
│ │ │ │ ├── javascript-hint.js
│ │ │ │ ├── python-hint.js
│ │ │ │ ├── show-hint.css
│ │ │ │ ├── show-hint.js
│ │ │ │ ├── sql-hint.js
│ │ │ │ └── xml-hint.js
│ │ │ ├── lint/
│ │ │ │ ├── coffeescript-lint.js
│ │ │ │ ├── css-lint.js
│ │ │ │ ├── javascript-lint.js
│ │ │ │ ├── json-lint.js
│ │ │ │ ├── lint.css
│ │ │ │ ├── lint.js
│ │ │ │ └── yaml-lint.js
│ │ │ ├── merge/
│ │ │ │ ├── merge.css
│ │ │ │ └── merge.js
│ │ │ ├── mode/
│ │ │ │ ├── loadmode.js
│ │ │ │ ├── multiplex.js
│ │ │ │ ├── multiplex_test.js
│ │ │ │ ├── overlay.js
│ │ │ │ └── simple.js
│ │ │ ├── runmode/
│ │ │ │ ├── colorize.js
│ │ │ │ ├── runmode-standalone.js
│ │ │ │ ├── runmode.js
│ │ │ │ └── runmode.node.js
│ │ │ ├── scroll/
│ │ │ │ └── scrollpastend.js
│ │ │ ├── search/
│ │ │ │ ├── match-highlighter.js
│ │ │ │ ├── search.js
│ │ │ │ └── searchcursor.js
│ │ │ ├── selection/
│ │ │ │ ├── active-line.js
│ │ │ │ └── mark-selection.js
│ │ │ ├── tern/
│ │ │ │ ├── tern.css
│ │ │ │ ├── tern.js
│ │ │ │ └── worker.js
│ │ │ └── wrap/
│ │ │ └── hardwrap.js
│ │ ├── bin/
│ │ │ ├── authors.sh
│ │ │ ├── compress
│ │ │ ├── lint
│ │ │ ├── release
│ │ │ └── source-highlight
│ │ ├── bower.json
│ │ ├── demo/
│ │ │ ├── activeline.html
│ │ │ ├── anywordhint.html
│ │ │ ├── bidi.html
│ │ │ ├── btree.html
│ │ │ ├── buffers.html
│ │ │ ├── changemode.html
│ │ │ ├── closebrackets.html
│ │ │ ├── closetag.html
│ │ │ ├── complete.html
│ │ │ ├── emacs.html
│ │ │ ├── folding.html
│ │ │ ├── fullscreen.html
│ │ │ ├── hardwrap.html
│ │ │ ├── html5complete.html
│ │ │ ├── indentwrap.html
│ │ │ ├── lint.html
│ │ │ ├── loadmode.html
│ │ │ ├── marker.html
│ │ │ ├── markselection.html
│ │ │ ├── matchhighlighter.html
│ │ │ ├── matchtags.html
│ │ │ ├── merge.html
│ │ │ ├── multiplex.html
│ │ │ ├── mustache.html
│ │ │ ├── placeholder.html
│ │ │ ├── preview.html
│ │ │ ├── requirejs.html
│ │ │ ├── resize.html
│ │ │ ├── rulers.html
│ │ │ ├── runmode.html
│ │ │ ├── search.html
│ │ │ ├── simplemode.html
│ │ │ ├── spanaffectswrapping_shim.html
│ │ │ ├── sublime.html
│ │ │ ├── tern.html
│ │ │ ├── theme.html
│ │ │ ├── trailingspace.html
│ │ │ ├── variableheight.html
│ │ │ ├── vim.html
│ │ │ ├── visibletabs.html
│ │ │ ├── widget.html
│ │ │ └── xmlcomplete.html
│ │ ├── doc/
│ │ │ ├── activebookmark.js
│ │ │ ├── compress.html
│ │ │ ├── docs.css
│ │ │ ├── internals.html
│ │ │ ├── manual.html
│ │ │ ├── realworld.html
│ │ │ ├── releases.html
│ │ │ ├── reporting.html
│ │ │ ├── upgrade_v2.2.html
│ │ │ ├── upgrade_v3.html
│ │ │ └── upgrade_v4.html
│ │ ├── index.html
│ │ ├── keymap/
│ │ │ ├── emacs.js
│ │ │ ├── sublime.js
│ │ │ └── vim.js
│ │ ├── lib/
│ │ │ ├── codemirror.css
│ │ │ └── codemirror.js
│ │ ├── mode/
│ │ │ ├── apl/
│ │ │ │ ├── apl.js
│ │ │ │ └── index.html
│ │ │ ├── asterisk/
│ │ │ │ ├── asterisk.js
│ │ │ │ └── index.html
│ │ │ ├── clike/
│ │ │ │ ├── clike.js
│ │ │ │ ├── index.html
│ │ │ │ └── scala.html
│ │ │ ├── clojure/
│ │ │ │ ├── clojure.js
│ │ │ │ └── index.html
│ │ │ ├── cobol/
│ │ │ │ ├── cobol.js
│ │ │ │ └── index.html
│ │ │ ├── coffeescript/
│ │ │ │ ├── coffeescript.js
│ │ │ │ └── index.html
│ │ │ ├── commonlisp/
│ │ │ │ ├── commonlisp.js
│ │ │ │ └── index.html
│ │ │ ├── css/
│ │ │ │ ├── css.js
│ │ │ │ ├── index.html
│ │ │ │ ├── less.html
│ │ │ │ ├── less_test.js
│ │ │ │ ├── scss.html
│ │ │ │ ├── scss_test.js
│ │ │ │ └── test.js
│ │ │ ├── cypher/
│ │ │ │ ├── cypher.js
│ │ │ │ └── index.html
│ │ │ ├── d/
│ │ │ │ ├── d.js
│ │ │ │ └── index.html
│ │ │ ├── diff/
│ │ │ │ ├── diff.js
│ │ │ │ └── index.html
│ │ │ ├── django/
│ │ │ │ ├── django.js
│ │ │ │ └── index.html
│ │ │ ├── dockerfile/
│ │ │ │ ├── dockerfile.js
│ │ │ │ └── index.html
│ │ │ ├── dtd/
│ │ │ │ ├── dtd.js
│ │ │ │ └── index.html
│ │ │ ├── dylan/
│ │ │ │ ├── dylan.js
│ │ │ │ └── index.html
│ │ │ ├── ecl/
│ │ │ │ ├── ecl.js
│ │ │ │ └── index.html
│ │ │ ├── eiffel/
│ │ │ │ ├── eiffel.js
│ │ │ │ └── index.html
│ │ │ ├── erlang/
│ │ │ │ ├── erlang.js
│ │ │ │ └── index.html
│ │ │ ├── fortran/
│ │ │ │ ├── fortran.js
│ │ │ │ └── index.html
│ │ │ ├── gas/
│ │ │ │ ├── gas.js
│ │ │ │ └── index.html
│ │ │ ├── gfm/
│ │ │ │ ├── gfm.js
│ │ │ │ ├── index.html
│ │ │ │ └── test.js
│ │ │ ├── gherkin/
│ │ │ │ ├── gherkin.js
│ │ │ │ └── index.html
│ │ │ ├── go/
│ │ │ │ ├── go.js
│ │ │ │ └── index.html
│ │ │ ├── groovy/
│ │ │ │ ├── groovy.js
│ │ │ │ └── index.html
│ │ │ ├── haml/
│ │ │ │ ├── haml.js
│ │ │ │ ├── index.html
│ │ │ │ └── test.js
│ │ │ ├── haskell/
│ │ │ │ ├── haskell.js
│ │ │ │ └── index.html
│ │ │ ├── haxe/
│ │ │ │ ├── haxe.js
│ │ │ │ └── index.html
│ │ │ ├── htmlembedded/
│ │ │ │ ├── htmlembedded.js
│ │ │ │ └── index.html
│ │ │ ├── htmlmixed/
│ │ │ │ ├── htmlmixed.js
│ │ │ │ └── index.html
│ │ │ ├── http/
│ │ │ │ ├── http.js
│ │ │ │ └── index.html
│ │ │ ├── idl/
│ │ │ │ ├── idl.js
│ │ │ │ └── index.html
│ │ │ ├── index.html
│ │ │ ├── jade/
│ │ │ │ ├── index.html
│ │ │ │ └── jade.js
│ │ │ ├── javascript/
│ │ │ │ ├── index.html
│ │ │ │ ├── javascript.js
│ │ │ │ ├── json-ld.html
│ │ │ │ ├── test.js
│ │ │ │ └── typescript.html
│ │ │ ├── jinja2/
│ │ │ │ ├── index.html
│ │ │ │ └── jinja2.js
│ │ │ ├── julia/
│ │ │ │ ├── index.html
│ │ │ │ └── julia.js
│ │ │ ├── kotlin/
│ │ │ │ ├── index.html
│ │ │ │ └── kotlin.js
│ │ │ ├── livescript/
│ │ │ │ ├── index.html
│ │ │ │ └── livescript.js
│ │ │ ├── lua/
│ │ │ │ ├── index.html
│ │ │ │ └── lua.js
│ │ │ ├── markdown/
│ │ │ │ ├── index.html
│ │ │ │ ├── markdown.js
│ │ │ │ └── test.js
│ │ │ ├── meta.js
│ │ │ ├── mirc/
│ │ │ │ ├── index.html
│ │ │ │ └── mirc.js
│ │ │ ├── mllike/
│ │ │ │ ├── index.html
│ │ │ │ └── mllike.js
│ │ │ ├── modelica/
│ │ │ │ ├── index.html
│ │ │ │ └── modelica.js
│ │ │ ├── nginx/
│ │ │ │ ├── index.html
│ │ │ │ └── nginx.js
│ │ │ ├── ntriples/
│ │ │ │ ├── index.html
│ │ │ │ └── ntriples.js
│ │ │ ├── octave/
│ │ │ │ ├── index.html
│ │ │ │ └── octave.js
│ │ │ ├── pascal/
│ │ │ │ ├── index.html
│ │ │ │ └── pascal.js
│ │ │ ├── pegjs/
│ │ │ │ ├── index.html
│ │ │ │ └── pegjs.js
│ │ │ ├── perl/
│ │ │ │ ├── index.html
│ │ │ │ └── perl.js
│ │ │ ├── php/
│ │ │ │ ├── index.html
│ │ │ │ ├── php.js
│ │ │ │ └── test.js
│ │ │ ├── pig/
│ │ │ │ ├── index.html
│ │ │ │ └── pig.js
│ │ │ ├── properties/
│ │ │ │ ├── index.html
│ │ │ │ └── properties.js
│ │ │ ├── puppet/
│ │ │ │ ├── index.html
│ │ │ │ └── puppet.js
│ │ │ ├── python/
│ │ │ │ ├── index.html
│ │ │ │ └── python.js
│ │ │ ├── q/
│ │ │ │ ├── index.html
│ │ │ │ └── q.js
│ │ │ ├── r/
│ │ │ │ ├── index.html
│ │ │ │ └── r.js
│ │ │ ├── rpm/
│ │ │ │ ├── changes/
│ │ │ │ │ └── index.html
│ │ │ │ ├── index.html
│ │ │ │ └── rpm.js
│ │ │ ├── rst/
│ │ │ │ ├── index.html
│ │ │ │ └── rst.js
│ │ │ ├── ruby/
│ │ │ │ ├── index.html
│ │ │ │ ├── ruby.js
│ │ │ │ └── test.js
│ │ │ ├── rust/
│ │ │ │ ├── index.html
│ │ │ │ └── rust.js
│ │ │ ├── sass/
│ │ │ │ ├── index.html
│ │ │ │ └── sass.js
│ │ │ ├── scheme/
│ │ │ │ ├── index.html
│ │ │ │ └── scheme.js
│ │ │ ├── shell/
│ │ │ │ ├── index.html
│ │ │ │ ├── shell.js
│ │ │ │ └── test.js
│ │ │ ├── sieve/
│ │ │ │ ├── index.html
│ │ │ │ └── sieve.js
│ │ │ ├── slim/
│ │ │ │ ├── index.html
│ │ │ │ ├── slim.js
│ │ │ │ └── test.js
│ │ │ ├── smalltalk/
│ │ │ │ ├── index.html
│ │ │ │ └── smalltalk.js
│ │ │ ├── smarty/
│ │ │ │ ├── index.html
│ │ │ │ └── smarty.js
│ │ │ ├── smartymixed/
│ │ │ │ ├── index.html
│ │ │ │ └── smartymixed.js
│ │ │ ├── solr/
│ │ │ │ ├── index.html
│ │ │ │ └── solr.js
│ │ │ ├── sparql/
│ │ │ │ ├── index.html
│ │ │ │ └── sparql.js
│ │ │ ├── sql/
│ │ │ │ ├── index.html
│ │ │ │ └── sql.js
│ │ │ ├── stex/
│ │ │ │ ├── index.html
│ │ │ │ ├── stex.js
│ │ │ │ └── test.js
│ │ │ ├── tcl/
│ │ │ │ ├── index.html
│ │ │ │ └── tcl.js
│ │ │ ├── textile/
│ │ │ │ ├── index.html
│ │ │ │ ├── test.js
│ │ │ │ └── textile.js
│ │ │ ├── tiddlywiki/
│ │ │ │ ├── index.html
│ │ │ │ ├── tiddlywiki.css
│ │ │ │ └── tiddlywiki.js
│ │ │ ├── tiki/
│ │ │ │ ├── index.html
│ │ │ │ ├── tiki.css
│ │ │ │ └── tiki.js
│ │ │ ├── toml/
│ │ │ │ ├── index.html
│ │ │ │ └── toml.js
│ │ │ ├── tornado/
│ │ │ │ ├── index.html
│ │ │ │ └── tornado.js
│ │ │ ├── turtle/
│ │ │ │ ├── index.html
│ │ │ │ └── turtle.js
│ │ │ ├── vb/
│ │ │ │ ├── index.html
│ │ │ │ └── vb.js
│ │ │ ├── vbscript/
│ │ │ │ ├── index.html
│ │ │ │ └── vbscript.js
│ │ │ ├── velocity/
│ │ │ │ ├── index.html
│ │ │ │ └── velocity.js
│ │ │ ├── verilog/
│ │ │ │ ├── index.html
│ │ │ │ ├── test.js
│ │ │ │ └── verilog.js
│ │ │ ├── xml/
│ │ │ │ ├── index.html
│ │ │ │ ├── test.js
│ │ │ │ └── xml.js
│ │ │ ├── xquery/
│ │ │ │ ├── index.html
│ │ │ │ ├── test.js
│ │ │ │ └── xquery.js
│ │ │ ├── yaml/
│ │ │ │ ├── index.html
│ │ │ │ └── yaml.js
│ │ │ └── z80/
│ │ │ ├── index.html
│ │ │ └── z80.js
│ │ ├── package.json
│ │ ├── test/
│ │ │ ├── comment_test.js
│ │ │ ├── doc_test.js
│ │ │ ├── driver.js
│ │ │ ├── emacs_test.js
│ │ │ ├── index.html
│ │ │ ├── lint/
│ │ │ │ ├── acorn.js
│ │ │ │ ├── lint.js
│ │ │ │ └── walk.js
│ │ │ ├── mode_test.css
│ │ │ ├── mode_test.js
│ │ │ ├── multi_test.js
│ │ │ ├── phantom_driver.js
│ │ │ ├── run.js
│ │ │ ├── search_test.js
│ │ │ ├── sublime_test.js
│ │ │ ├── test.js
│ │ │ └── vim_test.js
│ │ └── theme/
│ │ ├── 3024-day.css
│ │ ├── 3024-night.css
│ │ ├── ambiance-mobile.css
│ │ ├── ambiance.css
│ │ ├── base16-dark.css
│ │ ├── base16-light.css
│ │ ├── blackboard.css
│ │ ├── cobalt.css
│ │ ├── eclipse.css
│ │ ├── elegant.css
│ │ ├── erlang-dark.css
│ │ ├── lesser-dark.css
│ │ ├── mbo.css
│ │ ├── mdn-like.css
│ │ ├── midnight.css
│ │ ├── monokai.css
│ │ ├── neat.css
│ │ ├── neo.css
│ │ ├── night.css
│ │ ├── paraiso-dark.css
│ │ ├── paraiso-light.css
│ │ ├── pastel-on-dark.css
│ │ ├── rubyblue.css
│ │ ├── solarized.css
│ │ ├── the-matrix.css
│ │ ├── tomorrow-night-eighties.css
│ │ ├── twilight.css
│ │ ├── vibrant-ink.css
│ │ ├── xq-dark.css
│ │ └── xq-light.css
│ ├── dataTables/
│ │ ├── css/
│ │ │ ├── dataTables.bootstrap.css
│ │ │ ├── dataTables.foundation.css
│ │ │ ├── dataTables.jqueryui.css
│ │ │ ├── jquery.dataTables.css
│ │ │ └── jquery.dataTables_themeroller.css
│ │ └── js/
│ │ ├── dataTables.bootstrap.js
│ │ ├── dataTables.foundation.js
│ │ ├── dataTables.jqueryui.js
│ │ └── jquery.dataTables.js
│ ├── download/
│ │ └── download.js
│ ├── jasmine-2.1.3/
│ │ ├── boot.js
│ │ ├── console.js
│ │ ├── jasmine-html.js
│ │ ├── jasmine.css
│ │ └── jasmine.js
│ └── jasmine-jquery/
│ └── jasmine-jquery.js
├── assembly/
│ └── zip.xml
├── main/
│ ├── java/
│ │ ├── com/
│ │ │ └── alibaba/
│ │ │ └── druid/
│ │ │ └── pool/
│ │ │ ├── ElasticSearchConnection.java
│ │ │ ├── ElasticSearchDruidDataSource.java
│ │ │ ├── ElasticSearchDruidDataSourceFactory.java
│ │ │ ├── ElasticSearchDruidPooledConnection.java
│ │ │ ├── ElasticSearchDruidPooledPreparedStatement.java
│ │ │ ├── ElasticSearchPreparedStatement.java
│ │ │ ├── ElasticSearchResultSet.java
│ │ │ └── ElasticSearchResultSetMetaDataBase.java
│ │ └── org/
│ │ ├── elasticsearch/
│ │ │ ├── action/
│ │ │ │ ├── ParsedDocWriteResponse.java
│ │ │ │ ├── admin/
│ │ │ │ │ ├── cluster/
│ │ │ │ │ │ └── settings/
│ │ │ │ │ │ └── ParsedClusterUpdateSettingsResponse.java
│ │ │ │ │ └── indices/
│ │ │ │ │ ├── create/
│ │ │ │ │ │ └── ParsedCreateIndexResponse.java
│ │ │ │ │ └── refresh/
│ │ │ │ │ └── ParsedRefreshResponse.java
│ │ │ │ ├── bulk/
│ │ │ │ │ ├── ParsedBulkItemResponse.java
│ │ │ │ │ └── ParsedBulkResponse.java
│ │ │ │ ├── delete/
│ │ │ │ │ └── ParsedDeleteResponse.java
│ │ │ │ ├── index/
│ │ │ │ │ └── ParsedIndexResponse.java
│ │ │ │ ├── search/
│ │ │ │ │ ├── ParsedMultiSearchResponse.java
│ │ │ │ │ ├── ParsedSearchResponse.java
│ │ │ │ │ └── ParsedShardSearchFailure.java
│ │ │ │ ├── support/
│ │ │ │ │ └── master/
│ │ │ │ │ ├── ParsedAcknowledgedResponse.java
│ │ │ │ │ └── ParsedShardsAcknowledgedResponse.java
│ │ │ │ └── update/
│ │ │ │ └── ParsedUpdateResponse.java
│ │ │ ├── aggregations/
│ │ │ │ └── pipeline/
│ │ │ │ ├── BucketSelectorPipelineAggregationBuilder.java
│ │ │ │ └── MovFnPipelineAggregationBuilder.java
│ │ │ ├── index/
│ │ │ │ ├── get/
│ │ │ │ │ └── ParsedGetResult.java
│ │ │ │ └── reindex/
│ │ │ │ ├── ParsedBulkByScrollResponse.java
│ │ │ │ └── ParsedBulkByScrollTask.java
│ │ │ ├── join/
│ │ │ │ ├── aggregations/
│ │ │ │ │ └── ChildrenAggregationBuilder.java
│ │ │ │ └── query/
│ │ │ │ └── HasChildQueryBuilder.java
│ │ │ ├── plugin/
│ │ │ │ └── nlpcn/
│ │ │ │ ├── ActionRequestRestExecuter.java
│ │ │ │ ├── ComperableHitResult.java
│ │ │ │ ├── ElasticHitsExecutor.java
│ │ │ │ ├── ElasticJoinExecutor.java
│ │ │ │ ├── ElasticResultHandler.java
│ │ │ │ ├── ElasticUtils.java
│ │ │ │ ├── GetIndexRequestRestListener.java
│ │ │ │ ├── HashJoinComparisonStructure.java
│ │ │ │ ├── HashJoinElasticExecutor.java
│ │ │ │ ├── IntersectExecutor.java
│ │ │ │ ├── MetaSearchResult.java
│ │ │ │ ├── MinusExecutor.java
│ │ │ │ ├── MultiRequestExecutorFactory.java
│ │ │ │ ├── NamedXContentRegistryHolder.java
│ │ │ │ ├── NestedLoopsElasticExecutor.java
│ │ │ │ ├── QueryActionElasticExecutor.java
│ │ │ │ ├── RestSqlAction.java
│ │ │ │ ├── SearchHitsResult.java
│ │ │ │ ├── SqlPlug.java
│ │ │ │ ├── UnionExecutor.java
│ │ │ │ ├── client/
│ │ │ │ │ ├── ElasticsearchRestClient.java
│ │ │ │ │ └── handler/
│ │ │ │ │ ├── ActionHandler.java
│ │ │ │ │ ├── BulkActionHandler.java
│ │ │ │ │ ├── ClusterStateActionHandler.java
│ │ │ │ │ ├── ClusterUpdateSettingsActionHandler.java
│ │ │ │ │ ├── CreateIndexActionHandler.java
│ │ │ │ │ ├── DeleteByQueryActionHandler.java
│ │ │ │ │ ├── DeleteIndexActionHandler.java
│ │ │ │ │ ├── GetIndexActionHandler.java
│ │ │ │ │ ├── MultiSearchActionHandler.java
│ │ │ │ │ ├── NodesInfoActionHandler.java
│ │ │ │ │ ├── PutMappingActionHandler.java
│ │ │ │ │ ├── RefreshActionHandler.java
│ │ │ │ │ ├── SearchActionHandler.java
│ │ │ │ │ └── SearchScrollActionHandler.java
│ │ │ │ ├── executors/
│ │ │ │ │ ├── ActionRequestRestExecuterFactory.java
│ │ │ │ │ ├── CSVResult.java
│ │ │ │ │ ├── CSVResultRestExecutor.java
│ │ │ │ │ ├── CSVResultsExtractor.java
│ │ │ │ │ ├── CsvExtractorException.java
│ │ │ │ │ ├── ElasticDefaultRestExecutor.java
│ │ │ │ │ └── RestExecutor.java
│ │ │ │ └── package-info.java
│ │ │ ├── reindex/
│ │ │ │ └── BulkIndexByScrollResponseContentListener.java
│ │ │ └── search/
│ │ │ ├── ParsedSearchHit.java
│ │ │ ├── ParsedSearchHits.java
│ │ │ ├── ParsedSearchSortValues.java
│ │ │ ├── aggregations/
│ │ │ │ ├── ParsedAggregation.java
│ │ │ │ ├── ParsedInternalAggregations.java
│ │ │ │ ├── ParsedMultiBucketAggregation.java
│ │ │ │ ├── bucket/
│ │ │ │ │ ├── ParsedSingleBucketAggregation.java
│ │ │ │ │ ├── composite/
│ │ │ │ │ │ └── ParsedComposite.java
│ │ │ │ │ ├── filter/
│ │ │ │ │ │ ├── ParsedFilter.java
│ │ │ │ │ │ └── ParsedFilters.java
│ │ │ │ │ ├── geogrid/
│ │ │ │ │ │ ├── ParsedGeoGrid.java
│ │ │ │ │ │ ├── ParsedGeoGridBucket.java
│ │ │ │ │ │ ├── ParsedGeoHashGrid.java
│ │ │ │ │ │ ├── ParsedGeoHashGridBucket.java
│ │ │ │ │ │ ├── ParsedGeoTileGrid.java
│ │ │ │ │ │ └── ParsedGeoTileGridBucket.java
│ │ │ │ │ ├── global/
│ │ │ │ │ │ └── ParsedGlobal.java
│ │ │ │ │ ├── histogram/
│ │ │ │ │ │ ├── ParsedDateHistogram.java
│ │ │ │ │ │ ├── ParsedHistogram.java
│ │ │ │ │ │ └── ParsedVariableWidthHistogram.java
│ │ │ │ │ ├── missing/
│ │ │ │ │ │ └── ParsedMissing.java
│ │ │ │ │ ├── nested/
│ │ │ │ │ │ ├── ParsedNested.java
│ │ │ │ │ │ └── ParsedReverseNested.java
│ │ │ │ │ ├── range/
│ │ │ │ │ │ ├── ParsedBinaryRange.java
│ │ │ │ │ │ ├── ParsedDateRange.java
│ │ │ │ │ │ ├── ParsedGeoDistance.java
│ │ │ │ │ │ └── ParsedRange.java
│ │ │ │ │ ├── sampler/
│ │ │ │ │ │ └── ParsedSampler.java
│ │ │ │ │ └── terms/
│ │ │ │ │ ├── ParsedDoubleTerms.java
│ │ │ │ │ ├── ParsedLongRareTerms.java
│ │ │ │ │ ├── ParsedLongTerms.java
│ │ │ │ │ ├── ParsedRareTerms.java
│ │ │ │ │ ├── ParsedSignificantLongTerms.java
│ │ │ │ │ ├── ParsedSignificantStringTerms.java
│ │ │ │ │ ├── ParsedSignificantTerms.java
│ │ │ │ │ ├── ParsedStringRareTerms.java
│ │ │ │ │ ├── ParsedStringTerms.java
│ │ │ │ │ └── ParsedTerms.java
│ │ │ │ ├── metrics/
│ │ │ │ │ ├── ParsedAvg.java
│ │ │ │ │ ├── ParsedBucketMetricValue.java
│ │ │ │ │ ├── ParsedCardinality.java
│ │ │ │ │ ├── ParsedExtendedStats.java
│ │ │ │ │ ├── ParsedGeoBounds.java
│ │ │ │ │ ├── ParsedGeoCentroid.java
│ │ │ │ │ ├── ParsedHDRPercentileRanks.java
│ │ │ │ │ ├── ParsedHDRPercentiles.java
│ │ │ │ │ ├── ParsedMax.java
│ │ │ │ │ ├── ParsedMedianAbsoluteDeviation.java
│ │ │ │ │ ├── ParsedMin.java
│ │ │ │ │ ├── ParsedPercentileRanks.java
│ │ │ │ │ ├── ParsedPercentiles.java
│ │ │ │ │ ├── ParsedScriptedMetric.java
│ │ │ │ │ ├── ParsedSingleValueNumericMetricsAggregation.java
│ │ │ │ │ ├── ParsedStats.java
│ │ │ │ │ ├── ParsedSum.java
│ │ │ │ │ ├── ParsedTDigestPercentileRanks.java
│ │ │ │ │ ├── ParsedTDigestPercentiles.java
│ │ │ │ │ ├── ParsedTopHits.java
│ │ │ │ │ ├── ParsedValueCount.java
│ │ │ │ │ └── ParsedWeightedAvg.java
│ │ │ │ └── pipeline/
│ │ │ │ ├── ParsedExtendedStatsBucket.java
│ │ │ │ ├── ParsedPercentilesBucket.java
│ │ │ │ ├── ParsedSimpleValue.java
│ │ │ │ └── ParsedStatsBucket.java
│ │ │ ├── fetch/
│ │ │ │ └── subphase/
│ │ │ │ └── highlight/
│ │ │ │ └── ParsedHighlightField.java
│ │ │ ├── profile/
│ │ │ │ ├── ParsedProfileResult.java
│ │ │ │ ├── ParsedSearchProfileDfsPhaseResult.java
│ │ │ │ ├── ParsedSearchProfileResults.java
│ │ │ │ ├── aggregation/
│ │ │ │ │ └── ParsedAggregationProfileShardResult.java
│ │ │ │ └── query/
│ │ │ │ ├── ParsedCollectorResult.java
│ │ │ │ └── ParsedQueryProfileShardResult.java
│ │ │ └── suggest/
│ │ │ └── ParsedSuggest.java
│ │ └── nlpcn/
│ │ └── es4sql/
│ │ ├── SQLFunctions.java
│ │ ├── SearchDao.java
│ │ ├── Test.java
│ │ ├── Util.java
│ │ ├── domain/
│ │ │ ├── Condition.java
│ │ │ ├── Delete.java
│ │ │ ├── Field.java
│ │ │ ├── From.java
│ │ │ ├── JoinSelect.java
│ │ │ ├── KVValue.java
│ │ │ ├── MethodField.java
│ │ │ ├── Order.java
│ │ │ ├── Paramer.java
│ │ │ ├── Query.java
│ │ │ ├── SearchResult.java
│ │ │ ├── Select.java
│ │ │ ├── TableOnJoinSelect.java
│ │ │ ├── Where.java
│ │ │ └── hints/
│ │ │ ├── Hint.java
│ │ │ ├── HintFactory.java
│ │ │ └── HintType.java
│ │ ├── exception/
│ │ │ └── SqlParseException.java
│ │ ├── jdbc/
│ │ │ ├── ObjectResult.java
│ │ │ ├── ObjectResultsExtractException.java
│ │ │ └── ObjectResultsExtractor.java
│ │ ├── parse/
│ │ │ ├── CaseWhenParser.java
│ │ │ ├── CastParser.java
│ │ │ ├── ChildrenType.java
│ │ │ ├── ElasticLexer.java
│ │ │ ├── ElasticSqlExprParser.java
│ │ │ ├── ElasticSqlSelectParser.java
│ │ │ ├── ElasticSqlStatementParser.java
│ │ │ ├── FieldMaker.java
│ │ │ ├── NestedType.java
│ │ │ ├── SQLOdbcExpr.java
│ │ │ ├── SQLParensIdentifierExpr.java
│ │ │ ├── ScriptFilter.java
│ │ │ ├── SelectParser.java
│ │ │ ├── SqlParser.java
│ │ │ ├── SubQueryExpression.java
│ │ │ └── WhereParser.java
│ │ ├── query/
│ │ │ ├── AggregationQueryAction.java
│ │ │ ├── DefaultQueryAction.java
│ │ │ ├── DeleteQueryAction.java
│ │ │ ├── ESActionFactory.java
│ │ │ ├── QueryAction.java
│ │ │ ├── ShowQueryAction.java
│ │ │ ├── SqlElasticDeleteByQueryRequestBuilder.java
│ │ │ ├── SqlElasticRequestBuilder.java
│ │ │ ├── SqlElasticSearchRequestBuilder.java
│ │ │ ├── join/
│ │ │ │ ├── ESHashJoinQueryAction.java
│ │ │ │ ├── ESJoinQueryAction.java
│ │ │ │ ├── ESJoinQueryActionFactory.java
│ │ │ │ ├── ESNestedLoopsQueryAction.java
│ │ │ │ ├── HashJoinElasticRequestBuilder.java
│ │ │ │ ├── JoinRequestBuilder.java
│ │ │ │ ├── NestedLoopsElasticRequestBuilder.java
│ │ │ │ └── TableInJoinRequestBuilder.java
│ │ │ ├── maker/
│ │ │ │ ├── AggMaker.java
│ │ │ │ ├── FilterMaker.java
│ │ │ │ ├── Maker.java
│ │ │ │ └── QueryMaker.java
│ │ │ └── multi/
│ │ │ ├── ESMultiQueryActionFactory.java
│ │ │ ├── MultiQueryAction.java
│ │ │ ├── MultiQueryRequestBuilder.java
│ │ │ └── MultiQuerySelect.java
│ │ └── spatial/
│ │ ├── BoundingBoxFilterParams.java
│ │ ├── CellFilterParams.java
│ │ ├── DistanceFilterParams.java
│ │ ├── Point.java
│ │ ├── PolygonFilterParams.java
│ │ ├── RangeDistanceFilterParams.java
│ │ ├── SpatialParamsFactory.java
│ │ └── WktToGeoJsonConverter.java
│ └── resources/
│ ├── es-plugin.properties
│ └── plugin-descriptor.properties
├── site-server/
│ ├── node-server.js
│ ├── package.json
│ └── site_configuration.json
└── test/
├── java/
│ ├── com/
│ │ └── zhongshu/
│ │ └── ZhongshuTest.java
│ └── org/
│ └── nlpcn/
│ └── es4sql/
│ ├── AggregationTest.java
│ ├── CSVResultsExtractorTests.java
│ ├── DeleteTest.java
│ ├── ExplainTest.java
│ ├── JDBCTests.java
│ ├── JoinTests.java
│ ├── MainTestSuite.java
│ ├── MethodQueryTest.java
│ ├── MultiQueryTests.java
│ ├── QueryTest.java
│ ├── SQLFunctionsTest.java
│ ├── ShowTest.java
│ ├── SourceFieldTest.java
│ ├── SqlParserTests.java
│ ├── TestsConstants.java
│ ├── UtilTests.java
│ └── WktToGeoJsonConverterTests.java
└── resources/
├── accounts.json
├── accounts_temp.json
├── dogs.json
├── elasticsearch.yml
├── expectedOutput/
│ ├── aggregation_cardinality_explain.json
│ ├── aggregation_query_explain.json
│ ├── between_query.json
│ ├── delete_explain.json
│ ├── multi_match_query.json
│ ├── script_value.json
│ ├── search_explain.json
│ ├── search_explain_filter.json
│ └── search_spatial_explain.json
├── game_of_thrones_complex.json
├── join_objects.json
├── locations.json
├── locations2.json
├── nested_objects.json
├── odbc-date-formats.json
├── online.json
├── peoples.json
├── phrases.json
└── systems.json
Showing preview only (370K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (4533 symbols across 397 files)
FILE: src/_site/controllers.js
function loadOptionsFromStorageOrDefault (line 52) | function loadOptionsFromStorageOrDefault () {
function updateWithScrollIfNeeded (line 150) | function updateWithScrollIfNeeded (query) {
function exportCSVWithoutScope (line 273) | function exportCSVWithoutScope(columns,rows) {
function searchTillEndAndExportCsv (line 292) | function searchTillEndAndExportCsv (scrollId) {
function updateDescription (line 299) | function updateDescription (handler) {
function callScrollAndFillBodyTillEnd (line 312) | function callScrollAndFillBodyTillEnd (scrollId,head,body,firstTime,need...
function arr2csvStr (line 385) | function arr2csvStr(arr,op){
function map2csvStr (line 394) | function map2csvStr(columns,arr,op){
function getUrl (line 404) | function getUrl() {
function saveUrl (line 426) | function saveUrl() {
FILE: src/_site/mapping_parser.js
function parseMapping (line 9) | function parseMapping(mapping){
function getFieldsRecursive (line 26) | function getFieldsRecursive(fields,fieldsFlatten,prefix){
FILE: src/_site/query.js
function isSearch (line 7) | function isSearch(){
function isAggregation (line 11) | function isAggregation() {
function isDelete (line 14) | function isDelete(){
function createScheme (line 42) | function createScheme() {
function findKeysRecursive (line 132) | function findKeysRecursive (scheme,keys,prefix) {
function flatRow (line 144) | function flatRow (keys,row) {
function addFieldsToRow (line 167) | function addFieldsToRow (row,hit) {
function removeNestedAndFilters (line 181) | function removeNestedAndFilters (aggs) {
function getRows (line 204) | function getRows(bucketName, bucket, additionalColumns) {
function fillFieldsForSpecificAggregation (line 277) | function fillFieldsForSpecificAggregation(obj,value,field)
function getSubBuckets (line 292) | function getSubBuckets(bucket) {
FILE: src/_site/table_presenter.js
function clearTableIfNeeded (line 52) | function clearTableIfNeeded(table,tableZoneSelector,tableId){
function createColumns (line 60) | function createColumns(columns){
function createRows (line 81) | function createRows(rows){
function createOldTable (line 94) | function createOldTable (tableZoneSelector,tableId,$compile,$scope) {
FILE: src/_site/tests/spec/ResultHandlersSpec.js
function isSetsEquals (line 25) | function isSetsEquals(arr1, arr2) {
FILE: src/_site/tests/spec/TablePresenterSpec.js
function isSetsEquals (line 25) | function isSetsEquals(arr1, arr2) {
function isObjectsEqual (line 49) | function isObjectsEqual (obj1,obj2) {
function getColsFromDataTable (line 60) | function getColsFromDataTable (table) {
function getRowsFromDataTable (line 70) | function getRowsFromDataTable (table) {
FILE: src/_site/vendor/bootstrap/js/bootstrap.js
function transitionEnd (line 34) | function transitionEnd() {
function removeElement (line 126) | function removeElement() {
function Plugin (line 142) | function Plugin(option) {
function Plugin (line 251) | function Plugin(option) {
function Plugin (line 470) | function Plugin(option) {
function getTargetFromTrigger (line 689) | function getTargetFromTrigger($trigger) {
function Plugin (line 701) | function Plugin(option) {
function getParent (line 768) | function getParent($this) {
function clearMenus (line 781) | function clearMenus(e) {
function Plugin (line 874) | function Plugin(option) {
function Plugin (line 1200) | function Plugin(option, _relatedTarget) {
function complete (line 1566) | function complete() {
function Plugin (line 1736) | function Plugin(option) {
function Plugin (line 1845) | function Plugin(option) {
function ScrollSpy (line 1888) | function ScrollSpy(element, options) {
function Plugin (line 2008) | function Plugin(option) {
function next (line 2117) | function next() {
function Plugin (line 2163) | function Plugin(option) {
function Plugin (line 2320) | function Plugin(option) {
FILE: src/_site/vendor/codemirror/addon/comment/comment.js
function firstNonWS (line 18) | function firstNonWS(str) {
FILE: src/_site/vendor/codemirror/addon/comment/continuecomment.js
function continueComment (line 17) | function continueComment(cm) {
function continueLineCommentEnabled (line 64) | function continueLineCommentEnabled(cm) {
FILE: src/_site/vendor/codemirror/addon/dialog/dialog.js
function dialogDiv (line 14) | function dialogDiv(cm, template, bottom) {
function closeNotification (line 31) | function closeNotification(cm, newVal) {
function close (line 44) | function close(newVal) {
function close (line 100) | function close() {
function close (line 138) | function close() {
FILE: src/_site/vendor/codemirror/addon/display/fullscreen.js
function setFullscreen (line 21) | function setFullscreen(cm) {
function setNormal (line 32) | function setNormal(cm) {
FILE: src/_site/vendor/codemirror/addon/display/placeholder.js
function clearPlaceholder (line 29) | function clearPlaceholder(cm) {
function setPlaceholder (line 35) | function setPlaceholder(cm) {
function onBlur (line 44) | function onBlur(cm) {
function onChange (line 47) | function onChange(cm) {
function isEmpty (line 55) | function isEmpty(cm) {
FILE: src/_site/vendor/codemirror/addon/display/rulers.js
function clearRulers (line 25) | function clearRulers(cm) {
function setRulers (line 33) | function setRulers(cm) {
function refreshRulers (line 60) | function refreshRulers(cm) {
FILE: src/_site/vendor/codemirror/addon/edit/closebrackets.js
function charsAround (line 33) | function charsAround(cm, pos) {
function enteringString (line 42) | function enteringString(cm, pos, ch) {
function buildKeymap (line 55) | function buildKeymap(pairs) {
function buildExplodeHandler (line 138) | function buildExplodeHandler(pairs) {
FILE: src/_site/vendor/codemirror/addon/edit/closetag.js
function autoCloseGT (line 53) | function autoCloseGT(cm) {
function autoCloseSlash (line 97) | function autoCloseSlash(cm) {
function indexOf (line 132) | function indexOf(collection, elt) {
function closingTagExists (line 141) | function closingTagExists(cm, tagName, pos, state, newTag) {
FILE: src/_site/vendor/codemirror/addon/edit/matchbrackets.js
function findMatchingBracket (line 19) | function findMatchingBracket(cm, where, strict, config) {
function scanForBracket (line 40) | function scanForBracket(cm, where, dir, style, config) {
function matchBrackets (line 67) | function matchBrackets(cm, autoclear, config) {
function doMatchBrackets (line 97) | function doMatchBrackets(cm) {
FILE: src/_site/vendor/codemirror/addon/edit/matchtags.js
function clear (line 28) | function clear(cm) {
function doMatchTags (line 34) | function doMatchTags(cm) {
function maybeUpdateMatch (line 55) | function maybeUpdateMatch(cm) {
FILE: src/_site/vendor/codemirror/addon/fold/brace-fold.js
function findOpening (line 18) | function findOpening(openCh) {
function hasImport (line 63) | function hasImport(line) {
function hasInclude (line 87) | function hasInclude(line) {
FILE: src/_site/vendor/codemirror/addon/fold/foldcode.js
function doFold (line 14) | function doFold(cm, pos, options, force) {
function makeWidget (line 61) | function makeWidget(cm, options) {
function getOption (line 137) | function getOption(cm, options, name) {
FILE: src/_site/vendor/codemirror/addon/fold/foldgutter.js
function State (line 39) | function State(options) {
function parseOptions (line 44) | function parseOptions(opts) {
function isFolded (line 52) | function isFolded(cm, line) {
function marker (line 58) | function marker(spec) {
function updateFoldInfo (line 68) | function updateFoldInfo(cm, from, to) {
function updateInViewport (line 85) | function updateInViewport(cm) {
function onGutterClick (line 94) | function onGutterClick(cm, line, gutter) {
function onChange (line 100) | function onChange(cm) {
function onViewportChange (line 107) | function onViewportChange(cm) {
function onFold (line 129) | function onFold(cm, from) {
FILE: src/_site/vendor/codemirror/addon/fold/markdown-fold.js
function isHeader (line 17) | function isHeader(lineNo) {
function headerLevel (line 22) | function headerLevel(lineNo, line, nextLine) {
FILE: src/_site/vendor/codemirror/addon/fold/xml-fold.js
function cmp (line 15) | function cmp(a, b) { return a.line - b.line || a.ch - b.ch; }
function Iter (line 21) | function Iter(cm, line, ch, range) {
function tagAt (line 28) | function tagAt(iter, ch) {
function nextLine (line 33) | function nextLine(iter) {
function prevLine (line 39) | function prevLine(iter) {
function toTagEnd (line 46) | function toTagEnd(iter) {
function toTagStart (line 57) | function toTagStart(iter) {
function toNextTag (line 69) | function toNextTag(iter) {
function toPrevTag (line 79) | function toPrevTag(iter) {
function findMatchingClose (line 91) | function findMatchingClose(iter, tag) {
function findMatchingOpen (line 112) | function findMatchingOpen(iter, tag) {
FILE: src/_site/vendor/codemirror/addon/hint/css-hint.js
function add (line 31) | function add(keywords) {
FILE: src/_site/vendor/codemirror/addon/hint/html-hint.js
function populate (line 332) | function populate(obj) {
function htmlHint (line 342) | function htmlHint(cm, options) {
FILE: src/_site/vendor/codemirror/addon/hint/javascript-hint.js
function forEach (line 14) | function forEach(arr, f) {
function arrayContains (line 18) | function arrayContains(arr, item) {
function scriptHint (line 31) | function scriptHint(editor, keywords, getToken, options) {
function javascriptHint (line 55) | function javascriptHint(editor, options) {
function getCoffeeScriptToken (line 62) | function getCoffeeScriptToken(editor, cur) {
function coffeescriptHint (line 80) | function coffeescriptHint(editor, options) {
function getCompletions (line 95) | function getCompletions(token, context, keywords, options) {
FILE: src/_site/vendor/codemirror/addon/hint/python-hint.js
function forEach (line 14) | function forEach(arr, f) {
function arrayContains (line 18) | function arrayContains(arr, item) {
function scriptHint (line 31) | function scriptHint(editor, _keywords, getToken) {
function pythonHint (line 52) | function pythonHint(editor) {
function getCompletions (line 73) | function getCompletions(token, context) {
FILE: src/_site/vendor/codemirror/addon/hint/show-hint.js
function Completion (line 43) | function Completion(cm, options) {
function done (line 94) | function done() {
function update (line 102) | function update() {
function finishUpdate (line 111) | function finishUpdate(data_) {
function clearDebounce (line 119) | function clearDebounce() {
function activity (line 126) | function activity() {
function getText (line 154) | function getText(completion) {
function buildKeyMap (line 159) | function buildKeyMap(completion, handle) {
function getHintElement (line 194) | function getHintElement(hintsElement, el) {
function Widget (line 201) | function Widget(completion, data) {
FILE: src/_site/vendor/codemirror/addon/hint/sql-hint.js
function getKeywords (line 23) | function getKeywords(editor) {
function match (line 29) | function match(string, word) {
function addMatches (line 35) | function addMatches(result, search, wordlist, formatter) {
function nameCompletion (line 47) | function nameCompletion(result, editor) {
function eachWord (line 98) | function eachWord(lineText, f) {
function convertCurToNumber (line 107) | function convertCurToNumber(cur) {
function convertNumberToCur (line 112) | function convertNumberToCur(num) {
function findTableByAlias (line 116) | function findTableByAlias(alias, editor) {
FILE: src/_site/vendor/codemirror/addon/hint/xml-hint.js
function getHints (line 16) | function getHints(cm, options) {
FILE: src/_site/vendor/codemirror/addon/lint/javascript-lint.js
function validator (line 24) | function validator(text, options) {
function cleanup (line 34) | function cleanup(error) {
function fixWith (line 42) | function fixWith(error, fixes, severity, force) {
function isBogus (line 62) | function isBogus(error) {
function parseErrors (line 72) | function parseErrors(errors, output) {
FILE: src/_site/vendor/codemirror/addon/lint/lint.js
function showTooltip (line 15) | function showTooltip(e, content) {
function rm (line 31) | function rm(elt) {
function hideTooltip (line 34) | function hideTooltip(tt) {
function showTooltipFor (line 41) | function showTooltipFor(e, content, node) {
function LintState (line 57) | function LintState(cm, options, hasGutter) {
function parseOptions (line 65) | function parseOptions(cm, options) {
function clearMarks (line 73) | function clearMarks(cm) {
function makeMarker (line 81) | function makeMarker(labels, severity, multiple, tooltips) {
function getMaxSeverity (line 96) | function getMaxSeverity(a, b) {
function groupByLine (line 101) | function groupByLine(annotations) {
function annotationTooltip (line 110) | function annotationTooltip(ann) {
function startLinting (line 119) | function startLinting(cm) {
function updateLinting (line 128) | function updateLinting(cm, annotationsNotSorted) {
function onChange (line 163) | function onChange(cm) {
function popupSpanTooltip (line 169) | function popupSpanTooltip(ann, e) {
function onMouseOver (line 174) | function onMouseOver(cm, e) {
FILE: src/_site/vendor/codemirror/addon/merge/merge.js
function DiffView (line 18) | function DiffView(mv, type) {
function ensureDiff (line 59) | function ensureDiff(dv) {
function registerUpdate (line 67) | function registerUpdate(dv) {
function registerScroll (line 109) | function registerScroll(dv) {
function syncScroll (line 118) | function syncScroll(dv, type) {
function getOffsets (line 155) | function getOffsets(editor, around) {
function setScrollLock (line 162) | function setScrollLock(dv, val, action) {
function clearMarks (line 170) | function clearMarks(editor, arr, classes) {
function updateMarks (line 185) | function updateMarks(editor, diff, state, type, classes) {
function markChanges (line 205) | function markChanges(editor, diff, type, marks, from, to, classes) {
function drawConnectors (line 252) | function drawConnectors(dv) {
function copyChunk (line 303) | function copyChunk(dv, to, from, chunk) {
function buildGap (line 358) | function buildGap(dv) {
function asString (line 402) | function asString(obj) {
function getDiff (line 410) | function getDiff(a, b) {
function iterateChunks (line 426) | function iterateChunks(diff, f) {
function getChunks (line 449) | function getChunks(dv) {
function endOfLineClean (line 459) | function endOfLineClean(diff, i) {
function startOfLineClean (line 468) | function startOfLineClean(diff, i) {
function chunkBoundariesAround (line 477) | function chunkBoundariesAround(diff, n, nInEdit) {
function elt (line 494) | function elt(tag, content, className, style) {
function clear (line 503) | function clear(node) {
function attrs (line 508) | function attrs(elt) {
function copyObj (line 513) | function copyObj(obj, target) {
function moveOver (line 519) | function moveOver(pos, str, copy, other) {
function posMin (line 533) | function posMin(a, b) { return (a.line - b.line || a.ch - b.ch) < 0 ? a ...
function posMax (line 534) | function posMax(a, b) { return (a.line - b.line || a.ch - b.ch) > 0 ? a ...
function posEq (line 535) | function posEq(a, b) { return a.line == b.line && a.ch == b.ch; }
FILE: src/_site/vendor/codemirror/addon/mode/loadmode.js
function splitCallback (line 15) | function splitCallback(cont, n) {
function ensureDeps (line 19) | function ensureDeps(mode, cont) {
FILE: src/_site/vendor/codemirror/addon/mode/multiplex.js
function indexOf (line 19) | function indexOf(string, pattern, from) {
FILE: src/_site/vendor/codemirror/addon/mode/multiplex_test.js
function MT (line 22) | function MT(name) {
FILE: src/_site/vendor/codemirror/addon/mode/simple.js
function ensureState (line 61) | function ensureState(states, name) {
function toRegex (line 66) | function toRegex(val, caret) {
function asToken (line 78) | function asToken(val) {
function Rule (line 87) | function Rule(data, states) {
function tokenFunction (line 94) | function tokenFunction(states, config) {
function cmp (line 155) | function cmp(a, b) {
function enterLocalMode (line 167) | function enterLocalMode(config, state, spec, token) {
function indexOf (line 183) | function indexOf(val, arr) {
function indentFunction (line 187) | function indentFunction(states, meta) {
FILE: src/_site/vendor/codemirror/addon/runmode/colorize.js
function textContent (line 16) | function textContent(node, out) {
FILE: src/_site/vendor/codemirror/addon/runmode/runmode-standalone.js
function splitLines (line 9) | function splitLines(string){ return string.split(/\r?\n|\r/); }
function StringStream (line 11) | function StringStream(string) {
FILE: src/_site/vendor/codemirror/addon/runmode/runmode.node.js
function splitLines (line 8) | function splitLines(string){ return string.split(/\r?\n|\r/); }
function StringStream (line 10) | function StringStream(string) {
FILE: src/_site/vendor/codemirror/addon/scroll/scrollpastend.js
function onChange (line 28) | function onChange(cm, change) {
function updateBottomMargin (line 33) | function updateBottomMargin(cm) {
FILE: src/_site/vendor/codemirror/addon/search/match-highlighter.js
function State (line 36) | function State(options) {
function cursorActivity (line 66) | function cursorActivity(cm) {
function highlightMatches (line 72) | function highlightMatches(cm) {
function isWord (line 97) | function isWord(cm, from, to) {
function boundariesAround (line 114) | function boundariesAround(stream, re) {
function makeOverlay (line 119) | function makeOverlay(query, hasBoundary, style) {
FILE: src/_site/vendor/codemirror/addon/search/search.js
function searchOverlay (line 21) | function searchOverlay(query, caseInsensitive) {
function SearchState (line 41) | function SearchState() {
function getSearchState (line 45) | function getSearchState(cm) {
function queryCaseInsensitive (line 48) | function queryCaseInsensitive(query) {
function getSearchCursor (line 51) | function getSearchCursor(cm, query, pos) {
function dialog (line 55) | function dialog(cm, text, shortText, deflt, f) {
function confirmDialog (line 59) | function confirmDialog(cm, text, shortText, fs) {
function parseQuery (line 63) | function parseQuery(query) {
function doSearch (line 75) | function doSearch(cm, rev) {
function findNext (line 90) | function findNext(cm, rev) {cm.operation(function() {
function clearSearch (line 101) | function clearSearch(cm) {cm.operation(function() {
function replace (line 112) | function replace(cm, all) {
FILE: src/_site/vendor/codemirror/addon/search/searchcursor.js
function SearchCursor (line 15) | function SearchCursor(doc, query, pos, caseFold) {
function savePosAndFail (line 124) | function savePosAndFail(line) {
function adjustPos (line 162) | function adjustPos(orig, folded, pos) {
FILE: src/_site/vendor/codemirror/addon/selection/active-line.js
function clearActiveLines (line 35) | function clearActiveLines(cm) {
function sameArray (line 42) | function sameArray(a, b) {
function updateActiveLines (line 49) | function updateActiveLines(cm, ranges) {
function selectionChange (line 68) | function selectionChange(cm, sel) {
FILE: src/_site/vendor/codemirror/addon/selection/mark-selection.js
function onCursorActivity (line 36) | function onCursorActivity(cm) {
function onChange (line 40) | function onChange(cm) {
function coverRange (line 49) | function coverRange(cm, from, to, addAt) {
function clear (line 65) | function clear(cm) {
function reset (line 71) | function reset(cm) {
function update (line 78) | function update(cm) {
FILE: src/_site/vendor/codemirror/addon/tern/tern.js
function getFile (line 138) | function getFile(ts, name, c) {
function findDoc (line 148) | function findDoc(ts, doc, name) {
function resolveDoc (line 160) | function resolveDoc(ts, id) {
function trackChange (line 166) | function trackChange(ts, doc, change) {
function sendDoc (line 186) | function sendDoc(ts, doc) {
function hint (line 195) | function hint(ts, cm, c) {
function typeToIcon (line 230) | function typeToIcon(type) {
function showType (line 242) | function showType(ts, cm, pos, c) {
function updateArgHints (line 263) | function updateArgHints(ts, cm) {
function showArgHints (line 305) | function showArgHints(ts, cm, pos) {
function parseFnType (line 326) | function parseFnType(text) {
function jumpToDef (line 359) | function jumpToDef(ts, cm) {
function jumpBack (line 387) | function jumpBack(ts, cm) {
function moveTo (line 393) | function moveTo(ts, curDoc, doc, start, end) {
function findContext (line 402) | function findContext(doc, data) {
function atInterestingExpression (line 432) | function atInterestingExpression(cm) {
function rename (line 440) | function rename(ts, cm) {
function selectName (line 451) | function selectName(ts, cm) {
function applyChanges (line 469) | function applyChanges(ts, changes) {
function buildRequest (line 489) | function buildRequest(ts, doc, query, pos) {
function getFragmentAround (line 531) | function getFragmentAround(data, start, end) {
function elt (line 562) | function elt(tagname, cls /*, ... elts*/) {
function dialog (line 573) | function dialog(cm, text, f) {
function tempTooltip (line 582) | function tempTooltip(cm, content) {
function makeTooltip (line 594) | function makeTooltip(x, y, content) {
function remove (line 602) | function remove(node) {
function fadeOut (line 607) | function fadeOut(tooltip) {
function showError (line 612) | function showError(ts, cm, msg) {
function closeArgHints (line 619) | function closeArgHints(ts) {
function docValue (line 623) | function docValue(ts, doc) {
function WorkerServer (line 631) | function WorkerServer(ts) {
FILE: src/_site/vendor/codemirror/addon/tern/worker.js
function getFile (line 26) | function getFile(file, c) {
function startServer (line 31) | function startServer(defs, plugins, scripts) {
FILE: src/_site/vendor/codemirror/addon/wrap/hardwrap.js
function findParagraph (line 16) | function findParagraph(cm, pos, options) {
function findBreakPoint (line 32) | function findBreakPoint(text, column, wrapOn, killTrailingSpace) {
function wrapRange (line 42) | function wrapRange(cm, from, to, options) {
FILE: src/_site/vendor/codemirror/doc/activebookmark.js
function updateSoon (line 9) | function updateSoon() {
function update (line 16) | function update() {
FILE: src/_site/vendor/codemirror/keymap/emacs.js
function posEq (line 15) | function posEq(a, b) { return a.line == b.line && a.ch == b.ch; }
function addToRing (line 20) | function addToRing(str) {
function growRingTop (line 24) | function growRingTop(str) {
function getFromRing (line 28) | function getFromRing(n) { return killRing[killRing.length - (n ? Math.mi...
function popFromRing (line 29) | function popFromRing() { if (killRing.length > 1) killRing.pop(); return...
function kill (line 33) | function kill(cm, from, to, mayGrow, text) {
function byChar (line 48) | function byChar(cm, pos, dir) {
function byWord (line 52) | function byWord(cm, pos, dir) {
function byLine (line 56) | function byLine(cm, pos, dir) {
function byPage (line 60) | function byPage(cm, pos, dir) {
function byParagraph (line 64) | function byParagraph(cm, pos, dir) {
function bySentence (line 79) | function bySentence(cm, pos, dir) {
function byExpr (line 98) | function byExpr(cm, pos, dir) {
function getPrefix (line 119) | function getPrefix(cm, precise) {
function repeated (line 126) | function repeated(cmd) {
function findEnd (line 135) | function findEnd(cm, by, dir) {
function move (line 146) | function move(by, dir) {
function killTo (line 154) | function killTo(cm, by, dir) {
function addPrefix (line 158) | function addPrefix(cm, digit) {
function maybeClearPrefix (line 171) | function maybeClearPrefix(cm, arg) {
function clearPrefix (line 176) | function clearPrefix(cm) {
function maybeDuplicateInput (line 182) | function maybeDuplicateInput(cm, event) {
function addPrefixMap (line 191) | function addPrefixMap(cm) {
function maybeRemovePrefixMap (line 198) | function maybeRemovePrefixMap(cm, arg) {
function setMark (line 208) | function setMark(cm) {
function clearMark (line 214) | function clearMark(cm) {
function getInput (line 219) | function getInput(cm, msg, f) {
function operateOnWord (line 226) | function operateOnWord(cm, op) {
function toEnclosingExpr (line 232) | function toEnclosingExpr(cm) {
function quit (line 252) | function quit(cm) {
function regPrefix (line 386) | function regPrefix(d) {
FILE: src/_site/vendor/codemirror/keymap/sublime.js
function findPosSubword (line 24) | function findPosSubword(doc, start, dir) {
function moveSubword (line 46) | function moveSubword(cm, dir) {
function insertLine (line 108) | function insertLine(cm, above) {
function wordAt (line 128) | function wordAt(cm, pos) {
function selectBetweenBrackets (line 160) | function selectBetweenBrackets(cm) {
function sortLines (line 287) | function sortLines(cm, caseSensitive) {
function modifyWordOrSelection (line 391) | function modifyWordOrSelection(cm, mod) {
function getTarget (line 485) | function getTarget(cm) {
function findAndGoTo (line 496) | function findAndGoTo(cm, forward) {
FILE: src/_site/vendor/codemirror/keymap/vim.js
function lookupKey (line 236) | function lookupKey(e) {
function handleKeyDown (line 258) | function handleKeyDown(cm, e) {
function handleKeyPress (line 269) | function handleKeyPress(cm, e) {
function enterVimMode (line 281) | function enterVimMode(cm) {
function leaveVimMode (line 292) | function leaveVimMode(cm) {
function detachVimMap (line 301) | function detachVimMap(cm, next) {
function attachVimMap (line 308) | function attachVimMap(cm, prev) {
function getOnPasteFn (line 323) | function getOnPasteFn(cm) {
function makeKeyRange (line 338) | function makeKeyRange(start, size) {
function isLine (line 351) | function isLine(cm, line) {
function isLowerCase (line 354) | function isLowerCase(k) {
function isMatchableSymbol (line 357) | function isMatchableSymbol(k) {
function isNumber (line 360) | function isNumber(k) {
function isUpperCase (line 363) | function isUpperCase(k) {
function isWhiteSpaceString (line 366) | function isWhiteSpaceString(k) {
function inArray (line 369) | function inArray(val, arr) {
function defineOption (line 379) | function defineOption(name, defaultValue, type) {
function setOption (line 389) | function setOption(name, value) {
function getOption (line 405) | function getOption(name) {
function add (line 419) | function add(cm, oldCur, newCur) {
function move (line 446) | function move(cm, offset) {
function MacroModeState (line 498) | function MacroModeState() {
function maybeInitVimState (line 530) | function maybeInitVimState(cm) {
function resetVimGlobalState (line 572) | function resetVimGlobalState() {
function handleMacroRecording (line 636) | function handleMacroRecording() {
function handleEsc (line 649) | function handleEsc() {
function doKeyToKey (line 661) | function doKeyToKey(keys) {
function handleKeyInsertMode (line 674) | function handleKeyInsertMode() {
function handleKeyNonInsertMode (line 709) | function handleKeyNonInsertMode() {
function InputState (line 756) | function InputState() {
function clearInputState (line 788) | function clearInputState(cm, reason) {
function Register (line 799) | function Register(text, linewise, blockwise) {
function RegisterController (line 848) | function RegisterController(registers) {
function HistoryController (line 925) | function HistoryController() {
function handleQuery (line 1093) | function handleQuery(query, ignoreCase, smartCase) {
function onPromptClose (line 1108) | function onPromptClose(query) {
function onPromptKeyUp (line 1116) | function onPromptKeyUp(e, query, close) {
function onPromptKeyDown (line 1140) | function onPromptKeyDown(e, query, close) {
function onPromptClose (line 1202) | function onPromptClose(input) {
function onPromptKeyDown (line 1209) | function onPromptKeyDown(e, input, close) {
function fillArray (line 1793) | function fillArray(val, times) {
function clipCursorToContent (line 2457) | function clipCursorToContent(cm, cur, includeLineBreak) {
function copyArgs (line 2464) | function copyArgs(args) {
function offsetCursor (line 2473) | function offsetCursor(cur, offsetLine, offsetCh) {
function getOffset (line 2480) | function getOffset(anchor, head) {
function commandMatches (line 2486) | function commandMatches(keys, keyMap, context, inputState) {
function commandMatch (line 2505) | function commandMatch(pressed, mapped) {
function lastChar (line 2518) | function lastChar(keys) {
function repeatFn (line 2535) | function repeatFn(cm, fn, repeat) {
function copyCursor (line 2542) | function copyCursor(cur) {
function cursorEqual (line 2545) | function cursorEqual(cur1, cur2) {
function cursorIsBefore (line 2548) | function cursorIsBefore(cur1, cur2) {
function cursorMin (line 2557) | function cursorMin(cur1, cur2) {
function cursorMax (line 2563) | function cursorMax(cur1, cur2) {
function cursorIsBetween (line 2569) | function cursorIsBetween(cur1, cur2, cur3) {
function lineLength (line 2575) | function lineLength(cm, lineNum) {
function reverse (line 2578) | function reverse(s){
function trim (line 2581) | function trim(s) {
function escapeRegex (line 2587) | function escapeRegex(s) {
function extendLineToColumn (line 2590) | function extendLineToColumn(cm, lineNum, column) {
function selectBlock (line 2602) | function selectBlock(cm, selectionEnd) {
function selectForInsert (line 2639) | function selectForInsert(cm, head, height) {
function getIndex (line 2648) | function getIndex(ranges, cursor, end) {
function getSelectedAreaRange (line 2658) | function getSelectedAreaRange(cm, vim) {
function updateLastSelection (line 2709) | function updateLastSelection(cm, vim) {
function expandSelection (line 2725) | function expandSelection(cm, start, end) {
function updateCmSelection (line 2752) | function updateCmSelection(cm, sel, mode) {
function makeCmSelection (line 2761) | function makeCmSelection(cm, sel, mode, exclusive) {
function getHead (line 2810) | function getHead(cm) {
function exitVisualMode (line 2825) | function exitVisualMode(cm, moveHead) {
function clipToLine (line 2844) | function clipToLine(cm, curStart, curEnd) {
function expandSelectionToLine (line 2873) | function expandSelectionToLine(_cm, curStart, curEnd) {
function findFirstNonWhiteSpaceCharacter (line 2879) | function findFirstNonWhiteSpaceCharacter(text) {
function expandWordUnderCursor (line 2887) | function expandWordUnderCursor(cm, inclusive, _forward, bigWord, noSymbo...
function recordJumpPosition (line 2949) | function recordJumpPosition(cm, oldCur, newCur) {
function recordLastCharacterSearch (line 2955) | function recordLastCharacterSearch(increment, args) {
function findSymbol (line 3033) | function findSymbol(cm, repeat, forward, symb) {
function findWord (line 3099) | function findWord(cm, cur, forward, bigWord, emptyLineIsWord) {
function moveToWord (line 3173) | function moveToWord(cm, cur, repeat, forward, wordEnd, bigWord) {
function moveToCharacter (line 3218) | function moveToCharacter(cm, repeat, forward, character) {
function moveToColumn (line 3233) | function moveToColumn(cm, repeat) {
function updateMark (line 3240) | function updateMark(cm, vim, markName, pos) {
function charIdxInLine (line 3250) | function charIdxInLine(start, line, character, forward, includeChar) {
function selectCompanionObject (line 3273) | function selectCompanionObject(cm, head, symb, inclusive) {
function findBeginningAndEnd (line 3318) | function findBeginningAndEnd(cm, head, symb, inclusive) {
function SearchState (line 3378) | function SearchState() {}
function getSearchState (line 3399) | function getSearchState(cm) {
function dialog (line 3403) | function dialog(cm, template, shortText, onClose, options) {
function splitBySlash (line 3412) | function splitBySlash(argString) {
function findUnescapedSlashes (line 3425) | function findUnescapedSlashes(str) {
function translateRegex (line 3439) | function translateRegex(str) {
function translateRegexReplace (line 3480) | function translateRegexReplace(str) {
function unescapeRegexReplace (line 3514) | function unescapeRegexReplace(str) {
function parseQuery (line 3546) | function parseQuery(query, ignoreCase, smartCase) {
function showConfirm (line 3580) | function showConfirm(cm, text) {
function makePrompt (line 3588) | function makePrompt(prefix, desc) {
function showPrompt (line 3603) | function showPrompt(cm, options) {
function regexEqual (line 3608) | function regexEqual(r1, r2) {
function updateSearchQuery (line 3622) | function updateSearchQuery(cm, rawQuery, ignoreCase, smartCase) {
function searchOverlay (line 3638) | function searchOverlay(query) {
function highlightSearchMatches (line 3674) | function highlightSearchMatches(cm, query) {
function findNext (line 3685) | function findNext(cm, prev, query, repeat) {
function clearSearchHighlight (line 3706) | function clearSearchHighlight(cm) {
function isInRange (line 3721) | function isInRange(pos, start, end) {
function getUserVisibleLines (line 3736) | function getUserVisibleLines(cm) {
function parseArgs (line 4084) | function parseArgs() {
function compareFn (line 4131) | function compareFn(a, b) {
function doReplace (line 4381) | function doReplace(cm, confirm, global, lineStart, lineEnd, searchCursor...
function exitInsertMode (line 4482) | function exitInsertMode(cm) {
function executeMacroRegister (line 4568) | function executeMacroRegister(cm, vim, macroModeState, registerName) {
function logKey (line 4596) | function logKey(macroModeState, key) {
function logInsertModeChange (line 4605) | function logInsertModeChange(macroModeState) {
function logSearchQuery (line 4614) | function logSearchQuery(macroModeState, query) {
function onChange (line 4627) | function onChange(_cm, changeObj) {
function onCursorActivity (line 4647) | function onCursorActivity(cm) {
function updateFakeCursor (line 4667) | function updateFakeCursor(cm) {
function handleExternalSelection (line 4676) | function handleExternalSelection(cm, vim) {
function InsertModeKey (line 4707) | function InsertModeKey(keyName) {
function onKeyEventTargetKeyDown (line 4716) | function onKeyEventTargetKeyDown(e) {
function repeatLastEdit (line 4738) | function repeatLastEdit(cm, vim, repeat, repeatForInsert) {
function repeatInsertModeChanges (line 4785) | function repeatInsertModeChanges(cm, changes, repeat) {
FILE: src/_site/vendor/codemirror/lib/codemirror.js
function CodeMirror (line 61) | function CodeMirror(place, options) {
function Display (line 122) | function Display(place, doc) {
function loadMode (line 248) | function loadMode(cm) {
function resetModeState (line 253) | function resetModeState(cm) {
function wrappingChanged (line 264) | function wrappingChanged(cm) {
function estimateHeight (line 281) | function estimateHeight(cm) {
function estimateLineHeights (line 299) | function estimateLineHeights(cm) {
function themeChanged (line 307) | function themeChanged(cm) {
function guttersChanged (line 313) | function guttersChanged(cm) {
function updateGutters (line 321) | function updateGutters(cm) {
function updateGutterSpace (line 336) | function updateGutterSpace(cm) {
function lineLength (line 345) | function lineLength(line) {
function findMaxLine (line 364) | function findMaxLine(cm) {
function setGuttersForLineNumbers (line 380) | function setGuttersForLineNumbers(options) {
function hScrollbarTakesSpace (line 392) | function hScrollbarTakesSpace(cm) {
function measureForScrollbars (line 398) | function measureForScrollbars(cm) {
function updateScrollbars (line 412) | function updateScrollbars(cm, measure) {
function visibleLines (line 469) | function visibleLines(display, doc, viewport) {
function alignHorizontally (line 493) | function alignHorizontally(cm) {
function maybeUpdateLineNumberWidth (line 512) | function maybeUpdateLineNumberWidth(cm) {
function lineNumberFor (line 530) | function lineNumberFor(options, i) {
function compensateForHScroll (line 537) | function compensateForHScroll(display) {
function DisplayUpdate (line 543) | function DisplayUpdate(cm, viewport, force) {
function updateDisplayIfNeeded (line 561) | function updateDisplayIfNeeded(cm, update) {
function postUpdateDisplay (line 630) | function postUpdateDisplay(cm, update) {
function updateDisplaySimple (line 660) | function updateDisplaySimple(cm, viewport) {
function setDocumentHeight (line 672) | function setDocumentHeight(cm, measure) {
function checkForWebkitWidthBug (line 677) | function checkForWebkitWidthBug(cm, measure) {
function updateHeightsInViewport (line 688) | function updateHeightsInViewport(cm) {
function updateWidgetHeight (line 715) | function updateWidgetHeight(line) {
function getDimensions (line 722) | function getDimensions(cm) {
function patchDisplay (line 740) | function patchDisplay(cm, updateNumbersFrom, dims) {
function updateLineForChanges (line 785) | function updateLineForChanges(cm, lineView, lineN, dims) {
function ensureLineWrapped (line 798) | function ensureLineWrapped(lineView) {
function updateLineBackground (line 809) | function updateLineBackground(lineView) {
function getLineContent (line 823) | function getLineContent(cm, lineView) {
function updateLineText (line 836) | function updateLineText(cm, lineView) {
function updateLineClasses (line 851) | function updateLineClasses(lineView) {
function updateLineGutter (line 861) | function updateLineGutter(cm, lineView, lineN, dims) {
function updateLineWidgets (line 891) | function updateLineWidgets(lineView, dims) {
function buildLineElement (line 902) | function buildLineElement(cm, lineView, lineN, dims) {
function insertLineWidgets (line 916) | function insertLineWidgets(lineView, dims) {
function insertLineWidgetsFor (line 922) | function insertLineWidgetsFor(line, lineView, dims, allowAbove) {
function positionLineWidget (line 937) | function positionLineWidget(widget, node, lineView, dims) {
function copyPos (line 967) | function copyPos(x) {return Pos(x.line, x.ch);}
function maxPos (line 968) | function maxPos(a, b) { return cmp(a, b) < 0 ? b : a; }
function minPos (line 969) | function minPos(a, b) { return cmp(a, b) < 0 ? a : b; }
function Selection (line 978) | function Selection(ranges, primIndex) {
function Range (line 1015) | function Range(anchor, head) {
function normalizeSelection (line 1030) | function normalizeSelection(ranges, primIndex) {
function simpleSelection (line 1046) | function simpleSelection(anchor, head) {
function clipLine (line 1052) | function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.fi...
function clipPos (line 1053) | function clipPos(doc, pos) {
function clipToLen (line 1059) | function clipToLen(pos, linelen) {
function isLine (line 1065) | function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.si...
function clipPosArray (line 1066) | function clipPosArray(doc, array) {
function extendRange (line 1081) | function extendRange(doc, range, head, other) {
function extendSelection (line 1100) | function extendSelection(doc, head, other, options) {
function extendSelections (line 1106) | function extendSelections(doc, heads, options) {
function replaceOneSelection (line 1114) | function replaceOneSelection(doc, i, range, options) {
function setSimpleSelection (line 1121) | function setSimpleSelection(doc, anchor, head, options) {
function filterSelectionChange (line 1127) | function filterSelectionChange(doc, sel) {
function setSelectionReplaceHistory (line 1143) | function setSelectionReplaceHistory(doc, sel, options) {
function setSelection (line 1154) | function setSelection(doc, sel, options) {
function setSelectionNoUndo (line 1159) | function setSelectionNoUndo(doc, sel, options) {
function setSelectionInner (line 1171) | function setSelectionInner(doc, sel) {
function reCheckSelection (line 1185) | function reCheckSelection(doc) {
function skipAtomicInSelection (line 1191) | function skipAtomicInSelection(doc, sel, bias, mayClear) {
function skipAtomic (line 1206) | function skipAtomic(doc, pos, bias, mayClear) {
function drawSelection (line 1259) | function drawSelection(cm) {
function showSelection (line 1286) | function showSelection(cm, drawn) {
function updateSelection (line 1295) | function updateSelection(cm) {
function drawSelectionCursor (line 1300) | function drawSelectionCursor(cm, range, output) {
function drawSelectionRange (line 1319) | function drawSelectionRange(cm, range, output) {
function restartBlink (line 1393) | function restartBlink(cm) {
function startWorker (line 1409) | function startWorker(cm, time) {
function highlightWorker (line 1414) | function highlightWorker(cm) {
function findStartLine (line 1456) | function findStartLine(cm, n, precise) {
function getStateBefore (line 1472) | function getStateBefore(cm, n, precise) {
function paddingTop (line 1490) | function paddingTop(display) {return display.lineSpace.offsetTop;}
function paddingVert (line 1491) | function paddingVert(display) {return display.mover.offsetHeight - displ...
function paddingH (line 1492) | function paddingH(display) {
function ensureLineHeights (line 1505) | function ensureLineHeights(cm, lineView, rect) {
function mapFromLineView (line 1526) | function mapFromLineView(lineView, line, lineN) {
function updateExternalMeasurement (line 1539) | function updateExternalMeasurement(cm, line) {
function measureChar (line 1552) | function measureChar(cm, line, ch, bias) {
function findViewForLine (line 1557) | function findViewForLine(cm, lineN) {
function prepareMeasureForLine (line 1570) | function prepareMeasureForLine(cm, line) {
function measureCharPrepared (line 1590) | function measureCharPrepared(cm, prepared, ch, bias, varHeight) {
function measureCharInner (line 1612) | function measureCharInner(cm, prepared, ch, bias) {
function maybeUpdateRectForZooming (line 1704) | function maybeUpdateRectForZooming(measure, rect) {
function clearLineMeasurementCacheFor (line 1714) | function clearLineMeasurementCacheFor(lineView) {
function clearLineMeasurementCache (line 1723) | function clearLineMeasurementCache(cm) {
function clearCaches (line 1730) | function clearCaches(cm) {
function pageScrollX (line 1737) | function pageScrollX() { return window.pageXOffset || (document.document...
function pageScrollY (line 1738) | function pageScrollY() { return window.pageYOffset || (document.document...
function intoCoordSystem (line 1743) | function intoCoordSystem(cm, lineObj, rect, context) {
function fromCoordSystem (line 1765) | function fromCoordSystem(cm, coords, context) {
function charCoords (line 1782) | function charCoords(cm, pos, context, lineObj, bias) {
function cursorCoords (line 1790) | function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHei...
function estimateCoords (line 1822) | function estimateCoords(cm, pos) {
function PosWithInfo (line 1836) | function PosWithInfo(line, ch, outside, xRel) {
function coordsChar (line 1845) | function coordsChar(cm, x, y) {
function coordsCharInner (line 1866) | function coordsCharInner(cm, lineObj, lineNo, x, y) {
function textHeight (line 1908) | function textHeight(display) {
function charWidth (line 1928) | function charWidth(display) {
function startOperation (line 1950) | function startOperation(cm) {
function fireCallbacksForOps (line 1977) | function fireCallbacksForOps(group) {
function endOperation (line 1994) | function endOperation(cm) {
function endOperations (line 2009) | function endOperations(group) {
function endOperation_R1 (line 2023) | function endOperation_R1(op) {
function endOperation_W1 (line 2035) | function endOperation_W1(op) {
function endOperation_R2 (line 2039) | function endOperation_R2(op) {
function endOperation_W2 (line 2058) | function endOperation_W2(op) {
function endOperation_finish (line 2081) | function endOperation_finish(op) {
function runInOp (line 2137) | function runInOp(cm, f) {
function operation (line 2144) | function operation(cm, f) {
function methodOp (line 2154) | function methodOp(f) {
function docMethodOp (line 2162) | function docMethodOp(f) {
function LineView (line 2177) | function LineView(doc, line, lineN) {
function buildViewArray (line 2189) | function buildViewArray(cm, from, to) {
function regChange (line 2205) | function regChange(cm, from, to, lendiff) {
function regLineChange (line 2270) | function regLineChange(cm, line, type) {
function resetView (line 2284) | function resetView(cm) {
function findViewIndex (line 2292) | function findViewIndex(cm, n) {
function viewCuttingPoint (line 2303) | function viewCuttingPoint(cm, oldN, newN, dir) {
function adjustView (line 2329) | function adjustView(cm, from, to) {
function countDirtyView (line 2350) | function countDirtyView(cm) {
function slowPoll (line 2363) | function slowPoll(cm) {
function fastPoll (line 2374) | function fastPoll(cm) {
function readInput (line 2396) | function readInput(cm) {
function resetInput (line 2488) | function resetInput(cm, typing) {
function focusInput (line 2506) | function focusInput(cm) {
function ensureFocus (line 2511) | function ensureFocus(cm) {
function isReadOnly (line 2515) | function isReadOnly(cm) {
function registerEventHandlers (line 2522) | function registerEventHandlers(cm) {
function onResize (line 2656) | function onResize(cm) {
function eventInWidget (line 2668) | function eventInWidget(display, e) {
function posFromMouse (line 2679) | function posFromMouse(cm, e, liberal, forRect) {
function onMouseDown (line 2703) | function onMouseDown(e) {
function leftButtonDown (line 2741) | function leftButtonDown(cm, e, start) {
function leftButtonStartDrag (line 2765) | function leftButtonStartDrag(cm, e, start, modifier) {
function leftButtonSelect (line 2792) | function leftButtonSelect(cm, e, start, type, addNew) {
function gutterEvent (line 2931) | function gutterEvent(cm, e, type, prevent, signalfn) {
function clickInGutter (line 2954) | function clickInGutter(cm, e) {
function onDrop (line 2962) | function onDrop(e) {
function onDragStart (line 3012) | function onDragStart(cm, e) {
function setScrollTop (line 3038) | function setScrollTop(cm, val) {
function setScrollLeft (line 3049) | function setScrollLeft(cm, val, isScroller) {
function onScrollWheel (line 3079) | function onScrollWheel(cm, e) {
function doHandleBinding (line 3154) | function doHandleBinding(cm, bound, dropShift) {
function lookupKeyForEditor (line 3174) | function lookupKeyForEditor(cm, name, handle) {
function dispatchKey (line 3184) | function dispatchKey(cm, name, e, handle) {
function handleKeyBinding (line 3216) | function handleKeyBinding(cm, e) {
function handleCharBinding (line 3235) | function handleCharBinding(cm, e, ch) {
function onKeyDown (line 3241) | function onKeyDown(e) {
function showCrossHair (line 3262) | function showCrossHair(cm) {
function onKeyUp (line 3277) | function onKeyUp(e) {
function onKeyPress (line 3282) | function onKeyPress(e) {
function onFocus (line 3296) | function onFocus(cm) {
function onBlur (line 3313) | function onBlur(cm) {
function onContextMenu (line 3328) | function onContextMenu(cm, e) {
function contextMenuInGutter (line 3403) | function contextMenuInGutter(cm, e) {
function adjustForChange (line 3420) | function adjustForChange(pos, change) {
function computeSelAfterChange (line 3429) | function computeSelAfterChange(doc, change) {
function offsetPos (line 3439) | function offsetPos(pos, old, nw) {
function computeReplacedSel (line 3448) | function computeReplacedSel(doc, changes, hint) {
function filterChange (line 3468) | function filterChange(doc, change, update) {
function makeChange (line 3492) | function makeChange(doc, change, ignoreReadOnly) {
function makeChangeInner (line 3514) | function makeChangeInner(doc, change) {
function makeChangeFromHistory (line 3532) | function makeChangeFromHistory(doc, type, allowSelectionOnly) {
function shiftDoc (line 3598) | function shiftDoc(doc, distance) {
function makeChangeSingleDoc (line 3614) | function makeChangeSingleDoc(doc, change, selAfter, spans) {
function makeChangeSingleDocInEditor (line 3647) | function makeChangeSingleDocInEditor(cm, change, spans) {
function replaceRange (line 3704) | function replaceRange(doc, code, from, to, origin) {
function maybeScrollWindow (line 3715) | function maybeScrollWindow(cm, coords) {
function scrollPosIntoView (line 3735) | function scrollPosIntoView(cm, pos, end, margin) {
function scrollIntoView (line 3758) | function scrollIntoView(cm, x1, y1, x2, y2) {
function calculateScrollPos (line 3768) | function calculateScrollPos(cm, x1, y1, x2, y2) {
function addToScrollPos (line 3799) | function addToScrollPos(cm, left, top) {
function ensureCursorVisible (line 3809) | function ensureCursorVisible(cm) {
function resolveScrollToPos (line 3823) | function resolveScrollToPos(cm) {
function indentLine (line 3843) | function indentLine(cm, n, how, aggressive) {
function changeLine (line 3904) | function changeLine(doc, handle, changeType, op) {
function deleteNearSelection (line 3915) | function deleteNearSelection(cm, compute) {
function findPosH (line 3947) | function findPosH(doc, pos, dir, unit, visually) {
function findPosV (line 3998) | function findPosV(cm, pos, dir, unit) {
function interpret (line 4414) | function interpret(val) {
function option (line 4470) | function option(name, deflt, handle, notOnInit) {
function normalizeKeyName (line 4907) | function normalizeKeyName(name) {
function getKeyMap (line 4993) | function getKeyMap(val) {
function save (line 5014) | function save() {textarea.value = cm.getValue();}
function markText (line 5258) | function markText(doc, from, to, options, type) {
function markTextShared (line 5351) | function markTextShared(doc, from, to, options, type) {
function findSharedMarkers (line 5366) | function findSharedMarkers(doc) {
function copySharedMarkers (line 5371) | function copySharedMarkers(doc, markers) {
function detachSharedMarkers (line 5383) | function detachSharedMarkers(markers) {
function MarkedSpan (line 5399) | function MarkedSpan(marker, from, to) {
function getMarkedSpanFor (line 5405) | function getMarkedSpanFor(spans, marker) {
function removeMarkedSpan (line 5413) | function removeMarkedSpan(spans, span) {
function addMarkedSpan (line 5419) | function addMarkedSpan(line, span) {
function markedSpansBefore (line 5428) | function markedSpansBefore(old, startCh, isInsert) {
function markedSpansAfter (line 5439) | function markedSpansAfter(old, endCh, isInsert) {
function stretchSpansOverChange (line 5458) | function stretchSpansOverChange(doc, change) {
function clearEmptySpans (line 5519) | function clearEmptySpans(spans) {
function mergeOldSpans (line 5533) | function mergeOldSpans(doc, change) {
function removeReadOnlyRanges (line 5556) | function removeReadOnlyRanges(doc, from, to) {
function detachMarkedSpans (line 5585) | function detachMarkedSpans(line) {
function attachMarkedSpans (line 5592) | function attachMarkedSpans(line, spans) {
function extraLeft (line 5601) | function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0; }
function extraRight (line 5602) | function extraRight(marker) { return marker.inclusiveRight ? 1 : 0; }
function compareCollapsedMarkers (line 5607) | function compareCollapsedMarkers(a, b) {
function collapsedSpanAtSide (line 5620) | function collapsedSpanAtSide(line, start) {
function collapsedSpanAtStart (line 5630) | function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, t...
function collapsedSpanAtEnd (line 5631) | function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, fal...
function conflictingCollapsedRange (line 5636) | function conflictingCollapsedRange(doc, lineNo, from, to, marker) {
function visualLine (line 5656) | function visualLine(line) {
function visualLineContinued (line 5665) | function visualLineContinued(line) {
function visualLineNo (line 5676) | function visualLineNo(doc, lineN) {
function visualLineEndNo (line 5683) | function visualLineEndNo(doc, lineN) {
function lineIsHidden (line 5695) | function lineIsHidden(doc, line) {
function lineIsHiddenInner (line 5706) | function lineIsHiddenInner(doc, line, span) {
function adjustScrollWhenAboveVisible (line 5734) | function adjustScrollWhenAboveVisible(cm, line, diff) {
function widgetHeight (line 5763) | function widgetHeight(widget) {
function addLineWidget (line 5774) | function addLineWidget(cm, handle, node, options) {
function updateLine (line 5808) | function updateLine(line, text, markedSpans, estimateHeight) {
function cleanUpLine (line 5820) | function cleanUpLine(line) {
function extractLineClasses (line 5825) | function extractLineClasses(type, output) {
function callBlankLine (line 5839) | function callBlankLine(mode, state) {
function readToken (line 5846) | function readToken(mode, stream, state, inner) {
function takeToken (line 5856) | function takeToken(cm, pos, precise, asArray) {
function runMode (line 5878) | function runMode(cm, text, mode, state, f, lineClasses, forceToEnd) {
function highlightLine (line 5916) | function highlightLine(cm, line, state, forceToEnd) {
function getLineStyles (line 5954) | function getLineStyles(cm, line, updateFrontier) {
function processLine (line 5968) | function processLine(cm, text, state, startAt) {
function interpretTokenStyle (line 5983) | function interpretTokenStyle(style, options) {
function buildLineContent (line 5995) | function buildLineContent(cm, lineView) {
function defaultSpecialCharPlaceholder (line 6049) | function defaultSpecialCharPlaceholder(ch) {
function buildToken (line 6057) | function buildToken(builder, text, style, startStyle, endStyle, title) {
function buildTokenSplitSpaces (line 6107) | function buildTokenSplitSpaces(inner) {
function buildTokenBadBidi (line 6121) | function buildTokenBadBidi(inner, order) {
function buildCollapsedSpan (line 6140) | function buildCollapsedSpan(builder, size, marker, ignoreWidget) {
function insertLineContent (line 6151) | function insertLineContent(line, builder, styles) {
function isWholeLineUpdate (line 6215) | function isWholeLineUpdate(doc, change) {
function updateDoc (line 6221) | function updateDoc(doc, change, markedSpans, estimateHeight) {
function LeafChunk (line 6279) | function LeafChunk(lines) {
function BranchChunk (line 6319) | function BranchChunk(children) {
function linkedDocs (line 6772) | function linkedDocs(doc, f, sharedHistOnly) {
function attachDoc (line 6787) | function attachDoc(cm, doc) {
function getLine (line 6801) | function getLine(doc, n) {
function getBetween (line 6816) | function getBetween(doc, start, end) {
function getLines (line 6828) | function getLines(doc, from, to) {
function updateLineHeight (line 6836) | function updateLineHeight(line, height) {
function lineNo (line 6843) | function lineNo(line) {
function lineAtHeight (line 6857) | function lineAtHeight(chunk, h) {
function heightAtLine (line 6878) | function heightAtLine(lineObj) {
function getOrder (line 6900) | function getOrder(line) {
function History (line 6908) | function History(startGen) {
function historyChangeFromChange (line 6925) | function historyChangeFromChange(doc, change) {
function clearSelectionEvents (line 6934) | function clearSelectionEvents(array) {
function lastChangeEvent (line 6944) | function lastChangeEvent(hist, force) {
function addChangeToHistory (line 6959) | function addChangeToHistory(doc, change, selAfter, opId) {
function selectionEventCanBeMerged (line 7001) | function selectionEventCanBeMerged(doc, origin, prev, sel) {
function addSelectionToHistory (line 7014) | function addSelectionToHistory(doc, sel, opId, options) {
function pushSelectionToHistory (line 7036) | function pushSelectionToHistory(sel, dest) {
function attachLocalSpans (line 7043) | function attachLocalSpans(doc, change, from, to) {
function removeClearedSpans (line 7054) | function removeClearedSpans(spans) {
function getOldSpans (line 7064) | function getOldSpans(doc, change) {
function copyHistoryArray (line 7074) | function copyHistoryArray(events, newGroup, instantiateSel) {
function rebaseHistSelSingle (line 7099) | function rebaseHistSelSingle(pos, from, to, diff) {
function rebaseHistArray (line 7115) | function rebaseHistArray(array, from, to, diff) {
function rebaseHist (line 7143) | function rebaseHist(hist, change) {
function e_defaultPrevented (line 7162) | function e_defaultPrevented(e) {
function e_target (line 7167) | function e_target(e) {return e.target || e.srcElement;}
function e_button (line 7168) | function e_button(e) {
function signalLater (line 7225) | function signalLater(emitter, type /*, values...*/) {
function fireOrphanDelayed (line 7242) | function fireOrphanDelayed() {
function signalDOMEvent (line 7251) | function signalDOMEvent(cm, e, override) {
function signalCursorActivity (line 7258) | function signalCursorActivity(cm) {
function hasHandler (line 7266) | function hasHandler(emitter, type) {
function eventMixin (line 7273) | function eventMixin(ctor) {
function Delayed (line 7290) | function Delayed() {this.id = null;}
function findColumn (line 7315) | function findColumn(string, goal, tabSize) {
function spaceStr (line 7330) | function spaceStr(n) {
function lst (line 7336) | function lst(arr) { return arr[arr.length-1]; }
function indexOf (line 7344) | function indexOf(array, elt) {
function map (line 7350) | function map(array, f) {
function createObj (line 7357) | function createObj(base, props) {
function copyObj (line 7370) | function copyObj(obj, target, overwrite) {
function bind (line 7378) | function bind(f) {
function isWordChar (line 7388) | function isWordChar(ch, helper) {
function isEmpty (line 7394) | function isEmpty(obj) {
function isExtendingChar (line 7405) | function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendi...
function elt (line 7409) | function elt(tag, content, className, style) {
function removeChildren (line 7435) | function removeChildren(e) {
function removeChildrenAndAdd (line 7441) | function removeChildrenAndAdd(parent, e) {
function contains (line 7445) | function contains(parent, child) {
function activeElt (line 7452) | function activeElt() { return document.activeElement; }
function classTest (line 7460) | function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)...
function joinClasses (line 7473) | function joinClasses(a, b) {
function forEachCodeMirror (line 7486) | function forEachCodeMirror(f) {
function ensureGlobalHandlers (line 7496) | function ensureGlobalHandlers() {
function registerGlobalHandlers (line 7501) | function registerGlobalHandlers() {
function scrollbarWidth (line 7529) | function scrollbarWidth(measure) {
function zeroWidthElement (line 7539) | function zeroWidthElement(measure) {
function hasBadBidiRects (line 7552) | function hasBadBidiRects(measure) {
function hasBadZoomedRects (line 7599) | function hasBadZoomedRects(measure) {
function iterateBidiSections (line 7628) | function iterateBidiSections(order, from, to, f) {
function bidiLeft (line 7641) | function bidiLeft(part) { return part.level % 2 ? part.to : part.from; }
function bidiRight (line 7642) | function bidiRight(part) { return part.level % 2 ? part.from : part.to; }
function lineLeft (line 7644) | function lineLeft(line) { var order = getOrder(line); return order ? bid...
function lineRight (line 7645) | function lineRight(line) {
function lineStart (line 7651) | function lineStart(cm, lineN) {
function lineEnd (line 7659) | function lineEnd(cm, lineN) {
function lineStartSmart (line 7669) | function lineStartSmart(cm, pos) {
function compareBidiLevel (line 7681) | function compareBidiLevel(order, a, b) {
function getBidiPartAt (line 7688) | function getBidiPartAt(order, pos) {
function moveInLine (line 7708) | function moveInLine(line, pos, dir, byUnit) {
function moveVisually (line 7720) | function moveVisually(line, start, dir, byUnit) {
function moveLogically (line 7743) | function moveLogically(line, start, dir, byUnit) {
function charType (line 7777) | function charType(code) {
function BidiSpan (line 7792) | function BidiSpan(level, from, to) {
FILE: src/_site/vendor/codemirror/mode/asterisk/asterisk.js
function basicToken (line 66) | function basicToken(stream,state){
FILE: src/_site/vendor/codemirror/mode/clike/clike.js
function tokenBase (line 29) | function tokenBase(stream, state) {
function tokenString (line 75) | function tokenString(quote) {
function tokenComment (line 88) | function tokenComment(stream, state) {
function Context (line 100) | function Context(indented, column, type, align, prev) {
function pushContext (line 107) | function pushContext(state, col, type) {
function popContext (line 113) | function popContext(state) {
function words (line 182) | function words(str) {
function cppHook (line 191) | function cppHook(stream, state) {
function cpp11StringHook (line 209) | function cpp11StringHook(stream, state) {
function tokenAtString (line 234) | function tokenAtString(stream, state) {
function tokenRawString (line 247) | function tokenRawString(stream, state) {
function def (line 258) | function def(mimes, mode) {
function tokenTripleString (line 350) | function tokenTripleString(stream, state) {
FILE: src/_site/vendor/codemirror/mode/clojure/clojure.js
function makeKeywords (line 25) | function makeKeywords(str) {
function stateStack (line 65) | function stateStack(indent, type, prev) { // represents a state stack ob...
function pushStack (line 71) | function pushStack(state, indent, type) {
function popStack (line 75) | function popStack(state) {
function isNumber (line 79) | function isNumber(ch, stream){
function eatCharacter (line 113) | function eatCharacter(stream) {
FILE: src/_site/vendor/codemirror/mode/cobol/cobol.js
function makeKeywords (line 22) | function makeKeywords(str) {
function isNumber (line 150) | function isNumber(ch, stream){
FILE: src/_site/vendor/codemirror/mode/coffeescript/coffeescript.js
function wordRegexp (line 21) | function wordRegexp(words) {
function tokenBase (line 50) | function tokenBase(stream, state) {
function tokenFactory (line 177) | function tokenFactory(delimiter, singleline, outclass) {
function longComment (line 204) | function longComment(stream, state) {
function indent (line 216) | function indent(stream, state, type) {
function dedent (line 240) | function dedent(stream, state) {
function tokenLexer (line 264) | function tokenLexer(stream, state) {
FILE: src/_site/vendor/codemirror/mode/commonlisp/commonlisp.js
function readSym (line 20) | function readSym(stream) {
function base (line 29) | function base(stream, state) {
function inString (line 62) | function inString(stream, state) {
function inComment (line 71) | function inComment(stream, state) {
FILE: src/_site/vendor/codemirror/mode/css/css.js
function ret (line 29) | function ret(style, tp) { type = tp; return style; }
function tokenBase (line 33) | function tokenBase(stream, state) {
function tokenString (line 81) | function tokenString(quote) {
function tokenParenthesized (line 96) | function tokenParenthesized(stream, state) {
function Context (line 107) | function Context(type, indent, prev) {
function pushContext (line 113) | function pushContext(state, stream, type) {
function popContext (line 118) | function popContext(state) {
function pass (line 123) | function pass(type, stream, state) {
function popAndPass (line 126) | function popAndPass(type, stream, state, n) {
function wordAsValue (line 134) | function wordAsValue(stream) {
function keySet (line 348) | function keySet(array) {
function tokenCComment (line 595) | function tokenCComment(stream, state) {
function tokenSGMLComment (line 607) | function tokenSGMLComment(stream, state) {
FILE: src/_site/vendor/codemirror/mode/css/less_test.js
function MT (line 8) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: src/_site/vendor/codemirror/mode/css/scss_test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: src/_site/vendor/codemirror/mode/css/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: src/_site/vendor/codemirror/mode/d/d.js
function tokenBase (line 27) | function tokenBase(stream, state) {
function tokenString (line 77) | function tokenString(quote) {
function tokenComment (line 90) | function tokenComment(stream, state) {
function tokenNestedComment (line 102) | function tokenNestedComment(stream, state) {
function Context (line 114) | function Context(indented, column, type, align, prev) {
function pushContext (line 121) | function pushContext(state, col, type) {
function popContext (line 127) | function popContext(state) {
function words (line 189) | function words(str) {
FILE: src/_site/vendor/codemirror/mode/django/django.js
function tokenBase (line 24) | function tokenBase (stream, state) {
function inTag (line 34) | function inTag (close) {
FILE: src/_site/vendor/codemirror/mode/dtd/dtd.js
function ret (line 23) | function ret(style, tp) {type = tp; return style;}
function tokenBase (line 25) | function tokenBase(stream, state) {
function tokenSGMLComment (line 54) | function tokenSGMLComment(stream, state) {
function tokenString (line 66) | function tokenString(quote) {
function inBlock (line 80) | function inBlock(style, terminator) {
FILE: src/_site/vendor/codemirror/mode/dylan/dylan.js
function chain (line 152) | function chain(stream, state, f) {
function ret (line 159) | function ret(_type, style, _content) {
function tokenBase (line 165) | function tokenBase(stream, state) {
function tokenComment (line 250) | function tokenComment(stream, state) {
function tokenString (line 263) | function tokenString(quote, type, style) {
FILE: src/_site/vendor/codemirror/mode/ecl/ecl.js
function words (line 16) | function words(str) {
function metaHook (line 22) | function metaHook(stream, state) {
function tokenBase (line 42) | function tokenBase(stream, state) {
function tokenString (line 108) | function tokenString(quote) {
function tokenComment (line 121) | function tokenComment(stream, state) {
function Context (line 133) | function Context(indented, column, type, align, prev) {
function pushContext (line 140) | function pushContext(state, col, type) {
function popContext (line 143) | function popContext(state) {
FILE: src/_site/vendor/codemirror/mode/eiffel/eiffel.js
function wordObj (line 15) | function wordObj(words) {
function chain (line 89) | function chain(newtok, stream, state) {
function tokenBase (line 94) | function tokenBase(stream, state) {
function readQuoted (line 121) | function readQuoted(quote, style, unescaped) {
FILE: src/_site/vendor/codemirror/mode/erlang/erlang.js
function tokenizer (line 103) | function tokenizer(stream,state) {
function nongreedy (line 294) | function nongreedy(stream,re,words) {
function greedy (line 308) | function greedy(stream,re,words) {
function doubleQuote (line 325) | function doubleQuote(stream) {
function singleQuote (line 329) | function singleQuote(stream) {
function quote (line 333) | function quote(stream,quoteChar,escapeChar) {
function lookahead (line 345) | function lookahead(stream) {
function is_member (line 350) | function is_member(element,list) {
function rval (line 354) | function rval(state,stream,type) {
function aToken (line 388) | function aToken(tok,col,ind,typ) {
function realToken (line 395) | function realToken(type,stream) {
function fakeToken (line 402) | function fakeToken(type) {
function peekToken (line 406) | function peekToken(state,depth) {
function pushToken (line 417) | function pushToken(state,token) {
function maybe_drop_pre (line 425) | function maybe_drop_pre(s,token) {
function maybe_drop_post (line 439) | function maybe_drop_post(s) {
function d (line 466) | function d(stack,tt) {
function indenter (line 506) | function indenter(state,textAfter) {
function wordafter (line 549) | function wordafter(str) {
function postcommaToken (line 555) | function postcommaToken(state) {
function defaultToken (line 562) | function defaultToken(state) {
function getToken (line 576) | function getToken(state,tokens) {
function getTokenIndex (line 583) | function getTokenIndex(objs,propname,propvals) {
function truthy (line 593) | function truthy(x) {
FILE: src/_site/vendor/codemirror/mode/fortran/fortran.js
function words (line 15) | function words(array) {
function tokenBase (line 117) | function tokenBase(stream, state) {
function tokenString (line 155) | function tokenString(quote) {
FILE: src/_site/vendor/codemirror/mode/gas/gas.js
function x86 (line 144) | function x86(_parserConfig) {
function armv6 (line 191) | function armv6(_parserConfig) {
function nextUntilUnescaped (line 234) | function nextUntilUnescaped(stream, end) {
function clikeComment (line 245) | function clikeComment(stream, state) {
FILE: src/_site/vendor/codemirror/mode/gfm/gfm.js
function blankLine (line 16) | function blankLine(state) {
FILE: src/_site/vendor/codemirror/mode/gfm/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
function FT (line 8) | function FT(name) { test.mode(name, modeHighlightFormatting, Array.proto...
FILE: src/_site/vendor/codemirror/mode/go/go.js
function tokenBase (line 40) | function tokenBase(stream, state) {
function tokenString (line 84) | function tokenString(quote) {
function tokenComment (line 97) | function tokenComment(stream, state) {
function Context (line 109) | function Context(indented, column, type, align, prev) {
function pushContext (line 116) | function pushContext(state, col, type) {
function popContext (line 119) | function popContext(state) {
FILE: src/_site/vendor/codemirror/mode/groovy/groovy.js
function words (line 15) | function words(str) {
function tokenBase (line 30) | function tokenBase(stream, state) {
function startString (line 79) | function startString(quote, stream, state) {
function tokenBaseUntilBrace (line 105) | function tokenBaseUntilBrace() {
function tokenComment (line 123) | function tokenComment(stream, state) {
function expectExpression (line 135) | function expectExpression(last) {
function Context (line 140) | function Context(indented, column, type, align, prev) {
function pushContext (line 147) | function pushContext(state, col, type) {
function popContext (line 150) | function popContext(state) {
FILE: src/_site/vendor/codemirror/mode/haml/haml.js
function rubyInQuote (line 19) | function rubyInQuote(endQuote) {
function ruby (line 33) | function ruby(stream, state) {
function html (line 41) | function html(stream, state) {
FILE: src/_site/vendor/codemirror/mode/haml/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: src/_site/vendor/codemirror/mode/haskell/haskell.js
function switchState (line 16) | function switchState(source, setState, f) {
function normal (line 32) | function normal(source, setState) {
function ncomment (line 125) | function ncomment(type, nest) {
function stringLiteral (line 149) | function stringLiteral(source, setState) {
function stringGap (line 172) | function stringGap(source, setState) {
function setType (line 184) | function setType(t) {
FILE: src/_site/vendor/codemirror/mode/haxe/haxe.js
function kw (line 20) | function kw(type) {return {type: type, style: "keyword"};}
function chain (line 39) | function chain(stream, state, f) {
function nextUntilUnescaped (line 44) | function nextUntilUnescaped(stream, end) {
function ret (line 57) | function ret(tp, style, cont) {
function haxeTokenBase (line 62) | function haxeTokenBase(stream, state) {
function haxeTokenString (line 125) | function haxeTokenString(quote) {
function haxeTokenComment (line 133) | function haxeTokenComment(stream, state) {
function HaxeLexical (line 149) | function HaxeLexical(indented, column, type, align, prev, info) {
function inScope (line 158) | function inScope(state, varname) {
function parseHaxe (line 163) | function parseHaxe(state, style, type, content, stream) {
function imported (line 185) | function imported(state, typename)
function registerimport (line 195) | function registerimport(importname) {
function pass (line 204) | function pass() {
function cont (line 207) | function cont() {
function register (line 211) | function register(varname) {
function pushcontext (line 224) | function pushcontext() {
function popcontext (line 228) | function popcontext() {
function pushlex (line 232) | function pushlex(type, info) {
function poplex (line 240) | function poplex() {
function expect (line 250) | function expect(wanted) {
function statement (line 259) | function statement(type) {
function expression (line 281) | function expression(type) {
function maybeexpression (line 291) | function maybeexpression(type) {
function maybeoperator (line 296) | function maybeoperator(type, value) {
function maybeattribute (line 305) | function maybeattribute(type) {
function metadef (line 311) | function metadef(type) {
function metaargs (line 316) | function metaargs(type) {
function importdef (line 320) | function importdef (type, value) {
function typedef (line 325) | function typedef (type, value)
function maybelabel (line 331) | function maybelabel(type) {
function property (line 335) | function property(type) {
function objprop (line 338) | function objprop(type) {
function commasep (line 342) | function commasep(what, end) {
function block (line 353) | function block(type) {
function vardef1 (line 357) | function vardef1(type, value) {
function vardef2 (line 361) | function vardef2(type, value) {
function forspec1 (line 365) | function forspec1(type, value) {
function forin (line 371) | function forin(_type, value) {
function functiondef (line 374) | function functiondef(type, value) {
function typeuse (line 379) | function typeuse(type) {
function typestring (line 382) | function typestring(type) {
function typeprop (line 387) | function typeprop(type) {
function funarg (line 390) | function funarg(type, value) {
FILE: src/_site/vendor/codemirror/mode/htmlembedded/htmlembedded.js
function htmlDispatch (line 24) | function htmlDispatch(stream, state) {
function scriptingDispatch (line 34) | function scriptingDispatch(stream, state) {
FILE: src/_site/vendor/codemirror/mode/htmlmixed/htmlmixed.js
function html (line 31) | function html(stream, state) {
function maybeBackup (line 58) | function maybeBackup(stream, pat, style) {
function script (line 68) | function script(stream, state) {
function css (line 77) | function css(stream, state) {
FILE: src/_site/vendor/codemirror/mode/http/http.js
function failFirstLine (line 15) | function failFirstLine(stream, state) {
function start (line 21) | function start(stream, state) {
function responseStatusCode (line 33) | function responseStatusCode(stream, state) {
function responseStatusText (line 54) | function responseStatusText(stream, state) {
function requestPath (line 60) | function requestPath(stream, state) {
function requestProtocol (line 66) | function requestProtocol(stream, state) {
function header (line 75) | function header(stream) {
function body (line 89) | function body(stream) {
FILE: src/_site/vendor/codemirror/mode/idl/idl.js
function wordRegexp (line 14) | function wordRegexp(words) {
function tokenBase (line 244) | function tokenBase(stream) {
FILE: src/_site/vendor/codemirror/mode/jade/jade.js
function State (line 29) | function State() {
function javaScript (line 105) | function javaScript(stream, state) {
function javaScriptArguments (line 122) | function javaScriptArguments(stream, state) {
function yieldStatement (line 143) | function yieldStatement(stream) {
function doctype (line 149) | function doctype(stream) {
function interpolation (line 155) | function interpolation(stream, state) {
function interpolationContinued (line 163) | function interpolationContinued(stream, state) {
function caseStatement (line 179) | function caseStatement(stream, state) {
function when (line 186) | function when(stream, state) {
function defaultStatement (line 194) | function defaultStatement(stream) {
function extendsStatement (line 200) | function extendsStatement(stream, state) {
function append (line 207) | function append(stream, state) {
function prepend (line 213) | function prepend(stream, state) {
function block (line 219) | function block(stream, state) {
function include (line 226) | function include(stream, state) {
function includeFiltered (line 233) | function includeFiltered(stream, state) {
function includeFilteredContinued (line 240) | function includeFilteredContinued(stream, state) {
function mixin (line 249) | function mixin(stream, state) {
function call (line 256) | function call(stream, state) {
function callArguments (line 270) | function callArguments(stream, state) {
function conditional (line 281) | function conditional(stream, state) {
function each (line 288) | function each(stream, state) {
function eachContinued (line 294) | function eachContinued(stream, state) {
function whileStatement (line 309) | function whileStatement(stream, state) {
function tag (line 316) | function tag(stream, state) {
function filter (line 327) | function filter(stream, state) {
function code (line 344) | function code(stream, state) {
function id (line 351) | function id(stream) {
function className (line 357) | function className(stream) {
function attrs (line 363) | function attrs(stream, state) {
function attrsContinued (line 375) | function attrsContinued(stream, state) {
function attributesBlock (line 419) | function attributesBlock(stream, state) {
function indent (line 427) | function indent(stream) {
function comment (line 433) | function comment(stream, state) {
function colon (line 441) | function colon(stream) {
function text (line 447) | function text(stream, state) {
function dot (line 459) | function dot(stream, state) {
function fail (line 472) | function fail(stream) {
function setInnerMode (line 478) | function setInnerMode(stream, state, mode) {
function innerMode (line 491) | function innerMode(stream, state, force) {
function restOfLine (line 511) | function restOfLine(stream, state) {
function startState (line 525) | function startState() {
function copyState (line 528) | function copyState(state) {
function nextToken (line 537) | function nextToken(stream, state) {
FILE: src/_site/vendor/codemirror/mode/javascript/javascript.js
function kw (line 27) | function kw(type) {return {type: type, style: "keyword"};}
function readRegexp (line 73) | function readRegexp(stream) {
function ret (line 88) | function ret(tp, style, cont) {
function tokenBase (line 92) | function tokenBase(stream, state) {
function tokenString (line 144) | function tokenString(quote) {
function tokenComment (line 160) | function tokenComment(stream, state) {
function tokenQuasi (line 172) | function tokenQuasi(stream, state) {
function findFatArrow (line 192) | function findFatArrow(stream, state) {
function JSLexical (line 220) | function JSLexical(indented, column, type, align, prev, info) {
function inScope (line 229) | function inScope(state, varname) {
function parseJS (line 238) | function parseJS(state, style, type, content, stream) {
function pass (line 262) | function pass() {
function cont (line 265) | function cont() {
function register (line 269) | function register(varname) {
function pushcontext (line 290) | function pushcontext() {
function popcontext (line 294) | function popcontext() {
function pushlex (line 298) | function pushlex(type, info) {
function poplex (line 309) | function poplex() {
function expect (line 319) | function expect(wanted) {
function statement (line 328) | function statement(type, value) {
function expression (line 354) | function expression(type) {
function expressionNoComma (line 357) | function expressionNoComma(type) {
function expressionInner (line 360) | function expressionInner(type, noComma) {
function maybeexpression (line 378) | function maybeexpression(type) {
function maybeexpressionNoComma (line 382) | function maybeexpressionNoComma(type) {
function maybeoperatorComma (line 387) | function maybeoperatorComma(type, value) {
function maybeoperatorNoComma (line 391) | function maybeoperatorNoComma(type, value, noComma) {
function quasi (line 406) | function quasi(type, value) {
function continueQuasi (line 411) | function continueQuasi(type) {
function arrowBody (line 418) | function arrowBody(type) {
function arrowBodyNoComma (line 422) | function arrowBodyNoComma(type) {
function maybelabel (line 426) | function maybelabel(type) {
function property (line 430) | function property(type) {
function objprop (line 433) | function objprop(type, value) {
function getterSetter (line 447) | function getterSetter(type) {
function afterprop (line 452) | function afterprop(type) {
function commasep (line 456) | function commasep(what, end) {
function contCommasep (line 471) | function contCommasep(what, end, info) {
function block (line 476) | function block(type) {
function maybetype (line 480) | function maybetype(type) {
function typedef (line 483) | function typedef(type) {
function vardef (line 486) | function vardef() {
function pattern (line 489) | function pattern(type, value) {
function proppattern (line 494) | function proppattern(type, value) {
function maybeAssign (line 502) | function maybeAssign(_type, value) {
function vardefCont (line 505) | function vardefCont(type) {
function maybeelse (line 508) | function maybeelse(type, value) {
function forspec (line 511) | function forspec(type) {
function forspec1 (line 514) | function forspec1(type) {
function formaybeinof (line 520) | function formaybeinof(_type, value) {
function forspec2 (line 524) | function forspec2(type, value) {
function forspec3 (line 529) | function forspec3(type) {
function functiondef (line 532) | function functiondef(type, value) {
function funarg (line 537) | function funarg(type) {
function className (line 541) | function className(type, value) {
function classNameAfter (line 544) | function classNameAfter(type, value) {
function classBody (line 548) | function classBody(type, value) {
function classGetterSetter (line 561) | function classGetterSetter(type) {
function afterModule (line 566) | function afterModule(type, value) {
function afterExport (line 570) | function afterExport(_type, value) {
function afterImport (line 575) | function afterImport(type) {
function importSpec (line 579) | function importSpec(type, value) {
function maybeFrom (line 584) | function maybeFrom(_type, value) {
function arrayLiteral (line 587) | function arrayLiteral(type) {
function maybeArrayComprehension (line 591) | function maybeArrayComprehension(type) {
function comprehension (line 596) | function comprehension(type) {
FILE: src/_site/vendor/codemirror/mode/javascript/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
function LD (line 161) | function LD(name) {
FILE: src/_site/vendor/codemirror/mode/jinja2/jinja2.js
function tokenBase (line 36) | function tokenBase (stream, state) {
FILE: src/_site/vendor/codemirror/mode/julia/julia.js
function wordRegexp (line 17) | function wordRegexp(words) {
function in_array (line 39) | function in_array(state) {
function cur_scope (line 49) | function cur_scope(state) {
function tokenBase (line 57) | function tokenBase(stream, state) {
function tokenStringFactory (line 214) | function tokenStringFactory(delimiter) {
function tokenLexer (line 249) | function tokenLexer(stream, state) {
FILE: src/_site/vendor/codemirror/mode/kotlin/kotlin.js
function words (line 15) | function words(str) {
function tokenBase (line 34) | function tokenBase(stream, state) {
function startString (line 96) | function startString(quote, stream, state) {
function tokenBaseUntilBrace (line 137) | function tokenBaseUntilBrace() {
function tokenBaseUntilSpace (line 157) | function tokenBaseUntilSpace() {
function tokenComment (line 174) | function tokenComment(stream, state) {
function expectExpression (line 186) | function expectExpression(last) {
function Context (line 191) | function Context(indented, column, type, align, prev) {
function pushContext (line 199) | function pushContext(state, col, type) {
function popContext (line 203) | function popContext(state) {
FILE: src/_site/vendor/codemirror/mode/lua/lua.js
function prefixRE (line 21) | function prefixRE(words) {
function wordRE (line 24) | function wordRE(words) {
function readBracket (line 70) | function readBracket(stream) {
function normal (line 77) | function normal(stream, state) {
function bracketed (line 100) | function bracketed(level, style) {
function string (line 113) | function string(quote) {
FILE: src/_site/vendor/codemirror/mode/markdown/markdown.js
function getMode (line 19) | function getMode(name) {
function switchInline (line 79) | function switchInline(stream, state, f) {
function switchBlock (line 84) | function switchBlock(stream, state, f) {
function blankLine (line 92) | function blankLine(state) {
function blockNormal (line 115) | function blockNormal(stream, state) {
function htmlBlock (line 190) | function htmlBlock(stream, state) {
function local (line 201) | function local(stream, state) {
function leavingLocal (line 214) | function leavingLocal(stream, state) {
function getType (line 226) | function getType(state) {
function handleText (line 308) | function handleText(stream, state) {
function inlineNormal (line 315) | function inlineNormal(stream, state) {
function linkInline (line 532) | function linkInline(stream, state) {
function linkHref (line 552) | function linkHref(stream, state) {
function getLinkHrefInside (line 567) | function getLinkHrefInside(endChar) {
function footnoteLink (line 588) | function footnoteLink(stream, state) {
function footnoteLinkInside (line 599) | function footnoteLinkInside(stream, state) {
function footnoteUrl (line 613) | function footnoteUrl(stream, state) {
function inlineRE (line 631) | function inlineRE(endChar) {
FILE: src/_site/vendor/codemirror/mode/markdown/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
function FT (line 8) | function FT(name) { test.mode(name, modeHighlightFormatting, Array.proto...
FILE: src/_site/vendor/codemirror/mode/mirc/mirc.js
function parseWords (line 18) | function parseWords(str) {
function chain (line 86) | function chain(stream, state, f) {
function tokenBase (line 90) | function tokenBase(stream, state) {
function tokenComment (line 153) | function tokenComment(stream, state) {
function tokenUnparsed (line 164) | function tokenUnparsed(stream, state) {
FILE: src/_site/vendor/codemirror/mode/mllike/mllike.js
function tokenBase (line 50) | function tokenBase(stream, state) {
function tokenString (line 91) | function tokenString(stream, state) {
function tokenComment (line 106) | function tokenComment(stream, state) {
FILE: src/_site/vendor/codemirror/mode/modelica/modelica.js
function tokenLineComment (line 30) | function tokenLineComment(stream, state) {
function tokenBlockComment (line 36) | function tokenBlockComment(stream, state) {
function tokenString (line 48) | function tokenString(stream, state) {
function tokenIdent (line 62) | function tokenIdent(stream, state) {
function tokenQIdent (line 81) | function tokenQIdent(stream, state) {
function tokenUnsignedNuber (line 93) | function tokenUnsignedNuber(stream, state) {
function words (line 202) | function words(str) {
function def (line 213) | function def(mimes, mode) {
FILE: src/_site/vendor/codemirror/mode/nginx/nginx.js
function words (line 16) | function words(str) {
function ret (line 36) | function ret(style, tp) {type = tp; return style;}
function tokenBase (line 38) | function tokenBase(stream, state) {
function tokenCComment (line 97) | function tokenCComment(stream, state) {
function tokenSGMLComment (line 109) | function tokenSGMLComment(stream, state) {
function tokenString (line 121) | function tokenString(quote) {
FILE: src/_site/vendor/codemirror/mode/ntriples/ntriples.js
function transitState (line 59) | function transitState(currState, c) {
FILE: src/_site/vendor/codemirror/mode/octave/octave.js
function wordRegexp (line 15) | function wordRegexp(words) {
function tokenTranspose (line 46) | function tokenTranspose(stream, state) {
function tokenComment (line 57) | function tokenComment(stream, state) {
function tokenBase (line 66) | function tokenBase(stream, state) {
FILE: src/_site/vendor/codemirror/mode/pascal/pascal.js
function words (line 15) | function words(str) {
function tokenBase (line 27) | function tokenBase(stream, state) {
function tokenString (line 65) | function tokenString(quote) {
function tokenComment (line 77) | function tokenComment(stream, state) {
FILE: src/_site/vendor/codemirror/mode/pegjs/pegjs.js
function identifier (line 17) | function identifier(stream) {
FILE: src/_site/vendor/codemirror/mode/perl/perl.js
function tokenChain (line 483) | function tokenChain(stream,state,chain,style,tail){ // NOTE: chain.l...
function tokenSOMETHING (line 503) | function tokenSOMETHING(stream,state,string){
function tokenPerl (line 511) | function tokenPerl(stream,state){
function look (line 799) | function look(stream, c){
function prefix (line 804) | function prefix(stream, c){
function suffix (line 814) | function suffix(stream, c){
function eatSuffix (line 821) | function eatSuffix(stream, c){
FILE: src/_site/vendor/codemirror/mode/php/php.js
function keywords (line 14) | function keywords(str) {
function matchSequence (line 21) | function matchSequence(list, end) {
function stringWithEscapes (line 33) | function stringWithEscapes(closing) {
function stringWithEscapes_ (line 36) | function stringWithEscapes_(stream, state, closing) {
function dispatch (line 152) | function dispatch(stream, state) {
FILE: src/_site/vendor/codemirror/mode/php/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
function build_recursive_monsters (line 78) | function build_recursive_monsters(nt, t, n){
function build_recursive_monsters_2 (line 124) | function build_recursive_monsters_2(mf1, mf2, nt, t, n){
FILE: src/_site/vendor/codemirror/mode/pig/pig.js
function chain (line 28) | function chain(stream, state, f) {
function ret (line 34) | function ret(tp, style) {
function tokenComment (line 39) | function tokenComment(stream, state) {
function tokenString (line 52) | function tokenString(quote) {
function tokenBase (line 67) | function tokenBase(stream, state) {
function keywords (line 150) | function keywords(str) {
FILE: src/_site/vendor/codemirror/mode/puppet/puppet.js
function define (line 22) | function define(style, string) {
function tokenString (line 47) | function tokenString(stream, state) {
function tokenize (line 68) | function tokenize(stream, state) {
FILE: src/_site/vendor/codemirror/mode/python/python.js
function wordRegexp (line 14) | function wordRegexp(words) {
function top (line 44) | function top(state) {
function tokenBase (line 87) | function tokenBase(stream, state) {
function tokenBaseInner (line 108) | function tokenBaseInner(stream, state) {
function tokenStringFactory (line 193) | function tokenStringFactory(delimiter) {
function pushScope (line 226) | function pushScope(stream, state, type) {
function dedent (line 238) | function dedent(stream, state) {
function tokenLexer (line 247) | function tokenLexer(stream, state) {
FILE: src/_site/vendor/codemirror/mode/q/q.js
function buildRE (line 19) | function buildRE(w){return new RegExp("^("+w.join("|")+")$");}
function tokenBase (line 20) | function tokenBase(stream,state){
function tokenLineComment (line 62) | function tokenLineComment(stream,state){
function tokenBlockComment (line 65) | function tokenBlockComment(stream,state){
function tokenCommentToEOF (line 72) | function tokenCommentToEOF(stream){return stream.skipToEnd(),"comment";}
function tokenString (line 73) | function tokenString(stream,state){
function pushContext (line 82) | function pushContext(state,type,col){state.context={prev:state.context,i...
function popContext (line 83) | function popContext(state){state.indent=state.context.indent;state.conte...
FILE: src/_site/vendor/codemirror/mode/r/r.js
function wordObj (line 15) | function wordObj(str) {
function tokenBase (line 27) | function tokenBase(stream, state) {
function tokenString (line 81) | function tokenString(quote) {
function push (line 102) | function push(state, type, stream) {
function pop (line 109) | function pop(state) {
FILE: src/_site/vendor/codemirror/mode/rst/rst.js
function format (line 76) | function format(string) {
function to_normal (line 156) | function to_normal(stream, state) {
function to_explicit (line 356) | function to_explicit(stream, state) {
function to_comment (line 463) | function to_comment(stream, state) {
function to_verbatim (line 467) | function to_verbatim(stream, state) {
function as_block (line 471) | function as_block(stream, state, token) {
function to_mode (line 484) | function to_mode(stream, state) {
function context (line 503) | function context(phase, stage, mode, local) {
function change (line 507) | function change(state, tok, ctx) {
function stage (line 512) | function stage(state) {
function phase (line 516) | function phase(state) {
FILE: src/_site/vendor/codemirror/mode/ruby/ruby.js
function wordObj (line 15) | function wordObj(words) {
function chain (line 34) | function chain(newtok, stream, state) {
function tokenBase (line 39) | function tokenBase(stream, state) {
function tokenBaseUntilBrace (line 152) | function tokenBaseUntilBrace(depth) {
function tokenBaseOnce (line 168) | function tokenBaseOnce() {
function readQuoted (line 179) | function readQuoted(quote, style, embed, unescaped) {
function readHereDoc (line 210) | function readHereDoc(phrase) {
function readBlockComment (line 217) | function readBlockComment(stream, state) {
FILE: src/_site/vendor/codemirror/mode/ruby/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: src/_site/vendor/codemirror/mode/rust/rust.js
function r (line 40) | function r(tc, style) {
function tokenBase (line 45) | function tokenBase(stream, state) {
function tokenString (line 104) | function tokenString(stream, state) {
function tokenComment (line 118) | function tokenComment(depth) {
function pass (line 144) | function pass() {
function cont (line 147) | function cont() {
function pushlex (line 152) | function pushlex(type, info) {
function poplex (line 161) | function poplex() {
function typecx (line 169) | function typecx() { cx.state.keywords = typeKeywords; }
function valcx (line 170) | function valcx() { cx.state.keywords = valKeywords; }
function commasep (line 173) | function commasep(comb, end) {
function stat_of (line 185) | function stat_of(comb, tag) {
function block (line 188) | function block(type) {
function endstatement (line 201) | function endstatement(type) {
function expression (line 205) | function expression(type) {
function maybeop (line 218) | function maybeop(type) {
function maybeprop (line 225) | function maybeprop() {
function exprbrace (line 229) | function exprbrace(type) {
function record_of (line 239) | function record_of(comb) {
function blockvars (line 249) | function blockvars(type) {
function letdef1 (line 255) | function letdef1(type) {
function letdef2 (line 261) | function letdef2(type) {
function maybetype (line 265) | function maybetype(type) {
function inop (line 269) | function inop(type) {
function fndef (line 273) | function fndef(type) {
function tydef (line 283) | function tydef(type) {
function enumdef (line 289) | function enumdef(type) {
function enumblock (line 296) | function enumblock(type) {
function mod (line 302) | function mod(type) {
function iface (line 307) | function iface(type) {
function impl (line 313) | function impl(type) {
function typarams (line 320) | function typarams() {
function argdef (line 326) | function argdef(type) {
function rtype (line 331) | function rtype(type) {
function rtypemaybeparam (line 340) | function rtypemaybeparam() {
function fntype (line 344) | function fntype(type) {
function pattern (line 349) | function pattern(type) {
function patternmaybeop (line 356) | function patternmaybeop(type) {
function altbody (line 361) | function altbody(type) {
function altblock1 (line 365) | function altblock1(type) {
function altblock2 (line 372) | function altblock2(type) {
function macro (line 377) | function macro(type) {
function matchBrackets (line 381) | function matchBrackets(type, comb) {
function parse (line 388) | function parse(state, stream, style) {
FILE: src/_site/vendor/codemirror/mode/sass/sass.js
function tokenRegexp (line 15) | function tokenRegexp(words) {
function urlTokens (line 27) | function urlTokens(stream, state) {
function comment (line 47) | function comment(indentation, multiLine) {
function buildStringTokenizer (line 66) | function buildStringTokenizer(quote, greedy) {
function buildInterpolationTokenizer (line 92) | function buildInterpolationTokenizer(currentTokenizer) {
function indent (line 104) | function indent(state) {
function dedent (line 113) | function dedent(state) {
function tokenBase (line 119) | function tokenBase(stream, state) {
function tokenLexer (line 270) | function tokenLexer(stream, state) {
FILE: src/_site/vendor/codemirror/mode/scheme/scheme.js
function makeKeywords (line 23) | function makeKeywords(str) {
function stateStack (line 32) | function stateStack(indent, type, prev) { // represents a state stack ob...
function pushStack (line 38) | function pushStack(state, indent, type) {
function popStack (line 42) | function popStack(state) {
function isBinaryNumber (line 51) | function isBinaryNumber (stream) {
function isOctalNumber (line 55) | function isOctalNumber (stream) {
function isDecimalNumber (line 59) | function isDecimalNumber (stream, backup) {
function isHexNumber (line 66) | function isHexNumber (stream) {
FILE: src/_site/vendor/codemirror/mode/shell/shell.js
function define (line 17) | function define(style, string) {
function tokenBase (line 38) | function tokenBase(stream, state) {
function tokenString (line 84) | function tokenString(quote) {
function tokenize (line 123) | function tokenize(stream, state) {
FILE: src/_site/vendor/codemirror/mode/shell/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: src/_site/vendor/codemirror/mode/sieve/sieve.js
function words (line 15) | function words(str) {
function tokenBase (line 25) | function tokenBase(stream, state) {
function tokenMultiLineString (line 112) | function tokenMultiLineString(stream, state)
function tokenCComment (line 137) | function tokenCComment(stream, state) {
function tokenString (line 149) | function tokenString(quote) {
FILE: src/_site/vendor/codemirror/mode/slim/slim.js
function backup (line 72) | function backup(pos, tokenize, style) {
function maybeBackup (line 87) | function maybeBackup(stream, state, pat, offset, style) {
function continueLine (line 97) | function continueLine(state, column) {
function finishContinue (line 106) | function finishContinue(state) {
function lineContinuable (line 113) | function lineContinuable(column, tokenize) {
function commaContinuable (line 127) | function commaContinuable(column, tokenize) {
function rubyInQuote (line 138) | function rubyInQuote(endQuote, tokenize) {
function startRubySplat (line 152) | function startRubySplat(tokenize) {
function ruby (line 174) | function ruby(stream, state) {
function htmlLine (line 178) | function htmlLine(stream, state) {
function html (line 184) | function html(stream, state) {
function startHtmlLine (line 192) | function startHtmlLine(lastTokenize) {
function startHtmlMode (line 200) | function startHtmlMode(stream, state, offset) {
function comment (line 211) | function comment(stream, state) {
function commentMode (line 216) | function commentMode(stream, state) {
function attributeWrapper (line 227) | function attributeWrapper(stream, state) {
function attributeWrapperAssign (line 241) | function attributeWrapperAssign(stream, state) {
function attributeWrapperValue (line 248) | function attributeWrapperValue(stream, state) {
function startAttributeWrapperMode (line 265) | function startAttributeWrapperMode(state, endQuote, tokenize) {
function sub (line 278) | function sub(stream, state) {
function firstSub (line 292) | function firstSub(stream, state) {
function createMode (line 298) | function createMode(mode) {
function getMode (line 311) | function getMode(mode) {
function startSubMode (line 318) | function startSubMode(mode, state) {
function doctypeLine (line 335) | function doctypeLine(stream, _state) {
function startLine (line 340) | function startLine(stream, state) {
function slim (line 368) | function slim(stream, state) {
function slimTag (line 375) | function slimTag(stream, state) {
function slimTagExtras (line 386) | function slimTagExtras(stream, state) {
function slimClass (line 393) | function slimClass(stream, state) {
function slimAttribute (line 404) | function slimAttribute(stream, state) {
function slimAttributeAssign (line 419) | function slimAttributeAssign(stream, state) {
function slimAttributeValue (line 428) | function slimAttributeValue(stream, state) {
function slimAttributeSymbols (line 447) | function slimAttributeSymbols(stream, state) {
function readQuoted (line 456) | function readQuoted(quote, style, embed, unescaped, nextTokenize) {
function slimContent (line 490) | function slimContent(stream, state) {
FILE: src/_site/vendor/codemirror/mode/slim/test.js
function MT (line 8) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: src/_site/vendor/codemirror/mode/smartymixed/smartymixed.js
function reEsc (line 41) | function reEsc(str) { return str.replace(/[^\s\w]/g, "\\$&"); }
FILE: src/_site/vendor/codemirror/mode/solr/solr.js
function isNumber (line 21) | function isNumber(word) {
function tokenString (line 25) | function tokenString(quote) {
function tokenOperator (line 38) | function tokenOperator(operator) {
function tokenWord (line 57) | function tokenWord(ch) {
function tokenBase (line 76) | function tokenBase(stream, state) {
FILE: src/_site/vendor/codemirror/mode/sparql/sparql.js
function wordRegexp (line 18) | function wordRegexp(words) {
function tokenBase (line 37) | function tokenBase(stream, state) {
function tokenLiteral (line 91) | function tokenLiteral(quote) {
function pushContext (line 105) | function pushContext(state, type, col) {
function popContext (line 108) | function popContext(state) {
FILE: src/_site/vendor/codemirror/mode/sql/sql.js
function tokenBase (line 26) | function tokenBase(stream, state) {
function tokenLiteral (line 120) | function tokenLiteral(quote) {
function tokenComment (line 133) | function tokenComment(stream, state) {
function pushContext (line 149) | function pushContext(stream, state, type) {
function popContext (line 158) | function popContext(state) {
function hookIdentifier (line 209) | function hookIdentifier(stream) {
function hookVar (line 221) | function hookVar(stream) {
function hookClient (line 248) | function hookClient(stream) {
function set (line 263) | function set(str) {
FILE: src/_site/vendor/codemirror/mode/stex/stex.js
function pushCommand (line 22) | function pushCommand(state, command) {
function peekCommand (line 26) | function peekCommand(state) {
function popCommand (line 34) | function popCommand(state) {
function getMostPowerful (line 42) | function getMostPowerful(state) {
function addPluginPattern (line 54) | function addPluginPattern(pluginName, cmdStyle, styles) {
function setState (line 88) | function setState(state, f) {
function normal (line 93) | function normal(source, state) {
function inMathMode (line 163) | function inMathMode(source, state, endModeSeq) {
function beginParams (line 208) | function beginParams(source, state) {
FILE: src/_site/vendor/codemirror/mode/stex/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: src/_site/vendor/codemirror/mode/tcl/tcl.js
function parseWords (line 17) | function parseWords(str) {
function chain (line 37) | function chain(stream, state, f) {
function tokenBase (line 41) | function tokenBase(stream, state) {
function tokenString (line 92) | function tokenString(quote) {
function tokenComment (line 106) | function tokenComment(stream, state) {
function tokenUnparsed (line 117) | function tokenUnparsed(stream, state) {
FILE: src/_site/vendor/codemirror/mode/textile/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: src/_site/vendor/codemirror/mode/textile/textile.js
function Parser (line 49) | function Parser(regExpFactory, state, stream) {
function RegExpFactory (line 260) | function RegExpFactory() {
FILE: src/_site/vendor/codemirror/mode/tiddlywiki/tiddlywiki.js
function kw (line 36) | function kw(type) {
function chain (line 69) | function chain(stream, state, f) {
function ret (line 78) | function ret(tp, style, cont) {
function jsTokenBase (line 84) | function jsTokenBase(stream, state) {
function twTokenComment (line 221) | function twTokenComment(stream, state) {
function twTokenStrong (line 235) | function twTokenStrong(stream, state) {
function twTokenCode (line 249) | function twTokenCode(stream, state) {
function twTokenEm (line 271) | function twTokenEm(stream, state) {
function twTokenUnderline (line 285) | function twTokenUnderline(stream, state) {
function twTokenStrike (line 300) | function twTokenStrike(stream, state) {
function twTokenMacro (line 314) | function twTokenMacro(stream, state) {
FILE: src/_site/vendor/codemirror/mode/tiki/tiki.js
function inBlock (line 15) | function inBlock(style, terminator, returnTokenizer) {
function inLine (line 31) | function inLine(style) {
function inText (line 41) | function inText(stream, state) {
function inPlugin (line 144) | function inPlugin(stream, state) {
function inAttribute (line 178) | function inAttribute(quote) {
function inAttributeNoQuote (line 190) | function inAttributeNoQuote() {
function pass (line 205) | function pass() {
function cont (line 209) | function cont() {
function pushContext (line 214) | function pushContext(pluginName, startOfLine) {
function popContext (line 225) | function popContext() {
function element (line 229) | function element(type) {
function endplugin (line 250) | function endplugin(startOfLine) {
function endcloseplugin (line 262) | function endcloseplugin(err) {
function attributes (line 270) | function attributes(type) {
function attvalue (line 275) | function attvalue(type) {
function attvaluemaybe (line 280) | function attvaluemaybe(type) {
FILE: src/_site/vendor/codemirror/mode/tornado/tornado.js
function tokenBase (line 25) | function tokenBase (stream, state) {
function inTag (line 35) | function inTag (close) {
FILE: src/_site/vendor/codemirror/mode/turtle/turtle.js
function wordRegexp (line 18) | function wordRegexp(words) {
function tokenBase (line 25) | function tokenBase(stream, state) {
function tokenLiteral (line 77) | function tokenLiteral(quote) {
function pushContext (line 91) | function pushContext(state, type, col) {
function popContext (line 94) | function popContext(state) {
FILE: src/_site/vendor/codemirror/mode/vb/vb.js
function wordRegexp (line 17) | function wordRegexp(words) {
function indent (line 53) | function indent(_stream, state) {
function dedent (line 57) | function dedent(_stream, state) {
function tokenBase (line 61) | function tokenBase(stream, state) {
function tokenStringFactory (line 171) | function tokenStringFactory(delimiter) {
function tokenLexer (line 197) | function tokenLexer(stream, state) {
FILE: src/_site/vendor/codemirror/mode/vbscript/vbscript.js
function wordRegexp (line 28) | function wordRegexp(words) {
function indent (line 108) | function indent(_stream, state) {
function dedent (line 112) | function dedent(_stream, state) {
function tokenBase (line 116) | function tokenBase(stream, state) {
function tokenStringFactory (line 259) | function tokenStringFactory(delimiter) {
function tokenLexer (line 285) | function tokenLexer(stream, state) {
FILE: src/_site/vendor/codemirror/mode/velocity/velocity.js
function parseWords (line 15) | function parseWords(str) {
function chain (line 28) | function chain(stream, state, f) {
function tokenBase (line 32) | function tokenBase(stream, state) {
function tokenString (line 129) | function tokenString(quote) {
function tokenComment (line 149) | function tokenComment(stream, state) {
function tokenUnparsed (line 161) | function tokenUnparsed(stream, state) {
FILE: src/_site/vendor/codemirror/mode/verilog/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: src/_site/vendor/codemirror/mode/verilog/verilog.js
function words (line 22) | function words(str) {
function tokenBase (line 109) | function tokenBase(stream, state) {
function tokenString (line 199) | function tokenString(quote) {
function tokenComment (line 212) | function tokenComment(stream, state) {
function Context (line 224) | function Context(indented, column, type, align, prev) {
function pushContext (line 231) | function pushContext(state, col, type) {
function popContext (line 236) | function popContext(state) {
function isClosing (line 244) | function isClosing(text, contextClosing) {
function buildElectricInputRegEx (line 259) | function buildElectricInputRegEx() {
FILE: src/_site/vendor/codemirror/mode/xml/test.js
function MT (line 6) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: src/_site/vendor/codemirror/mode/xml/xml.js
function inText (line 66) | function inText(stream, state) {
function inTag (line 113) | function inTag(stream, state) {
function inAttribute (line 138) | function inAttribute(quote) {
function inBlock (line 152) | function inBlock(style, terminator) {
function doctype (line 164) | function doctype(depth) {
function Context (line 185) | function Context(state, tagName, startOfLine) {
function popContext (line 193) | function popContext(state) {
function maybePopContext (line 196) | function maybePopContext(state, nextTagName) {
function baseState (line 211) | function baseState(type, stream, state) {
function tagNameState (line 221) | function tagNameState(type, stream, state) {
function closeTagNameState (line 231) | function closeTagNameState(type, stream, state) {
function closeState (line 250) | function closeState(type, _stream, state) {
function closeStateErr (line 258) | function closeStateErr(type, stream, state) {
function attrState (line 263) | function attrState(type, _stream, state) {
function attrEqState (line 282) | function attrEqState(type, stream, state) {
function attrValueState (line 287) | function attrValueState(type, stream, state) {
function attrContinuedState (line 293) | function attrContinuedState(type, stream, state) {
FILE: src/_site/vendor/codemirror/mode/xquery/test.js
function MT (line 11) | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arg...
FILE: src/_site/vendor/codemirror/mode/xquery/xquery.js
function kw (line 21) | function kw(type) {return {type: type, style: "keyword"};}
function ret (line 75) | function ret(tp, style, cont) {
function chain (line 80) | function chain(stream, state, f) {
function tokenBase (line 86) | function tokenBase(stream, state) {
function tokenComment (line 220) | function tokenComment(stream, state) {
function tokenString (line 243) | function tokenString(quote, f) {
function tokenVariable (line 283) | function tokenVariable(stream, state) {
function tokenTag (line 300) | function tokenTag(name, isclose) {
function tokenAttribute (line 323) | function tokenAttribute(stream, state) {
function tokenXMLComment (line 358) | function tokenXMLComment(stream, state) {
function tokenCDATA (line 370) | function tokenCDATA(stream, state) {
function tokenPreProcessing (line 381) | function tokenPreProcessing(stream, state) {
function isInXmlBlock (line 393) | function isInXmlBlock(state) { return isIn(state, "tag"); }
function isInXmlAttributeBlock (line 394) | function isInXmlAttributeBlock(state) { return isIn(state, "attribute"); }
function isInXmlConstructor (line 395) | function isInXmlConstructor(state) { return isIn(state, "xmlconstructor"...
function isInString (line 396) | function isInString(state) { return isIn(state, "string"); }
function isEQNameAhead (line 398) | function isEQNameAhead(stream) {
function isIn (line 408) | function isIn(state, type) {
function pushStateStack (line 412) | function pushStateStack(state, newState) {
function popStateStack (line 416) | function popStateStack(state) {
FILE: src/_site/vendor/codemirror/test/comment_test.js
function test (line 4) | function test(name, mode, run, before, after) {
FILE: src/_site/vendor/codemirror/test/doc_test.js
function instantiateSpec (line 3) | function instantiateSpec(spec, place, opts) {
function clone (line 30) | function clone(obj, props) {
function eqAll (line 39) | function eqAll(val) {
function testDoc (line 48) | function testDoc(name, spec, run, opts, expectFail) {
function testBasic (line 73) | function testBasic(a, b) {
FILE: src/_site/vendor/codemirror/test/driver.js
function Failure (line 3) | function Failure(why) {this.message = why;}
function indexOf (line 6) | function indexOf(collection, elt) {
function test (line 13) | function test(name, run, expectedFail) {
function testCM (line 27) | function testCM(name, run, opts, expectedFail) {
function runTests (line 44) | function runTests(callback) {
function label (line 98) | function label(str, msg) {
function eq (line 102) | function eq(a, b, msg) {
function near (line 105) | function near(a, b, margin, msg) {
function eqPos (line 109) | function eqPos(a, b, msg) {
function is (line 116) | function is(a, msg) {
function countTests (line 120) | function countTests() {
function parseTestFilter (line 135) | function parseTestFilter(s) {
FILE: src/_site/vendor/codemirror/test/emacs_test.js
function fakeEvent (line 8) | function fakeEvent(keyName) {
function sim (line 30) | function sim(name, start /*, actions... */) {
function at (line 42) | function at(line, ch) { return function(cm) { eqPos(cm.getCursor(), Pos(...
function txt (line 43) | function txt(str) { return function(cm) { eq(cm.getValue(), str); }; }
FILE: src/_site/vendor/codemirror/test/lint/acorn.js
function setOptions (line 111) | function setOptions(opts) {
function getToken (line 149) | function getToken(forceRegexp) {
function raise (line 233) | function raise(pos, message) {
function makePredicate (line 361) | function makePredicate(words) {
function line_loc_t (line 469) | function line_loc_t() {
function initTokenState (line 476) | function initTokenState() {
function finishToken (line 487) | function finishToken(type, val) {
function skipBlockComment (line 496) | function skipBlockComment() {
function skipLineComment (line 514) | function skipLineComment() {
function skipSpace (line 530) | function skipSpace() {
function readToken_dot (line 582) | function readToken_dot() {
function readToken_slash (line 589) | function readToken_slash() { // '/'
function readToken_mult_modulo (line 596) | function readToken_mult_modulo() { // '%*'
function readToken_pipe_amp (line 602) | function readToken_pipe_amp(code) { // '|&'
function readToken_caret (line 609) | function readToken_caret() { // '^'
function readToken_plus_min (line 615) | function readToken_plus_min(code) { // '+-'
function readToken_lt_gt (line 632) | function readToken_lt_gt(code) { // '<>'
function readToken_eq_excl (line 653) | function readToken_eq_excl(code) { // '=!'
function getTokenFromCode (line 659) | function getTokenFromCode(code) {
function readToken (line 724) | function readToken(forceRegexp) {
function finishOp (line 748) | function finishOp(type, size) {
function readRegexp (line 757) | function readRegexp() {
function readInt (line 790) | function readInt(radix, len) {
function readHexNumber (line 807) | function readHexNumber() {
function readNumber (line 817) | function readNumber(startsWithDot) {
function readString (line 844) | function readString(quote) {
function readHexChar (line 894) | function readHexChar(len) {
function readWord1 (line 912) | function readWord1() {
function readWord (line 943) | function readWord() {
function next (line 975) | function next() {
function setStrict (line 985) | function setStrict(strct) {
function node_t (line 1000) | function node_t() {
function node_loc_t (line 1006) | function node_loc_t() {
function startNode (line 1012) | function startNode() {
function startNodeFrom (line 1027) | function startNodeFrom(other) {
function finishNode (line 1042) | function finishNode(node, type) {
function isUseStrict (line 1054) | function isUseStrict(stmt) {
function eat (line 1062) | function eat(type) {
function canInsertSemicolon (line 1071) | function canInsertSemicolon() {
function semicolon (line 1079) | function semicolon() {
function expect (line 1086) | function expect(type) {
function unexpected (line 1093) | function unexpected() {
function checkLVal (line 1100) | function checkLVal(expr) {
function parseTopLevel (line 1114) | function parseTopLevel(program) {
function parseStatement (line 1141) | function parseStatement() {
function parseParenExpression (line 1359) | function parseParenExpression() {
function parseBlock (line 1370) | function parseBlock(allowStrict) {
function parseFor (line 1391) | function parseFor(node, init) {
function parseForIn (line 1405) | function parseForIn(node, init) {
function parseVar (line 1416) | function parseVar(node, noIn) {
function parseExpression (line 1443) | function parseExpression(noComma, noIn) {
function parseMaybeAssign (line 1457) | function parseMaybeAssign(noIn) {
function parseMaybeConditional (line 1473) | function parseMaybeConditional(noIn) {
function parseExprOps (line 1488) | function parseExprOps(noIn) {
function parseExprOp (line 1498) | function parseExprOp(left, minPrec, noIn) {
function parseMaybeUnary (line 1517) | function parseMaybeUnary() {
function parseExprSubscripts (line 1546) | function parseExprSubscripts() {
function parseSubscripts (line 1550) | function parseSubscripts(base, noCalls) {
function parseExprAtom (line 1577) | function parseExprAtom() {
function parseNew (line 1640) | function parseNew() {
function parseObj (line 1651) | function parseObj() {
function parsePropertyName (line 1694) | function parsePropertyName() {
function parseFunction (line 1702) | function parseFunction(node, isStatement) {
function parseExprList (line 1743) | function parseExprList(close, allowTrailingComma, allowEmpty) {
function parseIdent (line 1761) | function parseIdent(liberal) {
FILE: src/_site/vendor/codemirror/test/lint/lint.js
function checkFile (line 36) | function checkFile(fileName) {
function fail (line 150) | function fail(msg, pos) {
function checkDir (line 156) | function checkDir(dir) {
FILE: src/_site/vendor/codemirror/test/lint/walk.js
function c (line 27) | function c(node, st, override) {
function c (line 42) | function c(node, st, override) {
function makeTest (line 48) | function makeTest(test) {
function Found (line 57) | function Found(node, state) { this.node = node; this.state = state; }
function skipThrough (line 146) | function skipThrough(node, st, c) { c(node, st); }
function ignore (line 147) | function ignore(_node, _st, _c) {}
function makeScope (line 275) | function makeScope(prev, isCatch) {
function normalScope (line 278) | function normalScope(scope) {
FILE: src/_site/vendor/codemirror/test/mode_test.js
function findSingle (line 22) | function findSingle(str, pos, ch) {
function parseTokens (line 32) | function parseTokens(strs) {
function esc (line 69) | function esc(str) {
function compare (line 74) | function compare(text, expected, mode) {
function stringify (line 105) | function stringify(obj) {
function highlight (line 118) | function highlight(string, mode) {
function highlightOutputsDifferent (line 160) | function highlightOutputsDifferent(o1, o2) {
function prettyPrintOutputTable (line 167) | function prettyPrintOutputTable(output, diffAt) {
FILE: src/_site/vendor/codemirror/test/multi_test.js
function hasSelections (line 4) | function hasSelections(cm) {
function hasCursors (line 16) | function hasCursors(cm) {
function select (line 141) | function select(cm) {
FILE: src/_site/vendor/codemirror/test/phantom_driver.js
function waitFor (line 25) | function waitFor (test, cb) {
FILE: src/_site/vendor/codemirror/test/search_test.js
function test (line 4) | function test(name) {
function run (line 12) | function run(doc, query, insensitive) {
FILE: src/_site/vendor/codemirror/test/sublime_test.js
function stTest (line 7) | function stTest(name) {
function at (line 24) | function at(line, ch, msg) {
function val (line 32) | function val(content, msg) {
function argsToRanges (line 36) | function argsToRanges(args) {
function setSel (line 45) | function setSel() {
function hasSel (line 50) | function hasSel() {
FILE: src/_site/vendor/codemirror/test/test.js
function forEach (line 5) | function forEach(arr, f) {
function addDoc (line 9) | function addDoc(cm, width, height) {
function byClassName (line 16) | function byClassName(elt, cls) {
function p (line 395) | function p(v) { return v && Pos(v[0], v[1]); }
function p (line 520) | function p(v) { return v && Pos(v[0], v[1]); }
function add (line 576) | function add(insertLeft) {
function test (line 628) | function test(line, ch, msg) {
function foldLines (line 751) | function foldLines(cm, start, end, autoClear) {
function enterPress (line 846) | function enterPress() {
function fold (line 905) | function fold(ll, cl, lr, cr) {
function fakeKey (line 1142) | function fakeKey(expected, code, props) {
function scrollbarWidth (line 1421) | function scrollbarWidth(measure) {
function w (line 1440) | function w() {
function cls (line 1536) | function cls(line, text, bg, wrap) {
function atom (line 1566) | function atom(ll, cl, lr, cr, li, ri) {
function mark (line 1636) | function mark(ll, cl, lr, cr, at) {
function sendKey (line 1704) | function sendKey(code) {
function notAtEnd (line 1788) | function notAtEnd(cm, pos) {
FILE: src/_site/vendor/codemirror/test/vim_test.js
function copyCursor (line 95) | function copyCursor(cur) {
function forEach (line 99) | function forEach(arr, func) {
function testVim (line 105) | function testVim(name, run, opts, expectedFail) {
function testJumplist (line 240) | function testJumplist(name, keys, endPos, startPos, dialog) {
function testMotion (line 285) | function testMotion(name, keys, endPos, startPos) {
function makeCursor (line 296) | function makeCursor(line, ch) {
function offsetCursor (line 300) | function offsetCursor(cur, offsetLine, offsetCh) {
function fillArray (line 907) | function fillArray(val, times) {
function testEdit (line 1073) | function testEdit(name, before, pos, edit, after) {
function testSelection (line 1169) | function testSelection(name, before, pos, keys, sel) {
function testSubstitute (line 3314) | function testSubstitute(name, options) {
function testSubstituteConfirm (line 3429) | function testSubstituteConfirm(name, command, initialValue, expectedValu...
FILE: src/_site/vendor/dataTables/js/jquery.dataTables.js
function _fnHungarianMap (line 328) | function _fnHungarianMap ( o )
function _fnCamelToHungarian (line 366) | function _fnCamelToHungarian ( src, user, force )
function _fnLanguageCompat (line 405) | function _fnLanguageCompat( lang )
function _fnCompatOpts (line 457) | function _fnCompatOpts ( init )
function _fnCompatCols (line 495) | function _fnCompatCols ( init )
function _fnBrowserDetect (line 515) | function _fnBrowserDetect( settings )
function _fnReduce (line 596) | function _fnReduce ( that, fn, init, start, end, inc )
function _fnAddColumn (line 630) | function _fnAddColumn( oSettings, nTh )
function _fnColumnOptions (line 662) | function _fnColumnOptions( oSettings, iCol, oOptions )
function _fnAdjustColumnSizing (line 789) | function _fnAdjustColumnSizing ( settings )
function _fnVisibleToColumnIndex (line 821) | function _fnVisibleToColumnIndex( oSettings, iMatch )
function _fnColumnIndexToVisible (line 839) | function _fnColumnIndexToVisible( oSettings, iMatch )
function _fnVisbleColumns (line 854) | function _fnVisbleColumns( oSettings )
function _fnGetColumns (line 868) | function _fnGetColumns( oSettings, sParam )
function _fnColumnTypes (line 887) | function _fnColumnTypes ( settings )
function _fnApplyColumnDefs (line 958) | function _fnApplyColumnDefs( oSettings, aoColDefs, aoCols, fn )
function _fnAddData (line 1038) | function _fnAddData ( oSettings, aDataIn, nTr, anTds )
function _fnAddTr (line 1088) | function _fnAddTr( settings, trs )
function _fnNodeToDataIndex (line 1111) | function _fnNodeToDataIndex( oSettings, n )
function _fnNodeToColumnIndex (line 1125) | function _fnNodeToColumnIndex( oSettings, iRow, n )
function _fnGetCellData (line 1140) | function _fnGetCellData( settings, rowIdx, colIdx, type )
function _fnSetCellData (line 1187) | function _fnSetCellData( settings, rowIdx, colIdx, val )
function _fnSplitObjNotation (line 1209) | function _fnSplitObjNotation( str )
function _fnGetObjectDataFn (line 1224) | function _fnGetObjectDataFn( mSource )
function _fnSetObjectDataFn (line 1349) | function _fnSetObjectDataFn( mSource )
function _fnGetDataMaster (line 1468) | function _fnGetDataMaster ( settings )
function _fnClearTable (line 1479) | function _fnClearTable( settings )
function _fnDeleteIndex (line 1495) | function _fnDeleteIndex( a, iTarget, splice )
function _fnInvalidate (line 1534) | function _fnInvalidate( settings, rowIdx, src, colIdx )
function _fnGetRowElements (line 1612) | function _fnGetRowElements( settings, row, colIdx, d )
function _fnCreateTr (line 1721) | function _fnCreateTr ( oSettings, iRow, nTrIn, anTds )
function _fnRowAttributes (line 1799) | function _fnRowAttributes( settings, row )
function _fnBuildHead (line 1839) | function _fnBuildHead( oSettings )
function _fnDrawHead (line 1925) | function _fnDrawHead( oSettings, aoSource, bIncludeHidden )
function _fnDraw (line 2023) | function _fnDraw( oSettings )
function _fnReDraw (line 2164) | function _fnReDraw( settings, holdPosition )
function _fnAddOptionsHtml (line 2202) | function _fnAddOptionsHtml ( oSettings )
function _fnDetectHeader (line 2358) | function _fnDetectHeader ( aLayout, nThead )
function _fnGetUniqueThs (line 2433) | function _fnGetUniqueThs ( oSettings, nHeader, aLayout )
function _fnBuildAjax (line 2470) | function _fnBuildAjax( oSettings, data, fn )
function _fnAjaxUpdate (line 2603) | function _fnAjaxUpdate( settings )
function _fnAjaxParameters (line 2634) | function _fnAjaxParameters( settings )
function _fnAjaxUpdateDraw (line 2742) | function _fnAjaxUpdateDraw ( settings, json )
function _fnAjaxDataSrc (line 2792) | function _fnAjaxDataSrc ( oSettings, json )
function _fnFeatureHtmlFilter (line 2815) | function _fnFeatureHtmlFilter ( settings )
function _fnFilterComplete (line 2903) | function _fnFilterComplete ( oSettings, oInput, iForce )
function _fnFilterCustom (line 2956) | function _fnFilterCustom( settings )
function _fnFilterColumn (line 2993) | function _fnFilterColumn ( settings, searchStr, colIdx, regex, smart, ca...
function _fnFilter (line 3023) | function _fnFilter( settings, input, force, regex, smart, caseInsensitive )
function _fnFilterCreateSearch (line 3075) | function _fnFilterCreateSearch( search, regex, smart, caseInsensitive )
function _fnEscapeRegex (line 3111) | function _fnEscapeRegex ( sVal )
function _fnFilterData (line 3122) | function _fnFilterData ( settings )
function _fnSearchToCamel (line 3195) | function _fnSearchToCamel ( obj )
function _fnSearchToHung (line 3214) | function _fnSearchToHung ( obj )
function _fnFeatureHtmlInfo (line 3230) | function _fnFeatureHtmlInfo ( settings )
function _fnUpdateInfo (line 3264) | function _fnUpdateInfo ( settings )
function _fnInfoMacros (line 3302) | function _fnInfoMacros ( settings, str )
function _fnInitialise (line 3329) | function _fnInitialise ( settings )
function _fnInitComplete (line 3413) | function _fnInitComplete ( settings, json )
function _fnLengthChange (line 3427) | function _fnLengthChange ( settings, val )
function _fnFeatureHtmlLength (line 3445) | function _fnFeatureHtmlLength ( settings )
function _fnFeatureHtmlPaginate (line 3506) | function _fnFeatureHtmlPaginate ( settings )
function _fnPageChange (line 3567) | function _fnPageChange ( settings, action, redraw )
function _fnFeatureHtmlProcessing (line 3640) | function _fnFeatureHtmlProcessing ( settings )
function _fnProcessingDisplay (line 3657) | function _fnProcessingDisplay ( settings, show )
function _fnFeatureHtmlTable (line 3672) | function _fnFeatureHtmlTable ( settings )
function _fnScrollDraw (line 3841) | function _fnScrollDraw ( settings )
function _fnApplyToChildren (line 4097) | function _fnApplyToChildren( fn, an1, an2 )
function _fnCalculateColumnWidths (line 4136) | function _fnCalculateColumnWidths ( oSettings )
function _fnThrottle (line 4356) | function _fnThrottle( fn, freq ) {
function _fnConvertToWidth (line 4391) | function _fnConvertToWidth ( width, parent )
function _fnGetWidestNode (line 4415) | function _fnGetWidestNode( settings, colIdx )
function _fnGetMaxLenString (line 4436) | function _fnGetMaxLenString( settings, colIdx )
function _fnStringToCss (line 4460) | function _fnStringToCss( s )
function _fnSortFlatten (line 4480) | function _fnSortFlatten ( settings )
function _fnSort (line 4552) | function _fnSort ( oSettings )
function _fnSortAria (line 4678) | function _fnSortAria ( settings )
function _fnSortListener (line 4733) | function _fnSortListener ( settings, colIdx, append, callback )
function _fnSortAttachListener (line 4817) | function _fnSortAttachListener ( settings, attachTo, colIdx, callback )
function _fnSortingClasses (line 4855) | function _fnSortingClasses( settings )
function _fnSortData (line 4888) | function _fnSortData( settings, idx )
function _fnSaveState (line 4931) | function _fnSaveState ( settings )
function _fnLoadState (line 4966) | function _fnLoadState ( settings, oInit )
function _fnSettingsFromNode (line 5053) | function _fnSettingsFromNode ( table )
function _fnLog (line 5072) | function _fnLog( settings, level, msg, tn )
function _fnMap (line 5115) | function _fnMap( ret, src, name, mappedName )
function _fnExtend (line 5157) | function _fnExtend( out, extender, breakRefs )
function _fnBindAction (line 5193) | function _fnBindAction( n, oData, fn )
function _fnCallbackReg (line 5222) | function _fnCallbackReg( oSettings, sStore, fn, sName )
function _fnCallbackFire (line 5248) | function _fnCallbackFire( settings, callbackArr, eventName, args )
function _fnLengthOverflow (line 5270) | function _fnLengthOverflow ( settings )
function _fnRenderer (line 5295) | function _fnRenderer( settings, type )
function _fnDataSource (line 5324) | function _fnDataSource ( settings )
function _numbers (line 14320) | function _numbers ( page, pages ) {
function _addNumericSort (line 14605) | function _addNumericSort ( decimalPlace ) {
function _fnExternApiFunc (line 14830) | function _fnExternApiFunc (fn)
FILE: src/_site/vendor/download/download.js
function d2b (line 60) | function d2b(u) {
function saver (line 74) | function saver(url, winMode){
FILE: src/_site/vendor/jasmine-2.1.3/boot.js
function extend (line 115) | function extend(destination, source) {
FILE: src/_site/vendor/jasmine-2.1.3/console.js
function getJasmineRequireObj (line 23) | function getJasmineRequireObj() {
function ConsoleReporter (line 43) | function ConsoleReporter(options) {
FILE: src/_site/vendor/jasmine-2.1.3/jasmine-html.js
function HtmlReporter (line 37) | function HtmlReporter(options) {
function HtmlSpecFilter (line 326) | function HtmlSpecFilter(options) {
function ResultsNode (line 339) | function ResultsNode(result, type, parent) {
function QueryString (line 359) | function QueryString(options) {
FILE: src/_site/vendor/jasmine-2.1.3/jasmine.js
function getJasmineRequire (line 33) | function getJasmineRequire() {
function Spec (line 265) | function Spec(attrs) {
function complete (line 325) | function complete() {
function Env (line 396) | function Env(options) {
function JsApiReporter (line 857) | function JsApiReporter(options) {
function Any (line 931) | function Any(expectedObject) {
function CallTracker (line 968) | function CallTracker() {
function Clock (line 1018) | function Clock(global, delayedFunctionScheduler, mockDate) {
function DelayedFunctionScheduler (line 1132) | function DelayedFunctionScheduler() {
function ExceptionFormatter (line 1279) | function ExceptionFormatter() {
function Expectation (line 1310) | function Expectation(options) {
function defaultNegativeCompare (line 1334) | function defaultNegativeCompare() {
function buildExpectationResult (line 1404) | function buildExpectationResult(options) {
function MockDate (line 1454) | function MockDate(global) {
function ObjectContaining (line 1538) | function ObjectContaining(sample) {
function PrettyPrinter (line 1573) | function PrettyPrinter() {
function StringPrettyPrinter (line 1634) | function StringPrettyPrinter() {
function once (line 1711) | function once(fn) {
function QueueRunner (line 1721) | function QueueRunner(attrs) {
function attemptSync (line 1757) | function attemptSync(queueableFn) {
function attemptAsync (line 1765) | function attemptAsync(queueableFn) {
function onException (line 1796) | function onException(e, queueableFn) {
function handleException (line 1800) | function handleException(e, queueableFn) {
function ReportDispatcher (line 1814) | function ReportDispatcher(methods) {
function SpyRegistry (line 1851) | function SpyRegistry(options) {
function SpyStrategy (line 1897) | function SpyStrategy(options) {
function Suite (line 1956) | function Suite(attrs) {
function complete (line 2062) | function complete() {
function wrapChildAsAsync (line 2071) | function wrapChildAsAsync(child) {
function isAfterAll (line 2129) | function isAfterAll(children) {
function isFailure (line 2133) | function isFailure(args) {
function clone (line 2137) | function clone(obj) {
function Timer (line 2160) | function Timer(options) {
function eq (line 2233) | function eq(a, b, aStack, bStack, customTesters) {
function toBe (line 2364) | function toBe() {
function toBeCloseTo (line 2379) | function toBeCloseTo() {
function toBeDefined (line 2397) | function toBeDefined() {
function toBeFalsy (line 2411) | function toBeFalsy() {
function toBeGreaterThan (line 2426) | function toBeGreaterThan() {
function toBeLessThan (line 2441) | function toBeLessThan() {
function toBeNaN (line 2456) | function toBeNaN() {
function toBeNull (line 2479) | function toBeNull() {
function toBeTruthy (line 2494) | function toBeTruthy() {
function toBeUndefined (line 2509) | function toBeUndefined() {
function toContain (line 2523) | function toContain(util, customEqualityTesters) {
function toEqual (line 2541) | function toEqual(util, customEqualityTesters) {
function toHaveBeenCalled (line 2562) | function toHaveBeenCalled() {
function toHaveBeenCalledWith (line 2591) | function toHaveBeenCalledWith(util, customEqualityTesters) {
function toMatch (line 2625) | function toMatch() {
function toThrow (line 2642) | function toThrow(util) {
function toThrowError (line 2688) | function toThrowError (util) {
FILE: src/main/java/com/alibaba/druid/pool/ElasticSearchConnection.java
class ElasticSearchConnection (line 27) | public class ElasticSearchConnection implements Connection {
method ElasticSearchConnection (line 34) | public ElasticSearchConnection(Client client) {
method getClient (line 39) | public Client getClient() {
method createStatement (line 43) | @Override
method prepareStatement (line 48) | @Override
method prepareCall (line 53) | @Override
method nativeSQL (line 58) | @Override
method setAutoCommit (line 63) | @Override
method getAutoCommit (line 68) | @Override
method commit (line 73) | @Override
method rollback (line 78) | @Override
method close (line 83) | @Override
method isClosed (line 88) | @Override
method getMetaData (line 93) | @Override
method setReadOnly (line 98) | @Override
method isReadOnly (line 103) | @Override
method setCatalog (line 108) | @Override
method getCatalog (line 113) | @Override
method setTransactionIsolation (line 118) | @Override
method getTransactionIsolation (line 123) | @Override
method getWarnings (line 128) | @Override
method clearWarnings (line 133) | @Override
method createStatement (line 138) | @Override
method prepareStatement (line 143) | @Override
method prepareCall (line 148) | @Override
method getTypeMap (line 153) | @Override
method setTypeMap (line 158) | @Override
method setHoldability (line 163) | @Override
method getHoldability (line 168) | @Override
method setSavepoint (line 173) | @Override
method setSavepoint (line 178) | @Override
method rollback (line 183) | @Override
method releaseSavepoint (line 188) | @Override
method createStatement (line 193) | @Override
method prepareStatement (line 198) | @Override
method prepareCall (line 203) | @Override
method prepareStatement (line 208) | @Override
method prepareStatement (line 213) | @Override
method prepareStatement (line 218) | @Override
method createClob (line 223) | @Override
method createBlob (line 228) | @Override
method createNClob (line 233) | @Override
method createSQLXML (line 238) | @Override
method isValid (line 243) | @Override
method setClientInfo (line 248) | @Override
method setClientInfo (line 253) | @Override
method getClientInfo (line 258) | @Override
method getClientInfo (line 263) | @Override
method createArrayOf (line 268) | @Override
method createStruct (line 273) | @Override
method setSchema (line 278) | @Override
method getSchema (line 283) | @Override
method abort (line 288) | @Override
method setNetworkTimeout (line 293) | @Override
method getNetworkTimeout (line 298) | @Override
method unwrap (line 303) | @Override
method isWrapperFor (line 308) | @Override
FILE: src/main/java/com/alibaba/druid/pool/ElasticSearchDruidDataSource.java
class ElasticSearchDruidDataSource (line 76) | public class ElasticSearchDruidDataSource extends DruidDataSource {
method ElasticSearchDruidDataSource (line 142) | public ElasticSearchDruidDataSource(ElasticsearchRestClient client) {
method ElasticSearchDruidDataSource (line 146) | public ElasticSearchDruidDataSource(boolean fairLock, ElasticsearchRes...
method isAsyncInit (line 154) | public boolean isAsyncInit() {
method setAsyncInit (line 158) | public void setAsyncInit(boolean asyncInit) {
method configFromPropety (line 162) | public void configFromPropety(Properties properties) {
method isKillWhenSocketReadTimeout (line 486) | public boolean isKillWhenSocketReadTimeout() {
method setKillWhenSocketReadTimeout (line 490) | public void setKillWhenSocketReadTimeout(boolean killWhenSocketTimeOut) {
method isUseGlobalDataSourceStat (line 494) | public boolean isUseGlobalDataSourceStat() {
method setUseGlobalDataSourceStat (line 498) | public void setUseGlobalDataSourceStat(boolean useGlobalDataSourceStat) {
method isKeepAlive (line 502) | public boolean isKeepAlive() {
method setKeepAlive (line 506) | public void setKeepAlive(boolean keepAlive) {
method getInitStackTrace (line 510) | public String getInitStackTrace() {
method isResetStatEnable (line 514) | public boolean isResetStatEnable() {
method setResetStatEnable (line 518) | public void setResetStatEnable(boolean resetStatEnable) {
method getDiscardCount (line 525) | public long getDiscardCount() {
method restart (line 529) | public void restart() throws SQLException {
method resetStat (line 549) | public void resetStat() {
method getResetCount (line 595) | public long getResetCount() {
method isEnable (line 599) | public boolean isEnable() {
method setEnable (line 603) | public void setEnable(boolean enable) {
method setPoolPreparedStatements (line 616) | public void setPoolPreparedStatements(boolean value) {
method setPoolPreparedStatements0 (line 620) | private void setPoolPreparedStatements0(boolean value) {
method setMaxActive (line 654) | public void setMaxActive(int maxActive) {
method validateConnection (line 696) | @Override
method setConnectProperties (line 701) | @SuppressWarnings("rawtypes")
method init (line 754) | public void init() throws SQLException {
method createPhysicalConnection (line 952) | @Override
method createPhysicalConnection (line 1009) | @Override
method createAndLogThread (line 1017) | private void createAndLogThread() {
method createAndStartDestroyThread (line 1029) | protected void createAndStartDestroyThread() {
method createAndStartCreatorThread (line 1048) | protected void createAndStartCreatorThread() {
method initFromSPIServiceLoader (line 1064) | private void initFromSPIServiceLoader() {
method initFromWrapDriverUrl (line 1090) | private void initFromWrapDriverUrl() throws SQLException {
method addFilter (line 1115) | private void addFilter(Filter filter) {
method validationQueryCheck (line 1131) | private void validationQueryCheck() {
method initCheck (line 1161) | protected void initCheck() throws SQLException {
method oracleValidationQueryCheck (line 1191) | private void oracleValidationQueryCheck() {
method db2ValidationQueryCheck (line 1220) | private void db2ValidationQueryCheck() {
method initValidConnectionChecker (line 1249) | private void initValidConnectionChecker() {
method initExceptionSorter (line 1257) | private void initExceptionSorter() {
method getConnection (line 1270) | @Override
method getConnection (line 1275) | public DruidPooledConnection getConnection(long maxWaitMillis) throws ...
method getPooledConnection (line 1280) | @Override
method getPooledConnection (line 1285) | @Override
method getConnectionDirect (line 1290) | public DruidPooledConnection getConnectionDirect(long maxWaitMillis) t...
method discardConnection (line 1331) | public void discardConnection(Connection realConnection) {
method getConnectionInternal (line 1347) | private DruidPooledConnection getConnectionInternal(long maxWait) thro...
method handleConnectionException (line 1532) | public void handleConnectionException(DruidPooledConnection pooledConn...
method recycle (line 1562) | protected void recycle(DruidPooledConnection pooledConnection) throws ...
method getRecycleErrorCount (line 1703) | public long getRecycleErrorCount() {
method clearStatementCache (line 1707) | public void clearStatementCache() throws SQLException {
method close (line 1725) | public void close() {
method registerMbean (line 1807) | public void registerMbean() {
method unregisterMbean (line 1825) | public void unregisterMbean() {
method isMbeanRegistered (line 1839) | public boolean isMbeanRegistered() {
method putLast (line 1843) | boolean putLast(DruidConnectionHolder e, long lastActiveTimeMillis) {
method takeLast (line 1863) | DruidConnectionHolder takeLast() throws InterruptedException, SQLExcep...
method pollLast (line 1901) | private DruidConnectionHolder pollLast(long nanos) throws InterruptedE...
method decrementPoolingCount (line 1963) | private final void decrementPoolingCount() {
method incrementPoolingCount (line 1967) | private final void incrementPoolingCount() {
method getConnection (line 1971) | @Override
method getCreateCount (line 1994) | public long getCreateCount() {
method getDestroyCount (line 1998) | public long getDestroyCount() {
method getConnectCount (line 2002) | public long getConnectCount() {
method getCloseCount (line 2011) | public long getCloseCount() {
method getConnectErrorCount (line 2015) | public long getConnectErrorCount() {
method getPoolingCount (line 2019) | @Override
method getPoolingPeak (line 2029) | public int getPoolingPeak() {
method getPoolingPeakTime (line 2038) | public Date getPoolingPeakTime() {
method getRecycleCount (line 2046) | public long getRecycleCount() {
method getActiveCount (line 2050) | public int getActiveCount() {
method logStats (line 2059) | public void logStats() {
method getStatValueAndReset (line 2070) | public DruidDataSourceStatValue getStatValueAndReset() {
method getRemoveAbandonedCount (line 2162) | public long getRemoveAbandonedCount() {
method put (line 2166) | protected boolean put(PhysicalConnectionInfo physicalConnectionInfo) {
method put (line 2186) | private boolean put(DruidConnectionHolder holder) {
class CreateConnectionTask (line 2217) | public class CreateConnectionTask implements Runnable {
method CreateConnectionTask (line 2222) | public CreateConnectionTask() {
method CreateConnectionTask (line 2226) | public CreateConnectionTask(boolean initTask) {
method run (line 2230) | @Override
method runInternal (line 2235) | private void runInternal() {
class CreateConnectionThread (line 2381) | public class CreateConnectionThread extends Thread {
method CreateConnectionThread (line 2383) | public CreateConnectionThread(String name) {
method run (line 2388) | public void run() {
class DestroyConnectionThread (line 2504) | public class DestroyConnectionThread extends Thread {
method DestroyConnectionThread (line 2506) | public DestroyConnectionThread(String name){
method run (line 2511) | public void run() {
class DestroyTask (line 2540) | public class DestroyTask implements Runnable {
method DestroyTask (line 2541) | public DestroyTask() {
method run (line 2545) | @Override
class LogStatsThread (line 2556) | public class LogStatsThread extends Thread {
method LogStatsThread (line 2558) | public LogStatsThread(String name) {
method run (line 2563) | public void run() {
method removeAbandoned (line 2580) | public int removeAbandoned() {
method getReference (line 2664) | public Reference getReference() throws NamingException {
method getFilterClassNames (line 2676) | @Override
method getRawDriverMajorVersion (line 2685) | public int getRawDriverMajorVersion() {
method getRawDriverMinorVersion (line 2693) | public int getRawDriverMinorVersion() {
method getProperties (line 2701) | public String getProperties() {
method shrink (line 2710) | @Override
method shrink (line 2715) | public void shrink(boolean checkTime) {
method shrink (line 2719) | public void shrink(boolean checkTime, boolean keepAlive) {
method getWaitThreadCount (line 2849) | public int getWaitThreadCount() {
method getNotEmptyWaitCount (line 2858) | public long getNotEmptyWaitCount() {
method getNotEmptyWaitThreadCount (line 2862) | public int getNotEmptyWaitThreadCount() {
method getNotEmptyWaitThreadPeak (line 2871) | public int getNotEmptyWaitThreadPeak() {
method getNotEmptySignalCount (line 2880) | public long getNotEmptySignalCount() {
method getNotEmptyWaitMillis (line 2884) | public long getNotEmptyWaitMillis() {
method getNotEmptyWaitNanos (line 2888) | public long getNotEmptyWaitNanos() {
method getLockQueueLength (line 2892) | public int getLockQueueLength() {
method getActivePeak (line 2896) | public int getActivePeak() {
method getActivePeakTime (line 2900) | public Date getActivePeakTime() {
method dump (line 2908) | public String dump() {
method getErrorCount (line 2917) | public long getErrorCount() {
method toString (line 2921) | public String toString() {
method getPoolingConnectionInfo (line 3007) | public List<Map<String, Object>> getPoolingConnectionInfo() {
method logTransaction (line 3057) | public void logTransaction(TransactionInfo info) {
method getVersion (line 3072) | @Override
method getDataSourceStat (line 3077) | @Override
method clone (line 3082) | public Object clone() {
method cloneDruidDataSource (line 3086) | public DruidDataSource cloneDruidDataSource() {
method getStatDataForMBean (line 3094) | public Map<String, Object> getStatDataForMBean() {
method getStatData (line 3169) | public Map<String, Object> getStatData() {
method getSqlStat (line 3286) | public JdbcSqlStat getSqlStat(int sqlId) {
method getSqlStat (line 3290) | public JdbcSqlStat getSqlStat(long sqlId) {
method getSqlStatMap (line 3294) | public Map<String, JdbcSqlStat> getSqlStatMap() {
method getWallStatMap (line 3298) | public Map<String, Object> getWallStatMap() {
method getWallStatValue (line 3308) | public WallProviderStatValue getWallStatValue(boolean reset) {
method getLock (line 3319) | public Lock getLock() {
method isWrapperFor (line 3323) | @Override
method unwrap (line 3339) | @SuppressWarnings("unchecked")
method isLogDifferentThread (line 3355) | public boolean isLogDifferentThread() {
method setLogDifferentThread (line 3359) | public void setLogDifferentThread(boolean logDifferentThread) {
method tryGetConnection (line 3363) | public DruidPooledConnection tryGetConnection() throws SQLException {
method fill (line 3370) | @Override
method fill (line 3375) | @Override
method isFillable (line 3445) | private boolean isFillable(int toCount) {
method isFull (line 3454) | public boolean isFull() {
method emptySignal (line 3463) | private void emptySignal() {
method preRegister (line 3482) | @Override
method postRegister (line 3496) | @Override
method preDeregister (line 3501) | @Override
method postDeregister (line 3506) | @Override
method isClosed (line 3511) | public boolean isClosed() {
FILE: src/main/java/com/alibaba/druid/pool/ElasticSearchDruidDataSourceFactory.java
class ElasticSearchDruidDataSourceFactory (line 11) | public class ElasticSearchDruidDataSourceFactory extends DruidDataSource...
method createDataSourceInternal (line 13) | @Override
method createDataSource (line 18) | public static DataSource createDataSource(ElasticsearchRestClient clie...
FILE: src/main/java/com/alibaba/druid/pool/ElasticSearchDruidPooledConnection.java
class ElasticSearchDruidPooledConnection (line 9) | public class ElasticSearchDruidPooledConnection extends DruidPooledConne...
method ElasticSearchDruidPooledConnection (line 10) | public ElasticSearchDruidPooledConnection(DruidConnectionHolder holder) {
method prepareStatement (line 14) | @Override
method prepareStatement (line 46) | @Override
method initStatement (line 80) | private void initStatement(PreparedStatementHolder stmtHolder) throws ...
FILE: src/main/java/com/alibaba/druid/pool/ElasticSearchDruidPooledPreparedStatement.java
class ElasticSearchDruidPooledPreparedStatement (line 20) | public class ElasticSearchDruidPooledPreparedStatement extends DruidPool...
method ElasticSearchDruidPooledPreparedStatement (line 24) | public ElasticSearchDruidPooledPreparedStatement(DruidPooledConnection...
method executeQuery (line 29) | @Override
method execute (line 59) | @Override
method getObjectResult (line 87) | private ObjectResult getObjectResult(boolean flat, boolean includeScor...
method executeUpdate (line 96) | @Override
FILE: src/main/java/com/alibaba/druid/pool/ElasticSearchPreparedStatement.java
class ElasticSearchPreparedStatement (line 47) | public class ElasticSearchPreparedStatement implements PreparedStatement {
method ElasticSearchPreparedStatement (line 58) | public ElasticSearchPreparedStatement(String sql) {
method getSql (line 64) | public String getSql() {
method getExecutableSql (line 68) | public String getExecutableSql() {
method executeQuery (line 90) | @Override
method executeUpdate (line 95) | @Override
method setNull (line 100) | @Override
method setBoolean (line 105) | @Override
method setByte (line 110) | @Override
method setShort (line 115) | @Override
method setInt (line 120) | @Override
method setLong (line 125) | @Override
method setFloat (line 130) | @Override
method setDouble (line 135) | @Override
method setBigDecimal (line 140) | @Override
method setString (line 145) | @Override
method setBytes (line 150) | @Override
method setDate (line 155) | @Override
method setTime (line 160) | @Override
method setTimestamp (line 165) | @Override
method setAsciiStream (line 170) | @Override
method setUnicodeStream (line 175) | @Override
method setBinaryStream (line 180) | @Override
method clearParameters (line 185) | @Override
method setObject (line 190) | @Override
method setObject (line 195) | @Override
method execute (line 200) | @Override
method addBatch (line 205) | @Override
method setCharacterStream (line 210) | @Override
method setRef (line 215) | @Override
method setBlob (line 220) | @Override
method setClob (line 225) | @Override
method setArray (line 230) | @Override
method getMetaData (line 235) | @Override
method setDate (line 240) | @Override
method setTime (line 245) | @Override
method setTimestamp (line 250) | @Override
method setNull (line 255) | @Override
method setURL (line 260) | @Override
method getParameterMetaData (line 265) | @Override
method setRowId (line 270) | @Override
method setNString (line 275) | @Override
method setNCharacterStream (line 280) | @Override
method setNClob (line 285) | @Override
method setClob (line 290) | @Override
method setBlob (line 295) | @Override
method setNClob (line 300) | @Override
method setSQLXML (line 305) | @Override
method setObject (line 310) | @Override
method setAsciiStream (line 315) | @Override
method setBinaryStream (line 320) | @Override
method setCharacterStream (line 325) | @Override
method setAsciiStream (line 330) | @Override
method setBinaryStream (line 335) | @Override
method setCharacterStream (line 340) | @Override
method setNCharacterStream (line 345) | @Override
method setClob (line 350) | @Override
method setBlob (line 355) | @Override
method setNClob (line 360) | @Override
method executeQuery (line 365) | @Override
method executeUpdate (line 370) | @Override
method close (line 375) | @Override
method getMaxFieldSize (line 386) | @Override
method setMaxFieldSize (line 391) | @Override
method getMaxRows (line 396) | @Override
method setMaxRows (line 401) | @Override
method setEscapeProcessing (line 406) | @Override
method getQueryTimeout (line 411) | @Override
method setQueryTimeout (line 416) | @Override
method cancel (line 421) | @Override
method getWarnings (line 426) | @Override
method clearWarnings (line 431) | @Override
method setCursorName (line 436) | @Override
method execute (line 441) | @Override
method getResultSet (line 446) | @Override
method getUpdateCount (line 451) | @Override
method getMoreResults (line 456) | @Override
method setFetchDirection (line 461) | @Override
method getFetchDirection (line 466) | @Override
method setFetchSize (line 471) | @Override
method getFetchSize (line 476) | @Override
method getResultSetConcurrency (line 481) | @Override
method getResultSetType (line 486) | @Override
method addBatch (line 491) | @Override
method clearBatch (line 496) | @Override
method executeBatch (line 501) | @Override
method getConnection (line 506) | @Override
method getMoreResults (line 511) | @Override
method getGeneratedKeys (line 516) | @Override
method executeUpdate (line 521) | @Override
method executeUpdate (line 526) | @Override
method executeUpdate (line 531) | @Override
method execute (line 536) | @Override
method execute (line 541) | @Override
method execute (line 546) | @Override
method getResultSetHoldability (line 551) | @Override
method isClosed (line 556) | @Override
method setPoolable (line 561) | @Override
method isPoolable (line 566) | @Override
method closeOnCompletion (line 571) | @Override
method isCloseOnCompletion (line 576) | @Override
method unwrap (line 581) | @Override
method isWrapperFor (line 586) | @Override
method setResults (line 591) | public void setResults(ResultSet results) {
method createParameterNull (line 595) | private JdbcParameter createParameterNull(int sqlType) {
method createParameter (line 599) | private JdbcParameter createParameter(int sqlType, Object value) {
method createParameter (line 607) | private JdbcParameter createParameter(int x) {
method createParameter (line 611) | private JdbcParameter createParameter(long x) {
method createParameter (line 615) | private JdbcParameter createParameter(BigDecimal x) {
method createParameter (line 623) | private JdbcParameter createParameter(String x) {
method createParameter (line 635) | private JdbcParameter createParameter(java.util.Date x) {
method createParameter (line 643) | private JdbcParameter createParameter(int sqlType, Object value, long ...
method setObjectParameter (line 651) | private void setObjectParameter(int parameterIndex, Object x) {
method createParameter (line 751) | private JdbcParameter createParameter(int sqlType, Object value, Calen...
method createParameter (line 759) | private JdbcParameter createParameter(Object x, int sqlType, int scale...
method setParameter (line 767) | private void setParameter(int jdbcIndex, JdbcParameter parameter) {
FILE: src/main/java/com/alibaba/druid/pool/ElasticSearchResultSet.java
class ElasticSearchResultSet (line 31) | public class ElasticSearchResultSet implements ResultSet {
method ElasticSearchResultSet (line 40) | public ElasticSearchResultSet(Statement statement, final List<String> ...
method next (line 46) | @Override
method close (line 66) | @Override
method wasNull (line 74) | @Override
method getString (line 79) | @Override
method getBoolean (line 84) | @Override
method getByte (line 89) | @Override
method getShort (line 94) | @Override
method getInt (line 99) | @Override
method getLong (line 104) | @Override
method getFloat (line 109) | @Override
method getDouble (line 114) | @Override
method getBigDecimal (line 119) | @Override
method getBytes (line 124) | @Override
method getDate (line 129) | @Override
method getTime (line 134) | @Override
method getTimestamp (line 139) | @Override
method getAsciiStream (line 144) | @Override
method getUnicodeStream (line 149) | @Override
method getBinaryStream (line 154) | @Override
method getString (line 159) | @Override
method getBoolean (line 164) | @Override
method getByte (line 169) | @Override
method getShort (line 174) | @Override
method getInt (line 179) | @Override
method getLong (line 184) | @Override
method getFloat (line 189) | @Override
method getDouble (line 194) | @Override
method getBigDecimal (line 199) | @Override
method getBytes (line 204) | @Override
method getDate (line 209) | @Override
method getTime (line 214) | @Override
method getTimestamp (line 219) | @Override
method getAsciiStream (line 224) | @Override
method getUnicodeStream (line 229) | @Override
method getBinaryStream (line 234) | @Override
method getWarnings (line 239) | @Override
method clearWarnings (line 244) | @Override
method getCursorName (line 249) | @Override
method getMetaData (line 254) | @Override
method getObject (line 259) | @Override
method getObject (line 265) | @Override
method findColumn (line 270) | @Override
method getCharacterStream (line 275) | @Override
method getCharacterStream (line 280) | @Override
method getBigDecimal (line 285) | @Override
method getBigDecimal (line 290) | @Override
method isBeforeFirst (line 295) | @Override
method isAfterLast (line 300) | @Override
method isFirst (line 305) | @Override
method isLast (line 310) | @Override
method beforeFirst (line 315) | @Override
method afterLast (line 325) | @Override
method first (line 333) | @Override
method last (line 346) | @Override
method getRow (line 360) | @Override
method absolute (line 365) | @Override
method relative (line 404) | @Override
method previous (line 423) | @Override
method setFetchDirection (line 447) | @Override
method getFetchDirection (line 452) | @Override
method setFetchSize (line 457) | @Override
method getFetchSize (line 462) | @Override
method getType (line 467) | @Override
method getConcurrency (line 472) | @Override
method rowUpdated (line 477) | @Override
method rowInserted (line 482) | @Override
method rowDeleted (line 487) | @Override
method updateNull (line 492) | @Override
method updateBoolean (line 497) | @Override
method updateByte (line 502) | @Override
method updateShort (line 507) | @Override
method updateInt (line 512) | @Override
method updateLong (line 517) | @Override
method updateFloat (line 522) | @Override
method updateDouble (line 527) | @Override
method updateBigDecimal (line 532) | @Override
method updateString (line 537) | @Override
method updateBytes (line 542) | @Override
method updateDate (line 547) | @Override
method updateTime (line 552) | @Override
method updateTimestamp (line 557) | @Override
method updateAsciiStream (line 562) | @Override
method updateBinaryStream (line 567) | @Override
method updateCharacterStream (line 572) | @Override
method updateObject (line 577) | @Override
method updateObject (line 582) | @Override
method updateNull (line 587) | @Override
method updateBoolean (line 592) | @Override
method updateByte (line 597) | @Override
method updateShort (line 602) | @Override
method updateInt (line 607) | @Override
method updateLong (line 612) | @Override
method updateFloat (line 617) | @Override
method updateDouble (line 622) | @Override
method updateBigDecimal (line 627) | @Override
method updateString (line 632) | @Override
method updateBytes (line 637) | @Override
method updateDate (line 642) | @Override
method updateTime (line 647) | @Override
method updateTimestamp (line 652) | @Override
method updateAsciiStream (line 657) | @Override
method updateBinaryStream (line 662) | @Override
method updateCharacterStream (line 667) | @Override
method updateObject (line 672) | @Override
method updateObject (line 677) | @Override
method insertRow (line 682) | @Override
method updateRow (line 687) | @Override
method deleteRow (line 692) | @Override
method refreshRow (line 697) | @Override
method cancelRowUpdates (line 702) | @Override
method moveToInsertRow (line 707) | @Override
method moveToCurrentRow (line 712) | @Override
method getStatement (line 717) | @Override
method getObject (line 722) | @Override
method getRef (line 727) | @Override
method getBlob (line 732) | @Override
method getClob (line 737) | @Override
method getArray (line 742) | @Override
method getObject (line 747) | @Override
method getRef (line 752) | @Override
method getBlob (line 757) | @Override
method getClob (line 762) | @Override
method getArray (line 767) | @Override
method getDate (line 772) | @Override
method getDate (line 777) | @Override
method getTime (line 782) | @Override
method getTime (line 787) | @Override
method getTimestamp (line 792) | @Override
method getTimestamp (line 797) | @Override
method getURL (line 802) | @Override
method getURL (line 807) | @Override
method updateRef (line 812) | @Override
method updateRef (line 817) | @Override
method updateBlob (line 822) | @Override
method updateBlob (line 827) | @Override
method updateClob (line 832) | @Override
method updateClob (line 837) | @Override
method updateArray (line 842) | @Override
method updateArray (line 847) | @Override
method getRowId (line 852) | @Override
method getRowId (line 857) | @Override
method updateRowId (line 862) | @Override
method updateRowId (line 867) | @Override
method getHoldability (line 872) | @Override
method isClosed (line 877) | @Override
method updateNString (line 882) | @Override
method updateNString (line 887) | @Override
method updateNClob (line 892) | @Override
method updateNClob (line 897) | @Override
method getNClob (line 902) | @Override
method getNClob (line 907) | @Override
method getSQLXML (line 912) | @Override
method getSQLXML (line 917) | @Override
method updateSQLXML (line 922) | @Override
method updateSQLXML (line 927) | @Override
method getNString (line 932) | @Override
method getNString (line 937) | @Override
method getNCharacterStream (line 942) | @Override
method getNCharacterStream (line 947) | @Override
method updateNCharacterStream (line 952) | @Override
method updateNCharacterStream (line 957) | @Override
method updateAsciiStream (line 962) | @Override
method updateBinaryStream (line 967) | @Override
method updateCharacterStream (line 972) | @Override
method updateAsciiStream (line 977) | @Override
method updateBinaryStream (line 982) | @Override
method updateCharacterStream (line 987) | @Override
method updateBlob (line 992) | @Override
method updateBlob (line 997) | @Override
method updateClob (line 1002) | @Override
method updateClob (line 1007) | @Override
method updateNClob (line 1012) | @Override
method updateNClob (line 1017) | @Override
method updateNCharacterStream (line 1022) | @Override
method updateNCharacterStream (line 1027) | @Override
method updateAsciiStream (line 1032) | @Override
method updateBinaryStream (line 1037) | @Override
method updateCharacterStream (line 1042) | @Override
method updateAsciiStream (line 1047) | @Override
method updateBinaryStream (line 1052) | @Override
method updateCharacterStream (line 1057) | @Override
method updateBlob (line 1062) | @Override
method updateBlob (line 1067) | @Override
method updateClob (line 1072) | @Override
method updateClob (line 1077) | @Override
method updateNClob (line 1082) | @Override
method updateNClob (line 1087) | @Override
method getObject (line 1092) | @Override
method getObject (line 1097) | @Override
method unwrap (line 1102) | @Override
method isWrapperFor (line 1107) | @Override
FILE: src/main/java/com/alibaba/druid/pool/ElasticSearchResultSetMetaDataBase.java
class ElasticSearchResultSetMetaDataBase (line 10) | public class ElasticSearchResultSetMetaDataBase extends ResultSetMetaDat...
method ElasticSearchResultSetMetaDataBase (line 12) | public ElasticSearchResultSetMetaDataBase(List<String> headers) {
FILE: src/main/java/org/elasticsearch/action/ParsedDocWriteResponse.java
class ParsedDocWriteResponse (line 23) | public abstract class ParsedDocWriteResponse {
method parseInnerToXContent (line 32) | public static void parseInnerToXContent(XContentParser parser, DocWrit...
FILE: src/main/java/org/elasticsearch/action/admin/cluster/settings/ParsedClusterUpdateSettingsResponse.java
class ParsedClusterUpdateSettingsResponse (line 21) | public class ParsedClusterUpdateSettingsResponse {
method fromXContent (line 37) | public static ClusterUpdateSettingsResponse fromXContent(XContentParse...
FILE: src/main/java/org/elasticsearch/action/admin/indices/create/ParsedCreateIndexResponse.java
class ParsedCreateIndexResponse (line 22) | public class ParsedCreateIndexResponse {
method declareFields (line 34) | protected static <T extends CreateIndexResponse> void declareFields(Co...
method fromXContent (line 39) | public static CreateIndexResponse fromXContent(XContentParser parser) {
FILE: src/main/java/org/elasticsearch/action/admin/indices/refresh/ParsedRefreshResponse.java
class ParsedRefreshResponse (line 27) | public class ParsedRefreshResponse {
method fromXContent (line 49) | public static BroadcastResponse fromXContent(XContentParser parser) {
method declareBroadcastFields (line 56) | @SuppressWarnings("unchecked")
FILE: src/main/java/org/elasticsearch/action/bulk/ParsedBulkItemResponse.java
class ParsedBulkItemResponse (line 33) | public class ParsedBulkItemResponse {
method fromXContent (line 42) | public static BulkItemResponse fromXContent(XContentParser parser, int...
FILE: src/main/java/org/elasticsearch/action/bulk/ParsedBulkResponse.java
class ParsedBulkResponse (line 26) | public class ParsedBulkResponse {
method fromXContent (line 28) | public static BulkResponse fromXContent(XContentParser parser) throws ...
FILE: src/main/java/org/elasticsearch/action/delete/ParsedDeleteResponse.java
class ParsedDeleteResponse (line 24) | public class ParsedDeleteResponse {
method fromXContent (line 26) | public static DeleteResponse fromXContent(XContentParser parser) throw...
method parseXContentFields (line 39) | public static void parseXContentFields(XContentParser parser, DeleteRe...
FILE: src/main/java/org/elasticsearch/action/index/ParsedIndexResponse.java
class ParsedIndexResponse (line 24) | public class ParsedIndexResponse {
method fromXContent (line 26) | public static IndexResponse fromXContent(XContentParser parser) throws...
method parseXContentFields (line 39) | public static void parseXContentFields(XContentParser parser, IndexRes...
FILE: src/main/java/org/elasticsearch/action/search/ParsedMultiSearchResponse.java
class ParsedMultiSearchResponse (line 28) | public class ParsedMultiSearchResponse {
method fromXContext (line 56) | public static MultiSearchResponse fromXContext(XContentParser parser) {
method itemFromXContent (line 60) | private static MultiSearchResponse.Item itemFromXContent(XContentParse...
method unpooled (line 95) | private static MultiSearchResponse unpooled(MultiSearchResponse search...
FILE: src/main/java/org/elasticsearch/action/search/ParsedSearchResponse.java
class ParsedSearchResponse (line 40) | public class ParsedSearchResponse {
method fromXContent (line 55) | public static SearchResponse fromXContent(XContentParser parser) throw...
method innerFromXContent (line 61) | public static SearchResponse innerFromXContent(XContentParser parser) ...
method unpooled (line 161) | private static SearchResponse unpooled(SearchResponse searchResponse) {
class ParsedClusters (line 176) | public static final class ParsedClusters {
method fromXContent (line 178) | public static SearchResponse.Clusters fromXContent(XContentParser pa...
class ParsedCluster (line 247) | public static class ParsedCluster {
method fromXContent (line 249) | public static SearchResponse.Cluster fromXContent(String clusterAlia...
FILE: src/main/java/org/elasticsearch/action/search/ParsedShardSearchFailure.java
class ParsedShardSearchFailure (line 27) | public class ParsedShardSearchFailure {
method fromXContent (line 29) | public static ShardSearchFailure fromXContent(XContentParser parser) t...
FILE: src/main/java/org/elasticsearch/action/support/master/ParsedAcknowledgedResponse.java
class ParsedAcknowledgedResponse (line 30) | public class ParsedAcknowledgedResponse {
method declareAcknowledgedField (line 34) | public static <T extends AcknowledgedResponse> void declareAcknowledge...
method fromXContent (line 61) | public static AcknowledgedResponse fromXContent(XContentParser parser)...
FILE: src/main/java/org/elasticsearch/action/support/master/ParsedShardsAcknowledgedResponse.java
class ParsedShardsAcknowledgedResponse (line 17) | public class ParsedShardsAcknowledgedResponse {
method declareAcknowledgedAndShardsAcknowledgedFields (line 19) | public static <T extends ShardsAcknowledgedResponse> void declareAckno...
FILE: src/main/java/org/elasticsearch/action/update/ParsedUpdateResponse.java
class ParsedUpdateResponse (line 19) | public class ParsedUpdateResponse {
method fromXContent (line 21) | public static UpdateResponse fromXContent(XContentParser parser) throw...
method parseXContentFields (line 34) | public static void parseXContentFields(XContentParser parser, UpdateRe...
FILE: src/main/java/org/elasticsearch/aggregations/pipeline/BucketSelectorPipelineAggregationBuilder.java
class BucketSelectorPipelineAggregationBuilder (line 33) | public class BucketSelectorPipelineAggregationBuilder extends AbstractPi...
method BucketSelectorPipelineAggregationBuilder (line 40) | public BucketSelectorPipelineAggregationBuilder(String name, Map<Strin...
method BucketSelectorPipelineAggregationBuilder (line 49) | public BucketSelectorPipelineAggregationBuilder(StreamInput in) throws...
method doWriteTo (line 56) | @Override
method gapPolicy (line 66) | public BucketSelectorPipelineAggregationBuilder gapPolicy(GapPolicy ga...
method gapPolicy (line 77) | public GapPolicy gapPolicy() {
method createInternal (line 81) | @Override
method internalXContent (line 86) | @Override
method parse (line 94) | public static BucketSelectorPipelineAggregationBuilder parse(String re...
method validate (line 184) | @Override
method overrideBucketsPath (line 189) | @Override
method hashCode (line 194) | @Override
method equals (line 199) | @Override
method getWriteableName (line 211) | @Override
method getMinimalSupportedVersion (line 216) | @Override
FILE: src/main/java/org/elasticsearch/aggregations/pipeline/MovFnPipelineAggregationBuilder.java
class MovFnPipelineAggregationBuilder (line 36) | public class MovFnPipelineAggregationBuilder extends AbstractPipelineAgg...
method MovFnPipelineAggregationBuilder (line 73) | public MovFnPipelineAggregationBuilder(String name, String bucketsPath...
method MovFnPipelineAggregationBuilder (line 83) | public MovFnPipelineAggregationBuilder(StreamInput in) throws IOExcept...
method doWriteTo (line 93) | @Override
method format (line 106) | public MovFnPipelineAggregationBuilder format(String format) {
method format (line 117) | public String format() {
method formatter (line 121) | protected DocValueFormat formatter() {
method gapPolicy (line 131) | public MovFnPipelineAggregationBuilder gapPolicy(GapPolicy gapPolicy) {
method gapPolicy (line 142) | public GapPolicy gapPolicy() {
method getWindow (line 149) | public int getWindow() {
method setWindow (line 156) | public void setWindow(int window) {
method setShift (line 163) | public void setShift(int shift) {
method validate (line 167) | @Override
method createInternal (line 175) | @Override
method internalXContent (line 180) | @Override
method parse (line 197) | static MovFnPipelineAggregationBuilder parse(XContentParser parser) th...
method overrideBucketsPath (line 212) | @Override
method hashCode (line 217) | @Override
method equals (line 222) | @Override
method getWriteableName (line 236) | @Override
method getMinimalSupportedVersion (line 241) | @Override
FILE: src/main/java/org/elasticsearch/index/get/ParsedGetResult.java
class ParsedGetResult (line 36) | public class ParsedGetResult {
method fromXContentEmbedded (line 38) | public static GetResult fromXContentEmbedded(XContentParser parser) th...
method fromXContentEmbedded (line 44) | public static GetResult fromXContentEmbedded(XContentParser parser, St...
method fromXContent (line 102) | public static GetResult fromXContent(XContentParser parser) throws IOE...
FILE: src/main/java/org/elasticsearch/index/reindex/ParsedBulkByScrollResponse.java
class ParsedBulkByScrollResponse (line 28) | public class ParsedBulkByScrollResponse {
method fromXContent (line 44) | public static BulkByScrollResponse fromXContent(XContentParser parser) {
method parseFailure (line 48) | private static Object parseFailure(XContentParser parser) throws IOExc...
FILE: src/main/java/org/elasticsearch/index/reindex/ParsedBulkByScrollTask.java
class ParsedBulkByScrollTask (line 39) | public class ParsedBulkByScrollTask {
class ParsedStatus (line 49) | public static class ParsedStatus {
method declareFields (line 61) | public static void declareFields(ObjectParser<? extends BulkByScroll...
method fromXContent (line 82) | public static BulkByScrollTask.Status fromXContent(XContentParser pa...
method innerFromXContent (line 95) | public static BulkByScrollTask.Status innerFromXContent(XContentPars...
class ParsedStatusOrException (line 142) | public static class ParsedStatusOrException {
method fromXContent (line 151) | public static BulkByScrollTask.StatusOrException fromXContent(XConte...
FILE: src/main/java/org/elasticsearch/join/aggregations/ChildrenAggregationBuilder.java
class ChildrenAggregationBuilder (line 33) | public class ChildrenAggregationBuilder extends ValuesSourceAggregationB...
method ChildrenAggregationBuilder (line 48) | public ChildrenAggregationBuilder(String name, String childType) {
method ChildrenAggregationBuilder (line 56) | protected ChildrenAggregationBuilder(ChildrenAggregationBuilder clone,...
method defaultValueSourceType (line 63) | @Override
method shallowCopy (line 68) | @Override
method ChildrenAggregationBuilder (line 76) | public ChildrenAggregationBuilder(StreamInput in) throws IOException {
method innerWriteTo (line 81) | @Override
method bucketCardinality (line 86) | @Override
method innerBuild (line 91) | @Override
method resolveConfig (line 101) | @Override
method doXContentBody (line 106) | @Override
method parse (line 112) | public static ChildrenAggregationBuilder parse(String aggregationName,...
method hashCode (line 144) | @Override
method equals (line 149) | @Override
method getType (line 158) | @Override
method getMinimalSupportedVersion (line 163) | @Override
FILE: src/main/java/org/elasticsearch/join/query/HasChildQueryBuilder.java
class HasChildQueryBuilder (line 35) | public class HasChildQueryBuilder extends AbstractQueryBuilder<HasChildQ...
method HasChildQueryBuilder (line 69) | public HasChildQueryBuilder(String type, QueryBuilder query, ScoreMode...
method HasChildQueryBuilder (line 73) | private HasChildQueryBuilder(
method HasChildQueryBuilder (line 92) | public HasChildQueryBuilder(StreamInput in) throws IOException {
method doWriteTo (line 103) | @Override
method minMaxChildren (line 118) | public HasChildQueryBuilder minMaxChildren(int min, int max) {
method innerHit (line 136) | public InnerHitBuilder innerHit() {
method innerHit (line 140) | public HasChildQueryBuilder innerHit(InnerHitBuilder innerHit) {
method query (line 149) | public QueryBuilder query() {
method childType (line 156) | public String childType() {
method scoreMode (line 163) | public ScoreMode scoreMode() {
method minChildren (line 171) | public int minChildren() {
method maxChildren (line 179) | public int maxChildren() {
method ignoreUnmapped (line 188) | public HasChildQueryBuilder ignoreUnmapped(boolean ignoreUnmapped) {
method ignoreUnmapped (line 201) | public boolean ignoreUnmapped() {
method doXContent (line 205) | @Override
method fromXContent (line 230) | public static HasChildQueryBuilder fromXContent(XContentParser parser)...
method getWriteableName (line 284) | @Override
method doToQuery (line 289) | @Override
method doEquals (line 294) | @Override
method doHashCode (line 305) | @Override
method doRewrite (line 310) | @Override
method extractInnerHitBuilders (line 328) | @Override
method getMinimalSupportedVersion (line 333) | @Override
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/ActionRequestRestExecuter.java
class ActionRequestRestExecuter (line 17) | public class ActionRequestRestExecuter {
method ActionRequestRestExecuter (line 23) | public ActionRequestRestExecuter(SqlElasticRequestBuilder requestBuild...
method execute (line 34) | public void execute() throws Exception {
method executeJoinRequestAndSendResponse (line 56) | private void executeJoinRequestAndSendResponse() throws IOException, S...
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/ComperableHitResult.java
class ComperableHitResult (line 16) | public class ComperableHitResult {
method ComperableHitResult (line 21) | public ComperableHitResult(SearchHit hit , String[] fieldsOrder ,Strin...
method equals (line 43) | @Override
method isAllNull (line 55) | public boolean isAllNull() {
method hashCode (line 59) | @Override
method getComperator (line 64) | public String getComperator() {
method getFlattenMap (line 68) | public Map<String, Object> getFlattenMap() {
method getOriginalHit (line 72) | public SearchHit getOriginalHit(){
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/ElasticHitsExecutor.java
type ElasticHitsExecutor (line 11) | public interface ElasticHitsExecutor {
method run (line 12) | void run() throws IOException, SqlParseException ;
method getHits (line 13) | SearchHits getHits();
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/ElasticJoinExecutor.java
class ElasticJoinExecutor (line 37) | public abstract class ElasticJoinExecutor implements ElasticHitsExecutor {
method ElasticJoinExecutor (line 44) | protected ElasticJoinExecutor(JoinRequestBuilder requestBuilder) {
method sendResponse (line 53) | public void sendResponse(RestChannel channel) throws IOException {
method run (line 59) | @Override
method innerRun (line 71) | protected abstract List<SearchHit> innerRun() throws IOException, SqlP...
method getHits (line 73) | @Override
method createJoinExecutor (line 78) | public static ElasticJoinExecutor createJoinExecutor(Client client, Sq...
method mergeSourceAndAddAliases (line 92) | protected void mergeSourceAndAddAliases(Map<String,Object> secondTable...
method mapWithAliases (line 99) | protected Map<String,Object> mapWithAliases(Map<String, Object> source...
method onlyReturnedFields (line 109) | protected void onlyReturnedFields(Map<String, Object> fieldsMap, List...
method deepSearchInMap (line 130) | protected Object deepSearchInMap(Map<String, Object> fieldsMap, String...
method addUnmatchedResults (line 147) | protected void addUnmatchedResults(List<SearchHit> combinedResults, Co...
method createUnmachedResult (line 167) | protected SearchHit createUnmachedResult( List<Field> secondTableRetur...
method createNullsSource (line 185) | protected Map<String, Object> createNullsSource(List<Field> secondTabl...
method updateMetaSearchResults (line 195) | protected void updateMetaSearchResults( SearchResponse searchResponse) {
method scrollOneTimeWithMax (line 202) | protected SearchResponse scrollOneTimeWithMax(Client client,TableInJoi...
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/ElasticResultHandler.java
class ElasticResultHandler (line 11) | public class ElasticResultHandler {
method getFieldValue (line 12) | public static Object getFieldValue(SearchHit hit,String field){
method deepSearchInMap (line 16) | private static Object deepSearchInMap(Map<String, Object> fieldsMap, S...
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/ElasticUtils.java
class ElasticUtils (line 25) | public class ElasticUtils {
method scrollOneTimeWithHits (line 27) | public static SearchResponse scrollOneTimeWithHits(Client client, Sear...
method hitsAsXContentBuilder (line 44) | public static XContentBuilder hitsAsXContentBuilder(SearchHits results...
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/GetIndexRequestRestListener.java
class GetIndexRequestRestListener (line 22) | public class GetIndexRequestRestListener extends RestBuilderListener<Get...
method GetIndexRequestRestListener (line 26) | public GetIndexRequestRestListener(RestChannel channel,GetIndexRequest...
method buildResponse (line 31) | @Override
method writeAliases (line 61) | private void writeAliases(List<AliasMetadata> aliases, XContentBuilder...
method writeMappings (line 71) | private void writeMappings(Map<String, Map<String, Object>> mappings, ...
method writeSettings (line 82) | private void writeSettings(Settings settings, XContentBuilder builder,...
class Fields (line 89) | static class Fields {
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/HashJoinComparisonStructure.java
class HashJoinComparisonStructure (line 15) | public class HashJoinComparisonStructure {
method HashJoinComparisonStructure (line 19) | public HashJoinComparisonStructure(List<List<Map.Entry<Field, Field>>>...
method getComparisons (line 35) | public HashMap<String, List<Map.Entry<Field, Field>>> getComparisons() {
method insertIntoComparisonHash (line 39) | public void insertIntoComparisonHash(String comparisonID,String compar...
method searchForMatchingSearchHits (line 49) | public SearchHitsResult searchForMatchingSearchHits(String comparisonI...
method getAllSearchHits (line 54) | public List<SearchHitsResult> getAllSearchHits(){
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/HashJoinElasticExecutor.java
class HashJoinElasticExecutor (line 34) | public class HashJoinElasticExecutor extends ElasticJoinExecutor {
method HashJoinElasticExecutor (line 44) | public HashJoinElasticExecutor(Client client, HashJoinElasticRequestBu...
method innerRun (line 53) | @Override
method initOptimizationStructure (line 94) | private Map<String, Map<String, List<Object>>> initOptimizationStructu...
method updateFirstTableLimitIfNeeded (line 102) | private void updateFirstTableLimitIfNeeded() {
method createCombinedResults (line 112) | private List<SearchHit> createCombinedResults( TableInJoinRequestBuild...
method copyMaps (line 201) | private void copyMaps(Map<String, Object> into, Map<String, Object> fr...
method createKeyToResultsAndFillOptimizationStructure (line 206) | private void createKeyToResultsAndFillOptimizationStructure(Map<String...
method fetchAllHits (line 234) | private List<SearchHit> fetchAllHits(TableInJoinRequestBuilder tableIn...
method scrollTillLimit (line 246) | private List<SearchHit> scrollTillLimit(TableInJoinRequestBuilder tabl...
method needToOptimize (line 270) | private boolean needToOptimize(Map<String,Map<String, List<Object>>> o...
method updateRequestWithTermsFilter (line 283) | private void updateRequestWithTermsFilter(Map<String,Map<String, List<...
method getComparisonKey (line 307) | private String getComparisonKey(List<Map.Entry<Field, Field>> t1ToT2Fi...
method updateOptimizationData (line 327) | private void updateOptimizationData(Map<String, List<Object>> optimiza...
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/IntersectExecutor.java
class IntersectExecutor (line 26) | public class IntersectExecutor implements ElasticHitsExecutor {
method IntersectExecutor (line 34) | public IntersectExecutor(MultiQueryRequestBuilder builder) {
method run (line 40) | @Override
method getHits (line 61) | @Override
method fillIntersectHitsFromResults (line 66) | private void fillIntersectHitsFromResults(Set<ComperableHitResult> com...
method fillComparableSetFromHits (line 97) | private void fillComparableSetFromHits(String[] fieldsOrder, SearchHit...
method fillFieldsOrder (line 110) | private void fillFieldsOrder() {
method fillFieldsArray (line 133) | private void fillFieldsArray(List<String> fieldsOrAliases, Map<String,...
method inverseMap (line 144) | private Map<String, String> inverseMap(Map<String, String> mapToInvers...
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/MetaSearchResult.java
class MetaSearchResult (line 6) | public class MetaSearchResult {
method MetaSearchResult (line 13) | public MetaSearchResult() {
method getTotalNumOfShards (line 20) | public int getTotalNumOfShards() {
method getSuccessfulShards (line 24) | public int getSuccessfulShards() {
method getFailedShards (line 28) | public int getFailedShards() {
method isTimedOut (line 32) | public boolean isTimedOut() {
method getTookImMilli (line 36) | public long getTookImMilli() {
method setTookImMilli (line 40) | public void setTookImMilli(long tookImMilli) {
method addFailedShards (line 44) | public void addFailedShards(int shards){
method addSuccessfulShards (line 48) | public void addSuccessfulShards(int shards){
method addTotalNumOfShards (line 52) | public void addTotalNumOfShards(int shards){
method updateTimeOut (line 56) | public void updateTimeOut(boolean isTimedOut){
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/MinusExecutor.java
class MinusExecutor (line 35) | public class MinusExecutor implements ElasticHitsExecutor {
method MinusExecutor (line 48) | public MinusExecutor(Client client, MultiQueryRequestBuilder builder) {
method run (line 59) | @Override
method getHits (line 106) | @Override
method fillMinusHitsFromOneField (line 111) | private void fillMinusHitsFromOneField(String fieldName, Set<Object> f...
method fillMinusHitsFromResults (line 137) | private void fillMinusHitsFromResults(Set<ComperableHitResult> compera...
method runWithScrollings (line 169) | private Set<ComperableHitResult> runWithScrollings() {
method simpleOneTimeQueryEach (line 213) | private Set<ComperableHitResult> simpleOneTimeQueryEach() {
method removeValuesFromSetAccordingToHits (line 229) | private void removeValuesFromSetAccordingToHits(String[] fieldsOrder, ...
method fillComperableSetFromHits (line 238) | private void fillComperableSetFromHits(String[] fieldsOrder, SearchHit...
method getFieldName (line 247) | private String getFieldName(Field field) {
method checkIfOnlyOneField (line 255) | private boolean checkIfOnlyOneField(Select firstSelect ,Select secondS...
method runWithScrollingAndAddFilter (line 265) | private MinusOneFieldAndOptimizationResult runWithScrollingAndAddFilte...
method removeValuesFromSetAccordingToHits (line 319) | private void removeValuesFromSetAccordingToHits(String fieldName, Set<...
method fillSetFromHits (line 330) | private void fillSetFromHits(String fieldName, SearchHit[] hits, Set<O...
method createWhereWithOrigianlAndTermsFilter (line 339) | private Where createWhereWithOrigianlAndTermsFilter(String secondField...
method buildTermsFilterFromResults (line 347) | private Where buildTermsFilterFromResults(Set<Object> results,String f...
method getFieldValue (line 351) | private Object getFieldValue(SearchHit hit, String fieldName) {
method fillFieldsOrder (line 363) | private void fillFieldsOrder() {
method fillFieldsArray (line 385) | private void fillFieldsArray(List<String> fieldsOrAliases, Map<String,...
method inverseMap (line 396) | private Map<String, String> inverseMap(Map<String, String> mapToInvers...
method parseHintsIfAny (line 404) | private void parseHintsIfAny(List<Hint> hints) {
class MinusOneFieldAndOptimizationResult (line 424) | class MinusOneFieldAndOptimizationResult
method MinusOneFieldAndOptimizationResult (line 429) | MinusOneFieldAndOptimizationResult( Set<Object> fieldValues, SearchHit...
method getFieldValues (line 434) | public Set<Object> getFieldValues() {
method getSomeHit (line 438) | public SearchHit getSomeHit() {
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/MultiRequestExecutorFactory.java
class MultiRequestExecutorFactory (line 10) | public class MultiRequestExecutorFactory {
method createExecutor (line 11) | public static ElasticHitsExecutor createExecutor(Client client,MultiQu...
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/NamedXContentRegistryHolder.java
class NamedXContentRegistryHolder (line 15) | public class NamedXContentRegistryHolder {
method NamedXContentRegistryHolder (line 19) | public NamedXContentRegistryHolder(NamedXContentRegistry xContentRegis...
method get (line 24) | public static NamedXContentRegistry get() {
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/NestedLoopsElasticExecutor.java
class NestedLoopsElasticExecutor (line 29) | public class NestedLoopsElasticExecutor extends ElasticJoinExecutor {
method NestedLoopsElasticExecutor (line 34) | public NestedLoopsElasticExecutor(Client client, NestedLoopsElasticReq...
method innerRun (line 40) | @Override
method combineResultsFromMultiResponses (line 85) | private int combineResultsFromMultiResponses(List<SearchHit> combinedR...
method getMergedHit (line 122) | private SearchHit getMergedHit(int currentCombinedResults, String t1Al...
method createMultiSearchRequest (line 140) | private MultiSearchRequest createMultiSearchRequest(int multiSearchMax...
method updateValuesOnWhereConditions (line 178) | private void updateValuesOnWhereConditions(Map<String, Object> hit, Wh...
method firstFetch (line 189) | private FetchWithScrollResponse firstFetch(TableInJoinRequestBuilder t...
method orderConditions (line 211) | private void orderConditions(String t1Alias, String t2Alias) {
method orderConditionRecursive (line 223) | private void orderConditionRecursive(String t1Alias, String t2Alias, W...
class FetchWithScrollResponse (line 240) | private class FetchWithScrollResponse {
method FetchWithScrollResponse (line 244) | private FetchWithScrollResponse(SearchResponse response, boolean nee...
method getResponse (line 249) | public SearchResponse getResponse() {
method isNeedScrollForFirstTable (line 253) | public boolean isNeedScrollForFirstTable() {
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/QueryActionElasticExecutor.java
class QueryActionElasticExecutor (line 28) | public class QueryActionElasticExecutor {
method executeSearchAction (line 32) | public static SearchResponse executeSearchAction(DefaultQueryAction se...
method executeJoinSearchAction (line 48) | public static SearchHits executeJoinSearchAction(Client client , ESJoi...
method executeAggregationAction (line 55) | public static InternalAggregations executeAggregationAction(Aggregatio...
method executeDeleteAction (line 71) | public static ActionResponse executeDeleteAction(DeleteQueryAction del...
method executeMultiQueryAction (line 75) | public static SearchHits executeMultiQueryAction(Client client, MultiQ...
method executeAnyAction (line 82) | public static Object executeAnyAction(Client client , QueryAction quer...
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/RestSqlAction.java
class RestSqlAction (line 34) | public class RestSqlAction extends BaseRestHandler {
method getName (line 38) | @Override
method routes (line 43) | @Override
method prepareRequest (line 52) | @Override
method responseParams (line 70) | @Override
method doSqlRequest (line 77) | private void doSqlRequest(RestRequest request, NodeClient client, Stri...
FILE: src/main/java/org/elasticsearch/plugin/nlpcn/SearchHitsResult.java
class SearchHitsResult (line 11) | public class SearchHitsResult {
Copy disabled (too large)
Download .json
Condensed preview — 690 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (17,761K chars).
[
{
"path": ".github/workflows/actions.yml",
"chars": 1298,
"preview": "name: CI\n\non: [push, pull_request]\n\njobs:\n build:\n runs-on: ubuntu-latest\n timeout-minutes: 30\n \n steps:\n "
},
{
"path": ".gitignore",
"chars": 388,
"preview": "*.class\n.settings/\n# Mobile Tools for Java (J2ME)\n.mtj.tmp/\n\n# Package Files #\n#*.jar\n*.war\n*.ear\n.classpath\n.project\n# "
},
{
"path": ".travis.yml",
"chars": 671,
"preview": "language: java\ndist: focal\n\njdk:\n - openjdk21\n\nbefore_install:\n - sudo rm -rf /var/lib/elasticsearch\n - curl https://"
},
{
"path": "BUILDING.md",
"chars": 792,
"preview": "## Building\n\nTo build zip release of the plugin, run this command:\n\n\n````\nmvn clean package assembly:single -DskipTests\n"
},
{
"path": "LICENSE",
"chars": 11324,
"preview": "Apache License\n Version 2.0, January 2004\n http://www.apache.org/licens"
},
{
"path": "README.md",
"chars": 77497,
"preview": "## IMPORTANT\n\n### Since 7.5.0.0, the path `/_sql` is changed to `/_nlpcn/sql`, and the path `/_sql/_explain` is changed "
},
{
"path": "doc/features.md",
"chars": 1679,
"preview": "## Elasticsearch-SQL\n\n[Elasticsearch-SQL](https://github.com/allwefantasy/elasticsearch-sql/) fork from [https://github."
},
{
"path": "open-source.pom.xml",
"chars": 10453,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:sc"
},
{
"path": "pom.xml",
"chars": 9377,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txsi:schemaLoca"
},
{
"path": "src/_site/controllers.js",
"chars": 12746,
"preview": "// settings\nvar settings = location.search.substring(1).split(\"&\").reduce(function (r, p) {\n r[decodeURIComponent(p.s"
},
{
"path": "src/_site/editor.js",
"chars": 666,
"preview": "// Create the queryTextarea editor\nwindow.onload = function() {\n window.editor = CodeMirror.fromTextArea(document.getEl"
},
{
"path": "src/_site/index.html",
"chars": 10865,
"preview": "\n<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE"
},
{
"path": "src/_site/mapping_parser.js",
"chars": 1312,
"preview": "\nvar MappingParser = function(data) {\n\n\tvar parsedMapping = parseMapping(data);\n\tthis.mapping = parsedMapping;\n}\n\n\nfunct"
},
{
"path": "src/_site/query.js",
"chars": 13306,
"preview": "\n/* ResultHandlerFactory\n Returns the right Result Handler depend\n on the results */\nvar ResultHandlerFactory = {\n \"c"
},
{
"path": "src/_site/style.css",
"chars": 4227,
"preview": "/*\n * Base structure\n */\n\n/* Move down content because we have a fixed navbar that is 50px tall */\nbody {\n padding-top:"
},
{
"path": "src/_site/table_presenter.js",
"chars": 2761,
"preview": "\nvar TablePresenter = function(tableId,tableZoneSelector) {\n\tthis.tableId = tableId;\n\tthis.tableSelector = \"#\"+tableId;\n"
},
{
"path": "src/_site/tests/SpecRunner.html",
"chars": 1320,
"preview": "<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\">\n <title>Jasmine Spec Runner v2.1.3</title>\n\n <link rel=\"shortcu"
},
{
"path": "src/_site/tests/resources/expectedBody4nestedAggregation.json",
"chars": 405,
"preview": "[\n\t{\"gender\": \"f\", \"age\": 28, \"count\": 31, \"sum_balance\": 839381, \"averge_balance\": 27076.8064516129},\n\t{\"gender\": \"f\", "
},
{
"path": "src/_site/tests/resources/expectedBody4simpleAggregation.json",
"chars": 186,
"preview": "[\n\t{\"gender\": \"m\", \"averge_age\": 30.027613412228796, \"count\": 507, \"balance_sum\": 13082527},\n\t{\"gender\": \"f\", \"averge_ag"
},
{
"path": "src/_site/tests/resources/expectedBody4simpleQueryResult.json",
"chars": 48221,
"preview": "[{\"city\": \"Eastvale\", \"firstname\": \"Rodriquez\", \"lastname\": \"Flores\", \"age\": 31, \"address\": \"986 Wyckoff Avenue\", \"emplo"
},
{
"path": "src/_site/tests/resources/expectedBody4statsAgg.json",
"chars": 94,
"preview": "[\n\t{\"stat.count\": 50, \"stat.min\": 2, \"stat.max\": 967, \"stat.avg\": 500.44, \"stat.sum\": 25022}\n]"
},
{
"path": "src/_site/tests/resources/nestedAggregationResult.json",
"chars": 1922,
"preview": "{\n \"took\" : 11,\n \"timed_out\" : false,\n \"_shards\" : {\n \"total\" : 5,\n \"successful\" : 5,\n \"failed\" : 0\n },\n \""
},
{
"path": "src/_site/tests/resources/simpleAggregationResult.json",
"chars": 850,
"preview": "{\n \"took\" : 29,\n \"timed_out\" : false,\n \"_shards\" : {\n \"total\" : 5,\n \"successful\" : 5,\n \"failed\" : 0\n },\n \""
},
{
"path": "src/_site/tests/resources/simpleQueryResult.json",
"chars": 62924,
"preview": "{\"took\":36,\"timed_out\":false,\"_shards\":{\"total\":5,\"successful\":5,\"failed\":0},\"hits\":{\"total\":10940,\"max_score\":1.0,\"hits"
},
{
"path": "src/_site/tests/resources/statsAggResult.json",
"chars": 301,
"preview": "{\"took\":6,\"timed_out\":false,\"_shards\":{\"total\":5,\"successful\":5,\"failed\":0},\"hits\":{\"total\":50,\"max_score\":1.0,\"hits\":[{"
},
{
"path": "src/_site/tests/spec/ResultHandlersSpec.js",
"chars": 4948,
"preview": "/*\n\t============ QUERIES ===============\n\n\tsimpleQueryResult:\n\t\tSELECT * FROM elasticsearch-sql_test_index\n\n\n\tsimpleAggr"
},
{
"path": "src/_site/tests/spec/TablePresenterSpec.js",
"chars": 5528,
"preview": "/*\n\t============ QUERIES ===============\n\n\tsimpleQueryResult:\n\t\tSELECT * FROM elasticsearch-sql_test_index\n\n\n\tsimpleAggr"
},
{
"path": "src/_site/vendor/bootstrap/css/bootstrap-theme.css",
"chars": 26132,
"preview": "/*!\n * Bootstrap v3.3.5 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://gi"
},
{
"path": "src/_site/vendor/bootstrap/css/bootstrap.css",
"chars": 147430,
"preview": "/*!\n * Bootstrap v3.3.5 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://gi"
},
{
"path": "src/_site/vendor/bootstrap/js/bootstrap.js",
"chars": 68890,
"preview": "/*!\n * Bootstrap v3.3.5 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under the MIT license"
},
{
"path": "src/_site/vendor/bootstrap/js/npm.js",
"chars": 484,
"preview": "// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\nrequ"
},
{
"path": "src/_site/vendor/codemirror/.gitattributes",
"chars": 104,
"preview": "*.txt text\n*.js text\n*.html text\n*.md text\n*.json text\n*.yml text\n*.css text\n*.svg text\n"
},
{
"path": "src/_site/vendor/codemirror/.gitignore",
"chars": 68,
"preview": "/node_modules\n/npm-debug.log\ntest.html\n.tern-*\n*~\n*.swp\n.idea\n*.iml\n"
},
{
"path": "src/_site/vendor/codemirror/.travis.yml",
"chars": 35,
"preview": "language: node_js\nnode_js:\n - 0.8\n"
},
{
"path": "src/_site/vendor/codemirror/AUTHORS",
"chars": 5315,
"preview": "List of CodeMirror contributors. Updated before every release.\n\n4r2r\nAaron Brooks\nAbdelouahab\nAbe Fettig\nAdam Ahmed\nAdam"
},
{
"path": "src/_site/vendor/codemirror/CONTRIBUTING.md",
"chars": 3221,
"preview": "# How to contribute\n\n- [Getting help](#getting-help-)\n- [Submitting bug reports](#submitting-bug-reports-)\n- [Contributi"
},
{
"path": "src/_site/vendor/codemirror/LICENSE",
"chars": 1094,
"preview": "Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others\n\nPermission is hereby granted, free of charge, to "
},
{
"path": "src/_site/vendor/codemirror/README.md",
"chars": 660,
"preview": "# CodeMirror\n[](https://travis-ci.org/codemirror/CodeMir"
},
{
"path": "src/_site/vendor/codemirror/addon/comment/comment.js",
"chars": 8008,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/comment/continuecomment.js",
"chars": 3399,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/dialog/dialog.css",
"chars": 502,
"preview": ".CodeMirror-dialog {\n position: absolute;\n left: 0; right: 0;\n background: white;\n z-index: 15;\n padding: .1em .8em"
},
{
"path": "src/_site/vendor/codemirror/addon/dialog/dialog.js",
"chars": 4872,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/display/fullscreen.css",
"chars": 116,
"preview": ".CodeMirror-fullscreen {\n position: fixed;\n top: 0; left: 0; right: 0; bottom: 0;\n height: auto;\n z-index: 9;\n}\n"
},
{
"path": "src/_site/vendor/codemirror/addon/display/fullscreen.js",
"chars": 1494,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/display/placeholder.js",
"chars": 1971,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/display/rulers.js",
"chars": 2134,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/edit/closebrackets.js",
"chars": 6302,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/edit/closetag.js",
"chars": 7331,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/edit/continuelist.js",
"chars": 1754,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/edit/matchbrackets.js",
"chars": 5268,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/edit/matchtags.js",
"chars": 2355,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/edit/trailingspace.js",
"chars": 1003,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/fold/brace-fold.js",
"chars": 3904,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/fold/comment-fold.js",
"chars": 1999,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/fold/foldcode.js",
"chars": 4574,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/fold/foldgutter.css",
"chars": 435,
"preview": ".CodeMirror-foldmarker {\n color: blue;\n text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1p"
},
{
"path": "src/_site/vendor/codemirror/addon/fold/foldgutter.js",
"chars": 4372,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/fold/indent-fold.js",
"chars": 1627,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/fold/markdown-fold.js",
"chars": 1605,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/fold/xml-fold.js",
"chars": 6570,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/hint/anyword-hint.js",
"chars": 1729,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/hint/css-hint.js",
"chars": 1932,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/hint/html-hint.js",
"chars": 11332,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/hint/javascript-hint.js",
"chars": 6041,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/hint/python-hint.js",
"chars": 3720,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/hint/show-hint.css",
"chars": 662,
"preview": ".CodeMirror-hints {\n position: absolute;\n z-index: 10;\n overflow: hidden;\n list-style: none;\n\n margin: 0;\n padding"
},
{
"path": "src/_site/vendor/codemirror/addon/hint/show-hint.js",
"chars": 14332,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/hint/sql-hint.js",
"chars": 6420,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/hint/xml-hint.js",
"chars": 4837,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/lint/coffeescript-lint.js",
"chars": 1270,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/lint/css-lint.js",
"chars": 1146,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/lint/javascript-lint.js",
"chars": 4452,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/lint/json-lint.js",
"chars": 954,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/lint/lint.css",
"chars": 3012,
"preview": "/* The lint marker gutter */\n.CodeMirror-lint-markers {\n width: 16px;\n}\n\n.CodeMirror-lint-tooltip {\n background-color:"
},
{
"path": "src/_site/vendor/codemirror/addon/lint/lint.js",
"chars": 7036,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/lint/yaml-lint.js",
"chars": 848,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/merge/merge.css",
"chars": 2916,
"preview": ".CodeMirror-merge {\n position: relative;\n border: 1px solid #ddd;\n white-space: pre;\n}\n\n.CodeMirror-merge, .CodeMirro"
},
{
"path": "src/_site/vendor/codemirror/addon/merge/merge.js",
"chars": 20516,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/mode/loadmode.js",
"chars": 2277,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/mode/multiplex.js",
"chars": 4197,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/mode/multiplex_test.js",
"chars": 810,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/mode/overlay.js",
"chars": 3021,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/mode/simple.js",
"chars": 7824,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/runmode/colorize.js",
"chars": 1303,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/runmode/runmode-standalone.js",
"chars": 5302,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/runmode/runmode.js",
"chars": 2501,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/runmode/runmode.node.js",
"chars": 4289,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/scroll/scrollpastend.js",
"chars": 1492,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/search/match-highlighter.js",
"chars": 4943,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/search/search.js",
"chars": 6740,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/search/searchcursor.js",
"chars": 7720,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/selection/active-line.js",
"chars": 2442,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/selection/mark-selection.js",
"chars": 3781,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/tern/tern.css",
"chars": 1852,
"preview": ".CodeMirror-Tern-completion {\n padding-left: 22px;\n position: relative;\n}\n.CodeMirror-Tern-completion:before {\n posit"
},
{
"path": "src/_site/vendor/codemirror/addon/tern/tern.js",
"chars": 23248,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/tern/worker.js",
"chars": 1207,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/addon/wrap/hardwrap.js",
"chars": 5260,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/bin/authors.sh",
"chars": 291,
"preview": "# Combine existing list of authors with everyone known in git, sort, add header.\ntail --lines=+3 AUTHORS > AUTHORS.tmp\ng"
},
{
"path": "src/_site/vendor/codemirror/bin/compress",
"chars": 2760,
"preview": "#!/usr/bin/env node\n\n// Compression helper for CodeMirror\n//\n// Example:\n//\n// bin/compress codemirror runmode javascr"
},
{
"path": "src/_site/vendor/codemirror/bin/lint",
"chars": 356,
"preview": "#!/usr/bin/env node\n\nvar lint = require(\"../test/lint/lint\"),\n path = require(\"path\");\n\nif (process.argv.length > 2) "
},
{
"path": "src/_site/vendor/codemirror/bin/release",
"chars": 1698,
"preview": "#!/usr/bin/env node\n\nvar fs = require(\"fs\"), child = require(\"child_process\");\n\nvar number, bumpOnly;\n\nfor (var i = 2; i"
},
{
"path": "src/_site/vendor/codemirror/bin/source-highlight",
"chars": 1453,
"preview": "#!/usr/bin/env node\n\n// Simple command-line code highlighting tool. Reads code from stdin,\n// spits html to stdout. For "
},
{
"path": "src/_site/vendor/codemirror/bower.json",
"chars": 256,
"preview": "{\n \"name\": \"codemirror\",\n \"version\":\"4.8.0\",\n \"main\": [\"lib/codemirror.js\", \"lib/codemirror.css\"],\n \"ignore\": [\n "
},
{
"path": "src/_site/vendor/codemirror/demo/activeline.html",
"chars": 2854,
"preview": "<!doctype html>\n\n<title>CodeMirror: Active Line Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/d"
},
{
"path": "src/_site/vendor/codemirror/demo/anywordhint.html",
"chars": 2685,
"preview": "<!doctype html>\n\n<title>CodeMirror: Any Word Completion Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\""
},
{
"path": "src/_site/vendor/codemirror/demo/bidi.html",
"chars": 2882,
"preview": "<!doctype html>\n\n<title>CodeMirror: Bi-directional Text Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\""
},
{
"path": "src/_site/vendor/codemirror/demo/btree.html",
"chars": 2981,
"preview": "<!doctype html>\n\n<title>CodeMirror: B-Tree visualization</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../d"
},
{
"path": "src/_site/vendor/codemirror/demo/buffers.html",
"chars": 3564,
"preview": "<!doctype html>\n\n<title>CodeMirror: Multiple Buffer & Split View Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=styleshe"
},
{
"path": "src/_site/vendor/codemirror/demo/changemode.html",
"chars": 1717,
"preview": "<!doctype html>\n\n<title>CodeMirror: Mode-Changing Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc"
},
{
"path": "src/_site/vendor/codemirror/demo/closebrackets.html",
"chars": 1678,
"preview": "<!doctype html>\n\n<title>CodeMirror: Closebrackets Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc"
},
{
"path": "src/_site/vendor/codemirror/demo/closetag.html",
"chars": 1293,
"preview": "<!doctype html>\n\n<title>CodeMirror: Close-Tag Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/doc"
},
{
"path": "src/_site/vendor/codemirror/demo/complete.html",
"chars": 2655,
"preview": "<!doctype html>\n\n<title>CodeMirror: Autocomplete Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/"
},
{
"path": "src/_site/vendor/codemirror/demo/emacs.html",
"chars": 2476,
"preview": "<!doctype html>\n\n<title>CodeMirror: Emacs bindings demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../do"
},
{
"path": "src/_site/vendor/codemirror/demo/folding.html",
"chars": 3304,
"preview": "<!doctype html>\n\n<head>\n <title>CodeMirror: Code Folding Demo</title>\n <meta charset=\"utf-8\"/>\n <link rel=stylesheet "
},
{
"path": "src/_site/vendor/codemirror/demo/fullscreen.html",
"chars": 3456,
"preview": "<!doctype html>\n\n<title>CodeMirror: Full Screen Editing</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../do"
},
{
"path": "src/_site/vendor/codemirror/demo/hardwrap.html",
"chars": 2500,
"preview": "<!doctype html>\n\n<title>CodeMirror: Hard-wrapping Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc"
},
{
"path": "src/_site/vendor/codemirror/demo/html5complete.html",
"chars": 1768,
"preview": "<!doctype html>\n\n<head>\n <title>CodeMirror: HTML completion demo</title>\n <meta charset=\"utf-8\"/>\n <link rel=styleshe"
},
{
"path": "src/_site/vendor/codemirror/demo/indentwrap.html",
"chars": 2579,
"preview": "<!doctype html>\n\n<title>CodeMirror: Indented wrapped line demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href"
},
{
"path": "src/_site/vendor/codemirror/demo/lint.html",
"chars": 4116,
"preview": "<!doctype html>\n\n<title>CodeMirror: Linter Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/docs.c"
},
{
"path": "src/_site/vendor/codemirror/demo/loadmode.html",
"chars": 2224,
"preview": "<!doctype html>\n\n<title>CodeMirror: Lazy Mode Loading Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\".."
},
{
"path": "src/_site/vendor/codemirror/demo/marker.html",
"chars": 1483,
"preview": "<!doctype html>\n\n<title>CodeMirror: Breakpoint Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/do"
},
{
"path": "src/_site/vendor/codemirror/demo/markselection.html",
"chars": 1876,
"preview": "<!doctype html>\n\n<title>CodeMirror: Selection Marking Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\".."
},
{
"path": "src/_site/vendor/codemirror/demo/matchhighlighter.html",
"chars": 1630,
"preview": "<!doctype html>\n\n<title>CodeMirror: Match Highlighter Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\".."
},
{
"path": "src/_site/vendor/codemirror/demo/matchtags.html",
"chars": 1374,
"preview": "<!doctype html>\n\n<title>CodeMirror: Tag Matcher Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/d"
},
{
"path": "src/_site/vendor/codemirror/demo/merge.html",
"chars": 3310,
"preview": "<!doctype html>\n\n<title>CodeMirror: merge view demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/do"
},
{
"path": "src/_site/vendor/codemirror/demo/multiplex.html",
"chars": 2164,
"preview": "<!doctype html>\n\n<title>CodeMirror: Multiplexing Parser Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\""
},
{
"path": "src/_site/vendor/codemirror/demo/mustache.html",
"chars": 2096,
"preview": "<!doctype html>\n\n<title>CodeMirror: Overlay Parser Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../do"
},
{
"path": "src/_site/vendor/codemirror/demo/placeholder.html",
"chars": 1507,
"preview": "<!doctype html>\n\n<title>CodeMirror: Placeholder demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/d"
},
{
"path": "src/_site/vendor/codemirror/demo/preview.html",
"chars": 2417,
"preview": "<!doctype html>\n\n<title>CodeMirror: HTML5 preview</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/docs"
},
{
"path": "src/_site/vendor/codemirror/demo/requirejs.html",
"chars": 1682,
"preview": "<!doctype html>\n\n<head>\n <title>CodeMirror: HTML completion demo</title>\n <meta charset=\"utf-8\"/>\n <link rel=styleshe"
},
{
"path": "src/_site/vendor/codemirror/demo/resize.html",
"chars": 1475,
"preview": "<!doctype html>\n\n<title>CodeMirror: Autoresize Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/do"
},
{
"path": "src/_site/vendor/codemirror/demo/rulers.html",
"chars": 1427,
"preview": "<!doctype html>\n\n<title>CodeMirror: Ruler Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/docs.cs"
},
{
"path": "src/_site/vendor/codemirror/demo/runmode.html",
"chars": 2255,
"preview": "<!doctype html>\n\n<title>CodeMirror: Mode Runner Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/d"
},
{
"path": "src/_site/vendor/codemirror/demo/search.html",
"chars": 3953,
"preview": "<!doctype html>\n\n<title>CodeMirror: Search/Replace Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../do"
},
{
"path": "src/_site/vendor/codemirror/demo/simplemode.html",
"chars": 7804,
"preview": "<!doctype html>\n\n<title>CodeMirror: Simple Mode Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/d"
},
{
"path": "src/_site/vendor/codemirror/demo/spanaffectswrapping_shim.html",
"chars": 3039,
"preview": "<!doctype html>\n\n<title>CodeMirror: Automatically derive odd wrapping behavior for your browser</title>\n<meta charset=\"u"
},
{
"path": "src/_site/vendor/codemirror/demo/sublime.html",
"chars": 2826,
"preview": "<!doctype html>\n\n<title>CodeMirror: Sublime Text bindings demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href"
},
{
"path": "src/_site/vendor/codemirror/demo/tern.html",
"chars": 4366,
"preview": "<!doctype html>\n\n<title>CodeMirror: Tern Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/docs.css"
},
{
"path": "src/_site/vendor/codemirror/demo/theme.html",
"chars": 4418,
"preview": "<!doctype html>\n\n<title>CodeMirror: Theme Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/docs.cs"
},
{
"path": "src/_site/vendor/codemirror/demo/trailingspace.html",
"chars": 1567,
"preview": "<!doctype html>\n\n<title>CodeMirror: Trailing Whitespace Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\""
},
{
"path": "src/_site/vendor/codemirror/demo/variableheight.html",
"chars": 2067,
"preview": "<!doctype html>\n\n<title>CodeMirror: Variable Height Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../d"
},
{
"path": "src/_site/vendor/codemirror/demo/vim.html",
"chars": 3325,
"preview": "<!doctype html>\n\n<title>CodeMirror: Vim bindings demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/"
},
{
"path": "src/_site/vendor/codemirror/demo/visibletabs.html",
"chars": 1862,
"preview": "<!doctype html>\n\n<title>CodeMirror: Visible tabs demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/"
},
{
"path": "src/_site/vendor/codemirror/demo/widget.html",
"chars": 2938,
"preview": "<!doctype html>\n\n<title>CodeMirror: Inline Widget Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc"
},
{
"path": "src/_site/vendor/codemirror/demo/xmlcomplete.html",
"chars": 3695,
"preview": "<!doctype html>\n\n<title>CodeMirror: XML Autocomplete Demo</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../"
},
{
"path": "src/_site/vendor/codemirror/doc/activebookmark.js",
"chars": 1897,
"preview": "// Kludge in HTML5 tag recognition in IE8\ndocument.createElement(\"section\");\ndocument.createElement(\"article\");\n\n(functi"
},
{
"path": "src/_site/vendor/codemirror/doc/compress.html",
"chars": 22038,
"preview": "<!doctype html>\n\n<title>CodeMirror: Compression Helper</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"docs.c"
},
{
"path": "src/_site/vendor/codemirror/doc/docs.css",
"chars": 3745,
"preview": "@font-face {\n font-family: 'Source Sans Pro';\n font-style: normal;\n font-weight: 400;\n src: local('Source Sans Pro')"
},
{
"path": "src/_site/vendor/codemirror/doc/internals.html",
"chars": 25718,
"preview": "<!doctype html>\n\n<title>CodeMirror: Internals</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"docs.css\">\n<sty"
},
{
"path": "src/_site/vendor/codemirror/doc/manual.html",
"chars": 171888,
"preview": "<!doctype html>\n\n<title>CodeMirror: User Manual</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"docs.css\">\n<s"
},
{
"path": "src/_site/vendor/codemirror/doc/realworld.html",
"chars": 14001,
"preview": "<!doctype html>\n\n<title>CodeMirror: Real-world Uses</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"docs.css\""
},
{
"path": "src/_site/vendor/codemirror/doc/releases.html",
"chars": 57955,
"preview": "<!doctype html>\n\n<title>CodeMirror: Release History</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"docs.css\""
},
{
"path": "src/_site/vendor/codemirror/doc/reporting.html",
"chars": 2049,
"preview": "<!doctype html>\n\n<title>CodeMirror: Reporting Bugs</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"docs.css\">"
},
{
"path": "src/_site/vendor/codemirror/doc/upgrade_v2.2.html",
"chars": 3546,
"preview": "<!doctype html>\n\n<title>CodeMirror: Version 2.2 upgrade guide</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href="
},
{
"path": "src/_site/vendor/codemirror/doc/upgrade_v3.html",
"chars": 8508,
"preview": "<!doctype html>\n\n<title>CodeMirror: Version 3 upgrade guide</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"d"
},
{
"path": "src/_site/vendor/codemirror/doc/upgrade_v4.html",
"chars": 5456,
"preview": "<!doctype html>\n\n<title>CodeMirror: Version 4 upgrade guide</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"d"
},
{
"path": "src/_site/vendor/codemirror/index.html",
"chars": 9470,
"preview": "<!doctype html>\n\n<title>CodeMirror</title>\n<meta charset=\"utf-8\"/>\n\n<link rel=stylesheet href=\"lib/codemirror.css\">\n<lin"
},
{
"path": "src/_site/vendor/codemirror/keymap/emacs.js",
"chars": 12800,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/keymap/sublime.js",
"chars": 20403,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/keymap/vim.js",
"chars": 189150,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/lib/codemirror.css",
"chars": 7598,
"preview": "/* BASICS */\n\n.CodeMirror {\n /* Set height, width, borders, and global font properties here */\n font-family: monospace"
},
{
"path": "src/_site/vendor/codemirror/lib/codemirror.js",
"chars": 317123,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/apl/apl.js",
"chars": 4582,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/apl/index.html",
"chars": 2094,
"preview": "<!doctype html>\n\n<title>CodeMirror: APL mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.c"
},
{
"path": "src/_site/vendor/codemirror/mode/asterisk/asterisk.js",
"chars": 7476,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/asterisk/index.html",
"chars": 4591,
"preview": "<!doctype html>\n\n<title>CodeMirror: Asterisk dialplan mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\".."
},
{
"path": "src/_site/vendor/codemirror/mode/clike/clike.js",
"chars": 18939,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/clike/index.html",
"chars": 6662,
"preview": "<!doctype html>\n\n<title>CodeMirror: C-like mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/doc"
},
{
"path": "src/_site/vendor/codemirror/mode/clike/scala.html",
"chars": 28518,
"preview": "<!doctype html>\n\n<title>CodeMirror: Scala mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs"
},
{
"path": "src/_site/vendor/codemirror/mode/clojure/clojure.js",
"chars": 14815,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/clojure/index.html",
"chars": 2495,
"preview": "<!doctype html>\n\n<title>CodeMirror: Clojure mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/do"
},
{
"path": "src/_site/vendor/codemirror/mode/cobol/cobol.js",
"chars": 10288,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/cobol/index.html",
"chars": 8084,
"preview": "<!doctype html>\n\n<title>CodeMirror: COBOL mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs"
},
{
"path": "src/_site/vendor/codemirror/mode/coffeescript/coffeescript.js",
"chars": 10175,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/coffeescript/index.html",
"chars": 22390,
"preview": "<!doctype html>\n\n<title>CodeMirror: CoffeeScript mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../d"
},
{
"path": "src/_site/vendor/codemirror/mode/commonlisp/commonlisp.js",
"chars": 4075,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/commonlisp/index.html",
"chars": 6691,
"preview": "<!doctype html>\n\n<title>CodeMirror: Common Lisp mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../do"
},
{
"path": "src/_site/vendor/codemirror/mode/css/css.js",
"chars": 31664,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/css/index.html",
"chars": 1685,
"preview": "<!doctype html>\n\n<title>CodeMirror: CSS mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.c"
},
{
"path": "src/_site/vendor/codemirror/mode/css/less.html",
"chars": 4059,
"preview": "<!doctype html>\n\n<title>CodeMirror: LESS mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs."
},
{
"path": "src/_site/vendor/codemirror/mode/css/less_test.js",
"chars": 1791,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/css/scss.html",
"chars": 2741,
"preview": "<!doctype html>\n\n<title>CodeMirror: SCSS mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs."
},
{
"path": "src/_site/vendor/codemirror/mode/css/scss_test.js",
"chars": 3125,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/css/test.js",
"chars": 4227,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/cypher/cypher.js",
"chars": 6174,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/cypher/index.html",
"chars": 1908,
"preview": "<!doctype html>\n\n<title>CodeMirror: Cypher Mode for CodeMirror</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href"
},
{
"path": "src/_site/vendor/codemirror/mode/d/d.js",
"chars": 7566,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/d/index.html",
"chars": 6332,
"preview": "<!doctype html>\n\n<title>CodeMirror: D mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css"
},
{
"path": "src/_site/vendor/codemirror/mode/diff/diff.js",
"chars": 1138,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/diff/index.html",
"chars": 4409,
"preview": "<!doctype html>\n\n<title>CodeMirror: Diff mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs."
},
{
"path": "src/_site/vendor/codemirror/mode/django/django.js",
"chars": 2316,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/django/index.html",
"chars": 1806,
"preview": "<!doctype html>\n\n<title>CodeMirror: Django template mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../."
},
{
"path": "src/_site/vendor/codemirror/mode/dockerfile/dockerfile.js",
"chars": 2282,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/dockerfile/index.html",
"chars": 2189,
"preview": "<!doctype html>\n\n<title>CodeMirror: Dockerfile mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc"
},
{
"path": "src/_site/vendor/codemirror/mode/dtd/dtd.js",
"chars": 4808,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/dtd/index.html",
"chars": 3337,
"preview": "<!doctype html>\n\n<title>CodeMirror: DTD mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.c"
},
{
"path": "src/_site/vendor/codemirror/mode/dylan/dylan.js",
"chars": 8778,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/dylan/index.html",
"chars": 13032,
"preview": "<!doctype html>\n\n<title>CodeMirror: Dylan mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs"
},
{
"path": "src/_site/vendor/codemirror/mode/ecl/ecl.js",
"chars": 8889,
"preview": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/L"
},
{
"path": "src/_site/vendor/codemirror/mode/ecl/index.html",
"chars": 1409,
"preview": "<!doctype html>\n\n<title>CodeMirror: ECL mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.c"
}
]
// ... and 490 more files (download for full content)
About this extraction
This page contains the full source code of the NLPchina/elasticsearch-sql GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 690 files (14.6 MB), approximately 3.9M tokens, and a symbol index with 4533 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.