Clone Tools
  • last updated 14 mins ago
Constraints: committers
Constraints: files
Constraints: dates
DRILL-7351: Added tokens to Web forms to prevent CSRF attacks

  1. … 25 more files in changeset.
DRILL-7048: Implement JDBC Statement.setMaxRows() with System Option

This introduces support for JDBC's Statement.setMaxRows(int) API, which can help Drill execute a query much faster if it knows that not ALL the records in the resultset will be consumed upfront.

This Commit introduces the core changes to support the feature within Drill's execution engine

Protobuf Changes

1. RunQuery: Added "autolimit_rowcount"

2. QueryProfile: Added "autoLimit"

3. Regenerated Java and C++ client files

REST API support

1. Support for REST server to interpret a submitted query and also for rendering this information for an executed query

2. Updates to the Freemarker templates (for WebUI)

3. Safety check within Javascript (for WebUI)

JDBC API support

1. Introduces backend execution of 'ALTER SESSION' to apply the auto-limiting of resultset size

2. Added Unit Tests for PreparedStatement and Statement objects

3. Added getter setter methods to be skipped in testing for org.apache.drill.jdbc.test.Drill2489CallsAfterCloseThrowExceptionsTest.testclosedPreparedStmtOfOpenConnMethodsThrowRight()

Updates based on review comments

Additional Updates

Test Cleanup

1. Revert Drill2489 hack

2. Formatting in *StatementTest

3. Removal f redundant `statement.close()`

4. Manage new Exception thrown when setting invalid maxRow values

Final updates

1. Test changes

2. Trim trailing spaces in auto-limit value (Javascript)

3. Before & After annotations to synchronize changes to system values for MaxRows(auto-limit)

Reorganized tests due to synchronized locking

Removed conflicting JsonCreator in QueryWrapper

Additional test cleanup

closes #1714

  1. … 33 more files in changeset.
DRILL-7061: Disable LIMIT Rows Option

Freemarker by default introduces a comma in numeric values greater than 999. This corrects that by removing the ',' in the default limit size.

However, since a Server-side implementation is in progress (DRILL-6960 and DRILL-7048), it is best to disable this for now. The latest commit in this will hide those capabilities in the WebUI until the server-side feature goes in.


closes #1689

  1. … 1 more file in changeset.
DRILL-7036: Improve UI for alert and error messages closes #1644 This PR standardizes error and alert messages to a cleaner interface by leveraging Bootstraps UX elements for publishing the messages in a presentable format. Exceptions reported back to the browser and rendered in a neat tabular format (using Panels) All errors can be redirected to errorMessage.ftl which will render it in a neat format. Alerts are replaced with modals. Interactions (pages) affected by Alert modals 1. Missing Query submission 2. profile Query Rerun 3. invalid Profile Listing Fetch 4. invalid Option Value for update 5. Missing username/password submission

The errorMessage.ftl has been moved to root dir, and unused `error.ftl` was removed

  1. … 10 more files in changeset.
DRILL-6979: Added autofocus attribute to username on login page, and to query textbox on Query tab

  1. … 1 more file in changeset.
DRILL-6971: Labelled Query State with color coding

closes #1611

DRILL-6971: Display query state in query result page

  1. … 3 more files in changeset.
DRILL-6050: Provide a limit to number of rows fetched for a query in UI

Currently, the WebServer side needs to process the entire set of results and stream it back to the WebClient.

Since the WebUI does paginate results, we can load a larger set for pagination on the browser client and relieve pressure off the WebServer to host all the data (most of which will never be streamed to the browser).

e.g. Fetching all rows from a 1Billion records table is impractical and can be capped at (say) 1K. Currently, the user has to explicitly specify LIMIT in the submitted query.

An option is provided in the field to allow for this entry, and can be set to selected by default for the Web UI.

The submitted query indicates that an auto-limiting wrapper was applied.

