;*********************************************************************** ;Licensed Materials - Property of IBM ; ;BI and PM: UDA ; ;(C) Copyright IBM Corp. 2005, 2020 ; ;U.S. Government Users Restricted Rights - Use, duplication, or disclosure ;by GSA ADP Schedule Contract with IBM Corp. ; ;Unless specifically authorized by IBM, you may not modify any part of this ;file. Where modification is authorized, you must reproduce any copyright ;notices contained in this file and specifically identify which ;modifications have been made by your organization. YOU ARE SOLELY ;RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF ANY MODIFICATIONS TO ;THIS FILE AND ASSUME ALL RISKS ASSOCIATED WITH THE USE AND DISTRIBUTION ;OF THE MODIFIED FILE. IBM will not provide support relating to ;unauthorized changes you make to this file. ;*********************************************************************** ; $Header: //uda/main/prod/dmd/sgi/informix/cogdmif.ini#6 $ ; ; Module: ; cogdmif.ini ; ; Purpose: ; This module contains the Informix gateway information. ; ; Notes: ; 1) Do NOT modify this file. Doing so could result in unknown behavior ; by the Informix gateway, possibly resulting in application aborts. ; ; 2) Informix does not support a function for performing the substring ; function; it uses array indexing of the form ; [ {,} ] ; If is not specified, then only 1 character is extracted. ; The function 'ARRAY_SUBSTR' is not really an Informix function but ; a special function name indicating that the above array indexing ; is to be used. ; The following is the mapping applied by our interface for ARRAY_SUBSTR ; ARRAY_SUBSTR( %1, %2 {, %3} ) ; maps to ; %1[ %2 {, %3} ] ; ; 3) The following are valid entry format: ; - [section name]:default values for both Informix Dynamic Server ; and Informix Extended Parallel Server ; - [section name Database:IDS]: default values for Informix Dynamic Server ; - [section name Database:XPS]; default values for Informix Extended ; Parallel Server ; - [section name Database:IDS/XPS 'version']: default values for either ; IDS or XPS and specific version. ; ; ************************************************************************ [Expression Results] [Exceptions Commands] Call="EXECUTE PROCEDURE " [Exceptions Clauses] [Exceptions Tables] UniqueName_Prefix="coguda" SQL_MAX_TABLE_NAME_LEN="128" [Exceptions Tables Database:IDS INFORMIX7.31] SQL_MAX_TABLE_NAME_LEN="18" [Exceptions Tables Database:IDS] Derived=T Joined=T [Exceptions Tables Database:IDS INFORMIX10.00] Derived=F [Exceptions Tables Database:IDS INFORMIX9.40] Derived=F [Exceptions Tables Database:IDS INFORMIX9.14] Derived=F [Exceptions Tables Database:IDS INFORMIX7.31] Derived=F [Exceptions Tables Database:XPS] ; Turn off derived table due to trakker bugs 523528, 523677 Derived=F Joined=F [Exceptions Tables Database:XPS INFORMIX8.40] ; Trakker 438973 uncovered a third-party issue with multi-level nestings ; of derived tables, so until this issue is fixed, we cannot push derived ; tables to the database. Derived=F [Exceptions Joins] Inner=T Left_Outer=T Right_Outer=T Full_Outer=T Cross=F Nested_Outer=T Nested_Inner_To_Product=F Left_Nested=T Right_Nested=T Inner_Tbl_Restrict=F Outer_Syntax=T Outer_Tbl_List=T Non_Equi_Joins=T Right_Pre="OUTER(" Right_Eql="=" Right_Post=")" Optnl_Tbl_Join_Filter=T ; ; Allowed: (1) IN, EXISTS, ALL/ANY/SOME subqueries ; (2) Subquery that returns only one value ; On_Condition_Subqueries=T On_Condition_Not_Predicate=T On_Condition_In_Predicate=T On_Condition_Between_Predicate=T On_Condition_Like_Predicate=T On_Condition_IsNull_Predicate=T On_Condition_Or_Predicate=T [Exceptions Joins Database:IDS] Right_Outer=F Left_Eql=" LEFT OUTER JOIN " Optnl_Tbl_Restrict=F Two_Sided_Join_Restrict=F Two_Sided_Join_Restrict_Filter=F Optnl_Tbl_Join_Restrict=F Optnl_Tbl_Filter=T Prsrv_Tbl_Join_Filter=T [Exceptions Joins Database:XPS] Inner=F Full_Outer=F Left_Pre="OUTER(" Left_Eql="=" Left_Post=")" Optnl_Tbl_Restrict=T Two_Sided_Join_Restrict=T Two_Sided_Join_Restrict_Filter=T Optnl_Tbl_Join_Restrict=T Optnl_Tbl_Filter=F Prsrv_Tbl_Join_Filter=F [Exceptions Joins Database:IDS INFORMIX11.70] Full_Outer=F [Exceptions Joins Database:IDS INFORMIX11.50] Full_Outer=F [Exceptions Joins Database:IDS INFORMIX7.31] Inner=F [Exceptions Joins Database:IDS INFORMIX9.14] Inner=F [Exceptions Predicates] Unique= ;Exists= [Exceptions Aggregates] Max="max" Min="min" Sum="sum" Avg="avg" Count="count" Count_Star="count(*)" Stddev="stdev" Variance="variance" [Exceptions OLAP Functions Database:IDS] Olap_Max="max" Olap_Min="min" Olap_Sum="sum" Olap_Avg="avg" Olap_Count="count" Olap_Count_Star="count(*)" Olap_Cume_Dist="cume_dist" Olap_Ntile="ntile" Olap_Rank="rank" Olap_Dense_Rank="dense_rank" Olap_Percent_Rank="percent_rank" Olap_Ratio_To_Report="ratio_to_report" Olap_Row_Number="row_number" Olap_First_Value="first_value" Olap_Last_Value="last_value" ;Olap_Count_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING" ;Olap_Sum_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING" ;Olap_Avg_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING" Olap_Last_Value_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING" [Exceptions OLAP Functions Database:IDS INFORMIX11.70] Olap_Max= Olap_Min= Olap_Sum= Olap_Avg= Olap_Count= Olap_Count_Star= Olap_Cume_Dist= Olap_Ntile= Olap_Rank= Olap_Dense_Rank= Olap_Percent_Rank= Olap_Ratio_To_Report= Olap_Row_Number= Olap_First_Value= Olap_Last_Value= [Exceptions OLAP Functions Database:IDS INFORMIX11.50] Olap_Max= Olap_Min= Olap_Sum= Olap_Avg= Olap_Count= Olap_Count_Star= Olap_Cume_Dist= Olap_Ntile= Olap_Rank= Olap_Dense_Rank= Olap_Percent_Rank= Olap_Ratio_To_Report= Olap_Row_Number= Olap_First_Value= Olap_Last_Value= [Exceptions OLAP Functions Database:IDS INFORMIX10.00] Olap_Max= Olap_Min= Olap_Sum= Olap_Avg= Olap_Count= Olap_Count_Star= Olap_Cume_Dist= Olap_Ntile= Olap_Rank= Olap_Dense_Rank= Olap_Percent_Rank= Olap_Ratio_To_Report= Olap_Row_Number= Olap_First_Value= Olap_Last_Value= [Exceptions OLAP Functions Database:IDS INFORMIX9.40] Olap_Max= Olap_Min= Olap_Sum= Olap_Avg= Olap_Count= Olap_Count_Star= Olap_Cume_Dist= Olap_Ntile= Olap_Rank= Olap_Dense_Rank= Olap_Percent_Rank= Olap_Ratio_To_Report= Olap_Row_Number= Olap_First_Value= Olap_Last_Value= [Exceptions OLAP Functions Database:XPS] Olap_Max= Olap_Min= Olap_Sum= Olap_Avg= Olap_Count= Olap_Count_Star= Olap_Cume_Dist= Olap_Ntile= Olap_Rank= Olap_Dense_Rank= Olap_Percent_Rank= Olap_Ratio_To_Report= Olap_Row_Number= Olap_First_Value= Olap_Last_Value= [Exceptions Set Operators Database:IDS] Distinct="distinct" ; turn off union and union all operator due to Informix bug described in ; Trakker #400422 and IBM PMR 77287,004. IBM returns the wrong NULLABLE value ; of the output columns in a union clause. ; Against Informix 12.10 beta server sql9179, sql9180 and sql 9197 has issue with null indicator flag, hence the result return -big number. Union="union" ;Union_All=T Intersect="intersect" Except=" except " [Exceptions Set Operators Database:IDS INFORMIX11.70] ; turn off union and union all operator due to Informix bug described in ; Trakker #400422 and IBM PMR 77287,004. IBM returns the wrong NULLABLE value ; of the output columns in a union clause. Union= Union_All=F Intersect= Except= [Exceptions Set Operators Database:IDS INFORMIX10.00] ; turn off union and union all operator due to Informix bug described in ; Trakker #400422 and IBM PMR 77287,004. IBM returns the wrong NULLABLE value ; of the output columns in a union clause. Union= Union_All=F Intersect= Except= [Exceptions Set Operators Database:IDS INFORMIX9.40] ; turn off union and union all operator due to Informix bug described in ; Trakker #400422 and IBM PMR 77287,004. IBM returns the wrong NULLABLE value ; of the output columns in a union clause. Union= Union_All=F Intersect= Except= [Exceptions Set Operators Database:XPS] ; turn off union and union all operator due to Informix bug described in ; Trakker #400422 and IBM PMR 77287,004. IBM returns the wrong NULLABLE value ; of the output columns in a union clause. Union= Union_All=F Intersect= Except= [Exceptions Operators] Neq=" <> " [Exceptions Value Expressions] Octet_Length=T Char_Length=T StrCat=T Substring=T Trim=T Extract=C Current_Time=F Current_Timestamp=F LocalTime=C LocalTimestamp=C Abs=T Mod=T Ln=T Exp=T Power=C Sqrt=T Floor=C Nullif=T Upper=T Lower=T Case_Searched=T ; ; Extract=C, above, indicates that SQL'92 EXTRACT functionality ; is [partially] supported by the Informix Gateway through the use ; of the following function maps. The entries without corresponding ; function names are simulated locally. ; ie) 'EXTRACT( YEAR FROM )' can be supported by the ; 'if_year( )' function described in the ; Database Functions section. ; Extract_Year=coguda#extract_year Extract_Month=coguda#extract_month Extract_Day=coguda#extract_day ; Informix day only accepts date/datetime expression. Cognos SQL ; extract_day accepts interval in addition to date/datetime expression. ; Extract_Hours= ; Extract_Minutes= ; Extract_Seconds= Case_Simple=T Current_Date=C Cast=C [Exceptions Value Expressions Database:IDS INFORMIX11.70] Ln=C Nullif=F [Exceptions Value Expressions Database:IDS INFORMIX11.50] Ln=C Nullif=F [Exceptions Value Expressions Database:IDS INFORMIX10.00] Ln=C [Exceptions Value Expressions Database:IDS INFORMIX9.40] Ln=C [Exceptions Value Expressions Database:IDS INFORMIX7.31] Cast=F [Exceptions Value Expressions Database:XPS] Case_Simple=F Current_Date=F Cast=F Ln=C Nullif=F [Exceptions General] Aggregate_Value_Expr=T Aggregate_In_Expr=T Boolean_Comparison=F Count_Non_Distinct=T Count_Value_Expr=T Multiple_Distinct=T Distinct_Aggregates=T Group_By_Ordinal=T Nulls_Sort_Last=F Subqueries=T Subquery_Column_Alias=T Like_Value_Expr=T Group_By_Expr=F Subquery_In_Group_By=F Subquery_In_Aggregate=T Count_Blob=F ; Informix does not support order by alias/name with union clause Order_By_Alias=F Order_By_Name=F Group_By_Sorted=F Like_With_Escape=T Integer_Division_Truncation=F Is_Null_Value_Expr=T Is_Null_Value_Parm=T [Exceptions General Database:IDS] Correlated_Subqueries=T Is_Null_Value_Parm=F [Exceptions General Database:IDS INFORMIX11.70] Count_Value_Expr=F Multiple_Distinct=F [Exceptions General Database:IDS INFORMIX11.50] Count_Value_Expr=F Multiple_Distinct=F [Exceptions General Database:IDS INFORMIX11.10] Is_Null_Value_Expr=F [Exceptions General Database:IDS INFORMIX10.00] Is_Null_Value_Expr=F [Exceptions General Database:IDS INFORMIX9.40] Is_Null_Value_Expr=F [Exceptions General Database:IDS INFORMIX9.14] Is_Null_Value_Expr=F [Exceptions General Database:IDS INFORMIX7.31] Is_Null_Value_Expr=F [Exceptions General Database:XPS] Correlated_Subqueries=F Count_Value_Expr=F [Exceptions General Database:XPS INFORMIX8.20] Correlated_Subqueries=T Count_Non_Distinct=F Is_Null_Value_Parm=F [Exceptions General Database:XPS INFORMIX8.30] Correlated_Subqueries=T Is_Null_Value_Parm=F [Exceptions Literals] True_Literal_Str="T" False_Literal_Str="F" Unknown_Literal_Str= Date_Literal=C Date_Format_Str="YYYY MM DD" Date_Literal_Str="DATE(DATETIME( %s-%s-%s ) YEAR TO DAY)" Timestamp_Literal=C Timestamp_Format_Str="YYYY MM DD HH MM SS FFFFF" Timestamp_Literal_Str="DATETIME( %s-%s-%s %s:%s:%s.%s ) YEAR TO FRACTION(5)" TimestampTZ_Literal=F TimestampTZ_Format_Str= TimestampTZ_Literal_Str= Time_Literal=C Time_Format_Str="HH MM SS FFFFF" Time_Literal_Str="DATETIME( %s:%s:%s.%s ) HOUR TO FRACTION(5)" TimeTZ_Literal=F TimeTZ_Format_Str= TimeTZ_Literal_Str= Interval_Literal=F Interval_Format_Str="DD HH MM SS FFFFF" Interval_Literal_Str="INTERVAL( %s %s:%s:%s.%s ) DAY(9) TO FRACTION(5)" IntervalYM_Literal=F IntervalYM_Format_Str="YYYYYYYYY MM" IntervalYM_Literal_Str="INTERVAL( %s-%s ) YEAR(9) TO MONTH" Date_Add_Function_Str="( EXTEND(?1, YEAR TO FRACTION) + ?2 )" Date_Sub_Function_Str="( EXTEND(?1, YEAR TO FRACTION) - ?2 )" NChar_Literal=T [Exceptions Literals Database:IDS] Boolean_Literal=T [Exceptions Literals Database:IDS INFORMIX7.31] Boolean_Literal=F [Exceptions Literals Database:XPS] Boolean_Literal=F [Exceptions Delimiters] Catalog_Delimiter= Schema_Delimiter="'" Table_Delimiter= Column_Delimiter= Procedure_Delimiter= Wholename_Delimiter= [Exceptions Separators] Catalog_Separator=":" Schema_Separator="." Table_Separator="." [Exceptions Misc] Session_Sort_Order=T [Builtin Functions] d:date(%1dcs)=DATE(%1); n:ln(%1n)=LN(%1); n:power(%1n,%2n)=POW(%1,%2); n:floor(%1n)=TRUNC(%1,0); n:absolute(%1n)=ABS(%1); c:upshift(%1c)=UPPER(%1); c:downshift(%1c)=LOWER(%1); n:round(%1n,%2n)=round(%1,%2); ; CAST Functions ; n:coguda#cast_bigint(%1cn)=CAST(%1 AS INT8); n:coguda#cast_float(%1cn)=CAST(%1 AS REAL); n:coguda#cast_real(%1cn)=CAST(%1 AS REAL); n:coguda#cast_double_precision(%1cn {,%2n})=CAST(%1 AS DOUBLE PRECISION{(%2)}); d:coguda#cast_date(%1c)=CAST( TO_DATE(%1, '%Y-%m-%d') AS DATE ); d:coguda#cast_date(%1ds)=CAST( %1 AS DATE ); t:coguda#cast_time(%1)=CAST(%1 AS DATETIME HOUR TO FRACTION(3)); s:coguda#cast_timestamp(%1cnds)=CAST(%1 AS DATETIME YEAR TO FRACTION(3)); i:coguda#cast_interval(%1cni)=CAST(%1 AS INTERVAL DAY(9) TO FRACTION(3)); i:coguda#cast_interval_year(%1)=CAST(%1 AS INTERVAL YEAR(9) TO YEAR); i:coguda#cast_interval_year_to_month(%1)=CAST(%1 AS INTERVAL YEAR(9) TO MONTH); i:coguda#cast_interval_month(%1)=CAST(%1 AS INTERVAL MONTH(9) TO MONTH); i:coguda#cast_interval_day(%1)=CAST(%1 AS INTERVAL DAY(9) TO DAY); i:coguda#cast_interval_day_to_hour(%1)=CAST(%1 AS INTERVAL DAY(9) TO HOUR); i:coguda#cast_interval_day_to_minute(%1)=CAST(%1 AS INTERVAL DAY(9) TO MINUTE); i:coguda#cast_interval_day_to_second(%1)=CAST(%1 AS INTERVAL DAY(9) TO FRACTION(3)); i:coguda#cast_interval_hour(%1)=CAST(%1 AS INTERVAL HOUR(9) TO HOUR); i:coguda#cast_interval_hour_to_minute(%1)=CAST(%1 AS INTERVAL HOUR(9) TO MINUTE); i:coguda#cast_interval_hour_to_second(%1)=CAST(%1 AS INTERVAL HOUR(9) TO FRACTION(3)); i:coguda#cast_interval_minute(%1)=CAST(%1 AS INTERVAL MINUTE(9) TO MINUTE); i:coguda#cast_interval_minute_to_second(%1)=CAST(%1 AS INTERVAL MINUTE(9) TO FRACTION(3)); i:coguda#cast_interval_second(%1)=CAST(%1 AS INTERVAL SECOND(9) TO FRACTION(3)); c:coguda#cast_char(%1b {,%2n})=CASE %1 WHEN 'T' THEN CAST('TRUE' AS CHAR{(%2)}) WHEN 'F' THEN CAST('FALSE' AS CHAR{(%2)}) END; c:coguda#cast_char(%1ndtsic {,%2n})=CAST(%1 AS CHAR{(%2)}); c:coguda#cast_varchar(%1b {,%2n})=CASE %1 WHEN 'T' THEN CAST('TRUE' AS VARCHAR{(%2)}) WHEN 'F' THEN CAST('FALSE' AS VARCHAR{(%2)}) END; c:coguda#cast_varchar(%1ndtsic {,%2n})=CAST(%1 AS VARCHAR{(%2)}); c:coguda#cast_nchar(%1b {,%2n})=CASE %1 WHEN 'T' THEN CAST('TRUE' AS NCHAR{(%2)}) WHEN 'F' THEN CAST('FALSE' AS NCHAR{(%2)}) END; c:coguda#cast_nchar(%1ndtsic {,%2n})=CAST(%1 AS NCHAR{(%2)}); c:coguda#cast_varchar(%1b {,%2n})=CASE %1 WHEN 'T' THEN CAST('TRUE' AS NVARCHAR{(%2)}) WHEN 'F' THEN CAST('FALSE' AS NVARCHAR{(%2)}) END; c:coguda#cast_nvarchar(%1ndtsic {,%2n})=CAST(%1 AS NVARCHAR{(%2)}); ;Functions required to cast division of integer/numeric to a floating point n:coguda#cast_division_float(%1cn)=CAST(%1 AS REAL); n:coguda#cast_division_double_precision(%1cn {,%2n})=CAST(%1 AS DOUBLE PRECISION{(%2)}); ; ; Business Functions for Date Calculations ; s:_add_days(%1s,%2n)=((%1) + (%2) UNITS DAY); d:_add_days(%1d,%2n)=((%1) + (%2) UNITS DAY); n:_days_between(%1ds,%2ds)=( %1 - %2 ); n:_months_between(%1ds,%2ds)=; n:_years_between(%1ds,%2ds)=; n:_days_to_end_of_month(%1ds)=( DAY(( ( %1 - DAY( %1 ) UNITS DAY + 1 UNITS DAY ) + 1 UNITS MONTH - 1 UNITS DAY )) - DAY(%1) ); n:_age(%1d)=; d:_first_of_month(%1d)=(%1 - DAY(%1) UNITS DAY + 1 UNITS DAY); s:_first_of_month(%1s)=(%1 - DAY(%1) UNITS DAY + 1 UNITS DAY); d:_last_of_month(%1d)=((%1 - DAY(%1) UNITS DAY + 1 UNITS DAY) + 1 UNITS MONTH - 1 UNITS DAY); s:_last_of_month(%1s)=((%1 - DAY(%1) UNITS DAY + 1 UNITS DAY) + 1 UNITS MONTH - 1 UNITS DAY); s:_make_timestamp(%1n,%2n,%3n)=EXTEND( MDY( %2 , %3 , %1 ) ); n:_ymdint_between(%1ds,%2ds)=; n:_week_of_year(%1ds)=; n:_day_of_week(%1ds, %2n)=(MOD( WEEKDAY( %1 ) - %2 + 7, 7 ) + 1); n:_round(%1n,%2n)=ROUND(%1,%2); ; ; Additional Business Functions for Date Calculations ; s:_add_hours(%1s,%2n)=(%1 + %2 UNITS HOUR); t:_add_hours(%1t,%2n)=(%1 + %2 UNITS HOUR); s:_add_minutes(%1s,%2n)=(%1 + %2 UNITS MINUTE); t:_add_minutes(%1t,%2n)=(%1 + %2 UNITS MINUTE); s:_add_seconds(%1s,%2n)=(%1 + %2 UNITS SECOND); t:_add_seconds(%1t,%2n)=(%1 + %2 UNITS SECOND); n:_hours_between(%1ds,%2ds)=; n:_minutes_between(%1ds,%2ds)=; n:_seconds_between(%1ds,%2ds)=; ; ; Functions required by EXTRACT. ; n:coguda#extract_year(%1ds)=YEAR(%1); n:coguda#extract_month(%1ds)=MONTH(%1); n:coguda#extract_day(%1ds)=DAY(%1); n:coguda#extract_hour(%1)=; n:coguda#extract_minute(%1)=; n:coguda#extract_second(%1)=; [Builtin Functions Database:IDS] d:_add_months(%1d,%2n)=CASE WHEN DAY((MDY(MONTH(%1), 1, YEAR(%1)) + (%2) UNITS MONTH) + 1 UNITS MONTH - 1 UNITS DAY ) < DAY(%1) then ((%1 - DAY(%1) UNITS DAY + 1 UNITS DAY) + (%2) UNITS MONTH) + 1 UNITS MONTH - 1 UNITS DAY else %1 + (%2) UNITS MONTH END; s:_add_months(%1s,%2n)=CASE WHEN DAY((MDY(MONTH(%1), 1, YEAR(%1)) + (%2) UNITS MONTH) + 1 UNITS MONTH - 1 UNITS DAY ) < DAY(%1) then ((%1 - DAY(%1) UNITS DAY + 1 UNITS DAY) + (%2) UNITS MONTH) + 1 UNITS MONTH - 1 UNITS DAY else %1 + (%2) UNITS MONTH END; d:_add_years(%1d,%2n)=CASE WHEN MONTH(%1) = 2 AND DAY(%1) = 29 AND NOT MOD( %2, 4 ) = 0 THEN MDY(2, 28, YEAR(%1) + (%2)) ELSE MDY(MONTH(%1), DAY(%1), YEAR(%1) + (%2)) END; s:_add_years(%1s,%2n)=CASE WHEN MONTH(%1) = 2 AND DAY(%1) = 29 AND NOT MOD( %2, 4 ) = 0 THEN (((%1) - DAY(%1) UNITS DAY) + 1 UNITS DAY) + (%2) UNITS YEAR + 1 UNITS MONTH - 1 UNITS DAY else (%1) + (%2) UNITS YEAR END; n:_day_of_year(%1ds)=CAST( CAST( EXTEND( %1, YEAR TO DAY ) + 1 UNITS DAY - EXTEND( %1, YEAR TO YEAR) AS CHAR(10) ) AS INTEGER ); [Builtin Functions Database:IDS INFORMIX11.70] n:ln(%1n)=LOGN(%1); [Builtin Functions Database:IDS INFORMIX11.50] n:ln(%1n)=LOGN(%1); [Builtin Functions Database:IDS INFORMIX10.00] n:ln(%1n)=LOGN(%1); [Builtin Functions Database:IDS INFORMIX9.40] n:ln(%1n)=LOGN(%1); [Builtin Functions Database:IDS INFORMIX7.31] ds:_add_months(%1ds,%2n)=; ds:_add_months(%1ds,%2n)=; ds:_add_years(%1ds,%2n)=; n:_day_of_year(%1ds)=; s:_add_hours(%1s,%2n)=; t:_add_hours(%1t,%2n)=; s:_add_minutes(%1s,%2n)=; t:_add_minutes(%1t,%2n)=; s:_add_seconds(%1s,%2n)=; t:_add_seconds(%1t,%2n)=; [Builtin Functions Database:XPS] ds:_add_months(%1ds,%2n)=; ds:_add_years(%1ds,%2n)=; n:_day_of_year(%1ds)=; s:_add_hours(%1s,%2n)=; t:_add_hours(%1t,%2n)=; s:_add_minutes(%1s,%2n)=; t:_add_minutes(%1t,%2n)=; s:_add_seconds(%1s,%2n)=; t:_add_seconds(%1t,%2n)=; n:ln(%1n)=LOGN(%1); [Database Functions] n:stddev_pop(%1n)=STDEV(%1); n:var_pop(%1n)=VARIANCE(%1); n:power(%1n,%2n)=POW(%1,%2); n:sqrt(%1n)=SQRT(%1); d:current_date()=TODAY; t:localtime()=CURRENT HOUR TO FRACTION; t:localtime(%1n)=CURRENT HOUR TO FRACTION(%1); s:localtimestamp({%1n})=CURRENT; c:dbservername()=DBSERVERNAME; s:if_current()=CURRENT; d:if_date(%1cns)=DATE(%1); s:if_datetime(%1cn, %2c)=DATETIME(%1) %2; n:if_day(%1ds)=DAY(%1); i:if_interval(%1cn, %2c)=INTERVAL(%1) %2; n:if_length(%1c)=LENGTH(%1); n:if_month(%1ds)=MONTH(%1); n:if_round(%1n {, %2n})=ROUND(%1 {, %2}); i:if_units(%1n, %2c)=(%1) UNITS %2; c:if_user()=USER; n:if_year(%1ds)=YEAR(%1); c:sitename()=SITENAME; d:today()=TODAY; ; ; if_substring( , {, } ) ; INFORMIX supports array subscripting on column names. 'if_subtring' ; provides a mapping to this syntax. You specify the starting offset ; and the ending offset within the character column. Offsets must be ; one-based numeric literals. Specifying only extracts a ; single character. ; c:if_substring(%1c,%2n{,%3n})=ARRAY_SUBSTR(%1,%2{,%3}); ; ; If running with Informix servers before 7.1, the following function mapping ; must be commented out: ; absolute, ; if_cos, if_sin, if_tan, if_acos, if_asin, if_atan, if_atan2, ; if_exp, if_logn, if_log10, ; if_dbinfo ; if_trim_both, if_trim_leading, if_trim_trailing ; truncate ; n:if_cos(%1n)=COS(%1); n:if_sin(%1n)=SIN(%1); n:if_tan(%1n)=TAN(%1); n:if_acos(%1n)=ACOS(%1); n:if_asin(%1n)=ASIN(%1); n:if_atan(%1n)=ATAN(%1); n:if_atan2(%1n, %2n)=ATAN2(%1, %2); n:if_exp(%1n)=EXP(%1); n:if_logn(%1n)=LOGN(%1); n:if_log10(%1n)=LOG10(%1); ; ; Informix dbinfo function is actually a set of functions that return ; different types of information about the database. Depends on the option ; and which server are you accessing( Informix Dynamic Server or Extended ; Parallel Server) it may have an additional third parameters. See Informix document ; for all options. nc:if_dbinfo(%1c {, %2cdinst {, %3c}})=DBINFO(%1 {, %2 {, %3}}); c:if_trim_both(%1c)=TRIM(BOTH FROM %1); c:if_trim_leading(%1c)=TRIM(LEADING FROM %1); c:if_trim_trailing(%1c)=TRIM(TRAILING FROM %1); c:truncate(%1c)=TRIM(TRAILING FROM %1); ; ; Entries in [Operator Addition] and [Operator Subtraction] were obtained ; from Informix Guide to SQL: Reference, Version 7.2, p. 3-30 -> 3.34 ; [Operator Addition] Date=IV,TS Time= Timestamp=IV,TS Interval=TS,TS:IV,IV:DT,TS [Operator Subtraction] Date=TS,IV:IV,TS:DT,IV Time= Timestamp=DT,IV:TS,IV:IV,DT Interval=IV,IV [Operator Comparison] Date=DT,OK:TS,OK Timestamp=TS,OK:DT,OK Interval=IV,OK [Directives Session] ; ; IMPORTANT!!! ; Users can execute the following SQL statements ; ; SET OPTIMIZATION level_option ; SET OPTIMIZATION rows_option ; ; where rows_option is either ALL_ROWS (server default) or FIRST_ROWS, ; and level_option is either HIGH (server default) or LOW. (Consult ; the Performance Guide or the Syntax Guide for the meanings of these ; these options.) To execute these SQL statements, assign them to the ; the following entries (Note: these entries must not be preceded by ; any space character): ; ; Dop_Text="SET OPTIMIZATION level_option" ; First_Row_Text="SET OPTIMIZATION rows_option" ; ; NOTES: ; (1) Not all IDS servers support Optimization Goal and Table Ordering. ; (2) Users may modify the strings (i.e. level_option, rows_option) of ; Dop_Text and First_Row_Text, but they must NOT comment out or ; delete these entries as their presence indicates which IDS server ; supports what. ; (3) The string of Dop_Text will be executed first, followed by the ; string of First_Row_Text (if applicable). ; Dop_Text="SET OPTIMIZATION HIGH" Ordered_Pos=Block_Comment Ordered_Text="ORDERED" ; Optimizer hint in Informix uses the /*+ FIRST_ROWS */ keyword ; right after SELECT statement, before Row Limit directive. By ; default, the first row optimizer is turned off due to performance ; issues. (Trakker 493725) To turn on first row optimization, set ; First_Row_Text=FIRST_ROWS". First_Row_Text= First_Row_Pos=Block_Comment Append_Pre_Text="" Append_Post_Text="" Block_Comment_Pre_Text="/*+" Block_Comment_Post_Text="*/" ; Row Limit in Informix is achieved by adding the following line ; FIRST n ; Right after the first SELECT, but before DISTINCT Query_Row_Limit_Pos=Append_Select Query_Row_Limit_Text=" FIRST %d " [Gateway Environment] Temporary Blobs= ; ; "Poll For Cancel Timeout" ; Number of milliseconds before checking for cancel of ; cursor open. ; 0 - disables ability to cancel a query ; n - # milliseconds. ; Default is 1000 (1 second) ; Notes: ; 1) only used under WinNT/95 with Informix 7.1 ; 2) see INFORMIX E-SQL/C Programmers Manual v7.1 ; on "sqlbreakcallback" function ; Poll For Cancel Timeout=1000 ; ; If the query ; SELECT owner FROM 'informix'.systables WHERE tabid = 99 ; does NOT generate a string in the format x.yzwv where x.yzwv ; is normally the server version, then the user may wish to enter ; the server version manually. For example, the result given by ; the above query is the string INFORMIX, and the user knows that ; the server version is 7.10.UD1, then the entry to be added is ; (note that there must be NO blanks preceding the entry!): ; INFORMIX=7.10.UD1 ; informix=7.10.UD1 [Misc] ; Default processing mode. Processing Mode=Limited Local ; Default values for proc params DefaultCharPrecision = 2048 DefaultVCharPrecision = 2048 DefaultDecimalPrecision = 32 DefaultDecimalScale = 8 ; Release Informix cursor resources at EOD of fetch RELEASE_IF_CURSOR_AT_EOD=T [UDA USER OPTIONS] ; ; NOTES: ; 1) All SQL statements to be executed must end with a semicolon (;) ; and appear on the SAME line. ; 2) The list of statements must NOT be preceded or followed by a ; double quote; for example ; ; Attach=SET PDQPRIORITY HIGH; SET OPTIMIZATION ALL_ROWS; Attach= [I18N Encoding Mapping] PC-Latin-1=ibm-850 PC-Latin-2=ibm-852 ISO-7-Danish=ISO8859-7 646de=iso646-us ISO-10646=iso646-us sjis-s=ibm-932 ujis=ibm-eucJP ksc=deckorean 866=ibm-808 1251=cp1251 1252=cp1252 KOI-8=ibm-878 thai620=ibm-1162 gb=ibm-1383 GB18030-2000=gb18030 euctw=ibm-964 rom8=ibm-1051 57372=utf-8 [Operator Cast] AD=TT,NA:TZ,NA TM=TS,NA SM=IV,NA:IY,NA IT=IV,NA:IY,NA QD=IV,NA:IY,NA DM=IV,NA:IY,NA NU=IV,NA:IY,NA FL=IV,NA:IY,NA DB=IV,NA:IY,NA ;ODBC gatway entries [DATABASE:INFORMIX] DBINFO_SUBTYPE="Database:IDS" DBINFO_SUBSECTIONS="DBNAM,DBMAJ,DBMIN" SQL_API_SQLSPECIALCOLUMNS="FALSE" Exec_OptimizerGoal_FirstRow="SET OPTIMIZATION FIRST_ROWS" Exec_OptimizerGoal_AllRows="SET OPTIMIZATION ALL_ROWS" Exec_OptimizerLevel="SET OPTIMIZATION %d " OptimizerLevel_Translation_Tbl="0:LOW,1:HIGH," OptimizerLevel_Low_Range="0" OptimizerLevel_High_Range="1" [DATABASE:INFORMIX VERSION:11.70] DBINFO_SUBTYPE="Database:IDS INFORMIX11.70" [DATABASE:INFORMIX VERSION:11.50] DBINFO_SUBTYPE="Database:IDS INFORMIX11.50" [DATABASE:INFORMIX VERSION:11.10] DBINFO_SUBTYPE="Database:IDS INFORMIX11.10" [DATABASE:INFORMIX VERSION:10.00] DBINFO_SUBTYPE="Database:IDS INFORMIX10.00" [DATABASE:INFORMIX VERSION:09.40] DBINFO_SUBTYPE="Database:IDS INFORMIX9.40" [DATABASE:INFORMIX VERSION:09.14] DBINFO_SUBTYPE="Database:IDS INFORMIX9.14" [DATABASE:INFORMIX VERSION:07.31] DBINFO_SUBTYPE="Database:IDS INFORMIX7.31" [DATABASE:INFORMIX VERSION:07.12] DBINFO_SUBTYPE="Database:IDS INFORMIX7.12" [DATABASE:INFORMIX VERSION:08] DBINFO_SUBTYPE="Database:XPS" [DATABASE:XPS VERSION:08.40] DBINFO_SUBTYPE="Database:XPS INFORMIX8.40" [DATABASE:INFORMIX VERSION:08.30] DBINFO_SUBTYPE="Database:XPS INFORMIX8.30"