Ejemplo n.º 1
0
 @Test
 public void testTypeAliases() {
   Create create = getFactory().newCreate();
   create.setTable(getFactory().newGroupSymbol("tempTable")); // $NON-NLS-1$
   List<ElementSymbol> columns = new ArrayList<ElementSymbol>();
   ElementSymbol column = getFactory().newElementSymbol("c1"); // $NON-NLS-1$
   column.setType(DataTypeManagerService.DefaultDataTypes.STRING.getTypeClass());
   columns.add(column);
   column = getFactory().newElementSymbol("c2"); // $NON-NLS-1$
   column.setType(DataTypeManagerService.DefaultDataTypes.BYTE.getTypeClass());
   columns.add(column);
   column = getFactory().newElementSymbol("c3"); // $NON-NLS-1$
   column.setType(DataTypeManagerService.DefaultDataTypes.SHORT.getTypeClass());
   columns.add(column);
   column = getFactory().newElementSymbol("c4"); // $NON-NLS-1$
   column.setType(DataTypeManagerService.DefaultDataTypes.FLOAT.getTypeClass());
   columns.add(column);
   column = getFactory().newElementSymbol("c5"); // $NON-NLS-1$
   column.setType(DataTypeManagerService.DefaultDataTypes.BIG_DECIMAL.getTypeClass());
   columns.add(column);
   create.setElementSymbolsAsColumns(columns);
   helpTest(
       "Create local TEMPORARY table tempTable (c1 varchar, c2 tinyint, c3 smallint, c4 real, c5 decimal)",
       "CREATE LOCAL TEMPORARY TABLE tempTable (c1 varchar, c2 tinyint, c3 smallint, c4 real, c5 decimal)",
       create); //$NON-NLS-1$
 }
Ejemplo n.º 2
0
  /**
   * @see org.teiid.query.resolver.CommandResolver#resolveCommand(org.teiid.query.sql.lang.Command,
   *     TempMetadataAdapter, boolean)
   */
  @Override
  public void resolveCommand(
      Command command, TempMetadataAdapter metadata, boolean resolveNullLiterals) throws Exception {

    DynamicCommand dynamicCmd = (DynamicCommand) command;

    Iterator columns = dynamicCmd.getAsColumns().iterator();

    Set<GroupSymbol> groups = new HashSet<GroupSymbol>();

    // if there is no into group, just create temp metadata ids
    if (dynamicCmd.getIntoGroup() == null) {
      while (columns.hasNext()) {
        ElementSymbol column = (ElementSymbol) columns.next();
        column.setMetadataID(new TempMetadataID(column.getShortName(), column.getType()));
      }
    } else if (dynamicCmd.getIntoGroup().isTempGroupSymbol()) {
      while (columns.hasNext()) {
        ElementSymbol column = (ElementSymbol) columns.next();
        GroupSymbol gs = getTeiidParser().createASTNode(ASTNodes.GROUP_SYMBOL);
        gs.setName(dynamicCmd.getIntoGroup().getName());
        column.setGroupSymbol(gs);
      }
    }

    ResolverVisitor visitor = new ResolverVisitor(getTeiidParser().getVersion());
    visitor.resolveLanguageObject(
        dynamicCmd, groups, dynamicCmd.getExternalGroupContexts(), metadata);
    String sqlType = getDataTypeManager().getDataTypeName(dynamicCmd.getSql().getType());
    String targetType = DataTypeManagerService.DefaultDataTypes.STRING.getId();

    if (!targetType.equals(sqlType)
        && !getDataTypeManager().isImplicitConversion(sqlType, targetType)) {
      throw new QueryResolverException(Messages.gs(Messages.TEIID.TEIID30100, sqlType));
    }

    if (dynamicCmd.getUsing() != null && !dynamicCmd.getUsing().isEmpty()) {
      for (SetClause clause : dynamicCmd.getUsing().getClauses()) {
        ElementSymbol id = clause.getSymbol();
        GroupSymbol gs = getTeiidParser().createASTNode(ASTNodes.GROUP_SYMBOL);
        gs.setName(ProcedureReservedWords.DVARS);
        id.setGroupSymbol(gs);
        id.setType(clause.getValue().getType());
        id.setMetadataID(new TempMetadataID(id.getName(), id.getType()));
      }
    }

    GroupSymbol intoSymbol = dynamicCmd.getIntoGroup();
    if (intoSymbol != null) {
      if (!intoSymbol.isImplicitTempGroupSymbol()) {
        ResolverUtil.resolveGroup(intoSymbol, metadata);
      } else {
        List symbols = dynamicCmd.getAsColumns();
        ResolverUtil.resolveImplicitTempGroup(metadata, intoSymbol, symbols);
      }
    }
  }
