Example #1
0
 @Override
 public JDBCInfo getJDBCTypeAndString(ColumnType type) {
   switch (type.spec) {
     case STRING:
       if (type.isUnconstrained()) {
         return jdbcInfo("VARCHAR(255)", Types.VARCHAR);
       } else if (type.isClob() || type.length > 2000) {
         return jdbcInfo("CLOB", Types.CLOB);
       } else {
         return jdbcInfo("VARCHAR(%d)", type.length, Types.VARCHAR);
       }
     case BOOLEAN:
       return jdbcInfo("SMALLINT", Types.BIT);
     case LONG:
       return jdbcInfo("BIGINT", Types.BIGINT);
     case DOUBLE:
       return jdbcInfo("DOUBLE", Types.DOUBLE);
     case TIMESTAMP:
       return jdbcInfo("TIMESTAMP", Types.TIMESTAMP);
     case BLOBID:
       return jdbcInfo("VARCHAR(250)", Types.VARCHAR);
       // -----
     case NODEID:
     case NODEIDFK:
     case NODEIDFKNP:
     case NODEIDFKMUL:
     case NODEIDFKNULL:
     case NODEIDPK:
     case NODEVAL:
       return jdbcInfo("VARCHAR(36)", Types.VARCHAR);
     case SYSNAME:
     case SYSNAMEARRAY:
       return jdbcInfo("VARCHAR(250)", Types.VARCHAR);
     case TINYINT:
       return jdbcInfo("SMALLINT", Types.TINYINT);
     case INTEGER:
       return jdbcInfo("INTEGER", Types.INTEGER);
     case AUTOINC:
       return jdbcInfo("INTEGER", Types.INTEGER); // TODO
     case FTINDEXED:
       return jdbcInfo("CLOB", Types.CLOB);
     case FTSTORED:
       return jdbcInfo("CLOB", Types.CLOB);
     case CLUSTERNODE:
       return jdbcInfo("VARCHAR(25)", Types.VARCHAR);
     case CLUSTERFRAGS:
       return jdbcInfo("VARCHAR(4000)", Types.VARCHAR);
     default:
       throw new AssertionError(type);
   }
 }
Example #2
0
 @Override
 public JDBCInfo getJDBCTypeAndString(ColumnType type) {
   switch (type.spec) {
     case STRING:
       if (type.isUnconstrained()) {
         return jdbcInfo("varchar", Types.VARCHAR);
       } else if (type.isClob()) {
         return jdbcInfo("text", Types.CLOB);
       } else {
         return jdbcInfo("varchar(%d)", type.length, Types.VARCHAR);
       }
     case ARRAY_STRING:
       if (type.isUnconstrained()) {
         return jdbcInfo("varchar[]", Types.ARRAY, "varchar", Types.VARCHAR);
       } else if (type.isClob()) {
         return jdbcInfo("text[]", Types.ARRAY, "text", Types.CLOB);
       } else {
         return jdbcInfo("varchar(%d)[]", type.length, Types.ARRAY, "varchar", Types.VARCHAR);
       }
     case BOOLEAN:
       return jdbcInfo("bool", Types.BIT);
     case ARRAY_BOOLEAN:
       return jdbcInfo("bool[]", Types.ARRAY, "bool", Types.BOOLEAN);
     case LONG:
       return jdbcInfo("int8", Types.BIGINT);
     case ARRAY_LONG:
       return jdbcInfo("int8[]", Types.ARRAY, "int8", Types.BIGINT);
     case DOUBLE:
       return jdbcInfo("float8", Types.DOUBLE);
     case ARRAY_DOUBLE:
       return jdbcInfo("float8[]", Types.ARRAY, "float8", Types.DOUBLE);
     case TIMESTAMP:
       return jdbcInfo("timestamp", Types.TIMESTAMP);
     case ARRAY_TIMESTAMP:
       return jdbcInfo("timestamp[]", Types.ARRAY, "timestamp", Types.TIMESTAMP);
     case BLOBID:
       return jdbcInfo("varchar(250)", Types.VARCHAR);
     case ARRAY_BLOBID:
       return jdbcInfo("varchar(250)[]", Types.ARRAY, "varchar", Types.VARCHAR);
       // -----
     case NODEID:
     case NODEIDFK:
     case NODEIDFKNP:
     case NODEIDFKMUL:
     case NODEIDFKNULL:
     case NODEIDPK:
     case NODEVAL:
       switch (idType) {
         case VARCHAR:
           return jdbcInfo("varchar(36)", Types.VARCHAR);
         case UUID:
           return jdbcInfo("uuid", Types.OTHER);
         case SEQUENCE:
           return jdbcInfo("int8", Types.BIGINT);
       }
     case NODEARRAY:
       switch (idType) {
         case VARCHAR:
           return jdbcInfo("varchar(36)[]", Types.ARRAY, "varchar", Types.VARCHAR);
         case UUID:
           return jdbcInfo("uuid[]", Types.ARRAY, "uuid", Types.OTHER);
         case SEQUENCE:
           return jdbcInfo("int8[]", Types.ARRAY, "int8", Types.BIGINT);
       }
     case SYSNAME:
       return jdbcInfo("varchar(250)", Types.VARCHAR);
     case SYSNAMEARRAY:
       return jdbcInfo("varchar(250)[]", Types.ARRAY, "varchar", Types.VARCHAR);
     case TINYINT:
       return jdbcInfo("int2", Types.SMALLINT);
     case INTEGER:
       return jdbcInfo("int4", Types.INTEGER);
     case ARRAY_INTEGER:
       return jdbcInfo("int4[]", Types.ARRAY, "int4", Types.INTEGER);
     case AUTOINC:
       return jdbcInfo("serial", Types.INTEGER);
     case FTINDEXED:
       if (compatibilityFulltextTable) {
         return jdbcInfo("tsvector", Types.OTHER);
       } else {
         return jdbcInfo("text", Types.CLOB);
       }
     case FTSTORED:
       if (compatibilityFulltextTable) {
         return jdbcInfo("tsvector", Types.OTHER);
       } else {
         return jdbcInfo("text", Types.CLOB);
       }
     case CLUSTERNODE:
       return jdbcInfo("int4", Types.INTEGER);
     case CLUSTERFRAGS:
       return jdbcInfo("varchar[]", Types.ARRAY, "varchar", Types.VARCHAR);
   }
   throw new AssertionError(type);
 }