/** @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());
  }
 @Test
 public void testCreateTempTable1() {
   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.BOOLEAN.getTypeClass());
   columns.add(column);
   column = getFactory().newElementSymbol("c2"); // $NON-NLS-1$
   column.setType(DataTypeManagerService.DefaultDataTypes.BYTE.getTypeClass());
   columns.add(column);
   create.setElementSymbolsAsColumns(columns);
   helpTest(
       "Create local TEMPORARY table tempTable (c1 boolean, c2 byte)",
       "CREATE LOCAL TEMPORARY TABLE tempTable (c1 boolean, c2 byte)",
       create); //$NON-NLS-1$ //$NON-NLS-2$
 }
 @Override
 protected Object readObject(ObjectInput in) throws IOException, ClassNotFoundException {
   int code = in.readByte();
   if (code == DataTypeManagerService.DefaultDataTypes.BOOLEAN.ordinal()) {
     if (in.readByte() == (byte) 0) {
       return Boolean.FALSE;
     }
     return Boolean.TRUE;
   }
   if (code != DataTypeManagerService.DefaultDataTypes.OBJECT.ordinal()) {
     DefaultDataTypes dataType =
         DataTypeManagerService.DefaultDataTypes.valueOf(getTeiidVersion(), code);
     ColumnSerializer s = getSerializer(dataType.getId(), (byte) 1);
     return s.readObject(in);
   }
   return super.readObject(in);
 }
 @Override
 protected void writeObject(ObjectOutput out, Object obj) throws IOException {
   DefaultDataTypes dataType = getDataTypeManager().getDataType(obj.getClass());
   int code = dataType.ordinal();
   out.writeByte((byte) code);
   if (code == DataTypeManagerService.DefaultDataTypes.BOOLEAN.ordinal()) {
     if (Boolean.TRUE.equals(obj)) {
       out.write((byte) 1);
     } else {
       out.write((byte) 0);
     }
   } else if (code <= highestKnownCode
       && code != DataTypeManagerService.DefaultDataTypes.OBJECT.ordinal()) {
     dataType = DataTypeManagerService.DefaultDataTypes.valueOf(getTeiidVersion(), code);
     ColumnSerializer s = getSerializer(dataType.getId(), (byte) 1);
     s.writeObject(out, obj);
   } else {
     super.writeObject(out, obj);
   }
 }