const NAString 
ElemDDLFileAttrMVCommitEach::displayLabel1() const
{
  char buffer[80];
  sprintf(buffer, "%d", getNRows());
  return NAString("nrows:         ") + NAString(buffer);
}
const NAString
ElemDDLFileAttrLockLength::displayLabel1() const
{
  char buffer[80];
  sprintf(buffer, "%d", getLockLength());
  return NAString("Lock length: ") + NAString(buffer);
}
const NAString
ElemDDLFileAttrAllocate::displayLabel1() const
{
  char buffer[80];
  sprintf(buffer, "%d", getExtentsToAllocate());
  return NAString("Allocate Extents: ") + NAString(buffer);
}
const NAString
ElemDDLFileAttrMaxSize::displayLabel2() const
{
  char buffer[80];
  sprintf(buffer, "%d", getMaxSize());
  return NAString("Size:         ") + NAString(buffer);
}
const NAString
ElemDDLFileAttrBlockSize::displayLabel1() const
{
  char buffer[80];
  sprintf(buffer, "%d", getBlockSize());
  return NAString("Block size: ") + NAString(buffer);
}
const NAString
ElemDDLPartitionRange::displayLabel1() const
{
  if (getLocationName().length() NEQ 0)
    return NAString("Location name: ") + getLocationName();
  else
    return NAString("Location name not specified.");
}
const NAString
ElemDDLConstraint::displayLabel1() const
{
  if (getConstraintName().length() NEQ 0)
    return NAString("Constraint name: ") + getConstraintName();
  else
    return NAString("Constraint name not specified.");
}
const NAString
ElemDDLLike::displayLabel1() const
{
  if (getSourceTableName().length() NEQ 0)
    return NAString("Source table name: ") + getSourceTableName();
  else
    return NAString();
}
const NAString
StmtDDLRegisterComponent::displayLabel2() const
{
    if (NOT getRegisterComponentDetailInfo().isNull())
    {
        return NAString("Detail Information: ") + getRegisterComponentDetailInfo();
    }
    else
    {
        return NAString("No Detail Information (i.e., an empty string).");
    }
}
Beispiel #10
0
NABoolean HHDFSTableStats::splitLocation(const char *tableLocation,
                                         NAString &hdfsHost,
                                         Int32 &hdfsPort,
                                         NAString &tableDir)
{
  NABoolean result = TRUE;
  // split the location into host and file name, proto://host/file,
  // split point is at the third slash in the URL
  const char *c = tableLocation;
  const char *hostMark = NULL;
  const char *portMark = NULL;
  const char *dirMark  = NULL;
  int numSlashes = 0;
  int numColons = 0;
  while (*c && dirMark == NULL)
    {
      if (*c == '/')
        numSlashes++;
      else if (*c == ':')
        numColons++;
      c++;

      if (hostMark == NULL && numSlashes == 2)
        hostMark = c;
      else if (portMark == NULL && hostMark && numColons == 2)
        portMark = c;
      else if (numSlashes == 3 ||                         // regular URL
               (numSlashes == 1 && c == tableLocation+1)) // just a file name
        dirMark = c-1; // include the leading slash
    }

  if (dirMark == NULL)
    {
      CMPASSERT(dirMark != NULL);
      // TBD:DIAGS
      result = FALSE;
    }
  else
    {
      if (hostMark)
        hdfsHost    = NAString(hostMark, (portMark ? portMark-hostMark-1
                                                    : dirMark-hostMark));
      if (hdfsPortOverride_ > -1)
        hdfsPort    = hdfsPortOverride_;
      else
        if (portMark)
          hdfsPort  = atoi(portMark);
        else
          hdfsPort  = 0;
      tableDir      = NAString(dirMark);
    }
  return result;
}
const NAString
ElemDDLPartitionSystem::displayLabel3() const
{
  if (NOT getLocationName().isNull())
  {
    return NAString("Partition name: ") + getPartitionName();
  }
  else
  {
    return NAString("Partition name not specified.");
  }
}
const NAString
ElemDDLColViewDef::displayLabel2() const
{
  if (isHeadingSpecified())
  {
    return NAString("Heading:   ") + getHeading();
  }
  else
  {
    return NAString("Heading not spec.");
  }
}
const NAString
ElemDDLColDefault::displayLabel2() const
{
  if (getColumnDefaultType() EQU COL_DEFAULT)
  {
    return (NAString("Default value: ") +
            getDefaultValueExpr()->getText());
  }
  else
  {
    return NAString();
  }
}
const NAString
ElemDDLColHeading::displayLabel2() const
{
  switch (getColumnHeadingType())
  {
  case COL_HEADING :
    return NAString("Heading: ") + getColumnHeading();
  case COL_NO_HEADING :
    return NAString();
  default :
    ABORT("internal logic error");
    return NAString();
  }
}
const NAString
ElemDDLColDefault::displayLabel1() const
{
  switch (getColumnDefaultType())
  {
  case COL_DEFAULT :
    return NAString("Type: Default");
  case COL_NO_DEFAULT :
    return NAString("Type: No Default");
  default :
    ABORT("internal logic error");
    return NAString();
  }
}
Beispiel #16
0
static NABoolean splitURL(const char *url,
                          NAString &host,
                          Int32 &port,
                          NAString &options)
{
  NABoolean result = TRUE;
  // split the url into host and file name, proto://host:port/file,
  // split point is at the third slash in the URL
  const char *c = url;
  const char *hostMark = NULL;
  const char *portMark = NULL;
  const char *dirMark  = NULL;
  int numSlashes = 0;
  int numColons = 0;
  while (*c && dirMark == NULL)
    {
      if (*c == '/')
        numSlashes++;
      else if (*c == ':')
        numColons++;
      c++;

      if (hostMark == NULL && numSlashes == 2)
        hostMark = c;
      else if (portMark == NULL && hostMark && numColons == 2)
        portMark = c;
      else if (numSlashes == 3 ||                         // regular URL
               (numSlashes == 1 && c == url+1)) // just a file name
        dirMark = c-1; // include the leading slash
    }

  if (dirMark == NULL)
    {
      dirMark = c; // point to end of string
      options = "";
    }
  else
    options = NAString(dirMark);

  if (hostMark)
    host = NAString(hostMark, (portMark ? portMark-hostMark-1
                                        : dirMark-hostMark));
  if (portMark)
    port = atoi(portMark);
  else
    port = 0;

  return result;
}
const NAString
ElemDDLPartitionRange::displayLabel2() const
{
  ElemDDLLocation location(getLocationNameType(), getLocationName());
  return (NAString("Location name type: ") +
          location.getLocationNameTypeAsNAString());
}
NAString
ElemDDLPartitionSystem::getOptionAsNAString() const
{
  switch (getOption())
  {
  case ADD_OPTION :
    return NAString("ADD");

  case DROP_OPTION :
    return NAString("DROP");
      
  default :
    ABORT("internal logic error");
    return NAString();
  }
}
//## inline?
const NAString CorrName::getText() const
{
  NAString result = getExtendedQualNameObj().getText();
  if (getCorrNameAsString() != "")
    result += NAString(" ") + ToAnsiIdentifier(getCorrNameAsString());
  return result;
}
NAString
ElemDDLConstraintRI::getMatchTypeAsNAString() const
{
  switch (getMatchType())
  {
  case COM_NONE_MATCH_OPTION :
    return NAString("Match phrase not specified");
  case COM_FULL_MATCH_OPTION :
    return NAString("MATCH FULL");
  case COM_PARTIAL_MATCH_OPTION :
    return NAString("MATCH PARTIAL");
  default :
    ABORT("internal logic error");
    return NAString();
  }
}
// warning elimination (removed "inline")
static NAString makeTableName(const NATable *table,
			      const TrafColumnsDesc *column_desc)
{
  return NAString(
       table ?
       table->getTableName().getQualifiedNameAsAnsiString().data() : "");
}
Beispiel #22
0
void MvQueryRewriteHandler::dumpAnalysisToFile(QueryAnalysis* qa, RelExpr* expr)
{
  // Dump the QueryAnalysis data to a file.
  NAString analysisFileName = fileNamePrefix_ + ".analysis";
  NAString str;
  expr->unparse(str, OPTIMIZER_PHASE, MVINFO_FORMAT);
  str += "\n";
  str += qa->getText();

  // Add in some stuff to look at join predicates for the JBBCs.
  str += "Join Predicates\n";
  str += "===============";
  char buffer[20];
  ARRAY(JBB*) jbbs = qa->getJBBs();
  for (CollIndex jbbInx = 0; jbbInx < jbbs.entries(); jbbInx++)
    {
      JBB* jbb = jbbs[jbbInx];
      str_itoa(jbbInx, buffer);
      ((str += "\nJBB #") += NAString(buffer)) += ":\n";
      CANodeIdSet jbbcs = jbb->getJBBCs();
      for (CANodeId jbbcId=jbbcs.init();  jbbcs.next(jbbcId); jbbcs.advance(jbbcId) )
      {
        str_itoa(jbbcId, buffer);
        ((str += "\nJBBC with CANodeId ") += NAString(buffer)) += ":\n";
        ValueIdSet joinPreds = jbbcId.getNodeAnalysis()->getJBBC()->getJoinPreds();
        str += valueIdSetGetText(joinPreds);
        if (joinPreds.entries() > 0)
          {
            str.append("\n(value ids of predicates are ");
            NABoolean first = true;
            for (ValueId jpVid=joinPreds.init(); joinPreds.next(jpVid); joinPreds.advance(jpVid))
              {
                if (first)
                  first = FALSE;
                else
                  str.append(", ");
                str_itoa(jpVid, buffer);
                str.append(buffer);
              }
            str.append(")\n");
          }
      }
      str += '\n';
    }

  dumpToFile(analysisFileName.data(), str.data());
}  // dumpAnalysisToFile()
Beispiel #23
0
static NAString timeStamp()
{
  time_t tp;
  tp = time(NULL);
  char str[256];
  sprintf(str, "%u", (UInt32)tp);  // take lower 4 bytes as unique value
  return NAString(str);
}
//
// given a size unit enumerated constant,
// return an appropriate NAString.
//
NAString
ElemDDLFileAttr::convertSizeUnitToNAString(ComUnits sizeUnit) const
{
  switch (sizeUnit)
  {
  case COM_BYTES :
    return NAString(COM_BYTES_LIT);
  case COM_GBYTES :
    return NAString(COM_GBYTES_LIT);
  case COM_KBYTES :
    return NAString(COM_KBYTES_LIT);
  case COM_MBYTES :
    return NAString(COM_MBYTES_LIT);
  default :
    ABORT("internal logic error");
    return NAString();
  }
}
// warning elimination (removed "inline")
static NAString makeTableName(const NATable *table,
			      const columns_desc_struct *column_desc)
{
  return NAString(
	      table ?
		table->getTableName().getQualifiedNameAsAnsiString().data() :
	      column_desc->tablename ?
		column_desc->tablename : "");
}
NABoolean StmtModule::unparse(NAString &result, NABoolean wantR18behavior)
{
  NABoolean err = applyDefaults(wantR18behavior);

  result += NAString("MODULE ") + 
            name().getQualifiedNameAsAnsiNTFilenameString() +
  	    " NAMES ARE " + charSet() + ";";

  return err;
}
// ****************************************************************************
// method: getListOfDirectlyReferencedObjects
//
// Returns a list of objects that are being directly referenced by the passed 
// in objectUID
//
// Parameters:
//    cliInterface - used to get the list of object usages
//    objectUID - the UID being processed
//    objectList - a list of objectRefdByMe structures describing each usage
//
// returns:
//    0 - successful
//   -1 - unexpected error occurred
// ****************************************************************************
short CmpSeabaseDDL::getListOfDirectlyReferencedObjects (
  ExeCliInterface *cliInterface,
  const Int64 objectUID,
  NAList<objectRefdByMe> &objectsList)
{
  // Select all the rows from views_usage associated with the passed in
  // objectUID
  Lng32 cliRC = 0;
  char buf[4000];
  str_sprintf(buf, "select object_type, object_uid, catalog_name," 
                   "schema_name, object_name from %s.\"%s\".%s T, %s.\"%s\".%s VU " 
                   "where VU.using_view_uid = %Ld "
                   "and T.object_uid = VU.used_object_uid",
              getSystemCatalog(), SEABASE_MD_SCHEMA, SEABASE_OBJECTS,
              getSystemCatalog(), SEABASE_MD_SCHEMA, SEABASE_VIEWS_USAGE,
              objectUID);

  Queue * usingObjectsQueue = NULL;
  cliRC = cliInterface->fetchAllRows(usingObjectsQueue, buf, 0, FALSE, FALSE, TRUE);
  if (cliRC < 0)
    {
      cliInterface->retrieveSQLDiagnostics(CmpCommon::diags());
      return -1;
    }

  // set up an objectRefdByMe struct for each returned row
  usingObjectsQueue->position();
  for (int idx = 0; idx < usingObjectsQueue->numEntries(); idx++)
    {
      OutputInfo * oi = (OutputInfo*)usingObjectsQueue->getNext();
      objectRefdByMe objectInfo;
      objectInfo.objectType = NAString(oi->get(0));
      objectInfo.objectUID = *(Int64*)oi->get(1);
      objectInfo.catalogName = NAString(oi->get(2));
      objectInfo.schemaName = NAString(oi->get(3));
      objectInfo.objectName = NAString(oi->get(4));
      objectsList.insert(objectInfo);
    }

  return 0;
}
NABoolean StmtModule::unparseSimple(NAString &result, 
                                    NABoolean wantR18behavior)
{
  NABoolean err = applyDefaults(wantR18behavior); 
  // assume caller will handle err

  result += NAString("MODULE ") + 
            name().getQualifiedNameAsAnsiString() +
  	    " NAMES ARE " + charSet() + ";";

  return err;
}
const NAString
StmtDDLDropView::displayLabel2() const
{
  NAString label2("Drop behavior: ");
  switch (getDropBehavior())
  {
  case COM_CASCADE_DROP_BEHAVIOR :
    return label2 + "Cascade";

  case COM_RESTRICT_DROP_BEHAVIOR :
    return label2 + "Restrict";

  default :
    NAAbort("StmtDDLDrop.C", __LINE__, "internal logic error");
    return NAString();
  }
}
//----------------------------------------------------------------------------
// CLASS StmtDDLAlterTableAlterColumnDatatype
//----------------------------------------------------------------------------
StmtDDLAlterTableAlterColumnDatatype::StmtDDLAlterTableAlterColumnDatatype(
     ElemDDLNode * pColumnToAlter
     ,CollHeap    * heap)
     : StmtDDLAlterTableAlterColumn(DDL_ALTER_TABLE_ALTER_COLUMN_DATATYPE,
                                    NAString(""),
                                    NULL,
                                    heap),
       pColumnToAlter_(pColumnToAlter)
{
  ElemDDLColDef *pColDef = pColumnToAlter->castToElemDDLColDef();
  if (pColDef NEQ NULL)
    {
      getColDefArray().insert(pColDef);
    }
  else
    *SqlParser_Diags << DgSqlCode(-1001);
}