Add feature to upload missing column values as NULL
authorKarl O. Pinc <kop@karlpinc.com>
Thu, 10 Oct 2024 18:27:40 +0000 (13:27 -0500)
committerKarl O. Pinc <kop@karlpinc.com>
Thu, 10 Oct 2024 18:27:40 +0000 (13:27 -0500)
src/pgwui_upload/pgwui_upload.py
src/pgwui_upload/views/upload.py

index 8bad1378668c0aad554635b4e26507e9284e3e1f..aeffb784f718cfa869228283782fc3dc4e28fb97 100644 (file)
@@ -29,6 +29,7 @@ DEFAULT_LITERAL_COLUMN_HEADINGS = 'no-never'
 DEFAULT_TRIM = 'choice-yes'
 DEFAULT_NULL = 'choice-yes'
 DEFAULT_FILE_FORMAT = 'csv'
+DEFAULT_ADD_MISSING_COLUMNS = 'no-never'
 
 
 def establish_settings(config):
@@ -48,6 +49,8 @@ def establish_settings(config):
         'null', DEFAULT_NULL)
     upload_settings.setdefault(
         'file_format', DEFAULT_FILE_FORMAT)
+    upload_settings.setdefault(
+        'add_missing_columns', DEFAULT_ADD_MISSING_COLUMNS)
 
 
 def includeme(config):
index a04993d926154eadf4832baaaac71841d0b4aece..546ef74f2f333e9a379c1d87808325af2797b10e 100644 (file)
@@ -68,6 +68,7 @@ class SaveLine(DataLineProcessor, ParameterExecutor):
         '''
         super().__init__(ue, uh)
         self.insert_stmt = insert_stmt
+        self.add_missing_columns = uh.uf['add_missing_columns']
 
     def eat(self, udl):
         '''
@@ -75,7 +76,8 @@ class SaveLine(DataLineProcessor, ParameterExecutor):
 
         udl  An UploadDataLine instance
         '''
-        match_insert_to_dataline(udl, self.insert_stmt)
+        match_insert_to_dataline(
+            udl, self.insert_stmt, self.add_missing_columns)
         self.param_execute(self.insert_stmt.stmt, udl)