drill-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bridg...@apache.org
Subject [04/19] drill git commit: Updates to custom functions docs for 1.9
Date Tue, 29 Nov 2016 22:42:42 GMT
Updates to custom functions docs for 1.9


Project: http://git-wip-us.apache.org/repos/asf/drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/e8714c42
Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/e8714c42
Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/e8714c42

Branch: refs/heads/gh-pages
Commit: e8714c4255ee8786e315589c5dec7780bd9bb5d0
Parents: 5a44b0c
Author: Bridget Bevens <bbevens@maprtech.com>
Authored: Mon Nov 21 11:18:02 2016 -0800
Committer: Bridget Bevens <bbevens@maprtech.com>
Committed: Mon Nov 21 11:18:02 2016 -0800

----------------------------------------------------------------------
 _data/docs.json                                 | 508 +++++++++++++++++--
 ...010-develop-custom-functions-introduction.md |   4 +-
 .../040-adding-custom-functions-to-drill.md     |   6 +
 ...ng-custom-functions-to-drill-introduction.md |   8 +-
 .../020-dynamic-udfs.md                         |  40 +-
 5 files changed, 493 insertions(+), 73 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/drill/blob/e8714c42/_data/docs.json
----------------------------------------------------------------------
diff --git a/_data/docs.json b/_data/docs.json
index 0ac5ae7..84b6070 100644
--- a/_data/docs.json
+++ b/_data/docs.json
@@ -87,9 +87,73 @@
                     "url": "/docs/develop-custom-functions/"
                 }
             ], 
-            "children": [], 
-            "next_title": "Using Custom Functions in Queries", 
-            "next_url": "/docs/using-custom-functions-in-queries/", 
+            "children": [
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Adding Custom Functions to Drill", 
+                            "url": "/docs/adding-custom-functions-to-drill/"
+                        }, 
+                        {
+                            "title": "Develop Custom Functions", 
+                            "url": "/docs/develop-custom-functions/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Manually Adding Custom Functions to Drill", 
+                    "next_url": "/docs/manually-adding-custom-functions-to-drill/", 
+                    "parent": "Adding Custom Functions to Drill", 
+                    "previous_title": "Adding Custom Functions to Drill", 
+                    "previous_url": "/docs/adding-custom-functions-to-drill/", 
+                    "relative_path": "_docs/develop-custom-functions/adding-custom-functions-to-drill/009-adding-custom-functions-to-drill-introduction.md", 
+                    "title": "Adding Custom Functions to Drill Introduction", 
+                    "url": "/docs/adding-custom-functions-to-drill-introduction/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Adding Custom Functions to Drill", 
+                            "url": "/docs/adding-custom-functions-to-drill/"
+                        }, 
+                        {
+                            "title": "Develop Custom Functions", 
+                            "url": "/docs/develop-custom-functions/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Dynamic UDFs", 
+                    "next_url": "/docs/dynamic-udfs/", 
+                    "parent": "Adding Custom Functions to Drill", 
+                    "previous_title": "Adding Custom Functions to Drill Introduction", 
+                    "previous_url": "/docs/adding-custom-functions-to-drill-introduction/", 
+                    "relative_path": "_docs/develop-custom-functions/adding-custom-functions-to-drill/010-manually-adding-custom-functions-to-drill.md", 
+                    "title": "Manually Adding Custom Functions to Drill", 
+                    "url": "/docs/manually-adding-custom-functions-to-drill/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Adding Custom Functions to Drill", 
+                            "url": "/docs/adding-custom-functions-to-drill/"
+                        }, 
+                        {
+                            "title": "Develop Custom Functions", 
+                            "url": "/docs/develop-custom-functions/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Using Custom Functions in Queries", 
+                    "next_url": "/docs/using-custom-functions-in-queries/", 
+                    "parent": "Adding Custom Functions to Drill", 
+                    "previous_title": "Manually Adding Custom Functions to Drill", 
+                    "previous_url": "/docs/manually-adding-custom-functions-to-drill/", 
+                    "relative_path": "_docs/develop-custom-functions/adding-custom-functions-to-drill/020-dynamic-udfs.md", 
+                    "title": "Dynamic UDFs", 
+                    "url": "/docs/dynamic-udfs/"
+                }
+            ], 
+            "next_title": "Adding Custom Functions to Drill Introduction", 
+            "next_url": "/docs/adding-custom-functions-to-drill-introduction/", 
             "parent": "Develop Custom Functions", 
             "previous_title": "Developing an Aggregate Function", 
             "previous_url": "/docs/developing-an-aggregate-function/", 
@@ -97,6 +161,27 @@
             "title": "Adding Custom Functions to Drill", 
             "url": "/docs/adding-custom-functions-to-drill/"
         }, 