[Update #1] Updated as per comments

1. Limit Wrapping Unchecked by default

2. Full List configuration of results

[Update #2] Minor update

[Update #3] Followup

closes #1593

  1. … 4 more files in changeset.
DRILL-6939: Indicate when a query is submitted and is in progress

On query submission, a modal popup blocks further interaction until the result of the query are available.

Since the Query ID is not available at this point, the only way to cancel a running query is to navigate to it via the `/profiles` tab. For this, the modal allows a button to pop out to this tab without closing the current window which is waiting for the result-set.

[Update] Shared running query modal introduced

closes #1592

  1. … 4 more files in changeset.
DRILL-6933: Fix ctrl+enter when Impersonation is disabled

Without impersonation, the key combination did not work because a conditional block of the FTLs skipped the Javascript functions required for submitting with the key combination.

This commit fixes that by unifying the functions that are common to both approaches of submitting a query (with and without impersoination)

[Update] Changes made to isOnlyImpersonationEnabled method and onlyImpersonationEnabled variable

[Update] userName is a global var in the script

closes #1591

  1. … 6 more files in changeset.
DRILL-6867: WebUI Query editor cursor position

closes #1551

DRILL-6611: Add Ctrl+Enter support for query submission

1. BugFix on parent commit: Ensure query submission is done with user name when impersonation is enabled.

2. Support non-Mac browsers

3. Support keyboard submission for profile pages with Edit Query tab.

  1. … 1 more file in changeset.
DRILL-6819: Remove invisible back link in Drill WebUI

  1. … 13 more files in changeset.
DRILL-6084: Show Drill functions in WebUI for autocomplete

Building on top of DRILL-3988 and leveraging DRILL-5868, this allows support for Drill functions to be now available in the WebUI.

If users wants UDFs to show up, they should place the UDF jars in the `$DRILL_HOME/jars/3rdparty` directory so that this can be loaded during the Drillbit's startup.

Concept of internal Drill functions are introduced. With this, internal Drill functions like `ConvertToNullableXYZ` has been marked as internal.

The WebUI will not show these functions. However, they are still visible in `sys.functions` table with an additional column indicating that it is an internal function.

Tests have been added as a part of this commit to verify the internal functions concept.

  1. … 13 more files in changeset.
DRILL-6630: Extra spaces are ignored while publishing results in Drill Web UI (#1468)

Added a style option to the table to ensure that all explicit spaces are shown in the published results.

DRILL-6611 to enable meta-enter query submission in web query interface

DRILL-6423: Export query result as a CSV file

Added option for user specified delimiter

Also, we show query Id on results page as alink for popping out a new window

closes #1266

  1. … 2 more files in changeset.
DRILL-6320: Fixed license headers.

closes #1207

  1. … 2063 more files in changeset.
DRILL-5868: Support SQL syntax highlighting of queries

Based on the commit for DRILL-5981 (PR #1043), this commit further leverages the Ace JavaScript library with customizations specific to Drill.

This commit introduces the following to the Query Editor (including the Edit Query tab within an existing profile to rerunning the query).

1. Syntax highlighting (This is supported for submitted query profiles

2. Autocomplete supported in editors

3. Specifying Drill specific keywords and functions in visible autocomplete

4. Key snippets (template SQLs) allowing for rapid writing of syntax:

i. Query System Tables

ii. CView, CTAS and CTempTAS

iii. Alter Session

iv. Explain and Select * queries

NOTE: The lists for #3 and #4 are not exhaustive. As more features are added to Drill, these lists can be expanded.

Updates based on review comments

1. Disabled warning message

2. Extended reserved keyword list

3. Fixed bugs


Update 1: Bug fix for when Impersonation is enabled

Update 2: Remove the duplicate editor that might get injected

Update 3: Removed trailing whitespaces in Javascripts

close apache/drill#1084

  1. … 8 more files in changeset.
DRILL-5996: Add ability to re-run queries from Profiles tab with impersonation and without authentication

closes #1061

  1. … 4 more files in changeset.
DRILL-5766: Fix XSS vulnerabilities in Drill

1. Bumped up freemarker version to 2.3.26-incubating.

2. Indicated default output format in Freemarker configuration (HTML).

3. Fixed Web UI bugs listed in DRILL-5346, DRILL-5341, DRILL-5339, DRILL-5338.

closes #935

  1. … 7 more files in changeset.
DRILL-5726: Support Impersonation without authentication for REST API

DRILL-5726: Changes after code review.

close apache/drill#910

  1. … 4 more files in changeset.
DRILL-5699: Drill Web UI Page Source Has Links To External Sites

close #891

  1. … 11 more files in changeset.
DRILL-2172: make web UI bound check before accessing a vector, returning null for overflowing indices; fix a non-string type rendering problem;

  1. … 2 more files in changeset.
DRILL-1515: For the Web UI users, if exception is thrown, users are redirected to another page, which shows the error message

  1. … 1 more file in changeset.
DRILL-1780: check if result set is empty before accessing; show a neat message to the user when resultset is empty; minor refactorings to DrillRestServer

  1. … 2 more files in changeset.
DRILL-1376 ORDER BY clause ignored in query run through web UI - Bug fixed

DRILL-1235: Fix null handling in REST interface

  1. … 1 more file in changeset.
DRILL-77: REST API implemented using jersey and jackson + graph viz.

  1. … 15 more files in changeset.
DRILL-977: changed container style to fluid. Added column filter.

  1. … 1 more file in changeset.