001package com.avaje.ebean.config.dbplatform;
002
003import java.sql.Types;
004
005/**
006 * Sybase SQL Anywhere specific platform.
007 * <p>
008 * <ul>
009 * <li>supportsGetGeneratedKeys = false</li>
010 * <li>Uses TOP START AT clause</li>
011 * </ul>
012 * </p>
013 */
014public class SqlAnywherePlatform extends DatabasePlatform {
015
016  public SqlAnywherePlatform() {
017    super();
018    this.name = "sqlanywhere";
019    this.dbIdentity.setIdType(IdType.IDENTITY);
020
021    this.sqlLimiter = new SqlAnywhereLimiter();
022    this.dbIdentity.setSupportsGetGeneratedKeys(false);
023    this.dbIdentity.setSelectLastInsertedIdTemplate("select @@IDENTITY as X");
024    this.dbIdentity.setSupportsIdentity(true);
025
026    dbTypeMap.put(Types.BOOLEAN, new DbType("bit default 0"));
027    dbTypeMap.put(Types.BIGINT, new DbType("numeric", 19));
028    dbTypeMap.put(Types.REAL, new DbType("float(16)"));
029    dbTypeMap.put(Types.DOUBLE, new DbType("float(32)"));
030    dbTypeMap.put(Types.TINYINT, new DbType("smallint"));
031    dbTypeMap.put(Types.DECIMAL, new DbType("numeric", 28));
032
033    dbTypeMap.put(Types.BLOB, new DbType("binary(4500)"));
034    dbTypeMap.put(Types.CLOB, new DbType("long varchar"));
035    dbTypeMap.put(Types.LONGVARBINARY, new DbType("long binary"));
036    dbTypeMap.put(Types.LONGVARCHAR, new DbType("long varchar"));
037
038  }
039
040}