===============================================================================
Software used to test Apache Trafodion bundles source with BSD-like licenses:

BSD-3 clause for files in:
  trafodion/tests/phx/src/test/java/org/trafodion/phoenix/end2end

Apache Trafodion changed these files to work within its test environment

 Copyright (c) 2013, Salesforce.com, Inc.

 Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions are met:

     Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.
     Redistributions in binary form must reproduce the above copyright notice,
     this list of conditions and the following disclaimer in the documentation
     and/or other materials provided with the distribution.
     Neither the name of Salesforce.com nor the names of its contributors may
     be used to endorse or promote products derived from this software without
     specific prior written permission.

 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+++++++++++++++++++++++++++++

As part of testing large objects (LOBs), the testware needs some object files.
Two pictures were donated for this purpose by Christophe LeRouzo.  He has
formally given Apache Trafodion to permission to use these picturs.

 trafodion/core/sql/regress/executor/anoush.jpg
 trafodion/core/sql/regress/executor/deep.jpg

+++++++++++++++++++++++++++++
