-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Schema Management
-
None
-
Storage Engines, Storage Engines - Persistence
-
0.071
-
None
-
None
WiredTiger currently allows creating tables with empty names, which arguably should not be the case.
The following is a quick demonstration that this succeeds:
import wiredtiger, wttest # test_schema10.py # Test using an empty string as a table name (URI "table:"). class test_schema10(wttest.WiredTigerTestCase): # Creating a table with an empty name succeeds. def test_empty_name_create(self): uri = "table:" self.session.create(uri, "key_format=S,value_format=S") c = self.session.open_cursor(uri, None, None) c["key"] = "value" c.reset() c.set_key("key") self.assertEqual(c.search(), 0) self.assertEqual(c.get_value(), "value") c.close()
The particularly interesting fact is that this creates file .wt, which is normally hidden, and you have to use the ls -a option to reveal it, e.g.:
wiredtiger$ ls -al build/WT_TEST/test_schema10.test_schema10.test_empty_name_create total 132 drwxrwxrwx 2 peter.macko peter.macko 237 Jun 4 16:50 . drwxrwxr-x 5 peter.macko peter.macko 200 Jun 4 16:50 .. -rw-rw-rw- 1 peter.macko peter.macko 20480 Jun 4 16:50 .wt -rw-rw-rw- 1 peter.macko peter.macko 50 Jun 4 16:50 WiredTiger -rw-rw-rw- 1 peter.macko peter.macko 364 Jun 4 16:50 WiredTiger.basecfg -rw-rw-rw- 1 peter.macko peter.macko 21 Jun 4 16:50 WiredTiger.lock -rw-rw-rw- 1 peter.macko peter.macko 1574 Jun 4 16:50 WiredTiger.turtle -rw-rw-rw- 1 peter.macko peter.macko 32768 Jun 4 16:50 WiredTiger.wt -rw-rw-rw- 1 peter.macko peter.macko 4096 Jun 4 16:50 WiredTigerHS.wt -rw-rw-rw- 1 peter.macko peter.macko 53746 Jun 4 16:50 WiredTigerStat.04.16 -rw-rw-rw- 1 peter.macko peter.macko 0 Jun 4 16:50 stderr.txt -rw-rw-rw- 1 peter.macko peter.macko 0 Jun 4 16:50 stdout.txt -rw-rw-rw- 1 peter.macko peter.macko 51 Jun 4 16:50 testname.txt