use of org.apache.derby.iapi.sql.execute.ExecRow in project derby by apache.
the class SYSCONSTRAINTSRowFactory method makeRow.
// ///////////////////////////////////////////////////////////////////////////
//
// METHODS
//
// ///////////////////////////////////////////////////////////////////////////
/**
* Make a SYSCONTRAINTS row
*
* @return Row suitable for inserting into SYSCONTRAINTS.
*
* @exception StandardException thrown on failure
*/
public ExecRow makeRow(TupleDescriptor td, TupleDescriptor parent) throws StandardException {
DataValueDescriptor col;
ExecRow row;
int constraintIType;
UUID oid;
String constraintSType = null;
String constraintID = null;
String tableID = null;
String constraintName = null;
String schemaID = null;
boolean deferrable = ConstraintDefinitionNode.DEFERRABLE_DEFAULT;
boolean initiallyDeferred = ConstraintDefinitionNode.INITIALLY_DEFERRED_DEFAULT;
boolean enforced = ConstraintDefinitionNode.ENFORCED_DEFAULT;
int referenceCount = 0;
if (td != null) {
ConstraintDescriptor constraint = (ConstraintDescriptor) td;
/*
** We only allocate a new UUID if the descriptor doesn't already have one.
** For descriptors replicated from a Source system, we already have an UUID.
*/
oid = constraint.getUUID();
constraintID = oid.toString();
oid = constraint.getTableId();
tableID = oid.toString();
constraintName = constraint.getConstraintName();
constraintIType = constraint.getConstraintType();
switch(constraintIType) {
case DataDictionary.PRIMARYKEY_CONSTRAINT:
constraintSType = "P";
break;
case DataDictionary.UNIQUE_CONSTRAINT:
constraintSType = "U";
break;
case DataDictionary.CHECK_CONSTRAINT:
constraintSType = "C";
break;
case DataDictionary.FOREIGNKEY_CONSTRAINT:
constraintSType = "F";
break;
default:
if (SanityManager.DEBUG) {
SanityManager.THROWASSERT("invalid constraint type");
}
}
schemaID = constraint.getSchemaDescriptor().getUUID().toString();
// constraint characteristics
deferrable = constraint.deferrable();
initiallyDeferred = constraint.initiallyDeferred();
enforced = constraint.enforced();
referenceCount = constraint.getReferenceCount();
}
/* Insert info into sysconstraints */
/* RESOLVE - It would be nice to require less knowledge about sysconstraints
* and have this be more table driven.
*/
/* Build the row to insert */
row = getExecutionFactory().getValueRow(SYSCONSTRAINTS_COLUMN_COUNT);
/* 1st column is CONSTRAINTID (UUID - char(36)) */
row.setColumn(SYSCONSTRAINTS_CONSTRAINTID, new SQLChar(constraintID));
/* 2nd column is TABLEID (UUID - char(36)) */
row.setColumn(SYSCONSTRAINTS_TABLEID, new SQLChar(tableID));
/* 3rd column is NAME (varchar(128)) */
row.setColumn(SYSCONSTRAINTS_CONSTRAINTNAME, new SQLVarchar(constraintName));
/* 4th column is TYPE (char(1)) */
row.setColumn(SYSCONSTRAINTS_TYPE, new SQLChar(constraintSType));
/* 5th column is SCHEMAID (UUID - char(36)) */
row.setColumn(SYSCONSTRAINTS_SCHEMAID, new SQLChar(schemaID));
/* 6th column is STATE (char(1)) */
row.setColumn(SYSCONSTRAINTS_STATE, new SQLChar(encodeCharacteristics(deferrable, initiallyDeferred, enforced)));
/* 7th column is REFERENCED */
row.setColumn(SYSCONSTRAINTS_REFERENCECOUNT, new SQLInteger(referenceCount));
return row;
}
use of org.apache.derby.iapi.sql.execute.ExecRow in project derby by apache.
the class SYSKEYSRowFactory method makeRow.
// ///////////////////////////////////////////////////////////////////////////
//
// METHODS
//
// ///////////////////////////////////////////////////////////////////////////
/**
* Make a SYSKEYS row
*
* @return Row suitable for inserting into SYSKEYS.
*
* @exception StandardException thrown on failure
*/
public ExecRow makeRow(TupleDescriptor td, TupleDescriptor parent) throws StandardException {
DataValueDescriptor col;
ExecRow row;
UUID oid;
String constraintID = null;
String conglomerateID = null;
if (td != null) {
KeyConstraintDescriptor constraint = (KeyConstraintDescriptor) td;
/*
** We only allocate a new UUID if the descriptor doesn't already have one.
** For descriptors replicated from a Source system, we already have an UUID.
*/
oid = constraint.getUUID();
constraintID = oid.toString();
conglomerateID = constraint.getIndexUUIDString();
}
/* Insert info into syskeys */
/* RESOLVE - It would be nice to require less knowledge about syskeys
* and have this be more table driven.
*/
/* Build the row to insert */
row = getExecutionFactory().getValueRow(SYSKEYS_COLUMN_COUNT);
/* 1st column is CONSTRAINTID (UUID - char(36)) */
row.setColumn(SYSKEYS_CONSTRAINTID, new SQLChar(constraintID));
/* 2nd column is CONGLOMERATEID (UUID - char(36)) */
row.setColumn(SYSKEYS_CONGLOMERATEID, new SQLChar(conglomerateID));
return row;
}
use of org.apache.derby.iapi.sql.execute.ExecRow in project derby by apache.
the class SYSPERMSRowFactory method makeRow.
/**
* Make a SYSPERMS row
*
* @param td a permission descriptor
* @param parent unused
* @return Row suitable for inserting into SYSPERMS.
* @throws org.apache.derby.shared.common.error.StandardException
* thrown on failure
*/
public ExecRow makeRow(TupleDescriptor td, TupleDescriptor parent) throws StandardException {
ExecRow row;
String permIdString = null;
String objectType = "SEQUENCE";
String objectIdString = null;
String permission = "USAGE";
String grantor = null;
String grantee = null;
boolean grantable = false;
if (td != null) {
PermDescriptor sd = (PermDescriptor) td;
UUID pid = sd.getUUID();
if (pid == null) {
pid = getUUIDFactory().createUUID();
sd.setUUID(pid);
}
permIdString = pid.toString();
objectType = sd.getObjectType();
UUID oid = sd.getPermObjectId();
objectIdString = oid.toString();
permission = sd.getPermission();
grantor = sd.getGrantor();
grantee = sd.getGrantee();
grantable = sd.isGrantable();
}
/* Build the row to insert */
row = getExecutionFactory().getValueRow(SYSPERMS_COLUMN_COUNT);
/* 1st column is UUID */
row.setColumn(1, new SQLChar(permIdString));
/* 2nd column is OBJECTTYPE */
row.setColumn(2, new SQLVarchar(objectType));
/* 3rd column is OBJECTID */
row.setColumn(3, new SQLChar(objectIdString));
/* 4nd column is OBJECTTYPE */
row.setColumn(4, new SQLChar(permission));
/* 5nd column is GRANTOR */
row.setColumn(5, new SQLVarchar(grantor));
/* 6nd column is GRANTEE */
row.setColumn(6, new SQLVarchar(grantee));
/* 7nd column is IS_GRANTABLE */
row.setColumn(7, new SQLChar(grantable ? "Y" : "N"));
return row;
}
use of org.apache.derby.iapi.sql.execute.ExecRow in project derby by apache.
the class SYSSCHEMASRowFactory method makeRow.
// ///////////////////////////////////////////////////////////////////////////
//
// METHODS
//
// ///////////////////////////////////////////////////////////////////////////
/**
* Make a SYSSCHEMAS row
*
* @return Row suitable for inserting into SYSSCHEMAS.
*
* @exception StandardException thrown on failure
*/
public ExecRow makeRow(TupleDescriptor td, TupleDescriptor parent) throws StandardException {
DataTypeDescriptor dtd;
ExecRow row;
DataValueDescriptor col;
String name = null;
UUID oid = null;
String uuid = null;
String aid = null;
if (td != null) {
SchemaDescriptor schemaDescriptor = (SchemaDescriptor) td;
name = schemaDescriptor.getSchemaName();
oid = schemaDescriptor.getUUID();
if (oid == null) {
oid = getUUIDFactory().createUUID();
schemaDescriptor.setUUID(oid);
}
uuid = oid.toString();
aid = schemaDescriptor.getAuthorizationId();
}
/* Build the row to insert */
row = getExecutionFactory().getValueRow(SYSSCHEMAS_COLUMN_COUNT);
/* 1st column is SCHEMAID */
row.setColumn(1, new SQLChar(uuid));
/* 2nd column is SCHEMANAME */
row.setColumn(2, new SQLVarchar(name));
/* 3rd column is SCHEMAAID */
row.setColumn(3, new SQLVarchar(aid));
return row;
}
use of org.apache.derby.iapi.sql.execute.ExecRow in project derby by apache.
the class SYSSEQUENCESRowFactory method makeRow.
/**
* Make a SYSSEQUENCES row
*
* @param td a sequence descriptor
* @param parent unused
* @return Row suitable for inserting into SYSSEQUENCES.
* @throws org.apache.derby.shared.common.error.StandardException
* thrown on failure
*/
public ExecRow makeRow(TupleDescriptor td, TupleDescriptor parent) throws StandardException {
ExecRow row;
String oidString = null;
String sequenceName = null;
String schemaIdString = null;
TypeDescriptor typeDesc = null;
Long currentValue = null;
long startValue = 0;
long minimumValue = 0;
long maximumValue = 0;
long increment = 0;
boolean canCycle = false;
if (td != null) {
SequenceDescriptor sd = (SequenceDescriptor) td;
UUID oid = sd.getUUID();
oidString = oid.toString();
sequenceName = sd.getSequenceName();
UUID schemaId = sd.getSchemaId();
schemaIdString = schemaId.toString();
typeDesc = sd.getDataType().getCatalogType();
currentValue = sd.getCurrentValue();
startValue = sd.getStartValue();
minimumValue = sd.getMinimumValue();
maximumValue = sd.getMaximumValue();
increment = sd.getIncrement();
canCycle = sd.canCycle();
}
/* Build the row to insert */
row = getExecutionFactory().getValueRow(SYSSEQUENCES_COLUMN_COUNT);
/* 1st column is UUID */
row.setColumn(SYSSEQUENCES_SEQUENCEID, new SQLChar(oidString));
/* 2nd column is SEQUENCENAME */
row.setColumn(SYSSEQUENCES_SEQUENCENAME, new SQLVarchar(sequenceName));
/* 3nd column is SCHEMAID */
row.setColumn(SYSSEQUENCES_SCHEMAID, new SQLChar(schemaIdString));
/* 4th column is SEQUENCEDATATYPE */
row.setColumn(SYSSEQUENCES_SEQUENCEDATATYPE, new UserType(typeDesc));
/* 5th column is CURRENTVALUE */
SQLLongint curVal;
if (currentValue == null) {
curVal = new SQLLongint();
} else {
curVal = new SQLLongint(currentValue.longValue());
}
row.setColumn(SYSSEQUENCES_CURRENT_VALUE, curVal);
/* 6th column is STARTVALUE */
row.setColumn(SYSSEQUENCES_START_VALUE, new SQLLongint(startValue));
/* 7th column is MINIMUMVALUE */
row.setColumn(SYSSEQUENCES_MINIMUM_VALUE, new SQLLongint(minimumValue));
/* 8th column is MAXIMUMVALUE */
row.setColumn(SYSSEQUENCES_MAXIMUM_VALUE, new SQLLongint(maximumValue));
/* 9th column is INCREMENT */
row.setColumn(SYSSEQUENCES_INCREMENT, new SQLLongint(increment));
/* 10th column is CYCLEOPTION */
row.setColumn(SYSSEQUENCES_CYCLE_OPTION, new SQLChar(canCycle ? "Y" : "N"));
return row;
}
Aggregations