+        "Adding Custom Functions to Drill Introduction": {
+            "breadcrumbs": [
+                {
+                    "title": "Adding Custom Functions to Drill", 
+                    "url": "/docs/adding-custom-functions-to-drill/"
+                }, 
+                {
+                    "title": "Develop Custom Functions", 
+                    "url": "/docs/develop-custom-functions/"
+                }
+            ], 
+            "children": [], 
+            "next_title": "Manually Adding Custom Functions to Drill", 
+            "next_url": "/docs/manually-adding-custom-functions-to-drill/", 
+            "parent": "Adding Custom Functions to Drill", 
+            "previous_title": "Adding Custom Functions to Drill", 
+            "previous_url": "/docs/adding-custom-functions-to-drill/", 
+            "relative_path": "_docs/develop-custom-functions/adding-custom-functions-to-drill/009-adding-custom-functions-to-drill-introduction.md", 
+            "title": "Adding Custom Functions to Drill Introduction", 
+            "url": "/docs/adding-custom-functions-to-drill-introduction/"
+        }, 
         "Aggregate Window Functions": {
             "breadcrumbs": [
                 {
@@ -456,12 +541,29 @@
             "next_title": "Apache Drill 1.7.0 Release Notes", 
             "next_url": "/docs/apache-drill-1-7-0-release-notes/", 
             "parent": "Release Notes", 
-            "previous_title": "Release Notes", 
-            "previous_url": "/docs/release-notes/", 
+            "previous_title": "Apache Drill 1.9.0 Release Notes", 
+            "previous_url": "/docs/apache-drill-1-9-0-release-notes/", 
             "relative_path": "_docs/rn/003-1.8.0-rn.md", 
             "title": "Apache Drill 1.8.0 Release Notes", 
             "url": "/docs/apache-drill-1-8-0-release-notes/"
         }, 
+        "Apache Drill 1.9.0 Release Notes": {
+            "breadcrumbs": [
+                {
+                    "title": "Release Notes", 
+                    "url": "/docs/release-notes/"
+                }
+            ], 
+            "children": [], 
+            "next_title": "Apache Drill 1.8.0 Release Notes", 
+            "next_url": "/docs/apache-drill-1-8-0-release-notes/", 
+            "parent": "Release Notes", 
+            "previous_title": "Release Notes", 
+            "previous_url": "/docs/release-notes/", 
+            "relative_path": "_docs/rn/002-1.9.0-rn.md", 
+            "title": "Apache Drill 1.9.0 Release Notes", 
+            "url": "/docs/apache-drill-1-9-0-release-notes/"
+        }, 
         "Apache Drill Contribution Guidelines": {
             "breadcrumbs": [
                 {
@@ -619,6 +721,23 @@
             "title": "Architecture Introduction", 
             "url": "/docs/architecture-introduction/"
         }, 
+        "Asynchronous Parquet Reader": {
+            "breadcrumbs": [
+                {
+                    "title": "Performance Tuning", 
+                    "url": "/docs/performance-tuning/"
+                }
+            ], 
+            "children": [], 
+            "next_title": "Optimizing Parquet Metadata Reading", 
+            "next_url": "/docs/optimizing-parquet-metadata-reading/", 
+            "parent": "Performance Tuning", 
+            "previous_title": "How to Partition Data", 
+            "previous_url": "/docs/how-to-partition-data/", 
+            "relative_path": "_docs/performance-tuning/024-aynchronous-parquet-reader.md", 
+            "title": "Asynchronous Parquet Reader", 
+            "url": "/docs/asynchronous-parquet-reader/"
+        }, 
         "Browsing Data and Defining Views": {
             "breadcrumbs": [
                 {
@@ -2695,9 +2814,73 @@
                             "url": "/docs/develop-custom-functions/"
                         }
                     ], 
-                    "children": [], 
-                    "next_title": "Using Custom Functions in Queries", 
-                    "next_url": "/docs/using-custom-functions-in-queries/", 
+                    "children": [
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Adding Custom Functions to Drill", 
+                                    "url": "/docs/adding-custom-functions-to-drill/"
+                                }, 
+                                {
+                                    "title": "Develop Custom Functions", 
+                                    "url": "/docs/develop-custom-functions/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Manually Adding Custom Functions to Drill", 
+                            "next_url": "/docs/manually-adding-custom-functions-to-drill/", 
+                            "parent": "Adding Custom Functions to Drill", 
+                            "previous_title": "Adding Custom Functions to Drill", 
+                            "previous_url": "/docs/adding-custom-functions-to-drill/", 
+                            "relative_path": "_docs/develop-custom-functions/adding-custom-functions-to-drill/009-adding-custom-functions-to-drill-introduction.md", 
+                            "title": "Adding Custom Functions to Drill Introduction", 
+                            "url": "/docs/adding-custom-functions-to-drill-introduction/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Adding Custom Functions to Drill", 
+                                    "url": "/docs/adding-custom-functions-to-drill/"
+                                }, 
+                                {
+                                    "title": "Develop Custom Functions", 
+                                    "url": "/docs/develop-custom-functions/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Dynamic UDFs", 
+                            "next_url": "/docs/dynamic-udfs/", 
+                            "parent": "Adding Custom Functions to Drill", 
+                            "previous_title": "Adding Custom Functions to Drill Introduction", 
+                            "previous_url": "/docs/adding-custom-functions-to-drill-introduction/", 
+                            "relative_path": "_docs/develop-custom-functions/adding-custom-functions-to-drill/010-manually-adding-custom-functions-to-drill.md", 
+                            "title": "Manually Adding Custom Functions to Drill", 
+                            "url": "/docs/manually-adding-custom-functions-to-drill/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Adding Custom Functions to Drill", 
+                                    "url": "/docs/adding-custom-functions-to-drill/"
+                                }, 
+                                {
+                                    "title": "Develop Custom Functions", 
+                                    "url": "/docs/develop-custom-functions/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Using Custom Functions in Queries", 
+                            "next_url": "/docs/using-custom-functions-in-queries/", 
+                            "parent": "Adding Custom Functions to Drill", 
+                            "previous_title": "Manually Adding Custom Functions to Drill", 
+                            "previous_url": "/docs/manually-adding-custom-functions-to-drill/", 
+                            "relative_path": "_docs/develop-custom-functions/adding-custom-functions-to-drill/020-dynamic-udfs.md", 
+                            "title": "Dynamic UDFs", 
+                            "url": "/docs/dynamic-udfs/"
+                        }
+                    ], 
+                    "next_title": "Adding Custom Functions to Drill Introduction", 
+                    "next_url": "/docs/adding-custom-functions-to-drill-introduction/", 
                     "parent": "Develop Custom Functions", 
                     "previous_title": "Developing an Aggregate Function", 
                     "previous_url": "/docs/developing-an-aggregate-function/", 
@@ -2716,8 +2899,8 @@
                     "next_title": "Custom Function Interfaces", 
                     "next_url": "/docs/custom-function-interfaces/", 
                     "parent": "Develop Custom Functions", 
-                    "previous_title": "Adding Custom Functions to Drill", 
-                    "previous_url": "/docs/adding-custom-functions-to-drill/", 
+                    "previous_title": "Dynamic UDFs", 
+                    "previous_url": "/docs/dynamic-udfs/", 
                     "relative_path": "_docs/develop-custom-functions/050-use-custom-functions-in-queries.md", 
                     "title": "Using Custom Functions in Queries", 
                     "url": "/docs/using-custom-functions-in-queries/"
@@ -3226,6 +3409,27 @@
             "title": "Drill in 10 Minutes", 
             "url": "/docs/drill-in-10-minutes/"
         }, 
+        "Dynamic UDFs": {
+            "breadcrumbs": [
+                {
+                    "title": "Adding Custom Functions to Drill", 
+                    "url": "/docs/adding-custom-functions-to-drill/"
+                }, 
+                {
+                    "title": "Develop Custom Functions", 
+                    "url": "/docs/develop-custom-functions/"
+                }
+            ], 
+            "children": [], 
+            "next_title": "Using Custom Functions in Queries", 
+            "next_url": "/docs/using-custom-functions-in-queries/", 
+            "parent": "Adding Custom Functions to Drill", 
+            "previous_title": "Manually Adding Custom Functions to Drill", 
+            "previous_url": "/docs/manually-adding-custom-functions-to-drill/", 
+            "relative_path": "_docs/develop-custom-functions/adding-custom-functions-to-drill/020-dynamic-udfs.md", 
+            "title": "Dynamic UDFs", 
+            "url": "/docs/dynamic-udfs/"
+        }, 
         "EXPLAIN": {
             "breadcrumbs": [
                 {
@@ -3583,9 +3787,9 @@
             "next_title": "Choosing a Storage Format", 
             "next_url": "/docs/choosing-a-storage-format/", 
             "parent": "Performance Tuning", 
-            "previous_title": "Optimizing Parquet Metadata Reading", 
-            "previous_url": "/docs/optimizing-parquet-metadata-reading/", 
-            "relative_path": "_docs/performance-tuning/026-hive-metadata-caching.md", 
+            "previous_title": "Parquet Filter Pushdown", 
+            "previous_url": "/docs/parquet-filter-pushdown/", 
+            "relative_path": "_docs/performance-tuning/027-hive-metadata-caching.md", 
             "title": "Hive Metadata Caching", 
             "url": "/docs/hive-metadata-caching/"
         }, 
@@ -3635,8 +3839,8 @@
                 }
             ], 
             "children": [], 
-            "next_title": "Optimizing Parquet Metadata Reading", 
-            "next_url": "/docs/optimizing-parquet-metadata-reading/", 
+            "next_title": "Asynchronous Parquet Reader", 
+            "next_url": "/docs/asynchronous-parquet-reader/", 
             "parent": "Partition Pruning", 
             "previous_title": "Partition Pruning Introduction", 
             "previous_url": "/docs/partition-pruning-introduction/", 
@@ -4920,6 +5124,27 @@
             "title": "Log and Debug Introduction", 
             "url": "/docs/log-and-debug-introduction/"
         }, 
+        "Manually Adding Custom Functions to Drill": {
+            "breadcrumbs": [
+                {
+                    "title": "Adding Custom Functions to Drill", 
+                    "url": "/docs/adding-custom-functions-to-drill/"
+                }, 
+                {
+                    "title": "Develop Custom Functions", 
+                    "url": "/docs/develop-custom-functions/"
+                }
+            ], 
+            "children": [], 
+            "next_title": "Dynamic UDFs", 
+            "next_url": "/docs/dynamic-udfs/", 
+            "parent": "Adding Custom Functions to Drill", 
+            "previous_title": "Adding Custom Functions to Drill Introduction", 
+            "previous_url": "/docs/adding-custom-functions-to-drill-introduction/", 
+            "relative_path": "_docs/develop-custom-functions/adding-custom-functions-to-drill/010-manually-adding-custom-functions-to-drill.md", 
+            "title": "Manually Adding Custom Functions to Drill", 
+            "url": "/docs/manually-adding-custom-functions-to-drill/"
+        }, 
         "MapR-DB Format": {
             "breadcrumbs": [
                 {
@@ -5894,11 +6119,11 @@
                 }
             ], 
             "children": [], 
-            "next_title": "Hive Metadata Caching", 
-            "next_url": "/docs/hive-metadata-caching/", 
+            "next_title": "Parquet Filter Pushdown", 
+            "next_url": "/docs/parquet-filter-pushdown/", 
             "parent": "Performance Tuning", 
-            "previous_title": "How to Partition Data", 
-            "previous_url": "/docs/how-to-partition-data/", 
+            "previous_title": "Asynchronous Parquet Reader", 
+            "previous_url": "/docs/asynchronous-parquet-reader/", 
             "relative_path": "_docs/performance-tuning/025-optimizing-parquet-reading.md", 
             "title": "Optimizing Parquet Metadata Reading", 
             "url": "/docs/optimizing-parquet-metadata-reading/"
@@ -5924,6 +6149,23 @@
             "title": "PARTITION BY Clause", 
             "url": "/docs/partition-by-clause/"
         }, 
+        "Parquet Filter Pushdown": {
+            "breadcrumbs": [
+                {
+                    "title": "Performance Tuning", 
+                    "url": "/docs/performance-tuning/"
+                }
+            ], 
+            "children": [], 
+            "next_title": "Hive Metadata Caching", 
+            "next_url": "/docs/hive-metadata-caching/", 
+            "parent": "Performance Tuning", 
+            "previous_title": "Optimizing Parquet Metadata Reading", 
+            "previous_url": "/docs/optimizing-parquet-metadata-reading/", 
+            "relative_path": "_docs/performance-tuning/026-parquet-filter-pushdown.md", 
+            "title": "Parquet Filter Pushdown", 
+            "url": "/docs/parquet-filter-pushdown/"
+        }, 
         "Parquet Format": {
             "breadcrumbs": [
                 {
@@ -5982,8 +6224,8 @@
                         }
                     ], 
                     "children": [], 
-                    "next_title": "Optimizing Parquet Metadata Reading", 
-                    "next_url": "/docs/optimizing-parquet-metadata-reading/", 
+                    "next_title": "Asynchronous Parquet Reader", 
+                    "next_url": "/docs/asynchronous-parquet-reader/", 
                     "parent": "Partition Pruning", 
                     "previous_title": "Partition Pruning Introduction", 
                     "previous_url": "/docs/partition-pruning-introduction/", 
@@ -6100,8 +6342,8 @@
                                 }
                             ], 
                             "children": [], 
-                            "next_title": "Optimizing Parquet Metadata Reading", 
-                            "next_url": "/docs/optimizing-parquet-metadata-reading/", 
+                            "next_title": "Asynchronous Parquet Reader", 
+                            "next_url": "/docs/asynchronous-parquet-reader/", 
                             "parent": "Partition Pruning", 
                             "previous_title": "Partition Pruning Introduction", 
                             "previous_url": "/docs/partition-pruning-introduction/", 
@@ -6127,11 +6369,28 @@
                         }
                     ], 
                     "children": [], 
