AEValueExpr Class Reference

An abstract base class for all value expressions such as +, -, and etc. More...

Inherits Simba::SQLEngine::AENode, and Simba::DSI::IColumn.

Inherited by AEBinaryExprT< AEValueExpr, AEBooleanExpr, AEValueExpr, AutoPtr< AEBooleanExpr >, SharedPtr< AEValueExpr > >, AEBinaryExprT< AEValueExpr, AEValueExpr, AEValueExpr, SharedPtr< AEValueExpr >, SharedPtr< AEValueExpr > >, AETerminalExprT< AEValueExpr >, AEUnaryExprT< AEValueExpr, AERelationalExpr >, AEUnaryExprT< AEValueExpr, AEValueExpr, SharedPtr< AEValueExpr > >, AECustomScalarFn, AEScalarFn, AESearchedCase, and AESimpleCase.

List of all members.

Public Member Functions

virtual AEValueExprClone () const =0
 Creates a clone of this node object.
virtual AutoPtr
< Simba::Support::IHasher
CreateHasher (simba_uint32 in_seed) const
 Create a hasher of the column that will be used by a hash-based join algorithm.
virtual const AEAggrFunctionGetAsAggrFunction () const
 Retrieves the object as an AEAggrFunction object.
virtual AEAggrFunctionGetAsAggrFunction ()
 Retrieves the object as an AEAggrFunction object.
virtual const AEBinaryValueExprGetAsBinaryValueExpr () const
 Retrieve this node as an AEBinaryValueExpr node.
virtual AEBinaryValueExprGetAsBinaryValueExpr ()
 Retrieve this node as an AEBinaryValueExpr node.
virtual const AEColumnGetAsColumn () const
 Get the object as an AEColumn object.
virtual AEColumnGetAsColumn ()
 Get the object as an AEColumn object.
virtual const
AECountStarAggrFunction
GetAsCountStarAggrFunction () const
 Get the object as an AECountStarAggrFunction object.
virtual AECountStarAggrFunctionGetAsCountStarAggrFunction ()
 Get the object as an AECountStarAggrFunction object.
virtual const AECustomAggregateFnGetAsCustomAggregateFn () const
 Retrieves the object as an AECustomAggregateFn object.
virtual AECustomAggregateFnGetAsCustomAggregateFn ()
 Retrieves the object as an AECustomAggregateFn object.
virtual const AECustomScalarFnGetAsCustomScalarFn () const
 Retrieves the object as an AECustomScalarFn object.
virtual AECustomScalarFnGetAsCustomScalarFn ()
 Retrieves the object as an AECustomScalarFn object.
virtual const AEDefaultGetAsDefault () const
 Get the object as an AEDefault object.
virtual AEDefaultGetAsDefault ()
 Get the object as an AEDefault object.
virtual const AEIntervalLiteralGetAsIntervalLiteral () const
 Retrieves the object as an AEIntervalLiteral object.
virtual AEIntervalLiteralGetAsIntervalLiteral ()
 Retrieves the object as an AEIntervalLiteral object.
virtual const AELiteralGetAsLiteral () const
 Retrieves the object as an AELiteral object.
virtual AELiteralGetAsLiteral ()
 Retrieves the object as an AELiteral object.
virtual const AEParameterGetAsParameter () const
 Retrieves the object as an AEParameter object.
virtual AEParameterGetAsParameter ()
 Retrieves the object as an AEParameter object.
virtual const AEProxyColumnGetAsProxyColumn () const
 Retrieves the object as an AEProxyColumn object.
virtual AEProxyColumnGetAsProxyColumn ()
 Retrieves the object as an AEProxyColumn object.
virtual const AEScalarFnGetAsScalarFn () const
 Retrieves the object as an AEScalarFn object.
virtual AEScalarFnGetAsScalarFn ()
 Retrieves the object as an AEScalarFn object.
virtual const AESearchedCaseGetAsSearchedCase () const
 Retrieves the object as an AESearchedCase object.
virtual AESearchedCaseGetAsSearchedCase ()
 Retrieves the object as an AESearchedCase object.
virtual const
AESearchedWhenClause
GetAsSearchedWhenClause () const
 Retrieves the object as an AESearchedWhenClause object.
virtual AESearchedWhenClauseGetAsSearchedWhenClause ()
 Retrieves the object as an AESearchedWhenClause object.
