| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -155,7 +155,14 @@ def insert(self, rows, replace=False, ignore_errors=False, skip_duplicates=False | |||
| 155 | 155 | table=self.full_table_name, | |
| 156 | 156 | fields='`'+'`,`'.join(rows.heading.names)+'`', | |
| 157 | 157 | select=rows.make_sql()) | |
| 158 | - self.connection.query(query) | ||
| 158 | + try: | ||
| 159 | + self.connection.query(query) | ||
| 160 | + except pymysql.err.InternalError as err: | ||
| 161 | + if err.args[0] == server_error_codes['unknown column']: | ||
| 162 | + # args[1] -> Unknown column 'extra' in 'field list' | ||
| 163 | + raise DataJointError('%s : To ignore extra fields, set ignore_extra_fields=True in insert.' % err.args[1]) | ||
| 164 | + else: | ||
| 165 | + raise | ||
| 159 | 166 | return | |
| 160 | 167 | ||
| 161 | 168 | heading = self.heading | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -29,6 +29,7 @@ | |||
| 29 | 29 | ||
| 30 | 30 | ||
| 31 | 31 | server_error_codes = { | |
| 32 | + 'unknown column': 1054, | ||
| 32 | 33 | 'command denied': 1142, | |
| 33 | 34 | 'tables does not exist': 1146, | |
| 34 | 35 | 'syntax error': 1149 | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -101,7 +101,7 @@ def test_insert_select(self): | |||
| 101 | 101 | 'real_id', 'date_of_birth', 'subject_notes', subject_id='subject_id+1000', species='"human"')) | |
| 102 | 102 | assert_equal(len(self.subject), 2*original_length) | |
| 103 | 103 | ||
| 104 | - @raises(InternalError) | ||
| 104 | + @raises(dj.DataJointError) | ||
| 105 | 105 | def test_insert_select_ignore_extra_fields0(self): | |
| 106 | 106 | ''' need ignore extra fields for insert select ''' | |
| 107 | 107 | self.test_extra.insert1((self.test.fetch('key').max() + 1, 0, 0)) | |
| Back | FazBrowse Home | New Git URL |
0 commit comments