From 117b0e1cb9667fe209cd2eea7b6c5ac8014f09e4 Mon Sep 17 00:00:00 2001
From: Michael Zikeli <michael.zikeli@fau.de>
Date: Fri, 7 Feb 2025 17:38:09 +0100
Subject: [PATCH] Improve verbosity of the data fileds and move the check for
 column duplication to the insert method in the python-sqlight library.

---
 .../simulation_setup/benchmark_configs_RDM.py  | 17 ++++-------------
 .../simulation_setup/benchmark_configs_RDM.py  | 18 ++++--------------
 2 files changed, 8 insertions(+), 27 deletions(-)

diff --git a/apps/benchmarks/UniformGridCPU/simulation_setup/benchmark_configs_RDM.py b/apps/benchmarks/UniformGridCPU/simulation_setup/benchmark_configs_RDM.py
index a6b13fd80..071d1b4e0 100644
--- a/apps/benchmarks/UniformGridCPU/simulation_setup/benchmark_configs_RDM.py
+++ b/apps/benchmarks/UniformGridCPU/simulation_setup/benchmark_configs_RDM.py
@@ -5,6 +5,7 @@ from waLBerla.tools.sqlitedb import sequenceValuesToScalars, checkAndUpdateSchem
 import sys
 import sqlite3
 from pprint import pformat
+from math import prod
 
 try:
     import machinestate as ms
@@ -146,23 +147,13 @@ class Scenario:
         result = data
         sequenceValuesToScalars(result)
         num_tries = 4
-        table_name = "runs"
+        table_name = f"CPU_runs_{data['stencil']}_{data['streamingPattern']}_{data['collisionSetup']}_{prod(self.blocks)}nodes_{'x'.join(map(str, self.cells_per_block))}cellsPerBlock"
         table_name = table_name.replace("-", "_")
+        table_name = table_name.replace(" ", "_")
 
         for num_try in range(num_tries):
             try:
-                # Check existing columns
-                conn = sqlite3.connect(self.db_file_name)
-                c = conn.cursor()
-                c.execute(f"PRAGMA table_info({table_name})")
-                existing_columns = [info[1] for info in c.fetchall()]
-                conn.close()
-
-                # Filter out existing columns
-                new_columns = {k: v for k, v in result.items() if k not in existing_columns}
-
-                if new_columns:
-                    checkAndUpdateSchema(new_columns, table_name, self.db_file_name, alter_table=True)
+                checkAndUpdateSchema(result, table_name, self.db_file_name, alter_table=True)
                 storeSingle(result, table_name, self.db_file_name)
                 break
             except sqlite3.OperationalError as e:
diff --git a/apps/benchmarks/UniformGridGPU/simulation_setup/benchmark_configs_RDM.py b/apps/benchmarks/UniformGridGPU/simulation_setup/benchmark_configs_RDM.py
index 82222270e..74269c0bc 100755
--- a/apps/benchmarks/UniformGridGPU/simulation_setup/benchmark_configs_RDM.py
+++ b/apps/benchmarks/UniformGridGPU/simulation_setup/benchmark_configs_RDM.py
@@ -189,23 +189,13 @@ class Scenario:
         result = data
         sequenceValuesToScalars(result)
         num_tries = 4
-        table_name = f"runs_{data['stencil']}_{data['streamingPattern']}_{data['collisionSetup']}_{prod(self.blocks)}"
-        table_name = table_name.replace("-", "_")  # - not allowed for table name would lead to syntax error
+        table_name = f"GPU_runs_{data['stencil']}_{data['streamingPattern']}_{data['collisionSetup']}_{prod(self.blocks)}nodes_{'x'.join(map(str, self.cells_per_block))}cellsPerBlock"
+        table_name = table_name.replace("-", "_")
+        table_name = table_name.replace(" ", "_")
 
         for num_try in range(num_tries):
             try:
-                # Check existing columns
-                conn = sqlite3.connect(self.db_file_name)
-                c = conn.cursor()
-                c.execute(f"PRAGMA table_info({table_name})")
-                existing_columns = [info[1] for info in c.fetchall()]
-                conn.close()
-
-                # Filter out existing columns
-                new_columns = {k: v for k, v in result.items() if k not in existing_columns}
-
-                if new_columns:
-                    checkAndUpdateSchema(new_columns, table_name, self.db_file_name, alter_table=True)
+                checkAndUpdateSchema(result, table_name, self.db_file_name, alter_table=True)
                 storeSingle(result, table_name, self.db_file_name)
                 break
             except sqlite3.OperationalError as e:
-- 
GitLab