# Class PgTableValuedFunctionExpression

Namespace
  Npgsql.EntityFrameworkCore.PostgreSQL.Query.Expressions.Internal

Assembly
  Npgsql.EntityFrameworkCore.PostgreSQL.dll

An expression that represents a PostgreSQL `unnest` function call in a SQL tree.

    public class PgTableValuedFunctionExpression : TableValuedFunctionExpression, IRelationalQuotableExpression, IPrintableExpression, ITableBasedExpression, IEquatable<PgTableValuedFunctionExpression>

Inheritance
  object
  Expression
  TableExpressionBase
  TableValuedFunctionExpression
  PgTableValuedFunctionExpression

Implements
  IRelationalQuotableExpression
  IPrintableExpression
  ITableBasedExpression
  IEquatable<PgTableValuedFunctionExpression>

Derived
  PgUnnestExpression

Inherited Members
  TableValuedFunctionExpression.WithAnnotations(IReadOnlyDictionary<string, IAnnotation>)
  TableValuedFunctionExpression.Quote()
  TableValuedFunctionExpression.Alias
  TableValuedFunctionExpression.StoreFunction
  TableValuedFunctionExpression.Name
  TableValuedFunctionExpression.Schema
  TableValuedFunctionExpression.IsBuiltIn
  TableValuedFunctionExpression.Arguments
  TableExpressionBase.PrintAnnotations(ExpressionPrinter)
  TableExpressionBase.AddAnnotation(string, object)
  TableExpressionBase.FindAnnotation(string)
  TableExpressionBase.GetAnnotations()
  TableExpressionBase.GetRequiredAlias()
  TableExpressionBase.Annotations
  TableExpressionBase.Type
  TableExpressionBase.NodeType
  Expression.Accept(ExpressionVisitor)
  Expression.Add(Expression, Expression)
  Expression.Add(Expression, Expression, MethodInfo)
  Expression.AddAssign(Expression, Expression)
  Expression.AddAssign(Expression, Expression, MethodInfo)
  Expression.AddAssign(Expression, Expression, MethodInfo, LambdaExpression)
  Expression.AddAssignChecked(Expression, Expression)
  Expression.AddAssignChecked(Expression, Expression, MethodInfo)
  Expression.AddAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)
  Expression.AddChecked(Expression, Expression)
  Expression.AddChecked(Expression, Expression, MethodInfo)
  Expression.And(Expression, Expression)
  Expression.And(Expression, Expression, MethodInfo)
  Expression.AndAlso(Expression, Expression)
  Expression.AndAlso(Expression, Expression, MethodInfo)
  Expression.AndAssign(Expression, Expression)
  Expression.AndAssign(Expression, Expression, MethodInfo)
  Expression.AndAssign(Expression, Expression, MethodInfo, LambdaExpression)
  Expression.ArrayAccess(Expression, IEnumerable<Expression>)
  Expression.ArrayAccess(Expression, params Expression[])
  Expression.ArrayIndex(Expression, IEnumerable<Expression>)
  Expression.ArrayIndex(Expression, Expression)
  Expression.ArrayIndex(Expression, params Expression[])
  Expression.ArrayLength(Expression)
  Expression.Assign(Expression, Expression)
  Expression.Bind(MemberInfo, Expression)
  Expression.Bind(MethodInfo, Expression)
  Expression.Block(IEnumerable<Expression>)
  Expression.Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>)
  Expression.Block(IEnumerable<ParameterExpression>, params Expression[])
  Expression.Block(Expression, Expression)
  Expression.Block(Expression, Expression, Expression)
  Expression.Block(Expression, Expression, Expression, Expression)
  Expression.Block(Expression, Expression, Expression, Expression, Expression)
  Expression.Block(params Expression[])
  Expression.Block(Type, IEnumerable<Expression>)
  Expression.Block(Type, IEnumerable<ParameterExpression>, IEnumerable<Expression>)
  Expression.Block(Type, IEnumerable<ParameterExpression>, params Expression[])
  Expression.Block(Type, params Expression[])
  Expression.Break(LabelTarget)
  Expression.Break(LabelTarget, Expression)
  Expression.Break(LabelTarget, Expression, Type)
  Expression.Break(LabelTarget, Type)
  Expression.Call(Expression, MethodInfo)
  Expression.Call(Expression, MethodInfo, IEnumerable<Expression>)
  Expression.Call(Expression, MethodInfo, Expression, Expression)
  Expression.Call(Expression, MethodInfo, Expression, Expression, Expression)
  Expression.Call(Expression, MethodInfo, params Expression[])
  Expression.Call(Expression, string, Type[], params Expression[])
  Expression.Call(MethodInfo, IEnumerable<Expression>)
  Expression.Call(MethodInfo, Expression)
  Expression.Call(MethodInfo, Expression, Expression)
  Expression.Call(MethodInfo, Expression, Expression, Expression)
  Expression.Call(MethodInfo, Expression, Expression, Expression, Expression)
  Expression.Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)
  Expression.Call(MethodInfo, params Expression[])
  Expression.Call(Type, string, Type[], params Expression[])
  Expression.Catch(ParameterExpression, Expression)
  Expression.Catch(ParameterExpression, Expression, Expression)
  Expression.Catch(Type, Expression)
  Expression.Catch(Type, Expression, Expression)
  Expression.ClearDebugInfo(SymbolDocumentInfo)
  Expression.Coalesce(Expression, Expression)
  Expression.Coalesce(Expression, Expression, LambdaExpression)
  Expression.Condition(Expression, Expression, Expression)
  Expression.Condition(Expression, Expression, Expression, Type)
  Expression.Constant(object)
  Expression.Constant(object, Type)
  Expression.Continue(LabelTarget)
  Expression.Continue(LabelTarget, Type)
  Expression.Convert(Expression, Type)
  Expression.Convert(Expression, Type, MethodInfo)
  Expression.ConvertChecked(Expression, Type)
  Expression.ConvertChecked(Expression, Type, MethodInfo)
  Expression.DebugInfo(SymbolDocumentInfo, int, int, int, int)
  Expression.Decrement(Expression)
  Expression.Decrement(Expression, MethodInfo)
  Expression.Default(Type)
  Expression.Divide(Expression, Expression)
  Expression.Divide(Expression, Expression, MethodInfo)
  Expression.DivideAssign(Expression, Expression)
  Expression.DivideAssign(Expression, Expression, MethodInfo)
  Expression.DivideAssign(Expression, Expression, MethodInfo, LambdaExpression)
  Expression.Dynamic(CallSiteBinder, Type, IEnumerable<Expression>)
  Expression.Dynamic(CallSiteBinder, Type, Expression)
  Expression.Dynamic(CallSiteBinder, Type, Expression, Expression)
  Expression.Dynamic(CallSiteBinder, Type, Expression, Expression, Expression)
  Expression.Dynamic(CallSiteBinder, Type, Expression, Expression, Expression, Expression)
  Expression.Dynamic(CallSiteBinder, Type, params Expression[])
  Expression.ElementInit(MethodInfo, IEnumerable<Expression>)
  Expression.ElementInit(MethodInfo, params Expression[])
  Expression.Empty()
  Expression.Equal(Expression, Expression)
  Expression.Equal(Expression, Expression, bool, MethodInfo)
  Expression.ExclusiveOr(Expression, Expression)
  Expression.ExclusiveOr(Expression, Expression, MethodInfo)
  Expression.ExclusiveOrAssign(Expression, Expression)
  Expression.ExclusiveOrAssign(Expression, Expression, MethodInfo)
  Expression.ExclusiveOrAssign(Expression, Expression, MethodInfo, LambdaExpression)
  Expression.Field(Expression, FieldInfo)
  Expression.Field(Expression, string)
  Expression.Field(Expression, Type, string)
  Expression.GetActionType(params Type[])
  Expression.GetDelegateType(params Type[])
  Expression.GetFuncType(params Type[])
  Expression.Goto(LabelTarget)
  Expression.Goto(LabelTarget, Expression)
  Expression.Goto(LabelTarget, Expression, Type)
  Expression.Goto(LabelTarget, Type)
  Expression.GreaterThan(Expression, Expression)
  Expression.GreaterThan(Expression, Expression, bool, MethodInfo)
  Expression.GreaterThanOrEqual(Expression, Expression)
  Expression.GreaterThanOrEqual(Expression, Expression, bool, MethodInfo)
  Expression.IfThen(Expression, Expression)
  Expression.IfThenElse(Expression, Expression, Expression)
  Expression.Increment(Expression)
  Expression.Increment(Expression, MethodInfo)
  Expression.Invoke(Expression, IEnumerable<Expression>)
  Expression.Invoke(Expression, params Expression[])
  Expression.IsFalse(Expression)
  Expression.IsFalse(Expression, MethodInfo)
  Expression.IsTrue(Expression)
  Expression.IsTrue(Expression, MethodInfo)
  Expression.Label()
  Expression.Label(LabelTarget)
  Expression.Label(LabelTarget, Expression)
  Expression.Label(string)
  Expression.Label(Type)
  Expression.Label(Type, string)
  Expression.Lambda(Expression, bool, IEnumerable<ParameterExpression>)
  Expression.Lambda(Expression, bool, params ParameterExpression[])
  Expression.Lambda(Expression, IEnumerable<ParameterExpression>)
  Expression.Lambda(Expression, params ParameterExpression[])
  Expression.Lambda(Expression, string, bool, IEnumerable<ParameterExpression>)
  Expression.Lambda(Expression, string, IEnumerable<ParameterExpression>)
  Expression.Lambda(Type, Expression, bool, IEnumerable<ParameterExpression>)
  Expression.Lambda(Type, Expression, bool, params ParameterExpression[])
  Expression.Lambda(Type, Expression, IEnumerable<ParameterExpression>)
  Expression.Lambda(Type, Expression, params ParameterExpression[])
  Expression.Lambda(Type, Expression, string, bool, IEnumerable<ParameterExpression>)
  Expression.Lambda(Type, Expression, string, IEnumerable<ParameterExpression>)
  Expression.Lambda<TDelegate>(Expression, bool, IEnumerable<ParameterExpression>)
  Expression.Lambda<TDelegate>(Expression, bool, params ParameterExpression[])
  Expression.Lambda<TDelegate>(Expression, IEnumerable<ParameterExpression>)
  Expression.Lambda<TDelegate>(Expression, params ParameterExpression[])
  Expression.Lambda<TDelegate>(Expression, string, bool, IEnumerable<ParameterExpression>)
  Expression.Lambda<TDelegate>(Expression, string, IEnumerable<ParameterExpression>)
  Expression.LeftShift(Expression, Expression)
  Expression.LeftShift(Expression, Expression, MethodInfo)
  Expression.LeftShiftAssign(Expression, Expression)
  Expression.LeftShiftAssign(Expression, Expression, MethodInfo)
  Expression.LeftShiftAssign(Expression, Expression, MethodInfo, LambdaExpression)
  Expression.LessThan(Expression, Expression)
  Expression.LessThan(Expression, Expression, bool, MethodInfo)
  Expression.LessThanOrEqual(Expression, Expression)
  Expression.LessThanOrEqual(Expression, Expression, bool, MethodInfo)
  Expression.ListBind(MemberInfo, IEnumerable<ElementInit>)
  Expression.ListBind(MemberInfo, params ElementInit[])
  Expression.ListBind(MethodInfo, IEnumerable<ElementInit>)
  Expression.ListBind(MethodInfo, params ElementInit[])
  Expression.ListInit(NewExpression, IEnumerable<ElementInit>)
  Expression.ListInit(NewExpression, IEnumerable<Expression>)
  Expression.ListInit(NewExpression, params ElementInit[])
  Expression.ListInit(NewExpression, params Expression[])
  Expression.ListInit(NewExpression, MethodInfo, IEnumerable<Expression>)
  Expression.ListInit(NewExpression, MethodInfo, params Expression[])
  Expression.Loop(Expression)
  Expression.Loop(Expression, LabelTarget)
  Expression.Loop(Expression, LabelTarget, LabelTarget)
  Expression.MakeBinary(ExpressionType, Expression, Expression)
  Expression.MakeBinary(ExpressionType, Expression, Expression, bool, MethodInfo)
  Expression.MakeBinary(ExpressionType, Expression, Expression, bool, MethodInfo, LambdaExpression)
  Expression.MakeCatchBlock(Type, ParameterExpression, Expression, Expression)
  Expression.MakeDynamic(Type, CallSiteBinder, IEnumerable<Expression>)
  Expression.MakeDynamic(Type, CallSiteBinder, Expression)
  Expression.MakeDynamic(Type, CallSiteBinder, Expression, Expression)
  Expression.MakeDynamic(Type, CallSiteBinder, Expression, Expression, Expression)
  Expression.MakeDynamic(Type, CallSiteBinder, Expression, Expression, Expression, Expression)
  Expression.MakeDynamic(Type, CallSiteBinder, params Expression[])
  Expression.MakeGoto(GotoExpressionKind, LabelTarget, Expression, Type)
  Expression.MakeIndex(Expression, PropertyInfo, IEnumerable<Expression>)
  Expression.MakeMemberAccess(Expression, MemberInfo)
  Expression.MakeTry(Type, Expression, Expression, Expression, IEnumerable<CatchBlock>)
  Expression.MakeUnary(ExpressionType, Expression, Type)
  Expression.MakeUnary(ExpressionType, Expression, Type, MethodInfo)
  Expression.MemberBind(MemberInfo, IEnumerable<MemberBinding>)
  Expression.MemberBind(MemberInfo, params MemberBinding[])
  Expression.MemberBind(MethodInfo, IEnumerable<MemberBinding>)
  Expression.MemberBind(MethodInfo, params MemberBinding[])
  Expression.MemberInit(NewExpression, IEnumerable<MemberBinding>)
  Expression.MemberInit(NewExpression, params MemberBinding[])
  Expression.Modulo(Expression, Expression)
  Expression.Modulo(Expression, Expression, MethodInfo)
  Expression.ModuloAssign(Expression, Expression)
  Expression.ModuloAssign(Expression, Expression, MethodInfo)
  Expression.ModuloAssign(Expression, Expression, MethodInfo, LambdaExpression)
  Expression.Multiply(Expression, Expression)
  Expression.Multiply(Expression, Expression, MethodInfo)
  Expression.MultiplyAssign(Expression, Expression)
  Expression.MultiplyAssign(Expression, Expression, MethodInfo)
  Expression.MultiplyAssign(Expression, Expression, MethodInfo, LambdaExpression)
  Expression.MultiplyAssignChecked(Expression, Expression)
  Expression.MultiplyAssignChecked(Expression, Expression, MethodInfo)
  Expression.MultiplyAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)
  Expression.MultiplyChecked(Expression, Expression)
  Expression.MultiplyChecked(Expression, Expression, MethodInfo)
  Expression.Negate(Expression)
  Expression.Negate(Expression, MethodInfo)
  Expression.NegateChecked(Expression)
  Expression.NegateChecked(Expression, MethodInfo)
  Expression.New(ConstructorInfo)
  Expression.New(ConstructorInfo, IEnumerable<Expression>)
  Expression.New(ConstructorInfo, IEnumerable<Expression>, IEnumerable<MemberInfo>)
  Expression.New(ConstructorInfo, IEnumerable<Expression>, params MemberInfo[])
  Expression.New(ConstructorInfo, params Expression[])
  Expression.New(Type)
  Expression.NewArrayBounds(Type, IEnumerable<Expression>)
  Expression.NewArrayBounds(Type, params Expression[])
  Expression.NewArrayInit(Type, IEnumerable<Expression>)
  Expression.NewArrayInit(Type, params Expression[])
  Expression.Not(Expression)
  Expression.Not(Expression, MethodInfo)
  Expression.NotEqual(Expression, Expression)
  Expression.NotEqual(Expression, Expression, bool, MethodInfo)
  Expression.OnesComplement(Expression)
  Expression.OnesComplement(Expression, MethodInfo)
  Expression.Or(Expression, Expression)
  Expression.Or(Expression, Expression, MethodInfo)
  Expression.OrAssign(Expression, Expression)
  Expression.OrAssign(Expression, Expression, MethodInfo)
  Expression.OrAssign(Expression, Expression, MethodInfo, LambdaExpression)
  Expression.OrElse(Expression, Expression)
  Expression.OrElse(Expression, Expression, MethodInfo)
  Expression.Parameter(Type)
  Expression.Parameter(Type, string)
  Expression.PostDecrementAssign(Expression)
  Expression.PostDecrementAssign(Expression, MethodInfo)
  Expression.PostIncrementAssign(Expression)
  Expression.PostIncrementAssign(Expression, MethodInfo)
  Expression.Power(Expression, Expression)
  Expression.Power(Expression, Expression, MethodInfo)
  Expression.PowerAssign(Expression, Expression)
  Expression.PowerAssign(Expression, Expression, MethodInfo)
  Expression.PowerAssign(Expression, Expression, MethodInfo, LambdaExpression)
  Expression.PreDecrementAssign(Expression)
  Expression.PreDecrementAssign(Expression, MethodInfo)
  Expression.PreIncrementAssign(Expression)
  Expression.PreIncrementAssign(Expression, MethodInfo)
  Expression.Property(Expression, MethodInfo)
  Expression.Property(Expression, PropertyInfo)
  Expression.Property(Expression, PropertyInfo, IEnumerable<Expression>)
  Expression.Property(Expression, PropertyInfo, params Expression[])
  Expression.Property(Expression, string)
  Expression.Property(Expression, string, params Expression[])
  Expression.Property(Expression, Type, string)
  Expression.PropertyOrField(Expression, string)
  Expression.Quote(Expression)
  Expression.Reduce()
  Expression.ReduceAndCheck()
  Expression.ReduceExtensions()
  Expression.ReferenceEqual(Expression, Expression)
  Expression.ReferenceNotEqual(Expression, Expression)
  Expression.Rethrow()
  Expression.Rethrow(Type)
  Expression.Return(LabelTarget)
  Expression.Return(LabelTarget, Expression)
  Expression.Return(LabelTarget, Expression, Type)
  Expression.Return(LabelTarget, Type)
  Expression.RightShift(Expression, Expression)
  Expression.RightShift(Expression, Expression, MethodInfo)
  Expression.RightShiftAssign(Expression, Expression)
  Expression.RightShiftAssign(Expression, Expression, MethodInfo)
  Expression.RightShiftAssign(Expression, Expression, MethodInfo, LambdaExpression)
  Expression.RuntimeVariables(IEnumerable<ParameterExpression>)
  Expression.RuntimeVariables(params ParameterExpression[])
  Expression.Subtract(Expression, Expression)
  Expression.Subtract(Expression, Expression, MethodInfo)
  Expression.SubtractAssign(Expression, Expression)
  Expression.SubtractAssign(Expression, Expression, MethodInfo)
  Expression.SubtractAssign(Expression, Expression, MethodInfo, LambdaExpression)
  Expression.SubtractAssignChecked(Expression, Expression)
  Expression.SubtractAssignChecked(Expression, Expression, MethodInfo)
  Expression.SubtractAssignChecked(Expression, Expression, MethodInfo, LambdaExpression)
  Expression.SubtractChecked(Expression, Expression)
  Expression.SubtractChecked(Expression, Expression, MethodInfo)
  Expression.Switch(Expression, Expression, params SwitchCase[])
  Expression.Switch(Expression, Expression, MethodInfo, IEnumerable<SwitchCase>)
  Expression.Switch(Expression, Expression, MethodInfo, params SwitchCase[])
  Expression.Switch(Expression, params SwitchCase[])
  Expression.Switch(Type, Expression, Expression, MethodInfo, IEnumerable<SwitchCase>)
  Expression.Switch(Type, Expression, Expression, MethodInfo, params SwitchCase[])
  Expression.SwitchCase(Expression, IEnumerable<Expression>)
  Expression.SwitchCase(Expression, params Expression[])
  Expression.SymbolDocument(string)
  Expression.SymbolDocument(string, Guid)
  Expression.SymbolDocument(string, Guid, Guid)
  Expression.SymbolDocument(string, Guid, Guid, Guid)
  Expression.Throw(Expression)
  Expression.Throw(Expression, Type)
  Expression.ToString()
  Expression.TryCatch(Expression, params CatchBlock[])
  Expression.TryCatchFinally(Expression, Expression, params CatchBlock[])
  Expression.TryFault(Expression, Expression)
  Expression.TryFinally(Expression, Expression)
  Expression.TryGetActionType(Type[], out Type)
  Expression.TryGetFuncType(Type[], out Type)
  Expression.TypeAs(Expression, Type)
  Expression.TypeEqual(Expression, Type)
  Expression.TypeIs(Expression, Type)
  Expression.UnaryPlus(Expression)
  Expression.UnaryPlus(Expression, MethodInfo)
  Expression.Unbox(Expression, Type)
  Expression.Variable(Type)
  Expression.Variable(Type, string)
  Expression.CanReduce
  object.Equals(object, object)
  object.GetType()
  object.MemberwiseClone()
  object.ReferenceEquals(object, object)

