in Amazon.QLDB.DMVSample.LedgerSetup/CreateIndexes.cs [76:102]
private async Task<bool> CheckIndexExistsAsync(string tableName, string field)
{
return await Task.Run(async () =>
{
Amazon.QLDB.Driver.IAsyncResult result = await qldbDriver.Execute(async transactionExecutor =>
{
IIonValue ionTableName = this.valueFactory.NewString(tableName);
return await transactionExecutor.Execute($"SELECT * FROM information_schema.user_tables WHERE name = ?", ionTableName);
});
List<IIonValue> ionValues = await result.ToListAsync();
if (ionValues.Any())
{
IIonList indexes = ionValues.First().GetField("indexes");
foreach (IIonValue index in indexes)
{
string expr = index.GetField("expr").StringValue;
if (expr.Contains(field))
{
return true;
}
}
}
return false;
});
}