Search in sources :

Example 71 with OrderedHashSet

use of org.hsqldb_voltpatches.lib.OrderedHashSet in project voltdb by VoltDB.

the class StatementDMQL method setDatabseObjects.

void setDatabseObjects(CompileContext compileContext) {
    parameters = compileContext.getParameters();
    setParameters();
    setParameterMetaData();
    subqueries = compileContext.getSubqueries();
    rangeIteratorCount = compileContext.getRangeVarCount();
    rangeVariables = compileContext.getRangeVariables();
    sequences = compileContext.getSequences();
    routines = compileContext.getRoutines();
    OrderedHashSet set = new OrderedHashSet();
    getTableNamesForRead(set);
    for (int i = 0; i < routines.length; i++) {
        set.addAll(routines[i].getTableNamesForRead());
    }
    if (set.size() > 0) {
        readTableNames = new HsqlName[set.size()];
        set.toArray(readTableNames);
        set.clear();
    }
    getTableNamesForWrite(set);
    for (int i = 0; i < routines.length; i++) {
        set.addAll(routines[i].getTableNamesForWrite());
    }
    if (set.size() > 0) {
        writeTableNames = new HsqlName[set.size()];
        set.toArray(writeTableNames);
    }
}
Also used : OrderedHashSet(org.hsqldb_voltpatches.lib.OrderedHashSet)

Example 72 with OrderedHashSet

use of org.hsqldb_voltpatches.lib.OrderedHashSet in project voltdb by VoltDB.

the class SchemaObjectSet method getSQL.

String[] getSQL(OrderedHashSet resolved, OrderedHashSet unresolved) {
    HsqlArrayList list = new HsqlArrayList();
    if (!(map instanceof HashMappedList)) {
        return null;
    }
    if (map.isEmpty()) {
        return ValuePool.emptyStringArray;
    }
    Iterator it = map.values().iterator();
    if (type == SchemaObject.FUNCTION || type == SchemaObject.PROCEDURE) {
        OrderedHashSet set = new OrderedHashSet();
        while (it.hasNext()) {
            RoutineSchema routine = (RoutineSchema) it.next();
            for (int i = 0; i < routine.routines.length; i++) {
                set.add(routine.routines[i]);
            }
        }
        it = set.iterator();
    }
    while (it.hasNext()) {
        SchemaObject object = (SchemaObject) it.next();
        OrderedHashSet references = object.getReferences();
        if (references != null) {
            boolean isResolved = true;
            for (int j = 0; j < references.size(); j++) {
                HsqlName name = (HsqlName) references.get(j);
                if (SqlInvariants.isSchemaNameSystem(name)) {
                    continue;
                }
                if (name.type == SchemaObject.COLUMN) {
                    name = name.parent;
                }
                if (name.type == SchemaObject.CHARSET) {
                    // some built-in character sets have no schema
                    if (name.schema == null) {
                        continue;
                    }
                }
                if (!resolved.contains(name)) {
                    isResolved = false;
                    break;
                }
            }
            if (!isResolved) {
                unresolved.add(object);
                continue;
            }
        }
        resolved.add(object.getName());
        if (object.getType() == SchemaObject.TABLE) {
            list.addAll(((Table) object).getSQL(resolved, unresolved));
        } else {
            list.add(object.getSQL());
        }
    }
    String[] array = new String[list.size()];
    list.toArray(array);
    return array;
}
Also used : HashMappedList(org.hsqldb_voltpatches.lib.HashMappedList) HsqlArrayList(org.hsqldb_voltpatches.lib.HsqlArrayList) Iterator(org.hsqldb_voltpatches.lib.Iterator) OrderedHashSet(org.hsqldb_voltpatches.lib.OrderedHashSet) HsqlName(org.hsqldb_voltpatches.HsqlNameManager.HsqlName)

Example 73 with OrderedHashSet

use of org.hsqldb_voltpatches.lib.OrderedHashSet in project voltdb by VoltDB.

the class SessionData method getSequenceValue.