## Remarks

This expression is just a TableValuedFunctionExpression, adding the ability to provide an explicit column name for its output (`SELECT * FROM unnest(array) AS f(foo)`). This is necessary since when the column name isn't explicitly specified, it is automatically identical to the table alias (`f` above); since the table alias may get uniquified by EF, this would break queries.

See unnest for more information and examples.

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

## Constructors

### PgTableValuedFunctionExpression(string, string, IReadOnlyList<SqlExpression>, IReadOnlyList<ColumnInfo>?, bool)

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

    public PgTableValuedFunctionExpression(string alias, string name, IReadOnlyList<SqlExpression> arguments, IReadOnlyList<PgTableValuedFunctionExpression.ColumnInfo>? columnInfos = null, bool withOrdinality = true)

#### Parameters

`alias` string
`name` string
`arguments` IReadOnlyList<SqlExpression>
`columnInfos` IReadOnlyList<PgTableValuedFunctionExpression.ColumnInfo>
`withOrdinality` bool

## Properties

### ColumnInfos

The name of the column to be projected out from the `unnest` call.

    public virtual IReadOnlyList<PgTableValuedFunctionExpression.ColumnInfo>? ColumnInfos { get; }

#### Property Value

IReadOnlyList<PgTableValuedFunctionExpression.ColumnInfo>

