private void prepareQuery()

in src/main/java/com/datacompare/service/FetchMetadata.java [168:233]


	private void prepareQuery(Connection connection, String schemaName, String tableName, String sortKey,
			String primaryKey, String uniqueKeyCol, String filter, String filterType, long rowCount,
			Map<String, TableColumnMetadata> sourceTableMetadataMap) throws SQLException {
		
		String query = null;
		String sortCols = null;
		String cols = null;
		
		switch (getDbType()) {

		case "POSTGRESQL":

			sortCols = replaceColumnWithHash(getTargetColumns(sourceTableMetadataMap,true));

			cols = replaceColumnWithHash(getTargetColumns(sourceTableMetadataMap,false));
			uniqueKeyCol=replaceColumnWithHash(uniqueKeyCol);
			
			query = "SELECT " + uniqueKeyCol + cols + " FROM " + schemaName + "." + tableName;


			if(isHasNoUniqueKey()) {
				
				String subQuery = "SELECT " + uniqueKeyCol + cols + " FROM (" + "SELECT " + cols + " FROM " + schemaName + "." + tableName + " order by " + sortCols + ") t1";
				
				query = "SELECT t2.* FROM (" + subQuery + ") t2";
			}
			
			generateChunksPostgresql(connection, schemaName, tableName, rowCount, filter);

			break;

		case "ORACLE":

			sortCols = getSourceColumns(true);
			cols=getSourceColumns(false);
			query = "SELECT " + uniqueKeyCol + cols + " FROM " + schemaName + "." + tableName;
			
			if(isHasNoUniqueKey()) {
				
				String subQuery = "SELECT " + uniqueKeyCol + cols + " FROM (" + "SELECT " + cols + " FROM " + schemaName + "." + tableName  + " order by " + sortCols + ")";
				
				query = "SELECT * FROM (" + subQuery +  ")";
			}
			
			generateSourceChunks(connection, schemaName, tableName, sortKey, primaryKey, filter, filterType, sortCols);

			break;

		case "SQLSERVER":

			cols = getSourceColumns(false);
			sortCols=getSourceColumns(true);
			query = "SELECT " + uniqueKeyCol + cols + " FROM " + schemaName + "." + tableName;
			//TODO
			if(isHasNoUniqueKey()) {
				String subQuery = "SELECT " + uniqueKeyCol + cols + " FROM (" + "SELECT " +  cols + " FROM " + schemaName + "." + tableName + ") t1";
				query = "SELECT t2.* FROM (" + subQuery + " order by " + sortCols + ") t2";
			}
			generateSourceChunks(connection, schemaName, tableName, sortKey, primaryKey, filter, filterType, sortCols);
			break;
		}
		
		setSql(query); 
		
		logger.info("\n" + getDbType() + ": SQL Query without chunk: " + getSql());
	}