Don’t allow dots in column names, fixes #86.

This commit is contained in:
Friedrich Lindenberg 2015-05-21 23:21:47 +02:00
parent a95c7be33b
commit 19cc76dd60
2 changed files with 14 additions and 0 deletions

View File

@ -219,6 +219,11 @@ class Table(object):
""" """
self._check_dropped() self._check_dropped()
self.database._acquire() self.database._acquire()
# check that column name is OK:
if '.' in name:
raise ValueError("Invalid column name: %r" % name)
try: try:
if name not in self.table.columns.keys(): if name not in self.table.columns.keys():
self.database.op.add_column( self.database.op.add_column(

View File

@ -192,6 +192,15 @@ class TableTestCase(unittest.TestCase):
row['foo'] = 'bar' row['foo'] = 'bar'
self.tbl.update(row, ['place', 'date']) self.tbl.update(row, ['place', 'date'])
def test_weird_column_names(self):
with self.assertRaises(ValueError):
self.tbl.insert({
'date': datetime(2011, 1, 2),
'temperature': -10,
'foo.bar': 'Berlin',
'qux.bar': 'Huhu'
})
def test_delete(self): def test_delete(self):
self.tbl.insert({ self.tbl.insert({
'date': datetime(2011, 1, 2), 'date': datetime(2011, 1, 2),