blob: 013b61b54c37ed13839afd9fd7f111d95eb084b0 [file] [log] [blame]
/**********************************************************************
// @@@ START COPYRIGHT @@@
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
// @@@ END COPYRIGHT @@@
**********************************************************************/
/* -*-C++-*-
****************************************************************************
*
* File: SequenceGeneratorAttributes.cpp
* Description: The attributes of the sequence generator
* Created:
* Language: C++
*
****************************************************************************/
#include "SequenceGeneratorAttributes.h"
#include "ComSpace.h"
void SequenceGeneratorAttributes::genSequenceName(const NAString &catName, const NAString &schName,
const NAString &tabName, const NAString &colName,
NAString &seqName)
{
seqName = "_" + catName + "_" + schName + "_" +
tabName + "_" + colName + "_" ;
}
const void SequenceGeneratorAttributes::display
(ComSpace *space, NAString * nas, NABoolean noNext) const
{
char buf[10000];
if (noNext)
sprintf(buf, " START WITH %li",
getSGStartValue());
else
sprintf(buf, " START WITH %li /* NEXT AVAILABLE VALUE %li */",
getSGStartValue(), getSGNextValue());
if (nas)
*nas += buf;
else
space->allocateAndCopyToAlignedSpace(buf, strlen(buf), sizeof(short));
sprintf(buf, " INCREMENT BY %li",
getSGIncrement());
if (nas)
*nas += buf;
else
space->allocateAndCopyToAlignedSpace(buf, strlen(buf), sizeof(short));
if (getSGMaxValue() == 0)
sprintf(buf, " NO MAXVALUE");
else
sprintf(buf, " MAXVALUE %li",
getSGMaxValue());
if (nas)
*nas += buf;
else
space->allocateAndCopyToAlignedSpace(buf, strlen(buf), sizeof(short));
if (getSGMinValue() == 0)
sprintf(buf, " NO MINVALUE");
else
sprintf(buf, " MINVALUE %li",
getSGMinValue());
if (nas)
*nas += buf;
else
space->allocateAndCopyToAlignedSpace(buf, strlen(buf), sizeof(short));
if (getSGCache() == 0)
sprintf(buf, " NO CACHE");
else
sprintf(buf, " CACHE %li",
getSGCache());
if (nas)
*nas += buf;
else
space->allocateAndCopyToAlignedSpace(buf, strlen(buf), sizeof(short));
if (getSGCycleOption())
sprintf(buf, " CYCLE");
else
sprintf(buf, " NO CYCLE");
if (nas)
*nas += buf;
else
space->allocateAndCopyToAlignedSpace(buf, strlen(buf), sizeof(short));
if (getSGFSDataType() == COM_UNSIGNED_BIN16_FSDT)
sprintf(buf, " SMALLINT UNSIGNED ");
else if (getSGFSDataType() == COM_UNSIGNED_BIN32_FSDT)
sprintf(buf, " INT UNSIGNED ");
else
sprintf(buf, " LARGEINT ");
if (nas)
*nas += buf;
else
space->allocateAndCopyToAlignedSpace(buf, strlen(buf), sizeof(short));
}