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 <arina.yelchiy...@gmail.com> 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 infrastruct...@apache.org or file a JIRA ticket with INFRA. ---