-                    "next_title": "Hive Metadata Caching", 
-                    "next_url": "/docs/hive-metadata-caching/", 
+                    "next_title": "Optimizing Parquet Metadata Reading", 
+                    "next_url": "/docs/optimizing-parquet-metadata-reading/", 
                     "parent": "Performance Tuning", 
                     "previous_title": "How to Partition Data", 
                     "previous_url": "/docs/how-to-partition-data/", 
+                    "relative_path": "_docs/performance-tuning/024-aynchronous-parquet-reader.md", 
+                    "title": "Asynchronous Parquet Reader", 
+                    "url": "/docs/asynchronous-parquet-reader/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Performance Tuning", 
+                            "url": "/docs/performance-tuning/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Parquet Filter Pushdown", 
+                    "next_url": "/docs/parquet-filter-pushdown/", 
+                    "parent": "Performance Tuning", 
+                    "previous_title": "Asynchronous Parquet Reader", 
+                    "previous_url": "/docs/asynchronous-parquet-reader/", 
                     "relative_path": "_docs/performance-tuning/025-optimizing-parquet-reading.md", 
                     "title": "Optimizing Parquet Metadata Reading", 
                     "url": "/docs/optimizing-parquet-metadata-reading/"
@@ -6144,12 +6403,29 @@
                         }
                     ], 
                     "children": [], 
