* Implemented trunc in pl/pgsql
This commit is contained in:
parent
1f49f0e571
commit
73cffd61c0
|
|
@ -730,12 +730,15 @@ public class Convert_PostgreSQL extends Convert_SQL92 {
|
||||||
// Truncate Handling -------------------------------------------------
|
// Truncate Handling -------------------------------------------------
|
||||||
// begin vpj-cd e-evolution 16/07/2005
|
// begin vpj-cd e-evolution 16/07/2005
|
||||||
// while (retValue.indexOf("TRUNC") != -1)
|
// while (retValue.indexOf("TRUNC") != -1)
|
||||||
|
//Hengsin, replace by trunc implementation in pl/pgsql
|
||||||
|
/*
|
||||||
if (retValue.indexOf("TRUNC(((TRUNC(") != -1)
|
if (retValue.indexOf("TRUNC(((TRUNC(") != -1)
|
||||||
retValue = Util.replace(retValue, "TRUNC(((TRUNC(", "(((TRUNC(");
|
retValue = Util.replace(retValue, "TRUNC(((TRUNC(", "(((TRUNC(");
|
||||||
// end vpj-cd e-evolution 16/07/2005
|
// end vpj-cd e-evolution 16/07/2005
|
||||||
|
|
||||||
while (retValue.indexOf("TRUNC") != -1)
|
while (retValue.indexOf("TRUNC") != -1)
|
||||||
retValue = convertTrunc(retValue);
|
retValue = convertTrunc(retValue);
|
||||||
|
*/
|
||||||
|
|
||||||
// Outer Join Handling -----------------------------------------------
|
// Outer Join Handling -----------------------------------------------
|
||||||
int index = retValue.indexOf("SELECT ");
|
int index = retValue.indexOf("SELECT ");
|
||||||
|
|
@ -888,12 +891,15 @@ public class Convert_PostgreSQL extends Convert_SQL92 {
|
||||||
} // convertRowNum
|
} // convertRowNum
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Hengsin, Replace by trunc implementation in pl/pgsql
|
||||||
* Convert TRUNC. Assumed that it is used for date only!
|
* Convert TRUNC. Assumed that it is used for date only!
|
||||||
*
|
*
|
||||||
* @param sqlStatement
|
* @param sqlStatement
|
||||||
* @return converted statement
|
* @return converted statement
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
private String convertTrunc(String sqlStatement) {
|
private String convertTrunc(String sqlStatement) {
|
||||||
|
*/
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* TRUNC(myDate)
|
* TRUNC(myDate)
|
||||||
|
|
@ -912,9 +918,11 @@ public class Convert_PostgreSQL extends Convert_SQL92 {
|
||||||
*
|
*
|
||||||
* //begin vpj-cd e-evolution 07/12/2005
|
* //begin vpj-cd e-evolution 07/12/2005
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
// index = sqlStatement.indexOf("TRUNC(");
|
// index = sqlStatement.indexOf("TRUNC(");
|
||||||
// beforeStatement = sqlStatement.substring(0, index);
|
// beforeStatement = sqlStatement.substring(0, index);
|
||||||
// beforeStatement = sqlStatement.replaceFirst("TRUNC" , "DATE_Trunc");
|
// beforeStatement = sqlStatement.replaceFirst("TRUNC" , "DATE_Trunc");
|
||||||
|
|
||||||
int find = -1;
|
int find = -1;
|
||||||
find = sqlStatement.indexOf(",'Q'");
|
find = sqlStatement.indexOf(",'Q'");
|
||||||
if (find != -1)
|
if (find != -1)
|
||||||
|
|
@ -967,7 +975,7 @@ public class Convert_PostgreSQL extends Convert_SQL92 {
|
||||||
|
|
||||||
// end vpj-cd e-evolution 09/02/2005 PostgreSQL
|
// end vpj-cd e-evolution 09/02/2005 PostgreSQL
|
||||||
} // convertTrunc
|
} // convertTrunc
|
||||||
|
*/
|
||||||
// begin vpj-cd e-evolution 02/24/2005 PostgreSQL
|
// begin vpj-cd e-evolution 02/24/2005 PostgreSQL
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
|
||||||
|
|
@ -94,14 +94,14 @@ public final class Convert_PostgreSQLTest {
|
||||||
+ " C_Project_ID, AD_OrgTrx_ID, C_SalesRegion_ID,C_Activity_ID,"
|
+ " C_Project_ID, AD_OrgTrx_ID, C_SalesRegion_ID,C_Activity_ID,"
|
||||||
+ " C_Campaign_ID, C_LocTo_ID, C_LocFrom_ID, User1_ID, User2_ID, GL_Budget_ID,"
|
+ " C_Campaign_ID, C_LocTo_ID, C_LocFrom_ID, User1_ID, User2_ID, GL_Budget_ID,"
|
||||||
+ " AmtAcctDr, AmtAcctCr, Qty) "
|
+ " AmtAcctDr, AmtAcctCr, Qty) "
|
||||||
+ "SELECT AD_Client_ID, AD_Org_ID, C_AcctSchema_ID, DATE_Trunc('day',DateAcct),"
|
+ "SELECT AD_Client_ID, AD_Org_ID, C_AcctSchema_ID, TRUNC(DateAcct),"
|
||||||
+ " Account_ID, PostingType, M_Product_ID, C_BPartner_ID,"
|
+ " Account_ID, PostingType, M_Product_ID, C_BPartner_ID,"
|
||||||
+ " C_Project_ID, AD_OrgTrx_ID, C_SalesRegion_ID,C_Activity_ID,"
|
+ " C_Project_ID, AD_OrgTrx_ID, C_SalesRegion_ID,C_Activity_ID,"
|
||||||
+ " C_Campaign_ID, C_LocTo_ID, C_LocFrom_ID, User1_ID, User2_ID, GL_Budget_ID,"
|
+ " C_Campaign_ID, C_LocTo_ID, C_LocFrom_ID, User1_ID, User2_ID, GL_Budget_ID,"
|
||||||
+ " COALESCE(SUM(AmtAcctDr),0), COALESCE(SUM(AmtAcctCr),0), COALESCE(SUM(Qty),0) "
|
+ " COALESCE(SUM(AmtAcctDr),0), COALESCE(SUM(AmtAcctCr),0), COALESCE(SUM(Qty),0) "
|
||||||
+ "FROM Fact_Acct a "
|
+ "FROM Fact_Acct a "
|
||||||
+ "WHERE C_AcctSchema_ID=0"
|
+ "WHERE C_AcctSchema_ID=0"
|
||||||
+ " GROUP BY AD_Client_ID,AD_Org_ID, C_AcctSchema_ID, DATE_Trunc('day',DateAcct),"
|
+ " GROUP BY AD_Client_ID,AD_Org_ID, C_AcctSchema_ID, TRUNC(DateAcct),"
|
||||||
+ " Account_ID, PostingType, M_Product_ID, C_BPartner_ID,"
|
+ " Account_ID, PostingType, M_Product_ID, C_BPartner_ID,"
|
||||||
+ " C_Project_ID, AD_OrgTrx_ID, C_SalesRegion_ID, C_Activity_ID,"
|
+ " C_Project_ID, AD_OrgTrx_ID, C_SalesRegion_ID, C_Activity_ID,"
|
||||||
+ " C_Campaign_ID, C_LocTo_ID, C_LocFrom_ID, User1_ID, User2_ID, GL_Budget_ID";
|
+ " C_Campaign_ID, C_LocTo_ID, C_LocFrom_ID, User1_ID, User2_ID, GL_Budget_ID";
|
||||||
|
|
@ -127,7 +127,7 @@ public final class Convert_PostgreSQLTest {
|
||||||
//From bug [ 1576358 ] and [ 1577055 ]
|
//From bug [ 1576358 ] and [ 1577055 ]
|
||||||
sql = "SELECT TRUNC(TO_DATE('2006-10-13','YYYY-MM-DD'),'Q') FROM DUAL";
|
sql = "SELECT TRUNC(TO_DATE('2006-10-13','YYYY-MM-DD'),'Q') FROM DUAL";
|
||||||
r = convert.convert(sql);
|
r = convert.convert(sql);
|
||||||
verify(sql, r, "SELECT DATE_Trunc('quarter',TO_TIMESTAMP('2006-10-13','YYYY-MM-DD'))");
|
verify(sql, r, "SELECT TRUNC(TO_TIMESTAMP('2006-10-13','YYYY-MM-DD'),'Q')");
|
||||||
|
|
||||||
//FinReport, test inner join in subquery
|
//FinReport, test inner join in subquery
|
||||||
sql = "UPDATE T_Report r SET (Name,Description)=("
|
sql = "UPDATE T_Report r SET (Name,Description)=("
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue