@Override protected SQLTemplates build(char escape, boolean quote) { return new PostgresTemplates(escape, quote); } };
public PostgresTemplates(char escape, boolean quote) { super(POSTGRES_RESERVED_WORDS, "\"", escape, quote); setDummyTable(null); setCountDistinctMultipleColumns(true); setCountViaAnalytics(true); setDefaultValues("\ndefault values"); setSupportsUnquotedReservedWordsAsIdentifier(true); setPrecedence(Precedence.COMPARISON - 3, Ops.IS_NULL, Ops.IS_NOT_NULL); setPrecedence(Precedence.COMPARISON - 2, Ops.CONCAT, Ops.MATCHES); setPrecedence(Precedence.COMPARISON - 1, Ops.IN); setPrecedence(Precedence.COMPARISON, Ops.BETWEEN); setPrecedence(Precedence.COMPARISON + 1, Ops.LIKE, Ops.LIKE_ESCAPE); setPrecedence(Precedence.COMPARISON + 2, Ops.LT, Ops.GT, Ops.LOE, Ops.GOE); setPrecedence(Precedence.COMPARISON + 3, Ops.EQ, Ops.EQ_IGNORE_CASE); setPrecedence(Precedence.COMPARISON + 1, OTHER_LIKE_CASES); add(Ops.MOD, "{0} % {1}", Precedence.ARITH_HIGH); add(Ops.MATCHES, "{0} ~ {1}"); add(Ops.INDEX_OF, "strpos({0},{1})-1", Precedence.ARITH_LOW); add(Ops.INDEX_OF_2ARGS, "strpos({0},{1})-1", Precedence.ARITH_LOW); //FIXME add(Ops.StringOps.LOCATE, "strpos({1},{0})"); add(Ops.StringOps.LOCATE2, "strpos(repeat('^',{2s}-1) || substr({1},{2s}),{0})"); add(Ops.LIKE_ESCAPE_IC, "{0} ilike {1} escape '{2s}'"); add(Ops.LIKE, "{0} like {1}"); add(Ops.LIKE_IC, "{0} ilike {1}");
return PostgresTemplates.builder();
sqlTemplate = PostgresTemplates.builder(); } else if (SQLTemplatesConstants.DB_PRODUCT_NAME_H2.equals(dbType)) { sqlTemplate = H2Templates.builder();
public static Builder builder() { return new Builder() { @Override protected SQLTemplates build(char escape, boolean quote) { return new PostgresTemplates(escape, quote); } }; }
private static SQLTemplates.Builder findDialectBuilder(final DatabaseConfig databaseConfig) { if (databaseConfig.isMySql()) { return MySQLTemplates.builder(); } if (databaseConfig.isPostgres()) { return PostgresTemplates.builder(); } if (databaseConfig.isOracle()) { return OracleTemplates.builder(); } if (databaseConfig.isSqlServer()) { return SQLServerTemplates.builder(); } if (databaseConfig.isH2()) { return H2Templates.builder(); } // should be removed in 8.0; only required during migration of 6.x HSQL installation to 7.x H2 if (databaseConfig.isHSql()) { return HSQLDBTemplates.builder(); } throw new IllegalStateException("Unrecognised database dialect '" + databaseConfig.getDatabaseType() + "'."); }
public PostgresQueryFactory(Provider<Connection> connection) { this(new Configuration(new PostgresTemplates()), connection); }
public PostgresQuery(Connection conn) { this(conn, new Configuration(new PostgresTemplates()), new DefaultQueryMetadata()); }
public static SQLTemplates getSQLTemplates() { switch (target.get()) { case CUBRID:return new CUBRIDTemplates(); case DERBY: return new DerbyTemplates(); case H2: return new H2Templates(); case HSQLDB:return new HSQLDBTemplates(); case SQLSERVER: return new SQLServerTemplates(); case MYSQL: return new MySQLTemplates(); case ORACLE:return new OracleTemplates(); case POSTGRES: return new PostgresTemplates(); case SQLITE:return new SQLiteTemplates(); case TERADATA: return new TeradataTemplates(); } throw new IllegalStateException("Unknown mode " + mode); }