public static SqlOffsetSpec Create(SqlNumberLiteral sqlNumberLiteral) { if (sqlNumberLiteral == null) { throw new ArgumentNullException(nameof(sqlNumberLiteral)); } long value; if (!sqlNumberLiteral.Value.IsInteger) { throw new ArgumentOutOfRangeException($"Expected {nameof(sqlNumberLiteral)} to be an integer."); } value = Number64.ToLong(sqlNumberLiteral.Value); if (value < PremadeOffsetIndex && value >= 0) { return(SqlOffsetSpec.PremadeOffsetSpecs[value]); } SqlScalarExpression offsetExpression = SqlLiteralScalarExpression.Create( SqlNumberLiteral.Create( value)); return(new SqlOffsetSpec(offsetExpression)); }
public override int Visit(SqlNumberLiteral sqlNumberLiteral) { int hashCode = SqlNumberLiteralHashCode; hashCode = CombineHashes(hashCode, sqlNumberLiteral.Value.GetHashCode()); return(hashCode); }
public static SqlNumberLiteral Create(long number) { SqlNumberLiteral sqlNumberLiteral; if (!SqlNumberLiteral.FrequentLongs.TryGetValue(number, out sqlNumberLiteral)) { sqlNumberLiteral = new SqlNumberLiteral(number); } return(sqlNumberLiteral); }
public static SqlNumberLiteral Create(Number64 number64) { SqlNumberLiteral sqlNumberLiteral; if (number64.IsDouble) { if (!SqlNumberLiteral.FrequentDoubles.TryGetValue(Number64.ToDouble(number64), out sqlNumberLiteral)) { sqlNumberLiteral = new SqlNumberLiteral(number64); } } else { if (!SqlNumberLiteral.FrequentLongs.TryGetValue(Number64.ToLong(number64), out sqlNumberLiteral)) { sqlNumberLiteral = new SqlNumberLiteral(number64); } } return(sqlNumberLiteral); }
public override void Visit(SqlNumberLiteral sqlNumberLiteral) { // We have to use InvariantCulture due to number formatting. // "1234.1234" is correct while "1234,1234" is incorrect. if (sqlNumberLiteral.Value.IsDouble) { string literalString = sqlNumberLiteral.Value.ToString(CultureInfo.InvariantCulture); double literalValue = 0.0; if (!sqlNumberLiteral.Value.IsNaN && !sqlNumberLiteral.Value.IsInfinity && (!double.TryParse(literalString, NumberStyles.Number, CultureInfo.InvariantCulture, out literalValue) || !Number64.ToDouble(sqlNumberLiteral.Value).Equals(literalValue))) { literalString = sqlNumberLiteral.Value.ToString("G17", CultureInfo.InvariantCulture); } this.writer.Write(literalString); } else { this.writer.Write(sqlNumberLiteral.Value.ToString(CultureInfo.InvariantCulture)); } }
public override SqlObject Visit(SqlTopSpec sqlTopSpec) { return(SqlTopSpec.Create(SqlNumberLiteral.Create(0))); }
public override SqlObject Visit(SqlNumberLiteral sqlNumberLiteral) { return(SqlNumberLiteral.Create( Number64.ToDouble( this.GetObfuscatedNumber(sqlNumberLiteral.Value)))); }
public abstract void Visit(SqlNumberLiteral literal);
public override void Visit(SqlNumberLiteral sqlNumberLiteral) { SqlObjectTextSerializer.WriteNumber64(this.writer.GetStringBuilder(), sqlNumberLiteral.Value); }
public override void Visit(SqlNumberLiteral sqlNumberLiteral) { // We have to use InvariantCulture due to number formatting. // "1234.1234" is correct while "1234,1234" is incorrect. this.writer.Write(sqlNumberLiteral.Value.ToString(CultureInfo.InvariantCulture)); }
private SqlNumberPathExpression(SqlPathExpression parentPath, SqlNumberLiteral value) : base(SqlObjectKind.NumberPathExpression, parentPath) { this.Value = value; }
public static SqlNumberPathExpression Create(SqlPathExpression parentPath, SqlNumberLiteral value) { return(new SqlNumberPathExpression(parentPath, value)); }
public override void Visit(SqlNumberLiteral sqlNumberLiteral) { this.writer.Write(sqlNumberLiteral.ToString()); }