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 sbFieldType fieldTypeint fieldWidth) {
 		sb.append("SMALLINT");
 	}
 
 	protected void appendByteArrayType(StringBuilder sbFieldType fieldTypeint fieldWidth) {
 		sb.append("BYTEA");
 	}
 
 	protected void appendSerializableType(StringBuilder sbFieldType fieldTypeint fieldWidth) {
 		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(");
 		// postgres needed this special escaping for NEXTVAL('"sequence-name"')
 		sb.append('\'').append('\"').append(sequenceName).append('\"').append('\'');
 		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 name) {
 		// this handles table names like schema.table which have to be quoted like "schema"."table"
 		boolean first = true;
 		for (String namePart : name.split("\\.")) {
 			if (first) {
 				first = false;
 			} else {
 				sb.append('.');
 			}
 			sb.append('\"').append(namePart).append('\"');
 		}
 	}
 
 	public boolean isIdSequenceNeeded() {
 		return true;
 	}
 
 	public boolean isSelectSequenceBeforeInsert() {
 		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;
	}
	public boolean isCreateIfNotExistsSupported() {
		int major = .getMajorVersion();
		if (major > 9 || (major == 9 && .getMinorVersion() >= 1)) {
			return true;
else {
		}
	}
New to GrepCode? Check out our FAQ X