-                    "next_title": "Choosing a Storage Format", 
-                    "next_url": "/docs/choosing-a-storage-format/", 
+                    "next_title": "Hive Metadata Caching", 
+                    "next_url": "/docs/hive-metadata-caching/", 
                     "parent": "Performance Tuning", 
                     "previous_title": "Optimizing Parquet Metadata Reading", 
                     "previous_url": "/docs/optimizing-parquet-metadata-reading/", 
-                    "relative_path": "_docs/performance-tuning/026-hive-metadata-caching.md", 
+                    "relative_path": "_docs/performance-tuning/026-parquet-filter-pushdown.md", 
+                    "title": "Parquet Filter Pushdown", 
+                    "url": "/docs/parquet-filter-pushdown/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Performance Tuning", 
+                            "url": "/docs/performance-tuning/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Choosing a Storage Format", 
+                    "next_url": "/docs/choosing-a-storage-format/", 
+                    "parent": "Performance Tuning", 
+                    "previous_title": "Parquet Filter Pushdown", 
+                    "previous_url": "/docs/parquet-filter-pushdown/", 
+                    "relative_path": "_docs/performance-tuning/027-hive-metadata-caching.md", 
                     "title": "Hive Metadata Caching", 
                     "url": "/docs/hive-metadata-caching/"
                 }, 
@@ -8112,11 +8388,28 @@
                         }
                     ], 
                     "children": [], 
-                    "next_title": "Apache Drill 1.7.0 Release Notes", 
-                    "next_url": "/docs/apache-drill-1-7-0-release-notes/", 
+                    "next_title": "Apache Drill 1.8.0 Release Notes", 
+                    "next_url": "/docs/apache-drill-1-8-0-release-notes/", 
                     "parent": "Release Notes", 
                     "previous_title": "Release Notes", 
                     "previous_url": "/docs/release-notes/", 
