String SELECT_COLUMN_SPACING = "        ";
	public static String constructSql( ArrayList tableList,			ArrayList columnList, ArrayList joinList, JdbcMetaDataProvider metaDataProvider )        {					// String used to quote the identifiers by default		    // when they have to be escaped			String quoteString = null;			String extraNameCharacters = null;			String searchEscapeCharacter = null;						String databaseName = "";			boolean schemaSupported = true;						if ( metaDataProvider != null )			{				databaseName = metaDataProvider.getDataBaseName();				schemaSupported = metaDataProvider.isSchemaSupported();			}									char escapeChar = '\'';						if  (metaDataProvider != null)			{				DatabaseMetaData metaData = metaDataProvider.getMetaData();				if ( metaData != null )				{					try					{						quoteString = metaData.getIdentifierQuoteString();						extraNameCharacters = metaData.getExtraNameCharacters();												if( extraNameCharacters != null )						{													}												searchEscapeCharacter = metaData.getSearchStringEscape();																	}					catch(SQLException e)					{						e.printStackTrace();					}				}			}						if( quoteString == null || quoteString.trim().length() == 0)			{				quoteString = "\"";			}									String[] delimitors = { quoteString, quoteString };						// Handling for special cases			getQuoteString(databaseName, delimitors);						String startDelimitor = delimitors[0];			String endDelimitor = delimitors[1];						        	String sqlStatement = null;        	String SELECT = " SELECT ";        	String SELECT_COLUMN_SPACING = "        ";        	if ( tableList != null && columnList != null)        	{        		        		// The Select clause built from the column list        		StringBuffer selectClause = new StringBuffer(SELECT);//$NON-NLS-1$        		        		int columnCount = columnList.size();        		        		for ( int i=0; i < columnCount; i++)        		{        			String columnName = (String)columnList.get(i);        			//selectClause.append(columnName);        			selectClause.append(quoteName(columnName, startDelimitor, endDelimitor ));        			if ( i != (columnCount -1))        			{        				 selectClause.append(",");//$NON-NLS-1$        				 selectClause.append("\n");        				 selectClause.append(SELECT_COLUMN_SPACING);        			}        		}        		        		selectClause.append(" ");//$NON-NLS-1$        		StringBuffer fromClause = new StringBuffer(" FROM ");//$NON-NLS-1$        		        		String fromAndWhereClause = null;       			fromAndWhereClause = getFromAndOnClause(tableList, joinList, startDelimitor, endDelimitor, schemaSupported);        		sqlStatement = selectClause.toString() + "\n" + fromAndWhereClause;        	}        	        	return sqlStatement;        }