[Midnightbsd-cvs] src [12206] trunk/lib/libmport/index_depends.c: use count function

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Mon May 27 10:30:49 EDT 2019


Revision: 12206
          http://svnweb.midnightbsd.org/src/?rev=12206
Author:   laffer1
Date:     2019-05-27 10:30:48 -0400 (Mon, 27 May 2019)
Log Message:
-----------
use count function

Modified Paths:
--------------
    trunk/lib/libmport/index_depends.c

Modified: trunk/lib/libmport/index_depends.c
===================================================================
--- trunk/lib/libmport/index_depends.c	2019-05-27 14:30:30 UTC (rev 12205)
+++ trunk/lib/libmport/index_depends.c	2019-05-27 14:30:48 UTC (rev 12206)
@@ -55,36 +55,17 @@
   
 	MPORT_CHECK_FOR_INDEX(mport, "mport_index_depends_list()")
 
-	if (mport_db_prepare(mport->db, &stmt,
-	    "with RECURSIVE under_dep (parent, parent_ver, pkg, version, level) as ( values('?', '?',  %Q, %Q, 0) union all select depends.pkg as parent, depends.version as parent_ver, depends.d_pkg as pkg, depends.d_version as version, under_dep.level + 1 from depends JOIN under_dep on depends.pkg = under_dep.pkg) select count(*) FROM under_dep where level > 0;",
-	    pkgname, version) != MPORT_OK) {
-		sqlite3_finalize(stmt);
+	if (mport_db_count(mport->db, &count,
+		"with RECURSIVE under_dep (parent, parent_ver, pkg, version, level) as ( values('?', '?',  %Q, %Q, 0) union all select depends.pkg as parent, depends.version as parent_ver, depends.d_pkg as pkg, depends.d_version as version, under_dep.level + 1 from depends JOIN under_dep on depends.pkg = under_dep.pkg) select count(*) FROM under_dep where level > 0;",
+			   pkgname, version) != MPORT_OK)
 		RETURN_CURRENT_ERROR;
-	}
 
-	switch (sqlite3_step(stmt)) {
-		case SQLITE_ROW:
-			count = sqlite3_column_int(stmt, 0);
-			break;
-		case SQLITE_DONE:
-			ret = SET_ERROR(MPORT_ERR_FATAL,
-					"No rows returned from a 'SELECT COUNT(*)' query.");
-			goto DONE;
-			break;
-		default:
-			ret = SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
-			goto DONE;
-			break;
-	}
+	if (count == 0)
+		return MPORT_OK;
   
-	sqlite3_finalize(stmt);
-  
 	e = (mportDependsEntry **)calloc(count + 1, sizeof(mportDependsEntry *));
 	*entry_vec = e;
   
-	if (count == 0) 
-		return MPORT_OK;
-  
 	if (mport_db_prepare(mport->db, &stmt,
 		 "with RECURSIVE under_dep (parent, parent_ver, pkg, version, level) as ( values('?', '?',  %Q, %Q, 0) union all select depends.pkg as parent, depends.version as parent_ver, depends.d_pkg as pkg, depends.d_version as version, under_dep.level + 1 from depends JOIN under_dep on depends.pkg = under_dep.pkg) select parent, parent_ver, pkg, version, level FROM under_dep where level > 0;"
 		, pkgname, version) != MPORT_OK) {



More information about the Midnightbsd-cvs mailing list