virtual const AESimpleCaseGetAsSimpleCase () const
 Retrieves the object as an AESimpleCase object.
virtual AESimpleCaseGetAsSimpleCase ()
 Retrieves the object as an AESimpleCase object.
virtual const AESimpleWhenClauseGetAsSimpleWhenClause () const
 Retrieves the object as an AESimpleWhenClause object.
virtual AESimpleWhenClauseGetAsSimpleWhenClause ()
 Retrieves the object as an AESimpleWhenClause object.
virtual const AEUnaryValueExprGetAsUnaryValueExpr () const
 Retrieve this node as an AEUnaryValueExpr node.
virtual AEUnaryValueExprGetAsUnaryValueExpr ()
 Retrieve this node as an AEUnaryValueExpr node.
virtual const AEValueExprGetAsValueExpr () const
 Retrieves the object as an AEValueExpr object.
virtual AEValueExprGetAsValueExpr ()
 Get the object as an AEValueExpr object.
virtual void GetCatalogName (simba_wstring &out_catalogName) const
 Retrieves the Catalog name.
virtual
Simba::DSI::DSICollatingCoercibility 
GetCollatingCoercibility () const
 Gets the collating coercibility of the column.
virtual SharedPtr
< Simba::DSI::ICollation
GetCollation () const
 Gets the collation of the column.
virtual const
Simba::DSI::DSIColumnMetadata
GetColumnMetadata () const
 Gets a reference to the DSIColumnMetadata describing the column.
virtual simba_uint32 GetColumnSize () const
 Retrieves the size for the column for character or binary data.
virtual void GetLabel (simba_wstring &out_label) const
 Retrieves the label of the column represented by this value expression.
ETValueExpr * GetMaterializedExpr () const
 Get the materialized ET value expression for this AE value expression.
virtual SqlTypeMetadataGetMetadata () const
 Returns a SqlTypeMetadata* describing the column.
virtual void GetName (simba_wstring &out_name) const
 Retrieves the name of the column represented by this value expression.
void GetQColName (AEQColumnName &out_qColName)
 Retrieve the qualified column name.
virtual void GetSchemaName (simba_wstring &out_schemaName) const
virtual
Simba::DSI::DSIColumnSearchable 
GetSearchable () const
 Indicates how the column can be used in a WHERE clause.
virtual void GetTableName (simba_wstring &out_tableName) const
 Retrieves the name of the table.
virtual
Simba::DSI::DSIColumnUpdatable 
GetUpdatable () const
 Describes whether the column is updatable in the result set.
virtual bool IsAutoUnique () const
 Indicates whether the column is auto-incrementing or not.
virtual bool IsBinaryValueExpr () const
 Determines if this is an AEBinaryValueExpr node.
virtual bool IsCaseSensitive () const
 Indicates whether the column is case sensitive.
bool IsDynamicParameterExpr () const
 To indicate if the value expression includes a dynamic parameter.
bool IsEquivalentToNull () const
 Retrieves the null equivalence flag of the value expression.
virtual Simba::DSI::DSINullable IsNullable () const
 Indicates whether the column may hold null data.
virtual bool IsSortable () const
 Indicates whether the column is sortable.
virtual bool IsUnaryValueExpr () const
 Determines if this is an AEUnaryValueExpr node.
virtual bool IsUnnamed () const
 Indicates whether the column contains a column alias or name.
virtual bool IsValueExpr () const
 Tells whether this is an AEValueExpr node.
virtual void LogColumn (ILogger *in_log) const
 Logs only the column name and its SQL type.
bool MatchName (const AEQColumnName &in_qColName, bool in_unquotedCaseSensitive, bool in_quotedCaseSensitive)
 Tells whether the given qualified column name matches that of this object.
void Release ()
 Decrease the reference count by 1.
void Retain ()
 Increase the reference count by 1.
void SetDynamicParameterExpr (bool in_isDynamicParameterExpr)
 Sets if the value expression is includes a dynamic parameter.
void SetMaterializedExpr (ETValueExpr *in_valueExpr)
 Set the materialized ET value expression for this AE value expression.
void SetName (const simba_wstring &in_name)
 Sets the name of the column represented by this value expression.
virtual bool UpdateMetadata (Simba::SQLEngine::DSIExtDataEngineContext *in_deContext)
 Updates the SqlTypeMetadata* describing the column, if needed.