+                    "relative_path": "_docs/rn/002-1.9.0-rn.md", 
+                    "title": "Apache Drill 1.9.0 Release Notes", 
+                    "url": "/docs/apache-drill-1-9-0-release-notes/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Release Notes", 
+                            "url": "/docs/release-notes/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Apache Drill 1.7.0 Release Notes", 
+                    "next_url": "/docs/apache-drill-1-7-0-release-notes/", 
+                    "parent": "Release Notes", 
+                    "previous_title": "Apache Drill 1.9.0 Release Notes", 
+                    "previous_url": "/docs/apache-drill-1-9-0-release-notes/", 
                     "relative_path": "_docs/rn/003-1.8.0-rn.md", 
                     "title": "Apache Drill 1.8.0 Release Notes", 
                     "url": "/docs/apache-drill-1-8-0-release-notes/"
@@ -8394,8 +8687,8 @@
                     "url": "/docs/apache-drill-0-4-0-release-notes/"
                 }
             ], 
-            "next_title": "Apache Drill 1.8.0 Release Notes", 
-            "next_url": "/docs/apache-drill-1-8-0-release-notes/", 
+            "next_title": "Apache Drill 1.9.0 Release Notes", 
+            "next_url": "/docs/apache-drill-1-9-0-release-notes/", 
             "parent": "", 
             "previous_title": "Value Vectors", 
             "previous_url": "/docs/value-vectors/", 
@@ -11727,8 +12020,8 @@
             "next_title": "Custom Function Interfaces", 
             "next_url": "/docs/custom-function-interfaces/", 
             "parent": "Develop Custom Functions", 
-            "previous_title": "Adding Custom Functions to Drill", 
-            "previous_url": "/docs/adding-custom-functions-to-drill/", 
+            "previous_title": "Dynamic UDFs", 
+            "previous_url": "/docs/dynamic-udfs/", 
             "relative_path": "_docs/develop-custom-functions/050-use-custom-functions-in-queries.md", 
             "title": "Using Custom Functions in Queries", 
             "url": "/docs/using-custom-functions-in-queries/"
@@ -14698,8 +14991,8 @@
                                 }
                             ], 
                             "children": [], 
-                            "next_title": "Optimizing Parquet Metadata Reading", 
-                            "next_url": "/docs/optimizing-parquet-metadata-reading/", 
+                            "next_title": "Asynchronous Parquet Reader", 
+                            "next_url": "/docs/asynchronous-parquet-reader/", 
                             "parent": "Partition Pruning", 
                             "previous_title": "Partition Pruning Introduction", 
                             "previous_url": "/docs/partition-pruning-introduction/", 
@@ -14725,11 +15018,28 @@
                         }
                     ], 
                     "children": [], 
-                    "next_title": "Hive Metadata Caching", 
-                    "next_url": "/docs/hive-metadata-caching/", 
+                    "next_title": "Optimizing Parquet Metadata Reading", 
+                    "next_url": "/docs/optimizing-parquet-metadata-reading/", 
                     "parent": "Performance Tuning", 
                     "previous_title": "How to Partition Data", 
                     "previous_url": "/docs/how-to-partition-data/", 
+                    "relative_path": "_docs/performance-tuning/024-aynchronous-parquet-reader.md", 
+                    "title": "Asynchronous Parquet Reader", 
+                    "url": "/docs/asynchronous-parquet-reader/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Performance Tuning", 
+                            "url": "/docs/performance-tuning/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Parquet Filter Pushdown", 
+                    "next_url": "/docs/parquet-filter-pushdown/", 
+                    "parent": "Performance Tuning", 
+                    "previous_title": "Asynchronous Parquet Reader", 
+                    "previous_url": "/docs/asynchronous-parquet-reader/", 
                     "relative_path": "_docs/performance-tuning/025-optimizing-parquet-reading.md", 
                     "title": "Optimizing Parquet Metadata Reading", 
                     "url": "/docs/optimizing-parquet-metadata-reading/"
@@ -14742,12 +15052,29 @@
                         }
                     ], 
                     "children": [], 
-                    "next_title": "Choosing a Storage Format", 
-                    "next_url": "/docs/choosing-a-storage-format/", 
+                    "next_title": "Hive Metadata Caching", 
+                    "next_url": "/docs/hive-metadata-caching/", 
                     "parent": "Performance Tuning", 
                     "previous_title": "Optimizing Parquet Metadata Reading", 
                     "previous_url": "/docs/optimizing-parquet-metadata-reading/", 
-                    "relative_path": "_docs/performance-tuning/026-hive-metadata-caching.md", 
+                    "relative_path": "_docs/performance-tuning/026-parquet-filter-pushdown.md", 
+                    "title": "Parquet Filter Pushdown", 
+                    "url": "/docs/parquet-filter-pushdown/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Performance Tuning", 
+                            "url": "/docs/performance-tuning/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Choosing a Storage Format", 
+                    "next_url": "/docs/choosing-a-storage-format/", 
+                    "parent": "Performance Tuning", 
+                    "previous_title": "Parquet Filter Pushdown", 
+                    "previous_url": "/docs/parquet-filter-pushdown/", 
+                    "relative_path": "_docs/performance-tuning/027-hive-metadata-caching.md", 
                     "title": "Hive Metadata Caching", 
                     "url": "/docs/hive-metadata-caching/"
                 }, 
@@ -16598,9 +16925,73 @@
                             "url": "/docs/develop-custom-functions/"
                         }
                     ], 
