crate/crate — pull request #591 by lumannnn (2014-03-19 17:43:29+00:00)
Title: L/is routines

```
cr> select * from information_schema.routines;
+--------------------------+--------------+---------------------------------------+---------+
| routine_name | routine_type | routine_definition | builtin |
+--------------------------+--------------+---------------------------------------+---------+
| italian | ANALYZER | | TRUE |
| standard_html_strip | ANALYZER | | TRUE |
| chinese | ANALYZER | | TRUE |
| persian | ANALYZER | | TRUE |
| brazilian | ANALYZER | | TRUE |
| french | ANALYZER | | TRUE |
| danish | ANALYZER | | TRUE |
| galician | ANALYZER | | TRUE |
| turkish | ANALYZER | | TRUE |
| hungarian | ANALYZER | | TRUE |
| portuguese | ANALYZER | | TRUE |
| german | ANALYZER | | TRUE |
| indonesian | ANALYZER | | TRUE |
| whitespace | ANALYZER | | TRUE |
| snowball | ANALYZER | | TRUE |
| hindi | ANALYZER | | TRUE |
| pattern | ANALYZER | | TRUE |
| swedish | ANALYZER | | TRUE |
| greek | ANALYZER | | TRUE |
| thai | ANALYZER | | TRUE |
| classic | ANALYZER | | TRUE |
| latvian | ANALYZER | | TRUE |
| romanian | ANALYZER | | TRUE |
| english | ANALYZER | | TRUE |
| armenian | ANALYZER | | TRUE |
| dutch | ANALYZER | | TRUE |
| default | ANALYZER | | TRUE |
| basque | ANALYZER | | TRUE |
| standard | ANALYZER | | TRUE |
| norwegian | ANALYZER | | TRUE |
| spanish | ANALYZER | | TRUE |
| catalan | ANALYZER | | TRUE |
| czech | ANALYZER | | TRUE |
| finnish | ANALYZER | | TRUE |
| simple | ANALYZER | | TRUE |
| arabic | ANALYZER | | TRUE |
| stop | ANALYZER | | TRUE |
| russian | ANALYZER | | TRUE |
| cjk | ANALYZER | | TRUE |
| bulgarian | ANALYZER | | TRUE |
| irish | ANALYZER | | TRUE |
| keyword | ANALYZER | | TRUE |
| mapping | CHAR_FILTER | | TRUE |
| pattern_replace | CHAR_FILTER | | TRUE |
| htmlStrip | CHAR_FILTER | | TRUE |
| html_strip | CHAR_FILTER | | TRUE |
| limit | TOKEN_FILTER | | TRUE |
| delimited_payload_filter | TOKEN_FILTER | | TRUE |
| synonym | TOKEN_FILTER | | TRUE |
| keep | TOKEN_FILTER | | TRUE |
| pattern_capture | TOKEN_FILTER | | TRUE |
| pattern_replace | TOKEN_FILTER | | TRUE |
| dictionary_decompounder | TOKEN_FILTER | | TRUE |
| hyphenation_decompounder | TOKEN_FILTER | | TRUE |
| keyword_marker | TOKEN_FILTER | | TRUE |
| stemmer_override | TOKEN_FILTER | | TRUE |
| hunspell | TOKEN_FILTER | | TRUE |
| cjk_bigram | TOKEN_FILTER | | TRUE |
| cjk_width | TOKEN_FILTER | | TRUE |
| czech_stem | TOKEN_FILTER | | TRUE |
| type_as_payload | TOKEN_FILTER | | TRUE |
| nGram | TOKEN_FILTER | | TRUE |
| stemmer | TOKEN_FILTER | | TRUE |
| dutch_stem | TOKEN_FILTER | | TRUE |
| edgeNGram | TOKEN_FILTER | | TRUE |
| keyword_repeat | TOKEN_FILTER | | TRUE |
| unique | TOKEN_FILTER | | TRUE |
| elision | TOKEN_FILTER | | TRUE |
| snowball | TOKEN_FILTER | | TRUE |
| arabic_normalization | TOKEN_FILTER | | TRUE |
| kstem | TOKEN_FILTER | | TRUE |
| length | TOKEN_FILTER | | TRUE |
| brazilian_stem | TOKEN_FILTER | | TRUE |
| lowercase | TOKEN_FILTER | | TRUE |
| classic | TOKEN_FILTER | | TRUE |
| russian_stem | TOKEN_FILTER | | TRUE |
| ngram | TOKEN_FILTER | | TRUE |
| porter_stem | TOKEN_FILTER | | TRUE |
| german_stem | TOKEN_FILTER | | TRUE |
| common_grams | TOKEN_FILTER | | TRUE |
| trim | TOKEN_FILTER | | TRUE |
| french_stem | TOKEN_FILTER | | TRUE |
| standard | TOKEN_FILTER | | TRUE |
| truncate | TOKEN_FILTER | | TRUE |
| stop | TOKEN_FILTER | | TRUE |
| arabic_stem | TOKEN_FILTER | | TRUE |
| reverse | TOKEN_FILTER | | TRUE |
| word_delimiter | TOKEN_FILTER | | TRUE |
| persian_normalization | TOKEN_FILTER | | TRUE |
| shingle | TOKEN_FILTER | | TRUE |
| asciifolding | TOKEN_FILTER | | TRUE |
| edge_ngram | TOKEN_FILTER | | TRUE |
| letter | TOKENIZER | | TRUE |
| nGram | TOKENIZER | | TRUE |
| edgeNGram | TOKENIZER | | TRUE |
| whitespace | TOKENIZER | | TRUE |
| uax_url_email | TOKENIZER | | TRUE |
| pattern | TOKENIZER | | TRUE |
| path_hierarchy | TOKENIZER | | TRUE |
| lowercase | TOKENIZER | | TRUE |
| classic | TOKENIZER | | TRUE |
| ngram | TOKENIZER | | TRUE |
| standard | TOKENIZER | | TRUE |
| keyword | TOKENIZER | | TRUE |
| edge_ngram | TOKENIZER | | TRUE |
| op_and | FUNCTION | op_and(boolean, boolean) | TRUE |
| op_or | FUNCTION | op_or(boolean, boolean) | TRUE |
| op_= | FUNCTION | op_=(byte, byte) | TRUE |
| op_= | FUNCTION | op_=(short, short) | TRUE |
| op_= | FUNCTION | op_=(integer, integer) | TRUE |
| op_= | FUNCTION | op_=(long, long) | TRUE |
| op_= | FUNCTION | op_=(float, float) | TRUE |
| op_= | FUNCTION | op_=(double, double) | TRUE |
| op_= | FUNCTION | op_=(boolean, boolean) | TRUE |
| op_= | FUNCTION | op_=(string, string) | TRUE |
| op_= | FUNCTION | op_=(timestamp, timestamp) | TRUE |
| op_= | FUNCTION | op_=(object, object) | TRUE |
| op_= | FUNCTION | op_=(ip, ip) | TRUE |
| op_< | FUNCTION | op_<(byte, byte) | TRUE |
| op_< | FUNCTION | op_<(short, short) | TRUE |
| op_< | FUNCTION | op_<(integer, integer) | TRUE |
| op_< | FUNCTION | op_<(long, long) | TRUE |
| op_< | FUNCTION | op_<(float, float) | TRUE |
| op_< | FUNCTION | op_<(double, double) | TRUE |
| op_< | FUNCTION | op_<(boolean, boolean) | TRUE |
| op_< | FUNCTION | op_<(string, string) | TRUE |
| op_< | FUNCTION | op_<(timestamp, timestamp) | TRUE |
| op_< | FUNCTION | op_<(ip, ip) | TRUE |
| op_<= | FUNCTION | op_<=(byte, byte) | TRUE |
| op_<= | FUNCTION | op_<=(short, short) | TRUE |
| op_<= | FUNCTION | op_<=(integer, integer) | TRUE |
| op_<= | FUNCTION | op_<=(long, long) | TRUE |
| op_<= | FUNCTION | op_<=(float, float) | TRUE |
| op_<= | FUNCTION | op_<=(double, double) | TRUE |
| op_<= | FUNCTION | op_<=(boolean, boolean) | TRUE |
| op_<= | FUNCTION | op_<=(string, string) | TRUE |
| op_<= | FUNCTION | op_<=(timestamp, timestamp) | TRUE |
| op_<= | FUNCTION | op_<=(ip, ip) | TRUE |
| op_> | FUNCTION | op_>(byte, byte) | TRUE |
| op_> | FUNCTION | op_>(short, short) | TRUE |
| op_> | FUNCTION | op_>(integer, integer) | TRUE |
| op_> | FUNCTION | op_>(long, long) | TRUE |
| op_> | FUNCTION | op_>(float, float) | TRUE |
| op_> | FUNCTION | op_>(double, double) | TRUE |
| op_> | FUNCTION | op_>(boolean, boolean) | TRUE |
| op_> | FUNCTION | op_>(string, string) | TRUE |
| op_> | FUNCTION | op_>(timestamp, timestamp) | TRUE |
| op_> | FUNCTION | op_>(ip, ip) | TRUE |
| op_>= | FUNCTION | op_>=(byte, byte) | TRUE |
| op_>= | FUNCTION | op_>=(short, short) | TRUE |
| op_>= | FUNCTION | op_>=(integer, integer) | TRUE |
| op_>= | FUNCTION | op_>=(long, long) | TRUE |
| op_>= | FUNCTION | op_>=(float, float) | TRUE |
| op_>= | FUNCTION | op_>=(double, double) | TRUE |
| op_>= | FUNCTION | op_>=(boolean, boolean) | TRUE |
| op_>= | FUNCTION | op_>=(string, string) | TRUE |
| op_>= | FUNCTION | op_>=(timestamp, timestamp) | TRUE |
| op_>= | FUNCTION | op_>=(ip, ip) | TRUE |
| op_like | FUNCTION | op_like(string, string) | TRUE |
| op_in | FUNCTION | op_in(byte, byte_set) | TRUE |
| op_in | FUNCTION | op_in(short, short_set) | TRUE |
| op_in | FUNCTION | op_in(integer, integer_set) | TRUE |
| op_in | FUNCTION | op_in(long, long_set) | TRUE |
| op_in | FUNCTION | op_in(float, float_set) | TRUE |
| op_in | FUNCTION | op_in(double, double_set) | TRUE |
| op_in | FUNCTION | op_in(boolean, boolean_set) | TRUE |
| op_in | FUNCTION | op_in(string, string_set) | TRUE |
| op_in | FUNCTION | op_in(timestamp, timestamp_set) | TRUE |
| op_in | FUNCTION | op_in(object, object_set) | TRUE |
| op_in | FUNCTION | op_in(ip, ip_set) | TRUE |
| op_isnull | FUNCTION | op_isnull(byte) | TRUE |
| op_isnull | FUNCTION | op_isnull(short) | TRUE |
| op_isnull | FUNCTION | op_isnull(integer) | TRUE |
| op_isnull | FUNCTION | op_isnull(long) | TRUE |
| op_isnull | FUNCTION | op_isnull(float) | TRUE |
| op_isnull | FUNCTION | op_isnull(double) | TRUE |
| op_isnull | FUNCTION | op_isnull(boolean) | TRUE |
| op_isnull | FUNCTION | op_isnull(string) | TRUE |
| op_isnull | FUNCTION | op_isnull(timestamp) | TRUE |
| op_isnull | FUNCTION | op_isnull(ip) | TRUE |
| op_isnull | FUNCTION | op_isnull(null) | TRUE |
| op_not | FUNCTION | op_not(boolean) | TRUE |
| avg | FUNCTION | avg(byte) | TRUE |
| avg | FUNCTION | avg(short) | TRUE |
| avg | FUNCTION | avg(integer) | TRUE |
| avg | FUNCTION | avg(long) | TRUE |
| avg | FUNCTION | avg(float) | TRUE |
| avg | FUNCTION | avg(double) | TRUE |
| min | FUNCTION | min(string) | TRUE |
| min | FUNCTION | min(ip) | TRUE |
| min | FUNCTION | min(double) | TRUE |
| min | FUNCTION | min(float) | TRUE |
| min | FUNCTION | min(long) | TRUE |
| min | FUNCTION | min(timestamp) | TRUE |
| min | FUNCTION | min(short) | TRUE |
| min | FUNCTION | min(integer) | TRUE |
| max | FUNCTION | max(string) | TRUE |
| max | FUNCTION | max(ip) | TRUE |
| max | FUNCTION | max(double) | TRUE |
| max | FUNCTION | max(float) | TRUE |
| max | FUNCTION | max(long) | TRUE |
| max | FUNCTION | max(timestamp) | TRUE |
| max | FUNCTION | max(short) | TRUE |
| max | FUNCTION | max(integer) | TRUE |
| any | FUNCTION | any(byte) | TRUE |
| any | FUNCTION | any(short) | TRUE |
| any | FUNCTION | any(integer) | TRUE |
| any | FUNCTION | any(long) | TRUE |
| any | FUNCTION | any(float) | TRUE |
| any | FUNCTION | any(double) | TRUE |
| any | FUNCTION | any(boolean) | TRUE |
| any | FUNCTION | any(string) | TRUE |
| any | FUNCTION | any(timestamp) | TRUE |
| any | FUNCTION | any(ip) | TRUE |
| sum | FUNCTION | sum(byte) | TRUE |
| sum | FUNCTION | sum(short) | TRUE |
| sum | FUNCTION | sum(integer) | TRUE |
| sum | FUNCTION | sum(long) | TRUE |
| sum | FUNCTION | sum(float) | TRUE |
| sum | FUNCTION | sum(double) | TRUE |
| count | FUNCTION | count(byte) | TRUE |
| count | FUNCTION | count(short) | TRUE |
| count | FUNCTION | count(integer) | TRUE |
| count | FUNCTION | count(long) | TRUE |
| count | FUNCTION | count(float) | TRUE |
| count | FUNCTION | count(double) | TRUE |
| count | FUNCTION | count(boolean) | TRUE |
| count | FUNCTION | count(string) | TRUE |
| count | FUNCTION | count(timestamp) | TRUE |
| count | FUNCTION | count(object) | TRUE |
| count | FUNCTION | count(ip) | TRUE |
| count | FUNCTION | count(null) | TRUE |
| count | FUNCTION | count() | TRUE |
| collect_set | FUNCTION | collect_set(string) | TRUE |
| collect_set | FUNCTION | collect_set(ip) | TRUE |
| collect_set | FUNCTION | collect_set(double) | TRUE |
| collect_set | FUNCTION | collect_set(float) | TRUE |
| collect_set | FUNCTION | collect_set(long) | TRUE |
| collect_set | FUNCTION | collect_set(timestamp) | TRUE |
| collect_set | FUNCTION | collect_set(short) | TRUE |
| collect_set | FUNCTION | collect_set(integer) | TRUE |
| collect_set | FUNCTION | collect_set(boolean) | TRUE |
| collection_count | FUNCTION | collection_count(integer_set) | TRUE |
| collection_count | FUNCTION | collection_count(ip_set) | TRUE |
| collection_count | FUNCTION | collection_count(string_set) | TRUE |
| collection_count | FUNCTION | collection_count(timestamp_set) | TRUE |
| collection_count | FUNCTION | collection_count(double_set) | TRUE |
| collection_count | FUNCTION | collection_count(long_set) | TRUE |
| collection_count | FUNCTION | collection_count(boolean_set) | TRUE |
| collection_count | FUNCTION | collection_count(object_set) | TRUE |
| collection_count | FUNCTION | collection_count(float_set) | TRUE |
| collection_count | FUNCTION | collection_count(byte_set) | TRUE |
| collection_count | FUNCTION | collection_count(short_set) | TRUE |
| collection_count | FUNCTION | collection_count(null_set) | TRUE |
| collection_avg | FUNCTION | collection_avg(byte_set) | TRUE |
| collection_avg | FUNCTION | collection_avg(short_set) | TRUE |
| collection_avg | FUNCTION | collection_avg(integer_set) | TRUE |
| collection_avg | FUNCTION | collection_avg(long_set) | TRUE |
| collection_avg | FUNCTION | collection_avg(float_set) | TRUE |
| collection_avg | FUNCTION | collection_avg(double_set) | TRUE |
| date_trunc | FUNCTION | date_trunc(string, timestamp) | TRUE |
| date_trunc | FUNCTION | date_trunc(string, string, timestamp) | TRUE |
+--------------------------+--------------+---------------------------------------+---------+
SELECT 262 rows in set (0.288 sec)
```