[ 
https://issues.apache.org/jira/browse/HIVE-24346?focusedWorklogId=544263&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-544263
 ]

ASF GitHub Bot logged work on HIVE-24346:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 29/Jan/21 12:58
            Start Date: 29/Jan/21 12:58
    Worklog Time Spent: 10m 
      Work Description: zeroflag commented on a change in pull request #1733:
URL: https://github.com/apache/hive/pull/1733#discussion_r566803735



##########
File path: 
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java
##########
@@ -10614,6 +10644,101 @@ public void dropStoredProcedure(String catName, 
String dbName, String funcName)
     return names;
   }
 
+  @Override
+  public void addPackage(Package request) throws NoSuchObjectException, 
MetaException {
+    boolean committed = false;
+    MPackage mPkg;
+    Query query = null;
+    String catName = normalizeIdentifier(request.getCatName());
+    String dbName = normalizeIdentifier(request.getDbName());
+    MDatabase db = getMDatabase(catName, dbName);
+    try {
+      openTransaction();
+      query = findPackageQuery();
+      mPkg = (MPackage) query.execute(request.getPackageName(), dbName, 
catName);
+      pm.retrieve(mPkg);
+      if (mPkg == null) { // create new
+        mPkg = new MPackage();
+        populate(request, db, mPkg);
+        pm.makePersistent(mPkg);
+      } else { // update existing
+        populate(request, db, mPkg);
+      }
+      committed = commitTransaction();
+    } finally {
+      rollbackAndCleanup(committed, query);
+    }
+  }
+
+  @Override
+  public Package findPackage(PackageRequest request) {
+    MPackage mPkg = findMPackage(request.getCatName(), request.getDbName(), 
request.getPackageName());
+    return mPkg == null ? null : convertToPackage(request.getCatName(), mPkg);
+  }
+
+  public List<String> listPackages(ListPackageRequest request) {
+    boolean committed = false;
+    Query query = null;
+    final String catName = normalizeIdentifier(request.getCatName());
+    final String dbName = request.isSetDbName() ? 
normalizeIdentifier(request.getDbName()) : null;
+    List<String> names;
+    try {
+      openTransaction();
+      if (request.isSetDbName()) {
+        query = pm.newQuery("SELECT name FROM 
org.apache.hadoop.hive.metastore.model.MPackage " +
+                "WHERE database.catalogName == catName && database.name == 
db");
+        query.declareParameters("java.lang.String catName, java.lang.String 
db");
+        query.setResult("name");
+        names = new ArrayList<>((Collection<String>) query.execute(catName, 
dbName));
+      } else {
+        query = pm.newQuery("SELECT name FROM 
org.apache.hadoop.hive.metastore.model.MPackage " +
+                "WHERE database.catalogName == catName");
+        query.declareParameters("java.lang.String catName");
+        query.setResult("name");
+        names = new ArrayList<>((Collection<String>) query.execute(catName));
+      }
+      committed = commitTransaction();
+    } finally {
+      rollbackAndCleanup(committed, query);
+    }
+    return names;
+  }
+
+  public void dropPackage(PackageRequest request) {
+    boolean success = false;
+    try {
+      openTransaction();
+      MPackage proc = findMPackage(request.getCatName(), request.getDbName(), 
request.getPackageName());
+      pm.retrieve(proc);
+      if (proc != null) {

Review comment:
       Right. I think from a language point of view it doesn't make much sense 
to differentiate these 2 cases. In a file based mode this is how it was always 
handled. How about adding a boolean flag indicating createOrUpdate or create 
only? 




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
[email protected]


Issue Time Tracking
-------------------

    Worklog Id:     (was: 544263)
    Time Spent: 3h 50m  (was: 3h 40m)

> Store HPL/SQL packages into HMS
> -------------------------------
>
>                 Key: HIVE-24346
>                 URL: https://issues.apache.org/jira/browse/HIVE-24346
>             Project: Hive
>          Issue Type: Sub-task
>          Components: hpl/sql, Metastore
>            Reporter: Attila Magyar
>            Assignee: Attila Magyar
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 3h 50m
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to