@Override public void alterCreate(Create create) { if (!all) { create.getPrimaryKey().addAll(create.getColumnSymbols()); } }
@Override public void alterCreate(Create create) { if (!all) { create.getPrimaryKey().addAll(create.getColumnSymbols()); } }
@Override public void alterCreate(Create create) { if (!all) { create.getPrimaryKey().addAll(create.getColumnSymbols()); } }
@Override public void visit(Create obj) { if (!obj.getPrimaryKey().isEmpty()) { validateSortable(obj.getPrimaryKey()); } if (obj.getTableMetadata() != null) { Table t = obj.getTableMetadata(); if (!t.getForeignKeys().isEmpty()) { handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.temp_fk", obj.getTable()), obj); //$NON-NLS-1$ } } }
@Override public void visit(Create obj) { if (!obj.getPrimaryKey().isEmpty()) { validateSortable(obj.getPrimaryKey()); } if (obj.getTableMetadata() != null) { Table t = obj.getTableMetadata(); if (!t.getForeignKeys().isEmpty()) { handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.temp_fk", obj.getTable()), obj); //$NON-NLS-1$ } } }
@Override public void visit(Create obj) { if (!obj.getPrimaryKey().isEmpty()) { validateSortable(obj.getPrimaryKey()); } if (obj.getTableMetadata() != null) { Table t = obj.getTableMetadata(); if (!t.getForeignKeys().isEmpty()) { handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.temp_fk", obj.getTable()), obj); //$NON-NLS-1$ } } }
public static void addAdditionalMetadata(Create create, TempMetadataID tempTable) { if (!create.getPrimaryKey().isEmpty()) { ArrayList<TempMetadataID> primaryKey = new ArrayList<TempMetadataID>(create.getPrimaryKey().size()); for (ElementSymbol symbol : create.getPrimaryKey()) { Object mid = symbol.getMetadataID(); if (mid instanceof TempMetadataID) { primaryKey.add((TempMetadataID)mid); } else if (mid instanceof Column) { //TODO: this breaks our normal metadata usage primaryKey.add(tempTable.getElements().get(((Column)mid).getPosition() - 1)); } } tempTable.setPrimaryKey(primaryKey); } for (int i = 0; i < create.getColumns().size(); i++) { Column column = create.getColumns().get(i); TempMetadataID tid = tempTable.getElements().get(i); if (column.isAutoIncremented()) { tid.setAutoIncrement(true); } if (column.getNullType() == NullType.No_Nulls) { tid.setNotNull(true); } } }
public static void addAdditionalMetadata(Create create, TempMetadataID tempTable) { if (!create.getPrimaryKey().isEmpty()) { ArrayList<TempMetadataID> primaryKey = new ArrayList<TempMetadataID>(create.getPrimaryKey().size()); for (ElementSymbol symbol : create.getPrimaryKey()) { Object mid = symbol.getMetadataID(); if (mid instanceof TempMetadataID) { primaryKey.add((TempMetadataID)mid); } else if (mid instanceof Column) { //TODO: this breaks our normal metadata usage primaryKey.add(tempTable.getElements().get(((Column)mid).getPosition() - 1)); } } tempTable.setPrimaryKey(primaryKey); } for (int i = 0; i < create.getColumns().size(); i++) { Column column = create.getColumns().get(i); TempMetadataID tid = tempTable.getElements().get(i); if (column.isAutoIncremented()) { tid.setAutoIncrement(true); } if (column.getNullType() == NullType.No_Nulls) { tid.setNotNull(true); } } }
public static void addAdditionalMetadata(Create create, TempMetadataID tempTable) { if (!create.getPrimaryKey().isEmpty()) { ArrayList<TempMetadataID> primaryKey = new ArrayList<TempMetadataID>(create.getPrimaryKey().size()); for (ElementSymbol symbol : create.getPrimaryKey()) { Object mid = symbol.getMetadataID(); if (mid instanceof TempMetadataID) { primaryKey.add((TempMetadataID)mid); } else if (mid instanceof Column) { //TODO: this breaks our normal metadata usage primaryKey.add(tempTable.getElements().get(((Column)mid).getPosition() - 1)); } } tempTable.setPrimaryKey(primaryKey); } for (int i = 0; i < create.getColumns().size(); i++) { Column column = create.getColumns().get(i); TempMetadataID tid = tempTable.getElements().get(i); if (column.isAutoIncremented()) { tid.setAutoIncrement(true); } if (column.getNullType() == NullType.No_Nulls) { tid.setNotNull(true); } } }
EquivalenceUtil.areEqual(getPrimaryKey(), other.getPrimaryKey()) && EquivalenceUtil.areEqual(this.on, other.on) &&
public void visit(Create obj) { preVisitVisitor(obj); visitNode(obj.getTable()); visitNodes(obj.getColumnSymbols()); visitNodes(obj.getPrimaryKey()); postVisitVisitor(obj); } public void visit(Drop obj) {
public void visit(Create obj) { preVisitVisitor(obj); visitNode(obj.getTable()); visitNodes(obj.getColumnSymbols()); visitNodes(obj.getPrimaryKey()); postVisitVisitor(obj); } public void visit(Drop obj) {
public void visit(Create obj) { preVisitVisitor(obj); visitNode(obj.getTable()); visitNodes(obj.getColumnSymbols()); visitNodes(obj.getPrimaryKey()); postVisitVisitor(obj); } public void visit(Drop obj) {
public static Create getCreateCommand(GroupSymbol group, boolean matview, QueryMetadataInterface metadata) throws QueryMetadataException, TeiidComponentException { Create create = new Create(); create.setTable(group); List<ElementSymbol> allColumns = ResolverUtil.resolveElementsInGroup(group, metadata); create.setElementSymbolsAsColumns(allColumns); if (!matview) { for (int i = 0; i < allColumns.size(); i++) { ElementSymbol es = allColumns.get(i); if (!metadata.elementSupports(es.getMetadataID(), SupportConstants.Element.NULL)) { create.getColumns().get(i).setNullType(NullType.No_Nulls); if (es.getType() == DataTypeManager.DefaultDataClasses.INTEGER && metadata.elementSupports(es.getMetadataID(), SupportConstants.Element.AUTO_INCREMENT)) { create.getColumns().get(i).setAutoIncremented(true); //serial } } } } Object pk = metadata.getPrimaryKey(group.getMetadataID()); if (pk != null) { List<ElementSymbol> pkColumns = resolveIndex(metadata, allColumns, pk); create.getPrimaryKey().addAll(pkColumns); } return create; }
public static Create getCreateCommand(GroupSymbol group, boolean matview, QueryMetadataInterface metadata) throws QueryMetadataException, TeiidComponentException { Create create = new Create(); create.setTable(group); List<ElementSymbol> allColumns = ResolverUtil.resolveElementsInGroup(group, metadata); create.setElementSymbolsAsColumns(allColumns); if (!matview) { for (int i = 0; i < allColumns.size(); i++) { ElementSymbol es = allColumns.get(i); if (!metadata.elementSupports(es.getMetadataID(), SupportConstants.Element.NULL)) { create.getColumns().get(i).setNullType(NullType.No_Nulls); if (es.getType() == DataTypeManager.DefaultDataClasses.INTEGER && metadata.elementSupports(es.getMetadataID(), SupportConstants.Element.AUTO_INCREMENT)) { create.getColumns().get(i).setAutoIncremented(true); //serial } } } } Object pk = metadata.getPrimaryKey(group.getMetadataID()); if (pk != null) { List<ElementSymbol> pkColumns = resolveIndex(metadata, allColumns, pk); create.getPrimaryKey().addAll(pkColumns); } return create; }
public static Create getCreateCommand(GroupSymbol group, boolean matview, QueryMetadataInterface metadata) throws QueryMetadataException, TeiidComponentException { Create create = new Create(); create.setTable(group); List<ElementSymbol> allColumns = ResolverUtil.resolveElementsInGroup(group, metadata); create.setElementSymbolsAsColumns(allColumns); if (!matview) { for (int i = 0; i < allColumns.size(); i++) { ElementSymbol es = allColumns.get(i); if (!metadata.elementSupports(es.getMetadataID(), SupportConstants.Element.NULL)) { create.getColumns().get(i).setNullType(NullType.No_Nulls); if (es.getType() == DataTypeManager.DefaultDataClasses.INTEGER && metadata.elementSupports(es.getMetadataID(), SupportConstants.Element.AUTO_INCREMENT)) { create.getColumns().get(i).setAutoIncremented(true); //serial } } } } Object pk = metadata.getPrimaryKey(group.getMetadataID()); if (pk != null) { List<ElementSymbol> pkColumns = resolveIndex(metadata, allColumns, pk); create.getPrimaryKey().addAll(pkColumns); } return create; }
@Test public void testCreateTempTableWithPrimaryKey() { Create create = new Create(); create.setTable(new GroupSymbol("tempTable")); //$NON-NLS-1$ List<ElementSymbol> columns = new ArrayList<ElementSymbol>(); ElementSymbol column = new ElementSymbol("c1");//$NON-NLS-1$ column.setType(DataTypeManager.DefaultDataClasses.BOOLEAN); columns.add(column); column = new ElementSymbol("c2");//$NON-NLS-1$ column.setType(DataTypeManager.DefaultDataClasses.BYTE); columns.add(column); create.setElementSymbolsAsColumns(columns); create.getPrimaryKey().add(column); helpTest("Create local TEMPORARY table tempTable(c1 boolean, c2 byte, primary key (c2))", "CREATE LOCAL TEMPORARY TABLE tempTable (c1 boolean, c2 byte, PRIMARY KEY(c2))", create); //$NON-NLS-1$ //$NON-NLS-2$ }
@Override public TempTable createMatTable(final String tableName, GroupSymbol group) throws TeiidComponentException, QueryMetadataException, TeiidProcessingException { Create create = getCreateCommand(group, true, metadata); TempTable table = tableStore.addTempTable(tableName, create, bufferManager, false, null); table.setUpdatable(false); CacheHint hint = table.getCacheHint(); if (hint != null) { table.setPreferMemory(hint.isPrefersMemory()); if (hint.getTtl() != null) { getMatTableInfo(tableName).setTtl(hint.getTtl()); } if (!create.getPrimaryKey().isEmpty()) { table.setUpdatable(hint.isUpdatable(false)); } } return table; }
@Override public TempTable createMatTable(final String tableName, GroupSymbol group) throws TeiidComponentException, QueryMetadataException, TeiidProcessingException { Create create = getCreateCommand(group, true, metadata); TempTable table = tableStore.addTempTable(tableName, create, bufferManager, false, null); table.setUpdatable(false); CacheHint hint = table.getCacheHint(); if (hint != null) { table.setPreferMemory(hint.isPrefersMemory()); if (hint.getTtl() != null) { getMatTableInfo(tableName).setTtl(hint.getTtl()); } if (!create.getPrimaryKey().isEmpty()) { table.setUpdatable(hint.isUpdatable(false)); } } return table; }
@Override public TempTable createMatTable(final String tableName, GroupSymbol group) throws TeiidComponentException, QueryMetadataException, TeiidProcessingException { Create create = getCreateCommand(group, true, metadata); TempTable table = tableStore.addTempTable(tableName, create, bufferManager, false, null); table.setUpdatable(false); CacheHint hint = table.getCacheHint(); if (hint != null) { table.setPreferMemory(hint.isPrefersMemory()); if (hint.getTtl() != null) { getMatTableInfo(tableName).setTtl(hint.getTtl()); } if (!create.getPrimaryKey().isEmpty()) { table.setUpdatable(hint.isUpdatable(false)); } } return table; }