123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930 |
- ;***********************************************************************
- ;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
- ; <column>[ <startIndex> {,<numChars>} ]
- ; If <numChars> 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 <dateColumn> )' can be supported by the
- ; 'if_year( <dateColumn> )' 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( <columnName>, <startCol> {, <endCol>} )
- ; 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 <startCol> 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"
|