GitHub user arina-ielchiieva opened a pull request:
https://github.com/apache/drill/pull/701
DRILL-4963: Sync remote and local function registries before query exâ¦
â¦ecution
Lazy-init was performed only when function was not found during Calcite
parsing but DRILL-4963 shows different cases when Calcite parsing can pass
(usually during function overloading) but still function is not found. To
handle such cases, we need to sync remote and local function registries before
query execution. To make this sync as much light-weight as possible we first
compare remote and local function registries versions and start looking for
missing jars only when versions do not match. Under local function registry is
implied remote function registry version with which local function registry was
synchronized last time.
Changes:
1. Add `consists` method to PersistentStore interface which can return true
if key exists in store, false otherwise. This method is needed to return only
remote function registry version without its content (unlike method `get`).
We'll pull remote function registry content only if versions are different.
2. Added check if remote and local function registries are in sync before
query execution on planning and execution stages.
3. Removed unused methods and changes connected with lazy-init
implementation on failure only.
4. Added additional debug messages for `CreateFunctionHandler` and
`DropFunctionHandler`.
5. Updated unit tests to reflect new changes.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/arina-ielchiieva/drill DRILL-4963
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/drill/pull/701.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #701
----
commit 51ef6614a2c27cb6bb58fb0de875952f99e9b102
Author: Arina Ielchiieva <[email protected]>
Date: 2016-12-20T16:57:15Z
DRILL-4963: Sync remote and local function registries before query execution
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---