text: //---------------------------------------------------------------------------
  //	Greenplum Database
  //	Copyright (C) 2014 Pivotal, Inc.
  //
  //	@filename:
  //		CDXLPhysicalDynamicBitmapTableScan.cpp
  //
  //	@doc:
  //		Class for representing DXL bitmap table scan operators.
  //---------------------------------------------------------------------------
  
  #include "naucrates/dxl/operators/CDXLPhysicalDynamicBitmapTableScan.h"
  
  #include "naucrates/dxl/operators/CDXLNode.h"
  #include "naucrates/dxl/operators/CDXLTableDescr.h"
  #include "naucrates/dxl/xml/CXMLSerializer.h"
  #include "naucrates/dxl/xml/dxltokens.h"
  
  using namespace gpdxl;
  using namespace gpos;
  
  //---------------------------------------------------------------------------
  //	@function:
  //		CDXLPhysicalDynamicBitmapTableScan::GetOpNameStr
  //
  //	@doc:
  //		Operator name
  //
  //---------------------------------------------------------------------------
  const CWStringConst *
  CDXLPhysicalDynamicBitmapTableScan::GetOpNameStr() const
  {
  	return CDXLTokens::GetDXLTokenStr(EdxltokenPhysicalDynamicBitmapTableScan);
  }
  
  //---------------------------------------------------------------------------
  //	@function:
  //		CDXLPhysicalDynamicBitmapTableScan::SerializeToDXL
  //
  //	@doc:
  //		Serialize operator in DXL format
  //
  //---------------------------------------------------------------------------
  void
  CDXLPhysicalDynamicBitmapTableScan::SerializeToDXL(
  	CXMLSerializer *xml_serializer, const CDXLNode *node) const
  {
  	const CWStringConst *element_name = GetOpNameStr();
  	xml_serializer->OpenElement(
  		CDXLTokens::GetDXLTokenStr(EdxltokenNamespacePrefix), element_name);
  
  	xml_serializer->AddAttribute(
  		CDXLTokens::GetDXLTokenStr(EdxltokenPartIndexId), m_part_index_id);
  	if (m_part_index_id_printable != m_part_index_id)
  	{
  		xml_serializer->AddAttribute(
  			CDXLTokens::GetDXLTokenStr(EdxltokenPartIndexIdPrintable),
  			m_part_index_id_printable);
  	}
  	node->SerializePropertiesToDXL(xml_serializer);
  	node->SerializeChildrenToDXL(xml_serializer);
  	m_dxl_table_descr->SerializeToDXL(xml_serializer);
  
  	xml_serializer->CloseElement(
  		CDXLTokens::GetDXLTokenStr(EdxltokenNamespacePrefix), element_name);
  }
  
  // EOF
  