<div dir="ltr"><div><div>I have 2 concurrent processes creating indexes on FileGDB tables.  I expected to receive some sort of error or warning due to locking.  Unfortunately, both processes complete without any message or error. The end result is that one of the indexes gets created and the other does not.<br><span style="font-family:monospace,monospace"><br></span></div><div style="margin-left:40px"><span style="font-family:arial,helvetica,sans-serif">Run in 2 shells concurrently </span><span style="font-family:monospace,monospace"><br></span></div><div><span style="font-family:monospace,monospace"></span><div style="margin-left:40px"><span style="font-family:monospace,monospace">ogrinfo -sql "create index ndx_one on foo_table (field1)" C:\temp\my.gdb</span><br><span style="font-family:monospace,monospace">ogrinfo -sql "create index ndx_two on foo_table (field2)" C:\temp\my.gdb</span><br></div><br>Both return the following message but only one index is actually created.<br><div style="margin-left:40px"><span style="font-family:monospace,monospace">INFO: Open of `C:\temp\my.gdb'</span><br><span style="font-family:monospace,monospace">      using driver `FileGDB' successful.</span><br></div><div style="margin-left:40px"><span style="font-family:monospace,monospace"></span></div><span style="font-family:monospace,monospace"><br></span></div><br>I actually found this during some processing using python/ogr like this.  Nothing gets raised here either.<br><div style="margin-left:40px"><span style="font-family:monospace,monospace">ogr.UseExceptions()</span><br><span style="font-family:monospace,monospace">driver = ogr.GetDriverByName('FileGDB')</span><br><span style="font-family:monospace,monospace">ds = driver.Open(self.gdb, 0)</span><br><span style="font-family:monospace,monospace"></span><span style="font-family:monospace,monospace">layer = ds.GetLayer(self.fc)</span><br><span style="font-family:monospace,monospace">sqlcmd = "create index {0} on {1}({2})".format(self.ndx_name, self.fc, self.field)</span><br><span style="font-family:monospace,monospace"></span><span style="font-family:monospace,monospace">ds.ExecuteSQL(sqlcmd)</span><br><span style="font-family:monospace,monospace"></span><span style="font-family:monospace,monospace">ds = None</span><br></div><br>Is there anything I can do to catch this at runtime?  At the very least is there a pattern to look for the existence of an index?  I went through different dialects and couldn't figure anything out.<br><br></div><div>Thanks,<br></div><div>bespin<br></div><div><div><div><div><span style="font-family:monospace,monospace"></span></div></div></div></div></div>