public InsertStatementImpl(SQLVendorImpl vendor, TableNameDirect table, ColumnSource columnSource) : base(vendor) { ArgumentValidator.ValidateNotNull(nameof(table), table); ArgumentValidator.ValidateNotNull(nameof(columnSource), columnSource); this._table = table; this._columnSource = columnSource; }
private static ColumnSource BitSetColumnSource(ColumnSource[] columns) { var nullableCount = columns.Count(c => c.Metadata.Nullable); var bitsetColSource = ColumnMetadata.FromBitsetField( new ColumnSerializerMetadata(EFieldType.BitSet, MetadataConstants.NULLS_FILE_NAME, null), nullableCount, columns.Length); var bitset = new ColumnSource(bitsetColSource, new QuoteBitsetColumnStub(columns.Select(c => c.Column).ToArray(), new[] { 0, 2 }), columns.Length); return(bitset); }
public override InsertStatement NewInsertStatement(TableNameDirect table, ColumnSource columnSource) { return(((PostgreSQLVendor)this.vendor).PgSQLSpecificFactory.NewInsertStatement(table, columnSource)); }
public PgSQLInsertStatement NewInsertStatement(TableNameDirect table, ColumnSource columnSource, SelectColumnClause returning = null) { return(new PgSQLInsertStatementImpl((PostgreSQLVendorImpl)this.vendor, table, columnSource, returning)); }
private ColumnSource[] CreateColumnsFromColumnMetadata(IList <ColumnMetadata> columns, IColumnStorage columnStorage, PartitionConfig configOverride, int partitionID) { var resultColumns = new ColumnSource[columns.Count]; var recordHint = _settings.RecordHint; if (configOverride != null) { columns = ParseColumns(columns.Select(c => c.SerializerMetadata), configOverride.Columns); recordHint = configOverride.RecordHint; } int fileID = 0; for (int columnID = 0; columnID < columns.Count; columnID++) { var cType = columns[columnID]; // Build. IColumn column; if (cType.ColumnType == EFieldType.String) { // String. var data = columnStorage.GetFile(cType, fileID++, EDataType.Data, recordHint); var index = columnStorage.GetFile(cType, fileID++, EDataType.Index, recordHint); column = new StringColumn(data, index, cType.MaxSize, GetPropertyName(cType.FileName)); } else if (cType.ColumnType == EFieldType.BitSet) { var data = columnStorage.GetFile(cType, fileID++, EDataType.Data, recordHint); column = new BitsetColumn(data, cType.MaxSize); } else if (cType.ColumnType == EFieldType.Symbol) { var colData = columnStorage.GetFile(cType, fileID++, EDataType.Data, recordHint); var symData = columnStorage.GetFile(cType, fileID++, EDataType.Symd, recordHint); var symi = columnStorage.GetFile(cType, fileID++, EDataType.Symi, recordHint); var symk = columnStorage.GetFile(cType, fileID++, EDataType.Symrk, recordHint); var symr = columnStorage.GetFile(cType, fileID++, EDataType.Symrr, recordHint); int maxLen = cType.MaxSize; int distinctHintCount = cType.HintDistinctCount; if (cType.Indexed) { var colDataK = columnStorage.GetFile(cType, fileID++, EDataType.Datak, recordHint); var colDataR = columnStorage.GetFile(cType, fileID++, EDataType.Datar, recordHint); column = new SymbolMapColumn( columnID, partitionID, data: colData, datak: colDataK, datar: colDataR, symd: symData, symi: symi, symk: symk, symr: symr, propertyName: GetPropertyName(cType.FileName), capacity: distinctHintCount, recordCountHint: _settings.RecordHint, maxLen: maxLen); } else { column = new SymbolMapColumn( columnID, partitionID, data: colData, symd: symData, symi: symi, symk: symk, symr: symr, propertyName: GetPropertyName(cType.FileName), capacity: distinctHintCount, maxLen: maxLen); } } else if (cType.ColumnType == EFieldType.Binary) { // Byte array. var data = columnStorage.GetFile(cType, fileID++, EDataType.Data, recordHint); var index = columnStorage.GetFile(cType, fileID++, EDataType.Index, recordHint); column = new BinaryColumn(data, index, cType.MaxSize, GetPropertyName(cType.FileName)); } else { // Fixed size. var data = columnStorage.GetFile(cType, fileID++, EDataType.Data, recordHint); column = new FixedColumn(data, cType.ColumnType, GetPropertyName(cType.FileName)); } resultColumns[columnID] = new ColumnSource(cType, column, fileID); } return(resultColumns); }
public virtual InsertStatement NewInsertStatement(TableNameDirect table, ColumnSource columnSource) { return(new InsertStatementImpl(this.vendor, table, columnSource)); }
public ModificationFactoryImpl(SQLVendorImpl vendor, ColumnSource defaults = null) : base(vendor) { this._defaults = defaults ?? new ColumnSources.Defaults(vendor); }
internal PgSQLInsertStatementImpl(PostgreSQLVendorImpl vendor, TableNameDirect table, ColumnSource columnSource, SelectColumnClause returningClause) : base(vendor, table, columnSource) { this._returning = returningClause; }
public InsertStatementBuilder SetColumnSource(ColumnSource source) { this._source = source; return(this); }