Example #1
0
        private static void AddIndexes(TableInfo tableInfo, DataView allIndexes)
        {
            const string viewColumnName = "COLUMN_NAME";
            const string viewExpression = "EXPRESSION";

            var table = tableInfo.InputTableName;

            allIndexes.RowFilter = string.Format("TABLE_NAME = '{0}'", table);

            foreach (var indexName in GetIndexNames(allIndexes))
            {
                allIndexes.RowFilter = string.Format("TABLE_NAME = '{0}' AND INDEX_NAME = '{1}'", table, indexName);
                if (allIndexes.Count == 1)
                {
                    var columnName = allIndexes[0][viewColumnName].ToString();
                    var expression = allIndexes[0][viewExpression].ToString();
                    if (!tableInfo.IsIgnoredColumn(columnName))
                    {
                        tableInfo.AddIndex(new IndexInfo(indexName, expression, columnName,
                                                         tableInfo.IsUniqueColumns(new[] { columnName })));
                    }
                }
                else if (allIndexes.Count > 1)
                {
                    var expression  = allIndexes[0][viewExpression].ToString();
                    var columnNames = (from DataRowView row in allIndexes select row[viewColumnName].ToString()).ToList();
                    if (!columnNames.Any(tableInfo.IsIgnoredColumn))
                    {
                        tableInfo.AddIndex(new IndexInfo(indexName, expression, columnNames,
                                                         tableInfo.IsUniqueColumns(columnNames)));
                    }
                }
            }
        }
Example #2
0
        private static void AddIndexes(TableInfo tableInfo, DataView allIndexes)
        {
            const string viewColumnName = "COLUMN_NAME";
            const string viewExpression = "EXPRESSION";

            var table = tableInfo.InputTableName;

            allIndexes.RowFilter = string.Format("TABLE_NAME = '{0}'",  table);

            foreach (var indexName in GetIndexNames(allIndexes))
            {
                allIndexes.RowFilter = string.Format("TABLE_NAME = '{0}' AND INDEX_NAME = '{1}'", table, indexName);
                if (allIndexes.Count == 1)
                {
                    var columnName = allIndexes[0][viewColumnName].ToString();
                    var expression = allIndexes[0][viewExpression].ToString();
                    if (!tableInfo.IsIgnoredColumn(columnName))
                        tableInfo.AddIndex(new IndexInfo(indexName, expression, columnName,
                                                         tableInfo.IsUniqueColumns(new[] {columnName})));
                }
                else if (allIndexes.Count > 1)
                {
                    var expression = allIndexes[0][viewExpression].ToString();
                    var columnNames = (from DataRowView row in allIndexes select row[viewColumnName].ToString()).ToList();
                    if (!columnNames.Any(tableInfo.IsIgnoredColumn))
                        tableInfo.AddIndex(new IndexInfo(indexName, expression, columnNames,
                                                         tableInfo.IsUniqueColumns(columnNames)));
                }
            }
        }