You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@kyuubi.apache.org by GitBox <gi...@apache.org> on 2022/06/16 14:36:56 UTC
[GitHub] [incubator-kyuubi] packyan opened a new pull request, #2900: [KYUUBI #2890] Get the db From Sparksession When TableIdentifier's Database Field Is Empty
packyan opened a new pull request, #2900:
URL: https://github.com/apache/incubator-kyuubi/pull/2900
<!--
Thanks for sending a pull request!
Here are some tips for you:
1. If this is your first time, please read our contributor guidelines: https://kyuubi.readthedocs.io/en/latest/community/contributions.html
2. If the PR is related to an issue in https://github.com/apache/incubator-kyuubi/issues, add '[KYUUBI #XXXX]' in your PR title, e.g., '[KYUUBI #XXXX] Your PR title ...'.
3. If the PR is unfinished, add '[WIP]' in your PR title, e.g., '[WIP][KYUUBI #XXXX] Your PR title ...'.
-->
### _Why are the changes needed?_
<!--
Please clarify why the changes are needed. For instance,
1. If you add a feature, you can talk about the use case of it.
2. If you fix a bug, you can clarify why it is a bug.
-->
to close #2890, and this issue is related to #2438
Get the db From Sparksession When TableIdentifier's Database Field Is Empty, but view's TableIdentifier would not.
### _How was this patch tested?_
- [x] Add some test cases that check the changes thoroughly including negative and positive cases if possible
- [ ] Add screenshots for manual tests if appropriate
- [x] [Run test](https://kyuubi.apache.org/docs/latest/develop_tools/testing.html#running-tests) locally before make a pull request
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For additional commands, e-mail: notifications-help@kyuubi.apache.org
[GitHub] [incubator-kyuubi] yaooqinn closed pull request #2900: [KYUUBI #2890] Get the db From Sparksession When TableIdentifier's Database Field Is Empty
Posted by GitBox <gi...@apache.org>.
yaooqinn closed pull request #2900: [KYUUBI #2890] Get the db From Sparksession When TableIdentifier's Database Field Is Empty
URL: https://github.com/apache/incubator-kyuubi/pull/2900
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For additional commands, e-mail: notifications-help@kyuubi.apache.org
[GitHub] [incubator-kyuubi] yaooqinn commented on a diff in pull request #2900: [KYUUBI #2890] Get the db From Sparksession When TableIdentifier's Database Field Is Empty
Posted by GitBox <gi...@apache.org>.
yaooqinn commented on code in PR #2900:
URL: https://github.com/apache/incubator-kyuubi/pull/2900#discussion_r899797430
##########
extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/PrivilegesBuilder.scala:
##########
@@ -234,7 +265,7 @@ object PrivilegesBuilder {
outputObjs += tablePrivileges(table)
case "AlterViewAsCommand" =>
- val view = getPlanField[TableIdentifier]("name")
+ val view = getPlanField[TableIdentifier]("name", true)
Review Comment:
we can remain `val view = getPlanField[TableIdentifier]("name")`, and add another `private def setCurrentDBIfNecessary` method to set currentDb.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For additional commands, e-mail: notifications-help@kyuubi.apache.org
[GitHub] [incubator-kyuubi] yaooqinn commented on a diff in pull request #2900: [KYUUBI #2890] Get the db From Sparksession When TableIdentifier's Database Field Is Empty
Posted by GitBox <gi...@apache.org>.
yaooqinn commented on code in PR #2900:
URL: https://github.com/apache/incubator-kyuubi/pull/2900#discussion_r901483182
##########
extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/PrivilegesBuilder.scala:
##########
@@ -66,6 +67,31 @@ object PrivilegesBuilder {
expr.collect { case p: NamedExpression if p.children.isEmpty => p }
}
+ private def setCurrentDBIfNecessary(
+ tableIdent: TableIdentifier,
+ spark: SparkSession): TableIdentifier = {
+
+ def getDbFromSparkSession: Option[String] = {
+ if (isSparkVersionAtMost("2.4")) {
+ return Some(spark.catalog.currentDatabase)
+ } else if (isSparkVersionAtLeast("3.0")) {
+ val catalogManager = invoke(spark.sessionState, "catalogManager")
+ val currentNamespace = invoke(catalogManager.asInstanceOf[AnyRef], "currentNamespace")
+ val namespaces: Array[String] = currentNamespace.asInstanceOf[Array[String]]
+ if (namespaces != null && namespaces.length == 1) {
+ return Some(namespaces.head)
+ }
+ }
+ None
+ }
Review Comment:
For `TableIdentifier`, it is only used in v1 catalog, so `spark.catalog.currentDatabase` is enough
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For additional commands, e-mail: notifications-help@kyuubi.apache.org
[GitHub] [incubator-kyuubi] codecov-commenter commented on pull request #2900: [KYUUBI #2890] Get the db From Sparksession When TableIdentifier's Database Field Is Empty
Posted by GitBox <gi...@apache.org>.
codecov-commenter commented on PR #2900:
URL: https://github.com/apache/incubator-kyuubi/pull/2900#issuecomment-1157858974
# [Codecov](https://codecov.io/gh/apache/incubator-kyuubi/pull/2900?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) Report
> Merging [#2900](https://codecov.io/gh/apache/incubator-kyuubi/pull/2900?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (6dcadcf) into [master](https://codecov.io/gh/apache/incubator-kyuubi/commit/62b6987af6760ca6e27976e3062ab35e50b76d7b?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) (62b6987) will **decrease** coverage by `0.00%`.
> The diff coverage is `65.38%`.
```diff
@@ Coverage Diff @@
## master #2900 +/- ##
============================================
- Coverage 64.28% 64.27% -0.01%
Complexity 215 215
============================================
Files 517 517
Lines 22850 22858 +8
Branches 2964 2968 +4
============================================
+ Hits 14688 14692 +4
+ Misses 6767 6765 -2
- Partials 1395 1401 +6
```
| [Impacted Files](https://codecov.io/gh/apache/incubator-kyuubi/pull/2900?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | Coverage Δ | |
|---|---|---|
| [.../plugin/spark/authz/ranger/RuleAuthorization.scala](https://codecov.io/gh/apache/incubator-kyuubi/pull/2900/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZXh0ZW5zaW9ucy9zcGFyay9reXV1Ymktc3BhcmstYXV0aHovc3JjL21haW4vc2NhbGEvb3JnL2FwYWNoZS9reXV1YmkvcGx1Z2luL3NwYXJrL2F1dGh6L3Jhbmdlci9SdWxlQXV0aG9yaXphdGlvbi5zY2FsYQ==) | `77.14% <0.00%> (ø)` | |
| [.../kyuubi/plugin/spark/authz/PrivilegesBuilder.scala](https://codecov.io/gh/apache/incubator-kyuubi/pull/2900/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZXh0ZW5zaW9ucy9zcGFyay9reXV1Ymktc3BhcmstYXV0aHovc3JjL21haW4vc2NhbGEvb3JnL2FwYWNoZS9reXV1YmkvcGx1Z2luL3NwYXJrL2F1dGh6L1ByaXZpbGVnZXNCdWlsZGVyLnNjYWxh) | `68.23% <68.00%> (-0.62%)` | :arrow_down: |
| [...che/kyuubi/ctl/cmd/submit/SubmitBatchCommand.scala](https://codecov.io/gh/apache/incubator-kyuubi/pull/2900/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-a3l1dWJpLWN0bC9zcmMvbWFpbi9zY2FsYS9vcmcvYXBhY2hlL2t5dXViaS9jdGwvY21kL3N1Ym1pdC9TdWJtaXRCYXRjaENvbW1hbmQuc2NhbGE=) | `81.25% <0.00%> (-9.93%)` | :arrow_down: |
| [...rg/apache/kyuubi/ctl/cmd/log/LogBatchCommand.scala](https://codecov.io/gh/apache/incubator-kyuubi/pull/2900/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-a3l1dWJpLWN0bC9zcmMvbWFpbi9zY2FsYS9vcmcvYXBhY2hlL2t5dXViaS9jdGwvY21kL2xvZy9Mb2dCYXRjaENvbW1hbmQuc2NhbGE=) | `90.00% <0.00%> (-2.86%)` | :arrow_down: |
| [.../engine/spark/session/SparkSQLSessionManager.scala](https://codecov.io/gh/apache/incubator-kyuubi/pull/2900/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-ZXh0ZXJuYWxzL2t5dXViaS1zcGFyay1zcWwtZW5naW5lL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUva3l1dWJpL2VuZ2luZS9zcGFyay9zZXNzaW9uL1NwYXJrU1FMU2Vzc2lvbk1hbmFnZXIuc2NhbGE=) | `79.01% <0.00%> (-1.24%)` | :arrow_down: |
| [...n/scala/org/apache/kyuubi/engine/ProcBuilder.scala](https://codecov.io/gh/apache/incubator-kyuubi/pull/2900/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-a3l1dWJpLXNlcnZlci9zcmMvbWFpbi9zY2FsYS9vcmcvYXBhY2hlL2t5dXViaS9lbmdpbmUvUHJvY0J1aWxkZXIuc2NhbGE=) | `84.37% <0.00%> (-0.63%)` | :arrow_down: |
| [...che/kyuubi/ctl/cmd/delete/DeleteBatchCommand.scala](https://codecov.io/gh/apache/incubator-kyuubi/pull/2900/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-a3l1dWJpLWN0bC9zcmMvbWFpbi9zY2FsYS9vcmcvYXBhY2hlL2t5dXViaS9jdGwvY21kL2RlbGV0ZS9EZWxldGVCYXRjaENvbW1hbmQuc2NhbGE=) | `53.33% <0.00%> (-0.52%)` | :arrow_down: |
| [...ala/org/apache/kyuubi/ctl/cmd/get/GetCommand.scala](https://codecov.io/gh/apache/incubator-kyuubi/pull/2900/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-a3l1dWJpLWN0bC9zcmMvbWFpbi9zY2FsYS9vcmcvYXBhY2hlL2t5dXViaS9jdGwvY21kL2dldC9HZXRDb21tYW5kLnNjYWxh) | `100.00% <0.00%> (ø)` | |
| [...a/org/apache/kyuubi/ctl/cmd/list/ListCommand.scala](https://codecov.io/gh/apache/incubator-kyuubi/pull/2900/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-a3l1dWJpLWN0bC9zcmMvbWFpbi9zY2FsYS9vcmcvYXBhY2hlL2t5dXViaS9jdGwvY21kL2xpc3QvTGlzdENvbW1hbmQuc2NhbGE=) | `100.00% <0.00%> (ø)` | |
| [...rg/apache/kyuubi/ctl/cmd/get/GetBatchCommand.scala](https://codecov.io/gh/apache/incubator-kyuubi/pull/2900/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation#diff-a3l1dWJpLWN0bC9zcmMvbWFpbi9zY2FsYS9vcmcvYXBhY2hlL2t5dXViaS9jdGwvY21kL2dldC9HZXRCYXRjaENvbW1hbmQuc2NhbGE=) | `85.71% <0.00%> (ø)` | |
| ... and [8 more](https://codecov.io/gh/apache/incubator-kyuubi/pull/2900/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation) | |
------
[Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-kyuubi/pull/2900?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/apache/incubator-kyuubi/pull/2900?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Last update [62b6987...6dcadcf](https://codecov.io/gh/apache/incubator-kyuubi/pull/2900?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=The+Apache+Software+Foundation).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For additional commands, e-mail: notifications-help@kyuubi.apache.org
[GitHub] [incubator-kyuubi] yaooqinn commented on a diff in pull request #2900: [KYUUBI #2890] Get the db From Sparksession When TableIdentifier's Database Field Is Empty
Posted by GitBox <gi...@apache.org>.
yaooqinn commented on code in PR #2900:
URL: https://github.com/apache/incubator-kyuubi/pull/2900#discussion_r899797953
##########
extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/PrivilegesBuilder.scala:
##########
@@ -145,10 +146,40 @@ object PrivilegesBuilder {
private def buildCommand(
plan: LogicalPlan,
inputObjs: ArrayBuffer[PrivilegeObject],
- outputObjs: ArrayBuffer[PrivilegeObject]): Unit = {
+ outputObjs: ArrayBuffer[PrivilegeObject],
+ spark: SparkSession = null): Unit = {
Review Comment:
you don't need null as default value
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For additional commands, e-mail: notifications-help@kyuubi.apache.org
[GitHub] [incubator-kyuubi] yaooqinn commented on pull request #2900: [KYUUBI #2890] Get the db From Sparksession When TableIdentifier's Database Field Is Empty
Posted by GitBox <gi...@apache.org>.
yaooqinn commented on PR #2900:
URL: https://github.com/apache/incubator-kyuubi/pull/2900#issuecomment-1161133364
thanks @packyan, merged to master
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For additional commands, e-mail: notifications-help@kyuubi.apache.org
[GitHub] [incubator-kyuubi] yaooqinn commented on a diff in pull request #2900: [KYUUBI #2890] Get the db From Sparksession When TableIdentifier's Database Field Is Empty
Posted by GitBox <gi...@apache.org>.
yaooqinn commented on code in PR #2900:
URL: https://github.com/apache/incubator-kyuubi/pull/2900#discussion_r901482386
##########
extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/PrivilegesBuilder.scala:
##########
@@ -66,6 +67,31 @@ object PrivilegesBuilder {
expr.collect { case p: NamedExpression if p.children.isEmpty => p }
}
+ private def setCurrentDBIfNecessary(
+ tableIdent: TableIdentifier,
+ spark: SparkSession): TableIdentifier = {
+
+ def getDbFromSparkSession: Option[String] = {
+ if (isSparkVersionAtMost("2.4")) {
+ return Some(spark.catalog.currentDatabase)
+ } else if (isSparkVersionAtLeast("3.0")) {
+ val catalogManager = invoke(spark.sessionState, "catalogManager")
+ val currentNamespace = invoke(catalogManager.asInstanceOf[AnyRef], "currentNamespace")
+ val namespaces: Array[String] = currentNamespace.asInstanceOf[Array[String]]
+ if (namespaces != null && namespaces.length == 1) {
+ return Some(namespaces.head)
+ }
+ }
+ None
+ }
Review Comment:
```suggestion
private def setCurrentDBIfNecessary(
tableIdent: TableIdentifier,
spark: SparkSession): TableIdentifier = {
if (tableIdent.database.isEmpty) {
tableIdent.copy(database = Some(spark.catalog.currentDatabase))
} else {
tableIdent
}
}
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For additional commands, e-mail: notifications-help@kyuubi.apache.org
[GitHub] [incubator-kyuubi] yaooqinn commented on a diff in pull request #2900: [KYUUBI #2890] Get the db From Sparksession When TableIdentifier's Database Field Is Empty
Posted by GitBox <gi...@apache.org>.
yaooqinn commented on code in PR #2900:
URL: https://github.com/apache/incubator-kyuubi/pull/2900#discussion_r901479076
##########
extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/PrivilegesBuilder.scala:
##########
@@ -538,12 +565,14 @@ object PrivilegesBuilder {
*
* @param plan A Spark LogicalPlan
*/
- def build(plan: LogicalPlan): (Seq[PrivilegeObject], Seq[PrivilegeObject]) = {
+ def build(
+ plan: LogicalPlan,
+ spark: SparkSession = null): (Seq[PrivilegeObject], Seq[PrivilegeObject]) = {
Review Comment:
remove `= null`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For additional commands, e-mail: notifications-help@kyuubi.apache.org
[GitHub] [incubator-kyuubi] packyan commented on a diff in pull request #2900: [KYUUBI #2890] Get the db From Sparksession When TableIdentifier's Database Field Is Empty
Posted by GitBox <gi...@apache.org>.
packyan commented on code in PR #2900:
URL: https://github.com/apache/incubator-kyuubi/pull/2900#discussion_r899995864
##########
extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/PrivilegesBuilder.scala:
##########
@@ -145,10 +146,40 @@ object PrivilegesBuilder {
private def buildCommand(
plan: LogicalPlan,
inputObjs: ArrayBuffer[PrivilegeObject],
- outputObjs: ArrayBuffer[PrivilegeObject]): Unit = {
+ outputObjs: ArrayBuffer[PrivilegeObject],
+ spark: SparkSession = null): Unit = {
Review Comment:
ok
##########
extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/PrivilegesBuilder.scala:
##########
@@ -234,7 +265,7 @@ object PrivilegesBuilder {
outputObjs += tablePrivileges(table)
case "AlterViewAsCommand" =>
- val view = getPlanField[TableIdentifier]("name")
+ val view = getPlanField[TableIdentifier]("name", true)
Review Comment:
I got it.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For additional commands, e-mail: notifications-help@kyuubi.apache.org