-                    "children": [], 
-                    "next_title": "Using Custom Functions in Queries", 
-                    "next_url": "/docs/using-custom-functions-in-queries/", 
+                    "children": [
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Adding Custom Functions to Drill", 
+                                    "url": "/docs/adding-custom-functions-to-drill/"
+                                }, 
+                                {
+                                    "title": "Develop Custom Functions", 
+                                    "url": "/docs/develop-custom-functions/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Manually Adding Custom Functions to Drill", 
+                            "next_url": "/docs/manually-adding-custom-functions-to-drill/", 
+                            "parent": "Adding Custom Functions to Drill", 
+                            "previous_title": "Adding Custom Functions to Drill", 
+                            "previous_url": "/docs/adding-custom-functions-to-drill/", 
+                            "relative_path": "_docs/develop-custom-functions/adding-custom-functions-to-drill/009-adding-custom-functions-to-drill-introduction.md", 
+                            "title": "Adding Custom Functions to Drill Introduction", 
+                            "url": "/docs/adding-custom-functions-to-drill-introduction/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Adding Custom Functions to Drill", 
+                                    "url": "/docs/adding-custom-functions-to-drill/"
+                                }, 
+                                {
+                                    "title": "Develop Custom Functions", 
+                                    "url": "/docs/develop-custom-functions/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Dynamic UDFs", 
+                            "next_url": "/docs/dynamic-udfs/", 
+                            "parent": "Adding Custom Functions to Drill", 
+                            "previous_title": "Adding Custom Functions to Drill Introduction", 
+                            "previous_url": "/docs/adding-custom-functions-to-drill-introduction/", 
+                            "relative_path": "_docs/develop-custom-functions/adding-custom-functions-to-drill/010-manually-adding-custom-functions-to-drill.md", 
+                            "title": "Manually Adding Custom Functions to Drill", 
+                            "url": "/docs/manually-adding-custom-functions-to-drill/"
+                        }, 
+                        {
+                            "breadcrumbs": [
+                                {
+                                    "title": "Adding Custom Functions to Drill", 
+                                    "url": "/docs/adding-custom-functions-to-drill/"
+                                }, 
+                                {
+                                    "title": "Develop Custom Functions", 
+                                    "url": "/docs/develop-custom-functions/"
+                                }
+                            ], 
+                            "children": [], 
+                            "next_title": "Using Custom Functions in Queries", 
+                            "next_url": "/docs/using-custom-functions-in-queries/", 
+                            "parent": "Adding Custom Functions to Drill", 
+                            "previous_title": "Manually Adding Custom Functions to Drill", 
+                            "previous_url": "/docs/manually-adding-custom-functions-to-drill/", 
+                            "relative_path": "_docs/develop-custom-functions/adding-custom-functions-to-drill/020-dynamic-udfs.md", 
+                            "title": "Dynamic UDFs", 
+                            "url": "/docs/dynamic-udfs/"
+                        }
+                    ], 
+                    "next_title": "Adding Custom Functions to Drill Introduction", 
+                    "next_url": "/docs/adding-custom-functions-to-drill-introduction/", 
                     "parent": "Develop Custom Functions", 
                     "previous_title": "Developing an Aggregate Function", 
                     "previous_url": "/docs/developing-an-aggregate-function/", 
@@ -16619,8 +17010,8 @@
                     "next_title": "Custom Function Interfaces", 
                     "next_url": "/docs/custom-function-interfaces/", 
                     "parent": "Develop Custom Functions", 
-                    "previous_title": "Adding Custom Functions to Drill", 
-                    "previous_url": "/docs/adding-custom-functions-to-drill/", 
+                    "previous_title": "Dynamic UDFs", 
+                    "previous_url": "/docs/dynamic-udfs/", 
                     "relative_path": "_docs/develop-custom-functions/050-use-custom-functions-in-queries.md", 
                     "title": "Using Custom Functions in Queries", 
                     "url": "/docs/using-custom-functions-in-queries/"
@@ -16927,11 +17318,28 @@
                         }
                     ], 
                     "children": [], 
-                    "next_title": "Apache Drill 1.7.0 Release Notes", 
-                    "next_url": "/docs/apache-drill-1-7-0-release-notes/", 
+                    "next_title": "Apache Drill 1.8.0 Release Notes", 
+                    "next_url": "/docs/apache-drill-1-8-0-release-notes/", 
                     "parent": "Release Notes", 
                     "previous_title": "Release Notes", 
                     "previous_url": "/docs/release-notes/", 
+                    "relative_path": "_docs/rn/002-1.9.0-rn.md", 
+                    "title": "Apache Drill 1.9.0 Release Notes", 
+                    "url": "/docs/apache-drill-1-9-0-release-notes/"
+                }, 
+                {
+                    "breadcrumbs": [
+                        {
+                            "title": "Release Notes", 
+                            "url": "/docs/release-notes/"
+                        }
+                    ], 
+                    "children": [], 
+                    "next_title": "Apache Drill 1.7.0 Release Notes", 
+                    "next_url": "/docs/apache-drill-1-7-0-release-notes/", 
+                    "parent": "Release Notes", 
+                    "previous_title": "Apache Drill 1.9.0 Release Notes", 
+                    "previous_url": "/docs/apache-drill-1-9-0-release-notes/", 
                     "relative_path": "_docs/rn/003-1.8.0-rn.md", 
                     "title": "Apache Drill 1.8.0 Release Notes", 
                     "url": "/docs/apache-drill-1-8-0-release-notes/"
@@ -17209,8 +17617,8 @@
                     "url": "/docs/apache-drill-0-4-0-release-notes/"
                 }
             ], 
-            "next_title": "Apache Drill 1.8.0 Release Notes", 
-            "next_url": "/docs/apache-drill-1-8-0-release-notes/", 
+            "next_title": "Apache Drill 1.9.0 Release Notes", 
+            "next_url": "/docs/apache-drill-1-9-0-release-notes/", 
             "parent": "", 
             "previous_title": "Value Vectors", 
             "previous_url": "/docs/value-vectors/", 

