From af1a266670d040d2f4083ff309d732d648afba2a Mon Sep 17 00:00:00 2001
From: Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com>
Date: Tue, 10 Oct 2023 14:33:42 +0000
Subject: Add submodule dependency files

Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
---
 roms/edk2/BaseTools/Source/Python/Table/Table.py | 114 +++++++++++++++++++++++
 1 file changed, 114 insertions(+)
 create mode 100644 roms/edk2/BaseTools/Source/Python/Table/Table.py

(limited to 'roms/edk2/BaseTools/Source/Python/Table/Table.py')

diff --git a/roms/edk2/BaseTools/Source/Python/Table/Table.py b/roms/edk2/BaseTools/Source/Python/Table/Table.py
new file mode 100644
index 000000000..7a60313e9
--- /dev/null
+++ b/roms/edk2/BaseTools/Source/Python/Table/Table.py
@@ -0,0 +1,114 @@
+## @file
+# This file is used to create/update/query/erase a common table
+#
+# Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+
+##
+# Import Modules
+#
+import Common.EdkLogger as EdkLogger
+
+## TableFile
+#
+# This class defined a common table
+#
+# @param object:     Inherited from object class
+#
+# @param Cursor:     Cursor of the database
+# @param TableName:  Name of the table
+#
+class Table(object):
+    def __init__(self, Cursor):
+        self.Cur = Cursor
+        self.Table = ''
+        self.ID = 0
+
+    ## Create table
+    #
+    # Create a table
+    #
+    def Create(self, SqlCommand):
+        self.Cur.execute(SqlCommand)
+        self.ID = 0
+        EdkLogger.verbose(SqlCommand + " ... DONE!")
+
+    ## Insert table
+    #
+    # Insert a record into a table
+    #
+    def Insert(self, SqlCommand):
+        self.Exec(SqlCommand)
+
+    ## Query table
+    #
+    # Query all records of the table
+    #
+    def Query(self):
+        EdkLogger.verbose("\nQuery table %s started ..." % self.Table)
+        SqlCommand = """select * from %s""" % self.Table
+        self.Cur.execute(SqlCommand)
+        for Rs in self.Cur:
+            EdkLogger.verbose(str(Rs))
+
+        TotalCount = self.GetCount()
+        EdkLogger.verbose("*** Total %s records in table %s ***" % (TotalCount, self.Table) )
+        EdkLogger.verbose("Query tabel %s DONE!" % self.Table)
+
+    ## Drop a table
+    #
+    # Drop the table
+    #
+    def Drop(self):
+        SqlCommand = """drop table IF EXISTS %s""" % self.Table
+        self.Cur.execute(SqlCommand)
+        EdkLogger.verbose("Drop tabel %s ... DONE!" % self.Table)
+
+    ## Get count
+    #
+    # Get a count of all records of the table
+    #
+    # @retval Count:  Total count of all records
+    #
+    def GetCount(self):
+        SqlCommand = """select count(ID) from %s""" % self.Table
+        self.Cur.execute(SqlCommand)
+        for Item in self.Cur:
+            return Item[0]
+
+    ## Generate ID
+    #
+    # Generate an ID if input ID is -1
+    #
+    # @param ID:   Input ID
+    #
+    # @retval ID:  New generated ID
+    #
+    def GenerateID(self, ID):
+        if ID == -1:
+            self.ID = self.ID + 1
+
+        return self.ID
+
+    ## Init the ID of the table
+    #
+    # Init the ID of the table
+    #
+    def InitID(self):
+        self.ID = self.GetCount()
+
+    ## Exec
+    #
+    # Exec Sql Command, return result
+    #
+    # @param SqlCommand:  The SqlCommand to be executed
+    #
+    # @retval RecordSet:  The result after executed
+    #
+    def Exec(self, SqlCommand):
+        EdkLogger.debug(4, "SqlCommand: %s" % SqlCommand)
+        self.Cur.execute(SqlCommand)
+        RecordSet = self.Cur.fetchall()
+        EdkLogger.debug(4, "RecordSet: %s" % RecordSet)
+        return RecordSet
-- 
cgit