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

BSD-3 clause for files in:
  incubator-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.

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

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