virtual ~AEValueExpr ()
 Destructor.

Protected Member Functions

 AEValueExpr (const AEValueExpr &in_other)
 Copy constructor.
 AEValueExpr ()
 Constructor.
void SetIsEquivalentToNull (bool in_isEquivalentToNull)
 Sets the null equivalence flag of this value expression.

Protected Attributes

AutoPtr
< Simba::DSI::DSIColumnMetadata
m_colMetadata
 Metadata of this column. (OWN).
bool m_isDynamicParameterExpr
 Flag indicating if this node, or a child of this node, is a dynamic parameter.
bool m_isEquivalentToNull
AutoPtr< SqlTypeMetadatam_typeMetadata
 SqlTypeMetadata associated with this ValueExpr node. (OWN).

Detailed Description

An abstract base class for all value expressions such as +, -, and etc.

It models the <value expression> in the SQL-92 spec.

For a lot of value expressions, metadata for a column doesn't really apply. This class implements some of the IColumn functionality so that they return some "dummy" values or does nothing.

One thing particularly worth mentioning is that a result set from a SQL query will never have table name, schema, and catalog. A query like "select * from T" will only have column names but not a table name.

The list of end nodes which subclass AEValueExpr is:

Note that AEValueList is not itself an AEValueExpr, but always contains AEValueExprs.


Constructor & Destructor Documentation

virtual ~AEValueExpr (  )  [virtual]

Destructor.

AEValueExpr (  )  [protected]

Constructor.

AEValueExpr ( const AEValueExpr in_other  )  [protected]

Copy constructor.

To support "cloning". See Clone() method.

Parameters:
in_other The other node to create copy from.

Member Function Documentation

virtual AEValueExpr* Clone (  )  const [pure virtual]
virtual AutoPtr<Simba::Support::IHasher> CreateHasher ( simba_uint32  in_seed  )  const [virtual]

Create a hasher of the column that will be used by a hash-based join algorithm.

Parameters:
in_seed Random seed used for hashing.
Returns:
A hasher pointer of the column. Null if no hasher is created for this column.

Implements IColumn.

virtual const AEAggrFunction* GetAsAggrFunction (  )  const [virtual]

Retrieves the object as an AEAggrFunction object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AEAggrFunction object. (NOT OWN)

Reimplemented in AEAggrFunction.

virtual AEAggrFunction* GetAsAggrFunction (  )  [virtual]

Retrieves the object as an AEAggrFunction object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AEAggrFunction object. (NOT OWN)

Reimplemented in AEAggrFunction.

virtual const AEBinaryValueExpr* GetAsBinaryValueExpr (  )  const [virtual]

Retrieve this node as an AEBinaryValueExpr node.

This default implementation always throws an exception. The appropriate sub-class must override this method along with IsBinaryValueExpr().

Exceptions:
SEInvalidOperationException if this is not an AEBinaryValueExpr node.
Returns:
This node as an AEBinaryValueExpr node. (NOT OWN)
virtual AEBinaryValueExpr* GetAsBinaryValueExpr (  )  [virtual]

Retrieve this node as an AEBinaryValueExpr node.

This default implementation always throws an exception. The appropriate sub-class must override this method along with IsBinaryValueExpr().

Exceptions:
SEInvalidOperationException if this is not an AEBinaryValueExpr node.
Returns:
This node as an AEBinaryValueExpr node. (NOT OWN)
virtual const AEColumn* GetAsColumn (  )  const [virtual]

Get the object as an AEColumn object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AEColumn object. (NOT OWN)

Reimplemented in AEColumn.

virtual AEColumn* GetAsColumn (  )  [virtual]

Get the object as an AEColumn object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AEColumn object. (NOT OWN)

Reimplemented in AEColumn.

virtual const AECountStarAggrFunction* GetAsCountStarAggrFunction (  )  const [virtual]

Get the object as an AECountStarAggrFunction object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AECountStarAggrFunction object. (NOT OWN)

Reimplemented in AECountStarAggrFunction.

virtual AECountStarAggrFunction* GetAsCountStarAggrFunction (  )  [virtual]

Get the object as an AECountStarAggrFunction object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AECountStarAggrFunction object. (NOT OWN)

Reimplemented in AECountStarAggrFunction.

virtual const AECustomAggregateFn* GetAsCustomAggregateFn (  )  const [virtual]