http://git-wip-us.apache.org/repos/asf/drill/blob/e8714c42/_docs/develop-custom-functions/010-develop-custom-functions-introduction.md
----------------------------------------------------------------------
diff --git a/_docs/develop-custom-functions/010-develop-custom-functions-introduction.md b/_docs/develop-custom-functions/010-develop-custom-functions-introduction.md
index 199b08c..6ff356d 100644
--- a/_docs/develop-custom-functions/010-develop-custom-functions-introduction.md
+++ b/_docs/develop-custom-functions/010-develop-custom-functions-introduction.md
@@ -1,6 +1,6 @@
 ---
 title: "Develop Custom Functions Introduction"
-date: 2016-11-18 21:59:16 UTC
+date: 2016-11-21 19:18:04 UTC
 parent: "Develop Custom Functions"
 ---
 Drill provides a high performance Java API with interfaces that you can use to develop simple and aggregate custom functions. Custom functions are reusable SQL functions that you develop in Java to encapsulate code that processes column values during a query. 
@@ -27,4 +27,4 @@ separate aggregate value for each combination of values from the GROUP BY clause
 ## Development Process
 To develop custom functions for Drill, create a Java program that implements Drill’s [simple]({{site.baseurl}}/docs/developing-a-simple-function/) or [aggregate]({{site.baseurl}}/docs/developing-an-aggregate-function/) interface and then add your custom function(s) to Drill.  
   
-As of Drill 1.9, there are two methods for adding custom functions to Drill. Administrators can manually add custom functions to Drill, or users can issue the CREATE FUNCTION USING JAR command to register their customs functions. The CREATE FUNCTION USING JAR command is part of the Dynamic UDF feature which may require assistance from an administrator. 
+As of Drill 1.9, there are two methods for adding custom functions to Drill. Administrators can manually add custom functions to Drill, or users can issue the CREATE FUNCTION USING JAR command to register their custom functions. The CREATE FUNCTION USING JAR command is part of the [Dynamic UDF feature]({{site.baseurl}}/docs/dynamic-udfs/) which requires assistance from an administrator. 

http://git-wip-us.apache.org/repos/asf/drill/blob/e8714c42/_docs/develop-custom-functions/040-adding-custom-functions-to-drill.md
----------------------------------------------------------------------
diff --git a/_docs/develop-custom-functions/040-adding-custom-functions-to-drill.md b/_docs/develop-custom-functions/040-adding-custom-functions-to-drill.md
new file mode 100644
index 0000000..474b47c
--- /dev/null
+++ b/_docs/develop-custom-functions/040-adding-custom-functions-to-drill.md
@@ -0,0 +1,6 @@
+---
+title: "Adding Custom Functions to Drill"
+date: 
+parent: "Develop Custom Functions"
+---  
+

http://git-wip-us.apache.org/repos/asf/drill/blob/e8714c42/_docs/develop-custom-functions/adding-custom-functions-to-drill/009-adding-custom-functions-to-drill-introduction.md
----------------------------------------------------------------------
diff --git a/_docs/develop-custom-functions/adding-custom-functions-to-drill/009-adding-custom-functions-to-drill-introduction.md b/_docs/develop-custom-functions/adding-custom-functions-to-drill/009-adding-custom-functions-to-drill-introduction.md
index ae8196c..5842957 100644
--- a/_docs/develop-custom-functions/adding-custom-functions-to-drill/009-adding-custom-functions-to-drill-introduction.md
+++ b/_docs/develop-custom-functions/adding-custom-functions-to-drill/009-adding-custom-functions-to-drill-introduction.md
@@ -1,10 +1,10 @@
 ---
 title: "Adding Custom Functions to Drill Introduction"
-date: 
+date: 2016-11-21 19:18:04 UTC
 parent: "Adding Custom Functions to Drill"
 ---
 
-As of Drill 1.9, there are two methods for adding custom functions to Drill. An administrator can manually add functions to Drill, or provide users access to a staging directory where they can upload JAR files and register their UDFs using the CREATE FUNCTION USING JAR command. The CREATE FUNCTION USING JAR command is part of the Dynamic UDF feature.
-
-- For manual instructions see Manually Adding Custom Functions to Drill. 
+As of Drill 1.9, there are two methods for adding custom functions to Drill. An administrator can manually add functions to Drill, or provide users access to a staging directory where they can upload JAR files and register their UDFs using the CREATE FUNCTION USING JAR command. The CREATE FUNCTION USING JAR command is part of the Dynamic UDF feature.
+
+- For manual instructions, see Manually Adding Custom Functions to Drill. 
 - For Dynamic UDF instructions, see Dynamic UDFs. 

http://git-wip-us.apache.org/repos/asf/drill/blob/e8714c42/_docs/develop-custom-functions/adding-custom-functions-to-drill/020-dynamic-udfs.md
----------------------------------------------------------------------
diff --git a/_docs/develop-custom-functions/adding-custom-functions-to-drill/020-dynamic-udfs.md b/_docs/develop-custom-functions/adding-custom-functions-to-drill/020-dynamic-udfs.md
index 3d5c710..67b8ded 100644
--- a/_docs/develop-custom-functions/adding-custom-functions-to-drill/020-dynamic-udfs.md
+++ b/_docs/develop-custom-functions/adding-custom-functions-to-drill/020-dynamic-udfs.md
@@ -1,6 +1,6 @@
 ---
 title: "Dynamic UDFs"
