From 52e006d978dae7cb585d932cffcac011d10d9123 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=8C=AF=E5=AF=8C?= Date: Fri, 17 Dec 2021 20:33:47 +0800 Subject: [PATCH] Update PostgreSQLDialect.java --- .../sql/dialect/PostgreSQLDialect.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/amforeas-core/src/main/java/amforeas/sql/dialect/PostgreSQLDialect.java b/amforeas-core/src/main/java/amforeas/sql/dialect/PostgreSQLDialect.java index d28a8e0..e64c102 100644 --- a/amforeas-core/src/main/java/amforeas/sql/dialect/PostgreSQLDialect.java +++ b/amforeas-core/src/main/java/amforeas/sql/dialect/PostgreSQLDialect.java @@ -17,6 +17,7 @@ */ package amforeas.sql.dialect; +import amforeas.sql.Select; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -32,5 +33,27 @@ public class PostgreSQLDialect extends SQLDialect { public String listOfTablesStatement() { return "SELECT * FROM information_schema.tables WHERE table_schema = 'public'"; } - + + @Override + public String toStatementString (Select select) { + final StringBuilder b = new StringBuilder("SELECT "); + if (select.isAllColumns()) { + b.append("t.*"); + } else { + appendColumns(b, select, "t"); + } + b.append(" FROM "); + b.append(select.getTable().getName()).append(" t"); + if (!select.isAllRecords()) { + super.appendWhereClause(b, select); + } + if (select.getOrderParam() != null) + b.append(" ORDER BY t.").append(select.getOrderParam().getColumn()).append(" ").append(select.getOrderParam().getDirection()); + + if (select.getLimitParam() != null) + b.append(" LIMIT ").append(select.getLimitParam().getLimit()).append(" offset ").append(select.getLimitParam().getStart()); + + l.debug(b.toString()); + return b.toString(); + } }