Retrieves the object as an AECustomAggregateFn object.

Overrides the method defined in AEValueExpr.

Returns:
This object as an AECustomAggregateFn object. (NOT OWN)

Reimplemented in AECustomAggregateFn.

virtual AECustomAggregateFn* GetAsCustomAggregateFn (  )  [virtual]

Retrieves the object as an AECustomAggregateFn object.

Overrides the method defined in AEValueExpr.

Returns:
This object as an AECustomAggregateFn object. (NOT OWN)

Reimplemented in AECustomAggregateFn.

virtual const AECustomScalarFn* GetAsCustomScalarFn (  )  const [virtual]

Retrieves the object as an AECustomScalarFn object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AECustomScalarFn object. (NOT OWN)

Reimplemented in AECustomScalarFn.

virtual AECustomScalarFn* GetAsCustomScalarFn (  )  [virtual]

Retrieves the object as an AECustomScalarFn object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AECustomScalarFn object. (NOT OWN)

Reimplemented in AECustomScalarFn.

virtual const AEDefault* GetAsDefault (  )  const [virtual]

Get the object as an AEDefault object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AEDefault object. (NOT OWN)

Reimplemented in AEDefault.

virtual AEDefault* GetAsDefault (  )  [virtual]

Get the object as an AEDefault object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AEDefault object. (NOT OWN)

Reimplemented in AEDefault.

virtual const AEIntervalLiteral* GetAsIntervalLiteral (  )  const [virtual]

Retrieves the object as an AEIntervalLiteral object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AEIntervalLiteral object. (NOT OWN)

Reimplemented in AEIntervalLiteral.

virtual AEIntervalLiteral* GetAsIntervalLiteral (  )  [virtual]

Retrieves the object as an AEIntervalLiteral object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AEIntervalLiteral object. (NOT OWN)

Reimplemented in AEIntervalLiteral.

virtual const AELiteral* GetAsLiteral (  )  const [virtual]

Retrieves the object as an AELiteral object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AELiteral object. (NOT OWN)

Reimplemented in AELiteral.

virtual AELiteral* GetAsLiteral (  )  [virtual]

Retrieves the object as an AELiteral object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AELiteral object. (NOT OWN)

Reimplemented in AELiteral.

virtual const AEParameter* GetAsParameter (  )  const [virtual]

Retrieves the object as an AEParameter object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AEParameter object. (NOT OWN)

Reimplemented in AEParameter.

virtual AEParameter* GetAsParameter (  )  [virtual]

Retrieves the object as an AEParameter object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AEParameter object. (NOT OWN)

Reimplemented in AEParameter.

virtual const AEProxyColumn* GetAsProxyColumn (  )  const [virtual]

Retrieves the object as an AEProxyColumn object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AEProxyColumn object. (NOT OWN)

Reimplemented in AEProxyColumn.

virtual AEProxyColumn* GetAsProxyColumn (  )  [virtual]

Retrieves the object as an AEProxyColumn object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AEProxyColumn object. (NOT OWN)

Reimplemented in AEProxyColumn.

virtual const AEScalarFn* GetAsScalarFn (  )  const [virtual]

Retrieves the object as an AEScalarFn object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AEScalarFn object. (NOT OWN)

Reimplemented in AEScalarFn.

virtual AEScalarFn* GetAsScalarFn (  )  [virtual]

Retrieves the object as an AEScalarFn object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AEScalarFn object. (NOT OWN)

Reimplemented in AEScalarFn.

virtual const AESearchedCase* GetAsSearchedCase (  )  const [virtual]

Retrieves the object as an AESearchedCase object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AESearchedCase object. (NOT OWN)

Reimplemented in AESearchedCase.

virtual AESearchedCase* GetAsSearchedCase (  )  [virtual]

Retrieves the object as an AESearchedCase object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AESearchedCase object. (NOT OWN)

Reimplemented in AESearchedCase.

virtual const AESearchedWhenClause* GetAsSearchedWhenClause (  )  const [virtual]

Retrieves the object as an AESearchedWhenClause object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AESearchedWhenClause object. (NOT OWN)

Reimplemented in AESearchedWhenClause.

virtual AESearchedWhenClause* GetAsSearchedWhenClause (  )  [virtual]

