public override bool Visit(SqlNullLiteral first, SqlObject secondAsObject) { if (!(secondAsObject is SqlNullLiteral second)) { return(false); } return(true); }
public override SqlObject VisitLiteralScalarExpression([NotNull] sqlParser.LiteralScalarExpressionContext context) { Contract.Requires(context != null); Contract.Requires(context.ChildCount == 1); Contract.Requires(context.children[0].ChildCount == 1); TerminalNodeImpl terminalNode = (TerminalNodeImpl)(context.children[0].GetChild(0)); SqlLiteralScalarExpression sqlLiteralScalarExpression; switch (terminalNode.Symbol.Type) { case sqlParser.STRING_LITERAL: string value = CstToAstVisitor.GetStringValueFromNode(terminalNode); sqlLiteralScalarExpression = SqlLiteralScalarExpression.Create(SqlStringLiteral.Create(value)); break; case sqlParser.NUMERIC_LITERAL: Number64 number64 = CstToAstVisitor.GetNumber64ValueFromNode(terminalNode); sqlLiteralScalarExpression = SqlLiteralScalarExpression.Create(SqlNumberLiteral.Create(number64)); break; case sqlParser.K_TRUE: sqlLiteralScalarExpression = SqlLiteralScalarExpression.Create(SqlBooleanLiteral.Create(true)); break; case sqlParser.K_FALSE: sqlLiteralScalarExpression = SqlLiteralScalarExpression.Create(SqlBooleanLiteral.Create(false)); break; case sqlParser.K_NULL: sqlLiteralScalarExpression = SqlLiteralScalarExpression.Create(SqlNullLiteral.Create()); break; case sqlParser.K_UNDEFINED: sqlLiteralScalarExpression = SqlLiteralScalarExpression.Create(SqlUndefinedLiteral.Create()); break; default: throw new ArgumentOutOfRangeException($"Unknown symbol type: {terminalNode.Symbol.Type}"); } return(sqlLiteralScalarExpression); }
public override SqlObject VisitLiteral([NotNull] sqlParser.LiteralContext context) { TerminalNodeImpl terminalNode = (TerminalNodeImpl)context.children[0]; SqlLiteral sqlLiteral; switch (terminalNode.Symbol.Type) { case sqlParser.STRING_LITERAL: string value = CstToAstVisitor.GetStringValueFromNode(terminalNode); sqlLiteral = SqlStringLiteral.Create(value); break; case sqlParser.NUMERIC_LITERAL: Number64 number64 = CstToAstVisitor.GetNumber64ValueFromNode(terminalNode); sqlLiteral = SqlNumberLiteral.Create(number64); break; case sqlParser.K_TRUE: sqlLiteral = SqlBooleanLiteral.Create(true); break; case sqlParser.K_FALSE: sqlLiteral = SqlBooleanLiteral.Create(false); break; case sqlParser.K_NULL: sqlLiteral = SqlNullLiteral.Create(); break; case sqlParser.K_UNDEFINED: sqlLiteral = SqlUndefinedLiteral.Create(); break; default: throw new ArgumentOutOfRangeException($"Unknown symbol type: {terminalNode.Symbol.Type}"); } return(sqlLiteral); }
public abstract void Visit(SqlNullLiteral sqlObject);
public override int Visit(SqlNullLiteral sqlNullLiteral) { return(SqlNullLiteralHashCode); }
public override void Visit(SqlNullLiteral sqlNullLiteral) { this.writer.Write("null"); }
public override CosmosElement Visit(SqlNullLiteral literal) => CosmosNull.Create();
public override SqlObject Visit(SqlNullLiteral sqlNullLiteral) { // null is not PII so I will just return it. return(sqlNullLiteral); }
public abstract void Visit(SqlNullLiteral literal);
public abstract TResult Visit(SqlNullLiteral sqlObject);
public abstract TOutput Visit(SqlNullLiteral sqlObject, TArg input);
/// <summary> /// Converts a JToken to a semantically equivalent SqlScalarExpression. /// </summary> /// <param name="token">The JToken to convert.</param> /// <returns>The semantically equivalent SqlScalarExpression.</returns> public static SqlScalarExpression Convert(JToken token) { if (token == null) { return(Undefined); } switch (token.Type) { case JTokenType.Array: { List <SqlScalarExpression> items = new List <SqlScalarExpression>(); foreach (JToken element in token) { items.Add(JTokenToSqlScalarExpression.Convert(element)); } return(SqlArrayCreateScalarExpression.Create(items.ToArray())); } case JTokenType.Boolean: { SqlBooleanLiteral literal = SqlBooleanLiteral.Create(token.ToObject <bool>()); return(SqlLiteralScalarExpression.Create(literal)); } case JTokenType.Null: { SqlNullLiteral literal = SqlNullLiteral.Singleton; return(SqlLiteralScalarExpression.Create(literal)); } case JTokenType.Integer: case JTokenType.Float: { SqlNumberLiteral literal = SqlNumberLiteral.Create(token.ToObject <double>()); return(SqlLiteralScalarExpression.Create(literal)); } case JTokenType.Object: { List <SqlObjectProperty> properties = new List <SqlObjectProperty>(); foreach (JProperty prop in (JToken)token) { SqlPropertyName name = SqlPropertyName.Create(prop.Name); JToken value = prop.Value; SqlScalarExpression expression = JTokenToSqlScalarExpression.Convert(value); SqlObjectProperty property = SqlObjectProperty.Create(name, expression); properties.Add(property); } return(SqlObjectCreateScalarExpression.Create(properties.ToArray())); } case JTokenType.String: { SqlStringLiteral literal = SqlStringLiteral.Create(token.ToObject <string>()); return(SqlLiteralScalarExpression.Create(literal)); } default: throw new ArgumentException(string.Format(CultureInfo.CurrentUICulture, "Unsupported JsonType {0}", token.Type)); } }
public abstract TResult Visit(SqlNullLiteral literal);