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 "";
         }
     }