public async Task <bool> Exists(TableCreateDefinition def, ITransaction tran) { await foreach (RowHolder rh in pageListCollection.Iterate(tran)) { PagePointerOffsetPair stringPointer = rh.GetField <PagePointerOffsetPair>(1); if (def.TableName == new string(await stringHeap.Fetch(stringPointer, tran))) { return(true); } } return(false); }
public async IAsyncEnumerable <MetadataColumn> Iterate(ITransaction tran) { await foreach (RowHolder rh in pageListCollection.Iterate(tran)) { PagePointerOffsetPair stringPointer = rh.GetField <PagePointerOffsetPair>(MetadataColumn.ColumnNameColumnPos); char[] columnName = await this.stringHeap.Fetch(stringPointer, tran); yield return(new MetadataColumn( rh.GetField <int>(MetadataColumn.ColumnIdColumnPos), rh.GetField <int>(MetadataColumn.TableIdColumnPos), new string(columnName), new ColumnInfo((ColumnType)rh.GetField <int>(MetadataColumn.ColumnTypeColumnPos), rh.GetField <int>(MetadataColumn.ColumnTypeLength)))); } }