Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.j256.ormlite.db;
  
  import java.util.List;
  
Postgres database type information used to create the tables, etc..

Author(s):
graywatson
 
 public class PostgresDatabaseType extends BaseDatabaseType implements DatabaseType {
 
 	private final static String DATABASE_URL_PORTION = "postgresql";
 	private final static String DRIVER_CLASS_NAME = "org.postgresql.Driver";
 	private final static String DATABASE_NAME = "Postgres";
 
 	public boolean isDatabaseUrlThisType(String urlString dbTypePart) {
 		return .equals(dbTypePart);
 	}
 
 	protected String getDriverClassName() {
 	}
 
 	public String getDatabaseName() {
 		return ;
 	}
 
 	protected void appendByteType(StringBuilder sb) {
 		sb.append("SMALLINT");
 	}
 
 	protected void appendByteArrayType(StringBuilder sb) {
 		sb.append("BYTEA");
 	}
 
 	protected void appendSerializableType(StringBuilder sb) {
 		sb.append("BYTEA");
 	}
 
 	protected void configureGeneratedIdSequence(StringBuilder sbFieldType fieldTypeList<StringstatementsBefore,
 			List<StringadditionalArgsList<StringqueriesAfter) {
 		String sequenceName = fieldType.getGeneratedIdSequence();
 		// needs to match dropColumnArg()
 		StringBuilder seqSb = new StringBuilder(64);
 		seqSb.append("CREATE SEQUENCE ");
 		// when it is created, it needs to be escaped specially
 		appendEscapedEntityName(seqSbsequenceName);
 		statementsBefore.add(seqSb.toString());
 
 		sb.append("DEFAULT NEXTVAL(");
 		// when it is used, it is escaped as a word, grumble
 		appendEscapedWordEntityName(sbsequenceName);
 		sb.append(") ");
 		// could also be the type serial for auto-generated sequences
 		// 8.2 also have the returning insert statement
 
 		configureId(sbfieldTypestatementsBeforeadditionalArgsqueriesAfter);
 	}
 
 	public void dropColumnArg(FieldType fieldTypeList<StringstatementsBeforeList<StringstatementsAfter) {
 		if (fieldType.isGeneratedIdSequence()) {
 			StringBuilder sb = new StringBuilder(64);
 			sb.append("DROP SEQUENCE ");
 			statementsAfter.add(sb.toString());
 		}
 	}
 
 	public void appendEscapedEntityName(StringBuilder sbString word) {
 		sb.append('\"').append(word).append('\"');
 	}
 
 	public void appendEscapedWordEntityName(StringBuilder sbString word) {
 		// postgres needed this special escaping for NEXTVAL('"sequence-name"')
 		sb.append('\'').append('\"').append(word).append('\"').append('\'');
 	}
 
 	public boolean isIdSequenceNeeded() {
 		return true;
 	}
 
 	public void appendSelectNextValFromSequence(StringBuilder sbString sequenceName) {
 		sb.append("SELECT NEXTVAL(");
 		// this is word and not entity unfortunately
 		appendEscapedWord(sbsequenceName);
 		sb.append(')');
 	}
	public boolean isTruncateSupported() {
		return true;
	}
New to GrepCode? Check out our FAQ X