/*******************************************************************************
**                                                                        
** Source File Name = udfsrv.c                                        
**                                                                        
** Licensed Materials - Property of IBM                                   
**                                                                        
** (C) COPYRIGHT International Business Machines Corp. 1995, 2000
** All Rights Reserved.                                                   
**                                                                        
** US Government Users Restricted Rights - Use, duplication or            
** disclosure restricted by GSA ADP Schedule Contract with IBM Corp.      
**                                                                        
**                                                                        
**    PURPOSE :                                                           
**    User defined functions called from udfcli.c.
**                                                                        
** For more information about these samples see the README file.
**
** For more information on programming in CLI see the:
**     - "Building CLI Applications" section of the Application Building Guide, and the
**     - CLI Guide and Reference.
**
** For more information on the SQL language see the SQL Reference.
**
*******************************************************************************/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sqludf.h>



/*************************************************************************
*  function ScalarUDF 
**************************************************************************/
#ifdef __cplusplus
extern "C"
#endif
void SQL_API_FN ScalarUDF (
   SQLUDF_CHAR      *inJob,
   SQLUDF_DOUBLE    *inSalary,
   SQLUDF_DOUBLE    *outNewSalary,
   SQLUDF_SMALLINT  *jobNullInd,
   SQLUDF_SMALLINT  *salaryNullInd,
   SQLUDF_SMALLINT  *newSalaryNullInd,
   SQLUDF_TRAIL_ARGS)
{
    if (*jobNullInd == -1  || *salaryNullInd == -1)
    {   *newSalaryNullInd = -1;
    }
    else
    {   if( strcmp( inJob, "Mgr  ") == 0)
        {   *outNewSalary = *inSalary * 1.20;
        }	    
        else if( strcmp( inJob, "Sales") == 0)	
        {   *outNewSalary = *inSalary * 1.10;
        }		
        else /* it is clerk */	
        {   *outNewSalary = *inSalary * 1.05;
        }

        *newSalaryNullInd = 0;	
    }
	    
}
/* end of ScalarUDF */