Retrieves the object as an AESearchedWhenClause object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AESearchedWhenClause object. (NOT OWN)

Reimplemented in AESearchedWhenClause.

virtual const AESimpleCase* GetAsSimpleCase (  )  const [virtual]

Retrieves the object as an AESimpleCase object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AESimpleCase object. (NOT OWN)

Reimplemented in AESimpleCase.

virtual AESimpleCase* GetAsSimpleCase (  )  [virtual]

Retrieves the object as an AESimpleCase object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AESimpleCase object. (NOT OWN)

Reimplemented in AESimpleCase.

virtual const AESimpleWhenClause* GetAsSimpleWhenClause (  )  const [virtual]

Retrieves the object as an AESimpleWhenClause object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AESimpleWhenClause object. (NOT OWN)
virtual AESimpleWhenClause* GetAsSimpleWhenClause (  )  [virtual]

Retrieves the object as an AESimpleWhenClause object.

This default implementation always throws an exception. The appropriate sub-class must override this method.

Exceptions:
SEInvalidOperationException if this object is not of expected type.
Returns:
This object as an AESimpleWhenClause object. (NOT OWN)
virtual const AEUnaryValueExpr* GetAsUnaryValueExpr (  )  const [virtual]

Retrieve this node as an AEUnaryValueExpr node.

This default implementation always throws an exception. The appropriate sub-class must override this method along with IsUnaryValueExpr().

Exceptions:
SEInvalidOperationException if this is not an AEUnaryValueExpr node.
Returns:
This node as an AEUnaryValueExpr node. (NOT OWN)

Reimplemented in AEUnaryValueExpr.

virtual AEUnaryValueExpr* GetAsUnaryValueExpr (  )  [virtual]

Retrieve this node as an AEUnaryValueExpr node.

This default implementation always throws an exception. The appropriate sub-class must override this method along with IsUnaryValueExpr().

Exceptions:
SEInvalidOperationException if this is not an AEUnaryValueExpr node.
Returns:
This node as an AEUnaryValueExpr node. (NOT OWN)

Reimplemented in AEUnaryValueExpr.

virtual const AEValueExpr* GetAsValueExpr (  )  const [virtual]

Retrieves the object as an AEValueExpr object.

Overrides the method defined in AENode. Sub-classes must _NOT_ override this method again.

Returns:
This object as an AEValueExpr object. (NOT OWN)

Reimplemented from AENode.

virtual AEValueExpr* GetAsValueExpr (  )  [virtual]

Get the object as an AEValueExpr object.

Overrides the method defined in AENode. Sub-classes must _NOT_ override this method again.

Returns:
This object as an AEValueExpr object. (NOT OWN)

Reimplemented from AENode.

virtual void GetCatalogName ( simba_wstring out_catalogName  )  const [virtual]

Retrieves the Catalog name.

Parameters:
out_catalogName The output catalog name for the value expression.

Implements IColumn.

Reimplemented in AEColumn, and AEProxyColumn.

virtual Simba::DSI::DSICollatingCoercibility GetCollatingCoercibility (  )  const [virtual]

Gets the collating coercibility of the column.

Returns:
An enum that specifies the coercibility of the column.

Implements IColumn.

Reimplemented in AEColumn, AEProxyColumn, and AEUnaryValueExpr.

virtual SharedPtr<Simba::DSI::ICollation> GetCollation (  )  const [virtual]

Gets the collation of the column.

Returns:
The collation of the column.

Implements IColumn.

Reimplemented in AEColumn, AEProxyColumn, and AEUnaryValueExpr.

virtual const Simba::DSI::DSIColumnMetadata& GetColumnMetadata (  )  const [virtual]

Gets a reference to the DSIColumnMetadata describing the column.

Returns:
Reference to the DSIColumnMetadata describing the column.

Implements IColumn.

Reimplemented in AEAggrFunction, AEColumn, AEProxyColumn, AESearchedCase, AESearchedWhenClause, and AEUnaryValueExpr.

virtual simba_uint32 GetColumnSize (  )  const [virtual]

Retrieves the size for the column for character or binary data.

For character data, this size should be in terms of the number of characters, not the number of bytes.

For example, VARCHAR(10) and NVARCHAR(10) would both correspond to size of 10, even if NVARCHAR used 2 bytes per character.

This method is not used for non-character/binary data types.

Returns:
The size of the column for character or binary data.

