[
https://issues.apache.org/jira/browse/HIVE-24557?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Davide Vergari updated HIVE-24557:
-----------------------------------
Description:
I found a small misalignment on how Hive and WebHCat parse database name
starting with numbers.
If you execute:
{quote}hive> create database 2020db;
OK
Time taken: 0.44 seconds
hive>
{quote}
it works, but if you do the same on webhcatalog it doesn't:
{quote}curl -i -s -X PUT -HContent-type:application/json -d '\{"comment":
"Test", "location":
"hdfs://singlenode.localdomain:8020/apps/hive/warehouse/2020db"}'
'http://singlenode.localdomain:50111/templeton/v1/ddl/database/2020db?user.name=hdfs'
HTTP/1.1 400 Bad Request
Set-Cookie:
hadoop.auth="u=hdfs&p=hdfs&t=simple&e=1608581595777&s=JzsCUqvyyAYHykAHdteybh1tI4jFLLVVJC5D9FaUu0A=";
Path=/; HttpOnly
Content-Type: application/json
Transfer-Encoding: chunked
Server: Jetty(7.6.0.v20120127)
{"error":"Invalid DDL identifier db"}{quote}
I suggest to harmonize the behavior, maybe applying a patch like the following
one:
{quote}—
a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Server.java
+++
b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Server.java
@@ -1068,7 +1068,7 @@ public void verifyParam(List<String> param, String name)
}
}
- public static final Pattern DDL_ID = Pattern.compile("[a-zA-Z]
w*");
+ public static final Pattern DDL_ID = Pattern.compile("[a-zA-Z0-9]
w*");
public static final Pattern PROPERTY_ID =
Pattern.compile("[a-zA-Z0-9][\\w\\.\\-|file://///-]*(?<!\\-)(?<!\\.)(?<!
_)$");{quote}
was:
I found a small misalignment on how Hive and WebHCat parse database name
starting with numbers.
If you execute:
{quote}hive> create database 2020db;
OK
Time taken: 0.44 seconds
hive>
{quote}
it works, but if you do the same on webhcatalog it doesn't:
{quote}curl -i -s -X PUT -HContent-type:application/json -d '\{"comment":
"Test", "location":
"hdfs://singlenode.localdomain:8020/apps/hive/warehouse/2020db"}'
'http://singlenode.localdomain:50111/templeton/v1/ddl/database/2020db?user.name=hdfs'
HTTP/1.1 400 Bad Request
Set-Cookie:
hadoop.auth="u=hdfs&p=hdfs&t=simple&e=1608581595777&s=JzsCUqvyyAYHykAHdteybh1tI4jFLLVVJC5D9FaUu0A=";
Path=/; HttpOnly
Content-Type: application/json
Transfer-Encoding: chunked
Server: Jetty(7.6.0.v20120127)
{"error":"Invalid DDL identifier :db"}
{quote}
I suggest to harmonize the behavior, maybe applying a patch like the following
one:
{quote}---
a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Server.java
+++
b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Server.java
@@ -1068,7 +1068,7 @@ public void verifyParam(List<String> param, String name)
}
}
- public static final Pattern DDL_ID = Pattern.compile("[a-zA-Z]\\w*");
+ public static final Pattern DDL_ID = Pattern.compile("[a-zA-Z0-9]\\w*");
public static final Pattern PROPERTY_ID =
Pattern.compile("[a-zA-Z0-9][\\w\\.\\-]*(?<!\\-)(?<!\\.)(?<!\\_)$");
{quote}
> Misalignment in matching db name from Hive and Webhcat
> ------------------------------------------------------
>
> Key: HIVE-24557
> URL: https://issues.apache.org/jira/browse/HIVE-24557
> Project: Hive
> Issue Type: Bug
> Components: WebHCat
> Affects Versions: 2.3.6
> Reporter: Davide Vergari
> Priority: Minor
>
> I found a small misalignment on how Hive and WebHCat parse database name
> starting with numbers.
> If you execute:
> {quote}hive> create database 2020db;
> OK
> Time taken: 0.44 seconds
> hive>
> {quote}
> it works, but if you do the same on webhcatalog it doesn't:
> {quote}curl -i -s -X PUT -HContent-type:application/json -d '\{"comment":
> "Test", "location":
> "hdfs://singlenode.localdomain:8020/apps/hive/warehouse/2020db"}'
> 'http://singlenode.localdomain:50111/templeton/v1/ddl/database/2020db?user.name=hdfs'
> HTTP/1.1 400 Bad Request
> Set-Cookie:
> hadoop.auth="u=hdfs&p=hdfs&t=simple&e=1608581595777&s=JzsCUqvyyAYHykAHdteybh1tI4jFLLVVJC5D9FaUu0A=";
> Path=/; HttpOnly
> Content-Type: application/json
> Transfer-Encoding: chunked
> Server: Jetty(7.6.0.v20120127)
> {"error":"Invalid DDL identifier db"}{quote}
>
> I suggest to harmonize the behavior, maybe applying a patch like the
> following one:
>
> {quote}—
> a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Server.java
> +++
> b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Server.java
> @@ -1068,7 +1068,7 @@ public void verifyParam(List<String> param, String
> name)
> }
> }
> - public static final Pattern DDL_ID = Pattern.compile("[a-zA-Z]
> w*");
> + public static final Pattern DDL_ID = Pattern.compile("[a-zA-Z0-9]
> w*");
> public static final Pattern PROPERTY_ID =
> Pattern.compile("[a-zA-Z0-9][\\w\\.\\-|file://///-]*(?<!\\-)(?<!\\.)(?<!
> _)$");{quote}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)