You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by do...@apache.org on 2018/03/16 10:13:30 UTC
empire-db git commit: EMPIREDB-276 Ass support for pseudo table
Repository: empire-db
Updated Branches:
refs/heads/master ae7c41f67 -> 4039c6a2a
EMPIREDB-276
Ass support for pseudo table
Project: http://git-wip-us.apache.org/repos/asf/empire-db/repo
Commit: http://git-wip-us.apache.org/repos/asf/empire-db/commit/4039c6a2
Tree: http://git-wip-us.apache.org/repos/asf/empire-db/tree/4039c6a2
Diff: http://git-wip-us.apache.org/repos/asf/empire-db/diff/4039c6a2
Branch: refs/heads/master
Commit: 4039c6a2a4c54ae137828e659788ad2ae512d5fa
Parents: ae7c41f
Author: Rainer Döbele <do...@apache.org>
Authored: Fri Mar 16 11:13:25 2018 +0100
Committer: Rainer Döbele <do...@apache.org>
Committed: Fri Mar 16 11:13:25 2018 +0100
----------------------------------------------------------------------
.../src/main/java/org/apache/empire/db/DBCommand.java | 13 +++++++++++++
.../java/org/apache/empire/db/DBDatabaseDriver.java | 1 +
.../apache/empire/db/derby/DBDatabaseDriverDerby.java | 2 +-
.../org/apache/empire/db/h2/DBDatabaseDriverH2.java | 2 +-
.../apache/empire/db/hsql/DBDatabaseDriverHSql.java | 2 +-
.../apache/empire/db/mysql/DBDatabaseDriverMySQL.java | 2 +-
.../empire/db/oracle/DBDatabaseDriverOracle.java | 3 ++-
.../db/postgresql/DBDatabaseDriverPostgreSQL.java | 2 +-
.../empire/db/sqlite/DBDatabaseDriverSQLite.java | 2 +-
.../empire/db/sqlserver/DBDatabaseDriverMSSQL.java | 3 ++-
10 files changed, 24 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/empire-db/blob/4039c6a2/empire-db/src/main/java/org/apache/empire/db/DBCommand.java
----------------------------------------------------------------------
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBCommand.java b/empire-db/src/main/java/org/apache/empire/db/DBCommand.java
index 14f32b3..74778b3 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBCommand.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBCommand.java
@@ -1229,6 +1229,7 @@ public abstract class DBCommand extends DBCommandExpr
protected void addFrom(StringBuilder buf)
{
+ int originalLength = buf.length();
buf.append("\r\nFROM ");
// Join
boolean sep = false;
@@ -1275,6 +1276,18 @@ public abstract class DBCommand extends DBCommandExpr
t.addSQL(buf, CTX_DEFAULT|CTX_ALIAS);
sep = true;
}
+ if (sep==false)
+ { // add pseudo table or omitt from
+ String pseudoTable = db.getDriver().getSQLPhrase(DBDatabaseDriver.SQL_PSEUDO_TABLE);
+ if (StringUtils.isNotEmpty(pseudoTable))
+ { // add pseudo table
+ buf.append(pseudoTable);
+ }
+ else
+ { // remove from
+ buf.setLength(originalLength);
+ }
+ }
}
protected void addWhere(StringBuilder buf, long context)
http://git-wip-us.apache.org/repos/asf/empire-db/blob/4039c6a2/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java
----------------------------------------------------------------------
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java b/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java
index dd9197f..1a43600 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java
@@ -62,6 +62,7 @@ public abstract class DBDatabaseDriver implements Serializable
public static final int SQL_QUOTES_OPEN = 6; // Oracle: "; MSSQL: [
public static final int SQL_QUOTES_CLOSE = 7; // Oracle: "; MSSQL: ]
public static final int SQL_CONCAT_EXPR = 8; // Oracle: ||
+ public static final int SQL_PSEUDO_TABLE = 9; // Oracle: "DUAL"
// data types
public static final int SQL_BOOLEAN_TRUE = 10; // Oracle: "'Y'"; MSSQL: "1"
public static final int SQL_BOOLEAN_FALSE = 11; // Oracle: "'N'"; MSSQL: "0"
http://git-wip-us.apache.org/repos/asf/empire-db/blob/4039c6a2/empire-db/src/main/java/org/apache/empire/db/derby/DBDatabaseDriverDerby.java
----------------------------------------------------------------------
diff --git a/empire-db/src/main/java/org/apache/empire/db/derby/DBDatabaseDriverDerby.java b/empire-db/src/main/java/org/apache/empire/db/derby/DBDatabaseDriverDerby.java
index 552eda8..50fa713 100644
--- a/empire-db/src/main/java/org/apache/empire/db/derby/DBDatabaseDriverDerby.java
+++ b/empire-db/src/main/java/org/apache/empire/db/derby/DBDatabaseDriverDerby.java
@@ -235,7 +235,7 @@ public class DBDatabaseDriverDerby extends DBDatabaseDriver
// Not defined
default:
log.error("SQL phrase " + phrase + " is not defined!");
- return "?";
+ return "";
}
}
http://git-wip-us.apache.org/repos/asf/empire-db/blob/4039c6a2/empire-db/src/main/java/org/apache/empire/db/h2/DBDatabaseDriverH2.java
----------------------------------------------------------------------
diff --git a/empire-db/src/main/java/org/apache/empire/db/h2/DBDatabaseDriverH2.java b/empire-db/src/main/java/org/apache/empire/db/h2/DBDatabaseDriverH2.java
index e51a405..3a67d6f 100644
--- a/empire-db/src/main/java/org/apache/empire/db/h2/DBDatabaseDriverH2.java
+++ b/empire-db/src/main/java/org/apache/empire/db/h2/DBDatabaseDriverH2.java
@@ -283,7 +283,7 @@ public class DBDatabaseDriverH2 extends DBDatabaseDriver
// Not defined
default:
log.error("SQL phrase " + phrase + " is not defined!");
- return "?";
+ return "";
}
}
http://git-wip-us.apache.org/repos/asf/empire-db/blob/4039c6a2/empire-db/src/main/java/org/apache/empire/db/hsql/DBDatabaseDriverHSql.java
----------------------------------------------------------------------
diff --git a/empire-db/src/main/java/org/apache/empire/db/hsql/DBDatabaseDriverHSql.java b/empire-db/src/main/java/org/apache/empire/db/hsql/DBDatabaseDriverHSql.java
index af507d1..7212fab 100644
--- a/empire-db/src/main/java/org/apache/empire/db/hsql/DBDatabaseDriverHSql.java
+++ b/empire-db/src/main/java/org/apache/empire/db/hsql/DBDatabaseDriverHSql.java
@@ -175,7 +175,7 @@ public class DBDatabaseDriverHSql extends DBDatabaseDriver
// Not defined
default:
log.error("SQL phrase " + phrase + " is not defined!");
- return "?";
+ return "";
}
}
http://git-wip-us.apache.org/repos/asf/empire-db/blob/4039c6a2/empire-db/src/main/java/org/apache/empire/db/mysql/DBDatabaseDriverMySQL.java
----------------------------------------------------------------------
diff --git a/empire-db/src/main/java/org/apache/empire/db/mysql/DBDatabaseDriverMySQL.java b/empire-db/src/main/java/org/apache/empire/db/mysql/DBDatabaseDriverMySQL.java
index 05d9258..f893582 100644
--- a/empire-db/src/main/java/org/apache/empire/db/mysql/DBDatabaseDriverMySQL.java
+++ b/empire-db/src/main/java/org/apache/empire/db/mysql/DBDatabaseDriverMySQL.java
@@ -1043,7 +1043,7 @@ public class DBDatabaseDriverMySQL extends DBDatabaseDriver
// Not defined
default:
log.error("SQL phrase " + String.valueOf(phrase) + " is not defined!");
- return "?";
+ return "";
}
}
http://git-wip-us.apache.org/repos/asf/empire-db/blob/4039c6a2/empire-db/src/main/java/org/apache/empire/db/oracle/DBDatabaseDriverOracle.java
----------------------------------------------------------------------
diff --git a/empire-db/src/main/java/org/apache/empire/db/oracle/DBDatabaseDriverOracle.java b/empire-db/src/main/java/org/apache/empire/db/oracle/DBDatabaseDriverOracle.java
index b96982a..e6c9b5b 100644
--- a/empire-db/src/main/java/org/apache/empire/db/oracle/DBDatabaseDriverOracle.java
+++ b/empire-db/src/main/java/org/apache/empire/db/oracle/DBDatabaseDriverOracle.java
@@ -155,6 +155,7 @@ public class DBDatabaseDriverOracle extends DBDatabaseDriver
case SQL_QUOTES_OPEN: return "\"";
case SQL_QUOTES_CLOSE: return "\"";
case SQL_CONCAT_EXPR: return " || ";
+ case SQL_PSEUDO_TABLE: return "DUAL";
// data types
case SQL_BOOLEAN_TRUE: return (booleanType==BooleanType.CHAR) ? "'Y'" : "1";
case SQL_BOOLEAN_FALSE: return (booleanType==BooleanType.CHAR) ? "'N'" : "0";
@@ -203,7 +204,7 @@ public class DBDatabaseDriverOracle extends DBDatabaseDriver
// Not defined
default:
log.error("SQL phrase " + phrase + " is not defined!");
- return "?";
+ return "";
}
}
http://git-wip-us.apache.org/repos/asf/empire-db/blob/4039c6a2/empire-db/src/main/java/org/apache/empire/db/postgresql/DBDatabaseDriverPostgreSQL.java
----------------------------------------------------------------------
diff --git a/empire-db/src/main/java/org/apache/empire/db/postgresql/DBDatabaseDriverPostgreSQL.java b/empire-db/src/main/java/org/apache/empire/db/postgresql/DBDatabaseDriverPostgreSQL.java
index 30a5b0a..dbde9ac 100644
--- a/empire-db/src/main/java/org/apache/empire/db/postgresql/DBDatabaseDriverPostgreSQL.java
+++ b/empire-db/src/main/java/org/apache/empire/db/postgresql/DBDatabaseDriverPostgreSQL.java
@@ -383,7 +383,7 @@ public class DBDatabaseDriverPostgreSQL extends DBDatabaseDriver
// Not defined
default:
log.error("SQL phrase " + String.valueOf(phrase) + " is not defined!");
- return "?";
+ return "";
}
}
http://git-wip-us.apache.org/repos/asf/empire-db/blob/4039c6a2/empire-db/src/main/java/org/apache/empire/db/sqlite/DBDatabaseDriverSQLite.java
----------------------------------------------------------------------
diff --git a/empire-db/src/main/java/org/apache/empire/db/sqlite/DBDatabaseDriverSQLite.java b/empire-db/src/main/java/org/apache/empire/db/sqlite/DBDatabaseDriverSQLite.java
index 13cb734..c5206e7 100644
--- a/empire-db/src/main/java/org/apache/empire/db/sqlite/DBDatabaseDriverSQLite.java
+++ b/empire-db/src/main/java/org/apache/empire/db/sqlite/DBDatabaseDriverSQLite.java
@@ -411,7 +411,7 @@ public class DBDatabaseDriverSQLite extends DBDatabaseDriver
// Not defined
default:
log.error("SQL phrase " + String.valueOf(phrase) + " is not defined!");
- return "?";
+ return "";
}
}
http://git-wip-us.apache.org/repos/asf/empire-db/blob/4039c6a2/empire-db/src/main/java/org/apache/empire/db/sqlserver/DBDatabaseDriverMSSQL.java
----------------------------------------------------------------------
diff --git a/empire-db/src/main/java/org/apache/empire/db/sqlserver/DBDatabaseDriverMSSQL.java b/empire-db/src/main/java/org/apache/empire/db/sqlserver/DBDatabaseDriverMSSQL.java
index 57c0b55..1ac97ac 100644
--- a/empire-db/src/main/java/org/apache/empire/db/sqlserver/DBDatabaseDriverMSSQL.java
+++ b/empire-db/src/main/java/org/apache/empire/db/sqlserver/DBDatabaseDriverMSSQL.java
@@ -277,6 +277,7 @@ public class DBDatabaseDriverMSSQL extends DBDatabaseDriver
case SQL_QUOTES_OPEN: return "[";
case SQL_QUOTES_CLOSE: return "]";
case SQL_CONCAT_EXPR: return " + ";
+ case SQL_PSEUDO_TABLE: return ""; // not necessary (FROM will be omitted)
// data types
case SQL_BOOLEAN_TRUE: return "1";
case SQL_BOOLEAN_FALSE: return "0";
@@ -325,7 +326,7 @@ public class DBDatabaseDriverMSSQL extends DBDatabaseDriver
// Not defined
default:
log.error("SQL phrase " + String.valueOf(phrase) + " is not defined!");
- return "?";
+ return "";
}
}