Implements IColumn.

Reimplemented in AEAggrFunction, AEColumn, AEIntervalLiteral, AEProxyColumn, and AEUnaryValueExpr.

virtual void GetLabel ( simba_wstring out_label  )  const [virtual]

Retrieves the label of the column represented by this value expression.

Parameters:
out_label The output label for the value expression.

Implements IColumn.

Reimplemented in AEColumn, and AEProxyColumn.

ETValueExpr* GetMaterializedExpr (  )  const [inline]

Get the materialized ET value expression for this AE value expression.

Returns:
the materialized ET value expression for this AE value expression if that's available, NULL otherwise.
virtual SqlTypeMetadata* GetMetadata (  )  const [virtual]

Returns a SqlTypeMetadata* describing the column.

Exceptions:
throws SEInvalidOperationException when SqlTypeMetadata is null
Returns:
The SqlTypeMetadata for this ValueExpr node. (NOT OWN)

Implements IColumn.

Reimplemented in AEAggrFunction, AEColumn, AECountStarAggrFunction, AECustomAggregateFn, AEDefault, AENull, AEParameter, AEProxyColumn, AESearchedCase, AESearchedWhenClause, and AEUnaryValueExpr.

virtual void GetName ( simba_wstring out_name  )  const [virtual]

Retrieves the name of the column represented by this value expression.

Parameters:
out_name The output name for the value expression.

Implements IColumn.

Reimplemented in AEColumn, and AEProxyColumn.

void GetQColName ( AEQColumnName out_qColName  ) 

Retrieve the qualified column name.

Parameters:
out_qColName The output qualified column name.
virtual void GetSchemaName ( simba_wstring out_schemaName  )  const [virtual]

This function returns the Schema name.

Parameters:
out_schemaName The output schema name for the value expression.

Implements IColumn.

Reimplemented in AEColumn, and AEProxyColumn.

virtual Simba::DSI::DSIColumnSearchable GetSearchable (  )  const [virtual]

Indicates how the column can be used in a WHERE clause.

Returns:
The DSIColumnSearchable value describing how the column can be used in a WHERE clause.

Implements IColumn.

Reimplemented in AEColumn, AEProxyColumn, and AEUnaryValueExpr.

virtual void GetTableName ( simba_wstring out_tableName  )  const [virtual]

Retrieves the name of the table.

Parameters:
out_tableName The output table name for the value expression.

Implements IColumn.

Reimplemented in AEColumn, and AEProxyColumn.

virtual Simba::DSI::DSIColumnUpdatable GetUpdatable (  )  const [virtual]

Describes whether the column is updatable in the result set.

This default implementation returns DSI_READ_ONLY.

Implements IColumn.

Reimplemented in AEColumn, and AEProxyColumn.

virtual bool IsAutoUnique (  )  const [virtual]

Indicates whether the column is auto-incrementing or not.

Returns:
True if the column is auto-incrementing; false otherwise.

Implements IColumn.

Reimplemented in AEColumn, AEProxyColumn, and AEUnaryValueExpr.

virtual bool IsBinaryValueExpr (  )  const [virtual]

Determines if this is an AEBinaryValueExpr node.

This default implementation always returns false. The appropriate sub-class must override this method along with GetAsBinaryValueExpr().

Returns:
True if this is an AEBinaryValueExpr node, false otherwise.
virtual bool IsCaseSensitive (  )  const [virtual]

Indicates whether the column is case sensitive.

Returns:
True if the column is case sensitive; false otherwise.

Implements IColumn.

Reimplemented in AEColumn, AEProxyColumn, and AEUnaryValueExpr.

bool IsDynamicParameterExpr (  )  const [inline]

To indicate if the value expression includes a dynamic parameter.

Returns:
true if the expression includes a dynamic parameter; false otherwise.
bool IsEquivalentToNull (  )  const [inline]

Retrieves the null equivalence flag of the value expression.

Returns:
True if this value expression is equivalent to null. False otherwise
virtual Simba::DSI::DSINullable IsNullable (  )  const [virtual]

Indicates whether the column may hold null data.

Returns:
The DSIColumnNullable value, which indicates whether the column may hold null data.

Implements IColumn.

Reimplemented in AEColumn, AEProxyColumn, and AEUnaryValueExpr.

virtual bool IsSortable (  )  const [virtual]

Indicates whether the column is sortable.