#### Remarks

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

### WithOrdinality

Whether to project an additional ordinality column containing the index of each element in the array.

    public virtual bool WithOrdinality { get; }

#### Property Value

bool

#### Remarks

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

## Methods

### Clone(string?, ExpressionVisitor)

Creates a new object that is a copy of the current instance.

    public override TableExpressionBase Clone(string? alias, ExpressionVisitor cloningExpressionVisitor)

#### Parameters

`alias` string

  The alias to be used by the cloned table.

`cloningExpressionVisitor` ExpressionVisitor

  The cloning expression for further visitation of nested nodes.

#### Returns

TableExpressionBase

  A new object that is a copy of this instance.

### Equals(PgTableValuedFunctionExpression?)

Indicates whether the current object is equal to another object of the same type.

    public bool Equals(PgTableValuedFunctionExpression? expression)

#### Parameters

`expression` PgTableValuedFunctionExpression

#### Returns

bool

  true if the current object is equal to the `other` parameter; otherwise, false.

### Equals(object?)

Determines whether the specified object is equal to the current object.

    public override bool Equals(object? obj)

#### Parameters

`obj` object

  The object to compare with the current object.

#### Returns

bool

  true if the specified object is equal to the current object; otherwise, false.

### GetHashCode()

Serves as the default hash function.

    public override int GetHashCode()

