[Libreoffice-commits] core.git: wizards/com

Damjan Jovanovic damjan at apache.org
Tue Nov 10 01:47:31 PST 2015


 wizards/com/sun/star/wizards/db/SQLQueryComposer.java |    4 ++++
 1 file changed, 4 insertions(+)

New commits:
commit b9042d2e46f4a0645b63efb23e49b9421d04d837
Author: Damjan Jovanovic <damjan at apache.org>
Date:   Sat Nov 7 18:26:04 2015 +0000

    #i126029# Base query wizard error due to missing quoting of table and column names
    
    During the Base query design wizard,
    com.sun.star.wizards.ui.FilterComponent.getFilterConditions()
    calls
    com.sun.star.wizards.db.SQLQueryComposer.getSelectClause()
    before its
    getFromClause(). However the getSelectClause() needs composedCommandNames
    which is populated only by getFromClause() in order to quote table and column names.
    Without this, table and column names that need quoting (spaces, special characters,
    reserved words) produce errors.
    
    (cherry picked from commit 046771cac8605e5826a150e4454eff332b65d517)

diff --git a/wizards/com/sun/star/wizards/db/SQLQueryComposer.java b/wizards/com/sun/star/wizards/db/SQLQueryComposer.java
index 4a7a679..7a99b7d 100644
--- a/wizards/com/sun/star/wizards/db/SQLQueryComposer.java
+++ b/wizards/com/sun/star/wizards/db/SQLQueryComposer.java
@@ -68,6 +68,10 @@ public class SQLQueryComposer
 
     public String getSelectClause(boolean _baddAliasFieldNames) throws SQLException
     {
+        // getFromClause() must be called first to populate composedCommandNames,
+        // but it's idempotent, so let's call it now in case the caller didn't already:
+        getFromClause();
+
         String sSelectBaseClause = "SELECT ";
         String sSelectClause = sSelectBaseClause;
         for (int i = 0; i < CurDBMetaData.FieldColumns.length; i++)


More information about the Libreoffice-commits mailing list