Ejemplo n.º 3
0
  /** @param teiidVersion */
  public Batch1Serializer(ITeiidServerVersion teiidVersion) {
    super(teiidVersion);

    serializers.put(
        DataTypeManagerService.DefaultDataTypes.BIG_DECIMAL.getId(),
        new BigDecimalColumnSerializer());
    serializers.put(
        DataTypeManagerService.DefaultDataTypes.BIG_INTEGER.getId(),
        new BigIntegerColumnSerializer());
    serializers.put(
        DataTypeManagerService.DefaultDataTypes.BOOLEAN.getId(), new BooleanColumnSerializer());
    serializers.put(
        DataTypeManagerService.DefaultDataTypes.BYTE.getId(), new ByteColumnSerializer());
    serializers.put(
        DataTypeManagerService.DefaultDataTypes.CHAR.getId(), new CharColumnSerializer());
    serializers.put(
        DataTypeManagerService.DefaultDataTypes.DATE.getId(), new DateColumnSerializer());
    serializers.put(
        DataTypeManagerService.DefaultDataTypes.DOUBLE.getId(), new DoubleColumnSerializer());
    serializers.put(
        DataTypeManagerService.DefaultDataTypes.FLOAT.getId(), new FloatColumnSerializer());
    serializers.put(
        DataTypeManagerService.DefaultDataTypes.INTEGER.getId(), new IntColumnSerializer());
    serializers.put(
        DataTypeManagerService.DefaultDataTypes.LONG.getId(), new LongColumnSerializer());
    serializers.put(
        DataTypeManagerService.DefaultDataTypes.SHORT.getId(), new ShortColumnSerializer());
    serializers.put(
        DataTypeManagerService.DefaultDataTypes.TIME.getId(), new TimeColumnSerializer());
    serializers.put(
        DataTypeManagerService.DefaultDataTypes.TIMESTAMP.getId(), new TimestampColumnSerializer());
    serializers.put(
        DataTypeManagerService.DefaultDataTypes.VARBINARY.getId(), new BinaryColumnSerializer());

    version1serializers.put(
        DataTypeManagerService.DefaultDataTypes.DATE.getId(), new DateColumnSerializer1());
    version1serializers.put(
        DataTypeManagerService.DefaultDataTypes.TIME.getId(), new TimeColumnSerializer1());
    version1serializers.put(
        DataTypeManagerService.DefaultDataTypes.STRING.getId(), new StringColumnSerializer1());
    version1serializers.put(
        DataTypeManagerService.DefaultDataTypes.CLOB.getId(), new ClobColumnSerializer1());
    version1serializers.put(
        DataTypeManagerService.DefaultDataTypes.BLOB.getId(), new BlobColumnSerializer1());
    version1serializers.put(
        DataTypeManagerService.DefaultDataTypes.XML.getId(), new XmlColumnSerializer1());
    version1serializers.put(
        DataTypeManagerService.DefaultDataTypes.NULL.getId(), new NullColumnSerializer1());
    version1serializers.put(
        DataTypeManagerService.DefaultDataTypes.OBJECT.getId(),
        new ObjectColumnSerializer1(DataTypeManagerService.DefaultDataTypes.VARBINARY.ordinal()));
    version1serializers.put(
        DataTypeManagerService.DefaultDataTypes.VARBINARY.getId(), new BinaryColumnSerializer1());
  }