private IComparable GetValue(ParameterMarkerExpressionSegment expressionSegment, ParameterContext parameterContext) { object result = parameterContext.GetParameterValue(expressionSegment.GetParameterName()); ShardingAssert.Else(result is IComparable, "Sharding value must implements IComparable."); return((IComparable)result); }
private IComparable GetRouteValue(ISimpleExpressionSegment expressionSegment, ParameterContext parameterContext) { object result; if (expressionSegment is ParameterMarkerExpressionSegment parameterMarkerExpressionSegment) { result = parameterContext.GetParameterValue(parameterMarkerExpressionSegment.GetParameterName()); } else { result = ((LiteralExpressionSegment)expressionSegment).GetLiterals(); } ShardingAssert.Else(result is IComparable, "Sharding value must implements IComparable."); return((IComparable)result); }
private object GetShardingColumnSetAssignmentValue(AssignmentSegment assignmentSegment, ParameterContext parameterContext) { var segment = assignmentSegment.GetValue(); if (segment is ParameterMarkerExpressionSegment parameterMarkerExpressionSegment) { return(parameterContext.GetParameterValue(parameterMarkerExpressionSegment.GetParameterName())); } if (segment is LiteralExpressionSegment literalExpressionSegment) { return(literalExpressionSegment.GetLiterals()); } // if (-1 == shardingValueParameterMarkerIndex || shardingValueParameterMarkerIndex > parameters.Count - 1) // { // return null; // } return(null); }
private object GetPredicateCompareShardingValue(IExpressionSegment segment, ParameterContext parameterContext) { // int shardingValueParameterMarkerIndex; if (segment is ParameterMarkerExpressionSegment parameterMarkerExpressionSegment) { // shardingValueParameterMarkerIndex = parameterMarkerExpressionSegment.GetParameterMarkerIndex(); // if (-1 == shardingValueParameterMarkerIndex || shardingValueParameterMarkerIndex > parameters.Count - 1) // { // return null; // } return(parameterContext.GetParameterValue(parameterMarkerExpressionSegment.GetParameterName())); } if (segment is LiteralExpressionSegment literalExpressionSegment) { return(literalExpressionSegment.GetLiterals()); } return(null); }
private object GetPredicateInShardingValue(ICollection <IExpressionSegment> segments, ParameterContext parameterContext) { // int shardingColumnWhereIndex; foreach (var segment in segments) { if (segment is ParameterMarkerExpressionSegment parameterMarkerExpressionSegment) { // shardingColumnWhereIndex = parameterMarkerExpressionSegment.GetParameterMarkerIndex(); // if (-1 == shardingColumnWhereIndex || shardingColumnWhereIndex > parameters.Count - 1) // { // continue; // } return(parameterContext.GetParameterValue(parameterMarkerExpressionSegment.GetParameterName())); } if (segment is LiteralExpressionSegment literalExpressionSegment) { return(literalExpressionSegment.GetLiterals()); } } return(null); }
/** * Get value. * * @param index index * @return value */ public object GetValue(int index) { IExpressionSegment valueExpression = _valueExpressions[index]; return(valueExpression is ParameterMarkerExpressionSegment parameterMarkerExpression?_parameterContext.GetParameterValue(parameterMarkerExpression.GetParameterName()) : ((LiteralExpressionSegment)valueExpression).GetLiterals()); }