#### Returns

int

  A hash code for the current object.

### Print(ExpressionPrinter)

Creates a printable string representation of the given expression using ExpressionPrinter.

    protected override void Print(ExpressionPrinter expressionPrinter)

#### Parameters

`expressionPrinter` ExpressionPrinter

  The expression printer to use.

### Update(IReadOnlyList<SqlExpression>)

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

    public override PgTableValuedFunctionExpression Update(IReadOnlyList<SqlExpression> arguments)

#### Parameters

`arguments` IReadOnlyList<SqlExpression>

#### Returns

PgTableValuedFunctionExpression

### VisitChildren(ExpressionVisitor)

Reduces the node and then calls the visitor delegate on the reduced expression. The method throws an exception if the node is not reducible.

    protected override Expression VisitChildren(ExpressionVisitor visitor)

#### Parameters

`visitor` ExpressionVisitor

  An instance of Func<T, TResult>.

#### Returns

Expression

  The expression being visited, or an expression which should replace it in the tree.

### WithAlias(string)

Returns a copy of the current TableExpressionBase with the new provided alias.

    public override PgTableValuedFunctionExpression WithAlias(string newAlias)

#### Parameters

`newAlias` string

  The alias to apply to the returned TableExpressionBase.

#### Returns

PgTableValuedFunctionExpression

### WithColumnInfos(IReadOnlyList<ColumnInfo>)

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

    public virtual PgTableValuedFunctionExpression WithColumnInfos(IReadOnlyList<PgTableValuedFunctionExpression.ColumnInfo> columnInfos)

#### Parameters

`columnInfos` IReadOnlyList<PgTableValuedFunctionExpression.ColumnInfo>

#### Returns

PgTableValuedFunctionExpression