Files
impala/testdata/workloads/functional-query/queries/QueryTest
Fredy Wijaya 08d386f0fc IMPALA-6724: Allow creating/dropping functions with the same name as built-ins
This patch removes restriction on creating a function with the same name
as the built-in function. The reason for lifting the restriction is to
avoid a name clash when introducing new built-in functions. The patch
also fixes some inconsistent behavior when creating or dropping a function
when the name specified is fully-qualified or not.

Refer to the below tables for more information.

Create function:
+---------+-------------+-------------------------+-------------------------------+-------------------------------+
| FQ Name | Built-in DB | Function Name           | Existing Behavior             | New Behavior                  |
+---------+-------------+-------------------------+-------------------------------+-------------------------------+
| Yes     | Yes         | Same as built-in        | Same name exception           | Cannot modify system database |
| Yes     | Yes         | Different than built-in | Cannot modify system database | Cannot modify system database |
| Yes     | No          | Same as built-in        | Function created              | Function created              |
| Yes     | No          | Different than built-in | Function created              | Function created              |
| No      | Yes         | Same as built-in        | Same name exception           | Cannot modify system database |
| No      | Yes         | Different than built-in | Cannot modify system database | Cannot modify system database |
| No      | No          | Same as built-in        | Same name exception           | Function created              |
| No      | No          | Different than built-in | Function created              | Function created              |
+---------+-------------+-------------------------+-------------------------------+-------------------------------+

Drop function:
+---------+-------------+-------------------------+-------------------------------+-------------------------------+
| FQ Name | Built-in DB | Function Name           | Existing Behavior             | New Behavior                  |
+---------+-------------+-------------------------+-------------------------------+-------------------------------+
| Yes     | Yes         | Same as built-in        | Cannot modify system database | Cannot modify system database |
| Yes     | Yes         | Different than built-in | Cannot modify system database | Cannot modify system database |
| Yes     | No          | Same as built-in        | Function dropped              | Function dropped              |
| Yes     | No          | Different than built-in | Function dropped              | Function dropped              |
| No      | Yes         | Same as built-in        | Cannot modify system database | Cannot modify system database |
| No      | Yes         | Different than built-in | Cannot modify system database | Cannot modify system database |
| No      | No          | Same as built-in        | Cannot modify system database | Function dropped              |
| No      | No          | Different than built-in | Function dropped              | Function dropped              |
+---------+-------------+-------------------------+-------------------------------+-------------------------------+

Select function (no new behavior):
+---------+-------------+-------------------------+--------------------------------------------------------+
| FQ Name | Built-in DB | Function Name           | Behavior                                               |
+---------+-------------+-------------------------+--------------------------------------------------------+
| Yes     | Yes         | Same as built-in        | Function in the specified database (built-in) executed |
| Yes     | Yes         | Different than built-in | Unknown function exception                             |
| Yes     | No          | Same as built-in        | Function in the specified database executed            |
| Yes     | No          | Different than built-in | Function in the specified database executed            |
| No      | Yes         | Same as built-in        | Built-in function executed                             |
| No      | Yes         | Different than built-in | Unknown function exception                             |
| No      | No          | Same as built-in        | Built-in function executed                             |
| No      | No          | Different than built-in | Function in the current database executed              |
+---------+-------------+-------------------------+--------------------------------------------------------+

Testing:
- Ran front-end tests
- Added end-to-end DDL function tests

Cherry-picks: not for 2.x

Change-Id: Ic30df56ac276970116715c14454a5a2477b185fa
Reviewed-on: http://gerrit.cloudera.org:8080/9800
Reviewed-by: Alex Behm <alex.behm@cloudera.com>
Tested-by: Impala Public Jenkins
2018-04-02 21:12:31 +00:00
..
2016-02-19 00:03:15 -08:00
2014-01-08 10:48:09 -08:00
2014-06-20 13:35:10 -07:00