/// <summary>
        /// Adds a new <c>DataRow</c> to the given <c>DataTable</c>.
        /// </summary>
        /// <remarks>
        /// It is assumed the given table's column collection is
        /// compatibly pre-initialized.
        /// </remarks>
        /// <param name="dataTable">
        /// The <c>DataTable</c> to which to add the row.
        /// </param>
        /// <param name="columnName">
        /// Specifies the name of the column in the schema table.
        /// </param>
        /// <param name="columnOrdinal">
        /// Specifies the ordinal of the column.
        /// </param>
        /// <param name="columnSize">
        /// Specifies the size of the column.
        /// </param>
        /// <param name="numericPrecision">
        /// Specifies the precision of the column data, if the data is numeric.
        /// </param>
        /// <param name="numericScale">
        /// Specifies the scale of the column data, if the data is numeric.
        /// </param>
        /// <param name="isUnique">
        /// Specifies whether a unique constraint applies to this column.
        /// </param>
        /// <param name="isKey">
        /// Specifies whether this column is a key for the table.
        /// </param>
        /// <param name="baseServerName">
        /// Specifies the server name of the column.
        /// </param>
        /// <param name="baseCatalogName">
        /// The name of the catalog associated with the results of the latest
        /// query.
        /// </param>
        /// <param name="baseColumnName">
        /// Specifies the name of the column in the schema table.
        /// </param>
        /// <param name="baseSchemaName">
        /// Specifies the name of the schema in the schema table.
        /// </param>
        /// <param name="baseTableName">
        /// Specifies the name of the table in the schema table.
        /// </param>
        /// <param name="dataType">
        /// Specifies the type of data in the column.
        /// </param>
        /// <param name="allowDBNull">
        /// Specifies whether value DBNull is allowed.
        /// </param>
        /// <param name="providerType">
        /// Specifies the provider-specific data type of the column.
        /// </param>
        /// <param name="isAliased">
        /// Specifies whether this column is aliased.
        /// </param>
        /// <param name="isExpression">
        /// Specifies whether this column is an expression.
        /// </param>
        /// <param name="isIdentity">
        /// Specifies whether this column is the identity for the schema table.
        /// </param>
        /// <param name="isAutoIncrement">
        /// Specifies whether the column values in the column are automatically
        /// incremented.
        /// </param>
        /// <param name="isRowVersion">
        /// Specifies whether this column contains row version information.
        /// </param>
        /// <param name="isHidden">
        /// Specifies whether this column is hidden.
        /// </param>
        /// <param name="isLong">
        /// Specifies whether this column contains long data.
        /// </param>
        /// <param name="isReadOnly">
        /// Specifies whether this column is read-only.
        /// </param>
        public static void AddRow(
            DataTable dataTable,
            string columnName,
            int columnOrdinal,
            int columnSize,
            int numericPrecision,
            int numericScale,
            bool isUnique,
            bool isKey,
            string baseServerName,
            string baseCatalogName,
            string baseColumnName,
            string baseSchemaName,
            string baseTableName,
            Type dataType,
            bool allowDBNull,
            int providerType,
            bool isAliased,
            bool isExpression,
            bool isIdentity,
            bool isAutoIncrement,
            bool isRowVersion,
            bool isHidden,
            bool isLong,
            bool isReadOnly)
        {
            DataRow row = dataTable.NewRow();

            row[STC.ColumnName]                = columnName;
            row[STC.ColumnOrdinal]             = columnOrdinal;
            row[STC.ColumnSize]                = columnSize;
            row[STC.NumericPrecision]          = numericPrecision;
            row[STC.NumericScale]              = numericScale;
            row[STC.IsUnique]                  = isUnique;
            row[STC.IsKey]                     = isKey;
            row[STOC.BaseServerName]           = baseServerName;
            row[STOC.BaseCatalogName]          = baseCatalogName;
            row[STC.BaseColumnName]            = baseColumnName;
            row[STC.BaseSchemaName]            = baseSchemaName;
            row[STC.BaseTableName]             = baseTableName;
            row[STC.DataType]                  = dataType;
            row[STC.AllowDBNull]               = allowDBNull;
            row[STC.ProviderType]              = providerType;
            row[STC.IsAliased]                 = isAliased;
            row[STC.IsExpression]              = isExpression;
            row["IsIdentity"]                  = isIdentity;
            row[STOC.IsAutoIncrement]          = isAutoIncrement;
            row[STOC.IsRowVersion]             = isRowVersion;
            row[STOC.IsHidden]                 = isHidden;
            row[STC.IsLong]                    = isLong;
            row[STOC.IsReadOnly]               = isReadOnly;
            row[STOC.ProviderSpecificDataType] = HsqlConvert.ToProviderSpecificDataType(providerType);
            row["DataTypeName"]                = HsqlConvert.ToSqlDataTypeName(providerType);
            //row["XmlSchemaCollectionDatabase"] = null;
            //row["XmlSchemaCollectionOwningSchema"] = null;
            //row["XmlSchemaCollectionName"] = null;
            //row["UdtAssemblyQualifiedName"] = null;
            row[STC.NonVersionedProviderType] = providerType;

            dataTable.Rows.Add(row);
        }