-date: 
+date: 2016-11-21 19:18:05 UTC
 parent: "Adding Custom Functions to Drill"
 ---
 
@@ -55,14 +55,20 @@ the Dynamic UDF feature. See Enabling and Disabling the Dynamic UDF Feature.
  
 Drill moves all JAR files from the staging directory to the other UDF directories as the user that started the drillbit, not as the user that submitted the JAR files. Drill behaves this way even if impersonation is enabled.  
 
-##Before Using the Dynamic UDF Feature 
-Before users can issue the CREATE FUNCTION USING JAR or DROP FUNCTION USING JAR commands to register or unregister UDFs, an administrator should verify that the option is enabled and that the staging directory is accessible to users.  
+##Before Using the Dynamic UDF Feature  
+Before users can successfully register and unregister their UDFs using the Dynamic UDF feature, administrators and users must complete certain prerequisites. The prerequisites for each role are listed below.  
 
-Users create a UDF using Drill’s simple or aggregate function interface. Add a `drill-module.conf` file to the root of the class JAR file. The `drill-module.conf` file should contain the packages to scan for the functions `drill.classpath.scanning.packages+= "com.mydomain.drill.fn"`. Separate package names with a comma, as shown in the following example:  
+###Administrators 
+Before users can issue the CREATE FUNCTION USING JAR or DROP FUNCTION USING JAR commands to register or unregister UDFs, verify that the `exec.udf.enable_dynamic_support` option is enabled and that the staging directory is accessible to users. See Enabling and Disabling the Dynamic UDF Feature.  
 
-       drill.classpath.scanning.package+= "com.mydomain.drill.fn"
+###Users
+Create a UDF using Drill’s [simple]({{site.baseurl}}/docs/developing-a-simple-function/) or [aggregate]({{site.baseurl}}/docs/developing-an-aggregate-function/) function interface. Add a `drill-module.conf` file to the root of the class JAR file. The `drill-module.conf` file should contain the packages to scan for the functions `drill.classpath.scanning.packages+= "com.mydomain.drill.fn"`, as shown in the following example:  
+
+       drill.classpath.scanning.package+= "com.mydomain.drill.fn"  
+
+Replace `com.mydomain.drill.fn` with the package name(s) of your UDF(s). If there are multiple packages, separate package names with a comma.
  
-Once the UDF is created, copy the source and binary JAR files to the staging directory. Now, you can register your UDF using the CREATE FUNCTION USING JAR command. See Registering a UDF.  
+Once the UDF is created, copy the source and binary JAR files to the staging directory. If you do not know the location of the staging directory, contact your administrator. Now, you can register your UDF using the CREATE FUNCTION USING JAR command. See Registering a UDF.  
 
 ##Enabling and Disabling the Dynamic UDF Feature
 An administrator can enable or disable the Dynamic UDF feature. The feature is enabled by default.  The `exec.udf.enable_dynamic_support` option turns the Dynamic UDF feature on and off. If security is a concern, the administrator can disable the feature to prevent users from registering and unregistering UDFs.
@@ -109,24 +115,24 @@ You can migrate UDFs registered using the Dynamic UDF feature to built-in UDFs t
 ###Migrating All Registered UDFs to Built-In UDFs
 To migrate all registered UDFs to built-in UDFs, complete the following steps:  
 
-1. Stop all drillbits in the cluster.  
-2. Move the UDF source and binary JAR files to the $DRILL_SITE/jars directory on each drillbit. (Must be included in the classpath.)
-3. Remove the remote function registry from ZooKeeper.
-4. Start all drillbits in the cluster.
+1. Stop all drillbits in the cluster.  
+2. Move the UDF source and binary JAR files to the $DRILL_SITE/jars directory on each drillbit. (Must be included in the classpath.)
+3. Remove the remote function registry from ZooKeeper.
+4. Start all drillbits in the cluster.
 
 ###Migrating Some of the Registered UDF JAR Files to Built-In UDFs
 To migrate a portion of the UDF JAR files to built-in UDFs, complete the following steps:
 
-1. Copy (not move) the JAR files from the UDF registry directory to the $DRILL_SITE/jars directory on each drillbit. (Must be included in the classpath.)
-2. Issue the DROP FUNCTION USING JAR command for each JAR file.
-3. Stop all drillbits in the cluster.
-4. Start all drillbits in the cluster.  
-
+1. Copy (not move) the JAR files from the UDF registry directory to the $DRILL_SITE/jars directory on each drillbit. (Must be included in the classpath.)
+2. Issue the DROP FUNCTION USING JAR command for each JAR file.
+3. Stop all drillbits in the cluster.
+4. Start all drillbits in the cluster.  
+
 ##Limitations
 The Dynamic UDF feature has the following known limitations:  
 
-* If a user drops a UDF while a query that references the UDF is running, the query may fail. Users should verify that no queries reference a UDF prior to issuing the DROP command.
-* The DROP command only operates at the JAR level name. A user cannot unregister only one UDF from a JAR where several UDFs are present. To avoid this situation, a user can create one UDF per jar.
+* If a user drops a UDF while a query that references the UDF is running, the query may fail. Users should verify that no queries reference a UDF prior to issuing the DROP command.
+* The DROP command only operates at the JAR level name. A user cannot unregister only one UDF from a JAR where several UDFs are present. To avoid this situation, a user can create one UDF per jar.
 * All UDF directories (remote or local) are created upon drillbit startup, even if Dynamic UDF support is disabled. Drillbit startup fails if the user who started the drillbit does not have write access to these directories.
 
 


Mime
View raw message