private void AddRowValue(ArrayList row, Column column, SqlCodeObject value) { if (column.IsIdentity && column.ParentTable.IsIdentityInsertForbidden || column.IsRowVersion) { throw new SqlUpdateColumnForbiddenException(column.Name); } switch (value) { case SqlLiteralExpression literal: { row[column.Order] = Helper.GetValueFromString(column, literal); break; } case SqlBuiltinScalarFunctionCallExpression function: { var select = new SelectDataBuilder( ).Build(function, new RawData(_Command)); row[column.Order] = select.Select(new RawTableJoinRow()); break; } case SqlScalarVariableRefExpression variableRef: { var select = new SelectDataFromVariables(variableRef, _Command); row[column.Order] = select.Select(new RawTableJoinRow()); break; } default: throw new NotImplementedException($"Value of type {value.GetType( )} is not supported"); } ValidateDataSize(column, row[column.Order]); }
private void AddFieldFromVariable(SqlScalarVariableRefExpression variableRef, string name, MemoryDbDataReader.ResultBatch batch, RawData rawData) { var select = new SelectDataFromVariables(variableRef, _Command); AddFieldFromSelectData(name, batch, select); }