public Object getSequenceValue(NumberSequence sequence) {
    if (sequenceMap == null) {
        sequenceMap = new HashMap();
        sequenceUpdateSet = new OrderedHashSet();
    }
    HsqlName key = sequence.getName();
    Object value = sequenceMap.get(key);
    if (value == null) {
        value = sequence.getValueObject();
        sequenceMap.put(key, value);
        sequenceUpdateSet.add(sequence);
    }
    return value;
}
Also used : LongKeyIntValueHashMap(org.hsqldb_voltpatches.lib.LongKeyIntValueHashMap) LongKeyHashMap(org.hsqldb_voltpatches.lib.LongKeyHashMap) HashMap(org.hsqldb_voltpatches.lib.HashMap) LongKeyLongValueHashMap(org.hsqldb_voltpatches.lib.LongKeyLongValueHashMap) OrderedHashSet(org.hsqldb_voltpatches.lib.OrderedHashSet) HsqlName(org.hsqldb_voltpatches.HsqlNameManager.HsqlName)

Example 74 with OrderedHashSet

use of org.hsqldb_voltpatches.lib.OrderedHashSet in project voltdb by VoltDB.

the class Session method logSequences.

// SEQUENCE current values
void logSequences() {
    OrderedHashSet set = sessionData.sequenceUpdateSet;
    if (set == null || set.isEmpty()) {
        return;
    }
    for (int i = 0, size = set.size(); i < size; i++) {
        NumberSequence sequence = (NumberSequence) set.get(i);
        database.logger.writeSequenceStatement(this, sequence);
    }
    sessionData.sequenceUpdateSet.clear();
}
Also used : OrderedHashSet(org.hsqldb_voltpatches.lib.OrderedHashSet)

Example 75 with OrderedHashSet

use of org.hsqldb_voltpatches.lib.OrderedHashSet in project voltdb by VoltDB.

the class SchemaManager method getCascadingReferences.

//
private void getCascadingReferences(HsqlName object, OrderedHashSet set) {
    OrderedHashSet newSet = new OrderedHashSet();
    Iterator it = referenceMap.get(object);
    while (it.hasNext()) {
        HsqlName name = (HsqlName) it.next();
        boolean added = set.add(name);
        if (added) {
            newSet.add(name);
        }
    }
    for (int i = 0; i < newSet.size(); i++) {
        HsqlName name = (HsqlName) newSet.get(i);
        getCascadingReferences(name, set);
    }
}
Also used : Iterator(org.hsqldb_voltpatches.lib.Iterator) WrapperIterator(org.hsqldb_voltpatches.lib.WrapperIterator) OrderedHashSet(org.hsqldb_voltpatches.lib.OrderedHashSet) HsqlName(org.hsqldb_voltpatches.HsqlNameManager.HsqlName)

Aggregations

OrderedHashSet (org.hsqldb_voltpatches.lib.OrderedHashSet)86 HsqlName (org.hsqldb_voltpatches.HsqlNameManager.HsqlName)47 Iterator (org.hsqldb_voltpatches.lib.Iterator)26 WrapperIterator (org.hsqldb_voltpatches.lib.WrapperIterator)24 Constraint (org.hsqldb_voltpatches.Constraint)19 SchemaObject (org.hsqldb_voltpatches.SchemaObject)19 PersistentStore (org.hsqldb_voltpatches.persist.PersistentStore)19 Table (org.hsqldb_voltpatches.Table)18 HsqlException (org.hsqldb_voltpatches.HsqlException)16 TextTable (org.hsqldb_voltpatches.TextTable)16 HsqlArrayList (org.hsqldb_voltpatches.lib.HsqlArrayList)11 HsqlList (org.hsqldb_voltpatches.lib.HsqlList)8 Grantee (org.hsqldb_voltpatches.rights.Grantee)6 Routine (org.hsqldb_voltpatches.Routine)5 RoutineSchema (org.hsqldb_voltpatches.RoutineSchema)5 Right (org.hsqldb_voltpatches.rights.Right)5 TriggerDef (org.hsqldb_voltpatches.TriggerDef)4 OrderedIntHashSet (org.hsqldb_voltpatches.lib.OrderedIntHashSet)3 Type (org.hsqldb_voltpatches.types.Type)3 HashMappedList (org.hsqldb_voltpatches.lib.HashMappedList)2