Returns:
True if the column is sortable.

Implements IColumn.

Reimplemented in AEColumn, and AEProxyColumn.

virtual bool IsUnaryValueExpr (  )  const [virtual]

Determines if this is an AEUnaryValueExpr node.

This default implementation always returns false. The appropriate sub-class must override this method along with GetAsUnaryValueExpr().

Returns:
True if this is an AEUnaryValueExpr node, false otherwise.

Reimplemented in AEUnaryValueExpr.

virtual bool IsUnnamed (  )  const [virtual]

Indicates whether the column contains a column alias or name.

This default implementation return false since most of the value expressions have neither a label nor a name.

Implements IColumn.

Reimplemented in AEColumn, and AEProxyColumn.

virtual bool IsValueExpr (  )  const [virtual]

Tells whether this is an AEValueExpr node.

Overrides the method defined in AENode. Sub-classes must _NOT_ override this method again.

Returns:
True if this is an AEValueExpr node, false otherwise.

Reimplemented from AENode.

virtual void LogColumn ( ILogger in_log  )  const [virtual]

Logs only the column name and its SQL type.

Parameters:
in_log A pointer to a logger. (NOT OWN)

Implements IColumn.

bool MatchName ( const AEQColumnName in_qColName,
bool  in_unquotedCaseSensitive,
bool  in_quotedCaseSensitive 
)

Tells whether the given qualified column name matches that of this object.

Parameters:
in_qColName The column name to match.
in_unquotedCaseSensitive Whether the comparison for unquoted symbols should be case-sensitive.
in_quotedCaseSensitive Whether the comparison for quoted symbols should be case-sensitive.
Returns:
true if the given column name matches that of this expression, false otherwise.
void Release (  )  [inline]

Decrease the reference count by 1.

This is part of the API to "qualify" as a shared object to be managed by SharedPtr. This default implementation is not thread-safe.

NOTE: This function is required since AEValueExpr is a type of object that is managed by SharedPtr. Refer to SharedPtr.h for more information.

WARNING: This method is designed to be used by SharedPtr only. Never call this method directly.

void Retain (  )  [inline]

Increase the reference count by 1.

This is part of the API to "qualify" as a shared object to be managed by SharedPtr. This default implementation is not thread-safe.

NOTE: This function is required since AEValueExpr is a type of object that is managed by SharedPtr. Refer to SharedPtr.h for more information.

WARNING: This method is designed to be used by SharedPtr only. Never call this method directly.

void SetDynamicParameterExpr ( bool  in_isDynamicParameterExpr  ) 

Sets if the value expression is includes a dynamic parameter.

This will cascade to the children of the value expression as well.

Parameters:
in_isDynamicParameterExpr true if the expression includes a dynamic parameter; false otherwise.
void SetIsEquivalentToNull ( bool  in_isEquivalentToNull  )  [inline, protected]

Sets the null equivalence flag of this value expression.

Parameters:
in_isNullValue True if the value expression unconditionally evaluates to null. False otherwise
void SetMaterializedExpr ( ETValueExpr *  in_valueExpr  )  [inline]

Set the materialized ET value expression for this AE value expression.

Parameters:
in_valueExpr The materialized ET value expression for this expression.
void SetName ( const simba_wstring in_name  ) 

Sets the name of the column represented by this value expression.

Parameters:
in_name The name for the value expression.

Reimplemented in AERename.

virtual bool UpdateMetadata ( Simba::SQLEngine::DSIExtDataEngineContext in_deContext  )  [virtual]

Updates the SqlTypeMetadata* describing the column, if needed.

Parameters:
in_deContext The current DataEngine context. (NOT OWN)
Returns:
true if the metadata was updated; false otherwise.

Reimplemented in AECustomAggregateFn, AECustomScalarFn, and AEScalarFn.


Member Data Documentation

Metadata of this column. (OWN).

bool m_isDynamicParameterExpr [protected]

Flag indicating if this node, or a child of this node, is a dynamic parameter.

bool m_isEquivalentToNull [protected]
AutoPtr<SqlTypeMetadata> m_typeMetadata [mutable, protected]

SqlTypeMetadata associated with this ValueExpr node. (OWN).


The documentation for this class was generated from the following file:

Generated on Wed May 17 14:21:17 2017 for SimbaEngine 10.1.3.1011 by simba