cogdmod_ivw.ini 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555
  1. ;***********************************************************************
  2. ;Licensed Materials - Property of IBM
  3. ;
  4. ;BI and PM: UDA
  5. ;
  6. ;(C) Copyright IBM Corp. 2005, 2011, 2014
  7. ;
  8. ;
  9. ; Keith Bolam, Actian corporation, 2014
  10. ;Modified for the Trial of the recomendations from testing Vectorwise 3.0.1 and
  11. ; Cognos 10.2.1 FP2 in preparation for Cognos 10.2.1 FP3 as advised by Xia Chen
  12. ; Updated the prefix to 'VW301_FP3b' so that SQL can be distinguished.
  13. ;
  14. ;U.S. Government Users Restricted Rights - Use, duplication, or disclosure
  15. ;by GSA ADP Schedule Contract with IBM Corp.
  16. ;
  17. ;Unless specifically authorized by IBM, you may not modify any part of this
  18. ;file. Where modification is authorized, you must reproduce any copyright
  19. ;notices contained in this file and specifically identify which
  20. ;modifications have been made by your organization. YOU ARE SOLELY
  21. ;RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF ANY MODIFICATIONS TO
  22. ;THIS FILE AND ASSUME ALL RISKS ASSOCIATED WITH THE USE AND DISTRIBUTION
  23. ;OF THE MODIFIED FILE. IBM will not provide support relating to
  24. ;unauthorized changes you make to this file.
  25. ;***********************************************************************
  26. [DATABASE:INGRES_VECTORWISE]
  27. Disable_Subquery_With_Parameters=T
  28. Keyword Alias=" as \"%s\" "
  29. SQL_API_SQLDESCRIBEPARAM="FALSE"
  30. [Exceptions Commands DATABASE:INGRES_VECTORWISE]
  31. Select="select "
  32. Insert="insert "
  33. Update="update "
  34. Delete="delete "
  35. Call=
  36. Select_Star="T"
  37. Max_Stmt_Len=""
  38. [Exceptions Clauses DATABASE:INGRES_VECTORWISE]
  39. From="from"
  40. Where="where"
  41. Group_By="Group By"
  42. Having="having"
  43. Window=
  44. With=
  45. With_Recursive=
  46. [Exceptions Tables DATABASE:INGRES_VECTORWISE]
  47. Derived=T
  48. Joined=T
  49. Simple_And_Joined=T
  50. Tbl_Ref_Limit="126"
  51. SubSelect_Limit=""
  52. Table_Constructor=F
  53. UniqueName_Prefix="VW301_FP3b"
  54. [Exceptions Joins DATABASE:INGRES_VECTORWISE]
  55. Inner=T
  56. Left_Outer=T
  57. Right_Outer=T
  58. Full_Outer=T
  59. Cross=T
  60. On_Condition_Or_Predicate=T
  61. Nested_Outer=T
  62. Inner_Tbl_Restrict=F
  63. Optnl_Tbl_Restrict=F
  64. Non_Equi_Joins=T
  65. One_Outer=F
  66. Natural=F
  67. Left_Nested=T
  68. Right_Nested=T
  69. Two_Sided_Join_Restrict=F
  70. Optnl_Tbl_Join_Restrict=F
  71. Optnl_Tbl_Join_Filter=T
  72. Optnl_Tbl_Filter=T
  73. Prsrv_Tbl_Join_Filter=T
  74. Prsrv_Tbl_Filter=T
  75. On_Condition_Set_Functions=T
  76. On_Condition_Subqueries=T
  77. Full_Non_Equi_Join=T
  78. On_Condition_In_Predicate=T
  79. On_Condition_Not_Predicate=T
  80. On_Condition_Like_Predicate=T
  81. On_Condition_Between_Predicate=T
  82. On_Condition_IsNull_Predicate=T
  83. Non_Join_Expr=T
  84. Non_Join_Non_Equi_Expr=T
  85. Only_Eql_With_And=F
  86. On_Condition_Functions=T
  87. Two_Sided_Join_Restrict_Filter=F
  88. Nested_Inner=T
  89. Product_Join=T
  90. Outer_Non_Equi_Join=T
  91. On_Condition_No_Expr=T
  92. Outer_Syntax=T
  93. Left_Pre=
  94. ;Left_Eql=" LEFT OUTER JOIN "
  95. Left_Post=
  96. Right_Pre=
  97. ;Right_Eql=" RIGHT OUTER JOIN "
  98. Right_Post=
  99. ;Full_Syntax=" FULL OUTER JOIN "
  100. Full_Pre=
  101. Full_Post=
  102. ;Inner_Syntax=" INNER JOIN "
  103. Inner_Col_Pre=
  104. Inner_Col_Post=
  105. ;Cross_Syntax=" CROSS JOIN "
  106. ;Union_Syntax=" UNION "
  107. ;Natural_Syntax=" NATURAL JOIN "
  108. [Exceptions Predicates DATABASE:INGRES_VECTORWISE]
  109. Between="between"
  110. In="in"
  111. Like="like"
  112. Is_Null="is null"
  113. Any="any"
  114. All="all"
  115. Exists="exists"
  116. NotLike="not like"
  117. [Exceptions Aggregates DATABASE:INGRES_VECTORWISE]
  118. Max="max"
  119. Min="min"
  120. Sum="sum"
  121. Avg="avg"
  122. Count="count"
  123. Count_Star="count(*)"
  124. Stddev="stddev_samp"
  125. Stddev_Pop="stddev_pop"
  126. Stddev_Samp="stddev_samp"
  127. Variance="var_samp"
  128. Var_Pop="var_pop"
  129. Var_Samp="var_samp"
  130. Grouping=
  131. Rank=
  132. Dense_Rank=
  133. Percent_Rank=
  134. Cume_Dist=
  135. Percentile_Cont=
  136. Percentile_Disc=
  137. First_Value=
  138. Last_Value=
  139. Percentile=
  140. [Exceptions OLAP Functions DATABASE:INGRES_VECTORWISE]
  141. Olap_Min="min"
  142. Olap_Max="max"
  143. Olap_Sum=
  144. Olap_Avg="avg"
  145. Olap_Count="count"
  146. Olap_Count_Star="count(*)"
  147. Olap_Stddev="stddev_samp"
  148. Olap_Stddev_Pop="stddev_pop"
  149. Olap_Stddev_Samp="stddev_samp"
  150. Olap_Variance="var_samp"
  151. Olap_Var_Pop="var_pop"
  152. Olap_Var_Samp="var_samp"
  153. Olap_Rank="rank"
  154. Olap_Dense_Rank="dense_rank"
  155. Olap_Percent_Rank="percent_rank"
  156. Olap_Cume_Dist=
  157. Olap_Percentile_Cont=
  158. Olap_Percentile_Disc=
  159. ; Vendor imposing ordering in window
  160. Olap_First_Value=
  161. ; Vendor imposing ordering in window
  162. Olap_Last_Value=
  163. Olap_Row_Number="row_number"
  164. Olap_Ratio_To_Report=
  165. Olap_Ntile="ntile"
  166. ; Olap_Count_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING"
  167. ; Olap_Sum_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING"
  168. ; Olap_Last_Value_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING"
  169. [Exceptions OLAP Functions DATABASE:INGRES_VECTORWISE VERSION:02]
  170. Olap_Min=
  171. Olap_Max=
  172. Olap_Sum=
  173. Olap_Avg=
  174. Olap_Count=
  175. Olap_Count_Star=
  176. Olap_Stddev=
  177. Olap_Stddev_Pop=
  178. Olap_Stddev_Samp=
  179. Olap_Variance=
  180. Olap_Var_Pop=
  181. Olap_Var_Samp=
  182. Olap_Ntile=
  183. ; Olap_Count_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING"
  184. ; Olap_Sum_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING"
  185. ; Olap_Last_Value_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING"
  186. [Exceptions OLAP Functions DATABASE:INGRES_VECTORWISE VERSION:01]
  187. Olap_Min=
  188. Olap_Max=
  189. Olap_Sum=
  190. Olap_Avg=
  191. Olap_Count=
  192. Olap_Count_Star=
  193. Olap_Stddev=
  194. Olap_Stddev_Pop=
  195. Olap_Stddev_Samp=
  196. Olap_Variance=
  197. Olap_Var_Pop=
  198. Olap_Var_Samp=
  199. Olap_Ntile=
  200. ; Olap_Count_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING"
  201. ; Olap_Sum_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING"
  202. ; Olap_Last_Value_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING"
  203. [Exceptions Set Operators DATABASE:INGRES_VECTORWISE]
  204. Union="union"
  205. Union_All=T
  206. Intersect=
  207. Intersect_All=F
  208. Except=
  209. Except_All=F
  210. Distinct="distinct"
  211. Order_By="order by"
  212. [Exceptions Operators DATABASE:INGRES_VECTORWISE]
  213. Add="+"
  214. Sub="-"
  215. Mul="*"
  216. Div="/"
  217. Eql="="
  218. Neq="<>"
  219. Grt=">"
  220. Geq=">="
  221. Les="<"
  222. Leq="<="
  223. Neg="-"
  224. And="and"
  225. Or="or"
  226. Not="not"
  227. Assign="="
  228. [Exceptions Value Expressions DATABASE:INGRES_VECTORWISE]
  229. Case_Simple=T
  230. Case_Searched=T
  231. Coalesce=T
  232. Nullif=T
  233. Grouping_Sets=T
  234. Rollup=T
  235. Cube=T
  236. Position=T
  237. Char_Length=F
  238. Octet_Length=F
  239. Substring=T
  240. Upper=T
  241. Lower=T
  242. StrCat=T
  243. Cast=C
  244. Abs=T
  245. Floor=T
  246. Ceiling=C
  247. ln=T
  248. Exp=T
  249. Mod=T
  250. Sqrt=T
  251. Power=T
  252. Current_Date=T
  253. ;Unable to get timezone type via ODBC so disabled
  254. Current_Time=F
  255. Current_TimeStamp=F
  256. LocalTime=C
  257. LocalTimestamp=C
  258. Extract=T
  259. Trim=F
  260. Trim_Leading_Spaces=C
  261. Trim_Trailing_Spaces=C
  262. Trim_Both_Spaces=F
  263. Row_Value_Constructors=F
  264. Olap_Window_Order_By=T
  265. [Exceptions Value Expressions DATABASE:INGRES_VECTORWISE VERSION:02]
  266. Nullif=F
  267. Grouping_Sets=F
  268. Rollup=F
  269. Cube=F
  270. StrCat=F
  271. Olap_Window_Order_By=F
  272. ; Unable to order by a literal value
  273. [Exceptions Value Expressions DATABASE:INGRES_VECTORWISE VERSION:01]
  274. Nullif=F
  275. Grouping_Sets=F
  276. Rollup=F
  277. Cube=F
  278. StrCat=F
  279. Olap_Window_Order_By=F
  280. ; Unable to order by a literal value
  281. [Exceptions General DATABASE:INGRES_VECTORWISE]
  282. Aggregate_In_Expr=T
  283. Aggregate_Value_Expr=T
  284. Correlated_Subqueries=T
  285. Cross_Product=T
  286. Distinct_Aggregates=T
  287. Distinct_Aggr_In_Case=T
  288. Group_By_Expr=T
  289. ; New specification allows for the Group by Ordinal to be enabled but issues have been seen by Vendor.
  290. ; Therefore may not be enabled.
  291. Group_By_Ordinal=T
  292. Group_By_Alias=F
  293. Multiple_Distinct=T
  294. Count_Non_Distinct=T
  295. Count_Value_Expr=T
  296. Count_Literal=T
  297. Is_Null_Value_Expr=T
  298. Is_Null_Value_Parm=T
  299. Like_Value_Expr=T
  300. Subquery_In_Having=T
  301. Subquery_In_Group_By=T
  302. Subquery_In_Case=F
  303. Count_Blob=T
  304. Expression_In_In=T
  305. Null_Order=T
  306. Olap_Null_Order=T
  307. Olap_Distinct=T
  308. Nested_Olap_Functions=F
  309. Empty_String_Is_Null=F
  310. Order_By_In_Derived_Table=F
  311. Interval_As_VarChar=F
  312. Boolean_Comparison=T
  313. Derived_Column_List=T
  314. With_Column_List=F
  315. Aggr_With_Interval=T
  316. Nested_Case=T
  317. Not_In_Subquery=T
  318. Nulls_Sort_Last=T
  319. Order_By_Alias=T
  320. Order_By_Name=T
  321. Substring_On_Expr=T
  322. Subqueries=T
  323. Subquery_Column_Alias=T
  324. Parameter_In_Select_List=F
  325. Remove_Parameter_Cast=T
  326. Subquery_With_Parameters=T
  327. Like_With_Parameters=T
  328. Like_With_Escape=T
  329. Comments=T
  330. Integer_Division_Truncation=T
  331. [Exceptions General DATABASE:INGRES_VECTORWISE VERSION:02]
  332. Group_By_Ordinal=F
  333. Subquery_In_Group_By=F
  334. Null_Order=F
  335. Olap_Null_Order=F
  336. Olap_Distinct=F
  337. Not_In_Subquery=F
  338. [Exceptions General DATABASE:INGRES_VECTORWISE VERSION:01]
  339. Group_By_Ordinal=F
  340. Subquery_In_Group_By=F
  341. Null_Order=F
  342. Olap_Null_Order=F
  343. Olap_Distinct=F
  344. Not_In_Subquery=F
  345. [Exceptions Literals DATABASE:INGRES_VECTORWISE]
  346. Date_Literal=T
  347. Timestamp_Literal=T
  348. Time_Literal=T
  349. ; only returns two of the interval types
  350. Interval_Literal=F
  351. IntervalYM_Literal=F
  352. TimeTZ_Literal=F
  353. TimestampTZ_Literal=F
  354. NChar_Literal=T
  355. [Exceptions Literals DATABASE:INGRES_VECTORWISE VERSION:02]
  356. ; issues with national literals
  357. NChar_Literal=F
  358. [Exceptions Literals DATABASE:INGRES_VECTORWISE VERSION:01]
  359. ; issues with national literals
  360. NChar_Literal=F
  361. [Exceptions Misc DATABASE:INGRES_VECTORWISE]
  362. [Exceptions Delimiters DATABASE:INGRES_VECTORWISE]
  363. Comment_Begin="/* "
  364. Comment_End=" */ "
  365. [Exceptions Separators DATABASE:INGRES_VECTORWISE]
  366. Catalog_Separator="."
  367. Schema_Separator="."
  368. Table_Separator="."
  369. [Exceptions Blob Expressions DATABASE:INGRES_VECTORWISE]
  370. Blob_In_Substring=T
  371. Blob_In_Trim=T
  372. Blob_In_StrCat=T
  373. Blob_In_IsNull=T
  374. Blob_In_Substring_Return_Blob=F
  375. ;b stands for boolean.
  376. ;c stands for character.
  377. ;x stands for text.
  378. ;d stands for date.
  379. ;i stands for the interval.
  380. ;n stands for the numeric.
  381. ;s stands for the timestamp.
  382. ;t stands for the time.
  383. ;y stands for time with time zone
  384. ;z stands for timestamp with time zone
  385. [Database Functions DATABASE:INGRES_VECTORWISE]
  386. n:ceiling(%1n)=CEIL(%1);
  387. c:trim_leading_spaces(%1c)=trim (leading from %1);
  388. c:trim_trailing_spaces(%1c)=trim (trailing from %1);
  389. [Builtin Functions DATABASE:INGRES_VECTORWISE]
  390. d:_add_days(%1d,%2n)=(%1 + int8(%2));
  391. ;d:_add_days(%1d,%2n)=(%1 + (interval '1' day * floor(%2)));
  392. d:_add_months(%1d,%2n)=(add_months(%1 , floor(%2)));
  393. d:_add_years(%1d,%2n)=(add_months(%1 , floor(%2) * 12));
  394. d:_first_of_month(%1d)=(trunc(%1,'MM'));
  395. d:_last_of_month(%1d)=(last_day(%1));
  396. s:_add_days(%1s,%2n)=(%1 + (interval '1' day * floor(%2)));
  397. s:_add_months(%1s,%2n)=(add_months(%1 , floor(%2)));
  398. s:_add_years(%1s,%2n)=(add_months(%1 , floor(%2) * 12));
  399. s:_first_of_month(%1s)=(cast(cast(ansidate(trunc(%1,'MM')) as char)||' '||char(time(%1))as timestamp without time zone));
  400. s:_last_of_month(%1s)=(last_day(%1));
  401. s:_make_timestamp(%1n,%2n,%3n)=(cast(TO_TIMESTAMP(CHAR(ANSIDATE('%1-%2-%3')),'YYYY-MM-DD') as timestamp without time zone));
  402. ;s:_add_hours(%1s,%2n)=(TIMESTAMPADD(HOUR,%2,%1));
  403. ;s:_add_minutes(%1s,%2n)=(TIMESTAMPADD(MINUTE,%2,%1));
  404. ;s:_add_seconds(%1s,%2n)=(TIMESTAMPADD(SECOND,%2,%1));
  405. n:_days_between(%1ds,%2ds)=day((trunc(%1) - trunc(%2)));
  406. ;n:_months_between(%1ds,%2ds)=(months_between(%1,%2));
  407. n:_years_between(%1ds,%2ds)=((year(%1) - year(%2)));
  408. ;n:_hours_between(%1ds,%2ds)=(TIMESTAMPDIFF(HOUR,%2,%1));
  409. ;n:_minutes_between(%1ds,%2ds)=(TIMESTAMPDIFF(MINUTE,%2,%1));
  410. ;n:_seconds_between(%1ds,%2ds)=(TIMESTAMPDIFF(SECOND,%2,%1));
  411. n:_days_to_end_of_month(%1ds)=(cast(last_day(%1) as date) - cast(%1 as date));
  412. n:_day_of_year(%1ds)=(dayofyear(%1));
  413. ;n:_day_of_week(%1ds, %2n)=(dayofweek(%1,%2));
  414. ;n:_age(%1ds)=;
  415. ;n:_ymdint_between(%1ds,%2ds)=;
  416. ; must be iso 8601 compliant
  417. n:_week_of_year(%1ds)=(week_iso(%1));
  418. ; added on advice from Vinhson.Nguyen (IBM)
  419. n:_round(%1n, %2n)=(ROUND(%1,%2));
  420. n:round(%1n, %2n)=(ROUND(%1,%2));
  421. t:localtime({%1n})=cast(current_time as time);
  422. s:localtimestamp()=cast(current_timestamp as timestamp);
  423. [Builtin Functions DATABASE:INGRES_VECTORWISE VERSION:02]
  424. d:_add_months(%1d,%2n)=(%1 + interval '1' month * floor(%2));
  425. d:_add_years(%1d,%2n)=(%1 + interval '1' year * floor(%2));
  426. d:_first_of_month(%1d)=(cast(year(%1)||'-'||month(%1)||'-01'as date));
  427. d:_last_of_month(%1d)=(cast(year(%1)||'-'||month(%1)||'-01'as date)+interval '1' month - interval '1' day);
  428. s:_add_days(%1s,%2n)=(timestamp(%1)+ interval '1' day * floor(%2));
  429. s:_add_months(%1s,%2n)=(timestamp(%1)+(interval '1' month * floor(%2)));
  430. s:_add_years(%1s,%2n)=(timestamp(%1)+(interval '1' year * floor(%2)));
  431. s:_first_of_month(%1s)=(cast(year(%1)||'-'||month(%1)||'-01'||' '||char(time(%1))as timestamp));
  432. s:_last_of_month(%1s)=(cast(year(%1)||'-'||month(%1)||'-01'||' '||char(time(%1))as timestamp)+ interval '1' month - interval '1' day);
  433. ;s:_make_timestamp(%1n,%2n,%3n)=;
  434. s:_add_hours(%1s,%2n)=(%1+(interval '1' hour * floor(%2)));
  435. s:_add_minutes(%1s,%2n)=(%1+(interval '1' minute * floor(%2)));
  436. s:_add_seconds(%1s,%2n)=(%1+(interval '1' second * floor(%2)));
  437. n:_days_between(%1ds,%2ds)=day(timestamp(%1)-timestamp(%2));
  438. n:_months_between(%1ds,%2ds)=(12*(year(%1)-year(%2))+month(%1)-month(%2)-(CASE WHEN day(%2)>day(%1)THEN 1 ELSE 0 END));
  439. n:_years_between(%1ds,%2ds)=((year(%1)-year(%2)));
  440. ;n:_hours_between(%1ds,%2ds)=;
  441. ;n:_minutes_between(%1ds,%2ds)=;
  442. ;n:_seconds_between(%1ds,%2ds)=;
  443. n:_days_to_end_of_month(%1ds)=(day((cast(YEAR(%1)||'-'||MONTH(%1)||'-01'as date)+ INTERVAL '1' MONTH - INTERVAL '1' day))-day(%1));
  444. n:_day_of_year(%1ds)=(day(ansidate(%1)-ansidate(year(%1)||'-01-01'))+1);
  445. n:_day_of_week(%1ds,%2n)=(mod(int(extract('dayofweek',%1)+6-%2),7)+1);
  446. ;n:_age(%1ds)=;
  447. ;n:_ymdint_between(%1ds,%2ds)=;
  448. ; must be iso 8601 compliant
  449. [Builtin Functions DATABASE:INGRES_VECTORWISE VERSION:01]
  450. d:_add_months(%1d,%2n)=(%1 + interval '1' month * floor(%2));
  451. d:_add_years(%1d,%2n)=(%1 + interval '1' year * floor(%2));
  452. d:_first_of_month(%1d)=(cast(year(%1)||'-'||month(%1)||'-01'as date));
  453. d:_last_of_month(%1d)=(cast(year(%1)||'-'||month(%1)||'-01'as date)+interval '1' month - interval '1' day);
  454. s:_add_days(%1s,%2n)=(timestamp(%1)+ interval '1' day * floor(%2));
  455. s:_add_months(%1s,%2n)=(timestamp(%1)+(interval '1' month * floor(%2)));
  456. s:_add_years(%1s,%2n)=(timestamp(%1)+(interval '1' year * floor(%2)));
  457. s:_first_of_month(%1s)=(cast(year(%1)||'-'||month(%1)||'-01'||' '||char(time(%1))as timestamp));
  458. s:_last_of_month(%1s)=(cast(year(%1)||'-'||month(%1)||'-01'||' '||char(time(%1))as timestamp)+ interval '1' month - interval '1' day);
  459. ;s:_make_timestamp(%1n,%2n,%3n)=;
  460. s:_add_hours(%1s,%2n)=(%1+(interval '1' hour * floor(%2)));
  461. s:_add_minutes(%1s,%2n)=(%1+(interval '1' minute * floor(%2)));
  462. s:_add_seconds(%1s,%2n)=(%1+(interval '1' second * floor(%2)));
  463. n:_days_between(%1ds,%2ds)=day(timestamp(%1)-timestamp(%2));
  464. n:_months_between(%1ds,%2ds)=(12*(year(%1)-year(%2))+month(%1)-month(%2)-(CASE WHEN day(%2)>day(%1)THEN 1 ELSE 0 END));
  465. n:_years_between(%1ds,%2ds)=((year(%1)-year(%2)));
  466. ;n:_hours_between(%1ds,%2ds)=;
  467. ;n:_minutes_between(%1ds,%2ds)=;
  468. ;n:_seconds_between(%1ds,%2ds)=;
  469. n:_days_to_end_of_month(%1ds)=(day((cast(YEAR(%1)||'-'||MONTH(%1)||'-01'as date)+ INTERVAL '1' MONTH - INTERVAL '1' day))-day(%1));
  470. n:_day_of_year(%1ds)=(day(ansidate(%1)-ansidate(year(%1)||'-01-01'))+1);
  471. n:_day_of_week(%1ds,%2n)=(mod(int(extract('dayofweek',%1)+6-%2),7)+1);
  472. ;n:_age(%1ds)=;
  473. ;n:_ymdint_between(%1ds,%2ds)=;
  474. ; must be iso 8601 compliant
  475. [Operator Addition DATABASE:INGRES_VECTORWISE]
  476. [Operator Subtraction DATABASE:INGRES_VECTORWISE]
  477. [Operator Multiplication DATABASE:INGRES_VECTORWISE]
  478. [Operator Division DATABASE:INGRES_VECTORWISE]
  479. [Operator Comparison DATABASE:INGRES_VECTORWISE]
  480. [Operator Cast DATABASE:INGRES_VECTORWISE]
  481. AD=AD,NA
  482. BL=AD,NA
  483. CH=CH,CH:DB,DB:DM,DM:DT,DT:FL,FL:IT,IT:NC,NC:NU,NU:QD,QD:SM,SM:TM,TM:TS,TS:VC,VC
  484. DB=DB,DB:DM,DM:FL,FL:IT,IT:NU,NU:QD,QD:SM,SM
  485. DM=CH,CH:DB,DB:DM,DM:FL,FL:IT,IT:NC,NC:NU,NU:QD,QD:SM,SM:VC,VC
  486. DT=CH,CH:DT,DT:NC,NC:TS,TS:VC,VC
  487. FL=DB,DB:DM,DM:FL,FL:IT,IT:NU,NU:QD,QD:SM,SM
  488. IT=CH,CH:DB,DB:DM,DM:FL,FL:IT,IT:NC,NC:NU,NU:QD,QD:SM,SM:VC,VC
  489. IV=AD,NA
  490. IY=AD,NA
  491. NA=CH,CH:DB,DB:DM,DM:DT,DT:FL,FL:IT,IT:NC,NC:NU,NU:QD,QD:SM,SM:TM,TM:TS,TS:VC,VC
  492. NC=CH,CH:DB,DB:DT,DT:FL,FL:IT,IT:NC,NC:QD,QD:SM,SM:TS,TS:VC,VC
  493. NU=CH,CH:DB,DB:DM,DM:FL,FL:IT,IT:NC,NC:NU,NU:QD,QD:SM,SM:VC,VC
  494. QD=CH,CH:DB,DB:DM,DM:FL,FL:IT,IT:NC,NC:NU,NU:QD,QD:SM,SM:VC,VC
  495. SM=CH,CH:DB,DB:DM,DM:FL,FL:IT,IT:NC,NC:NU,NU:QD,QD:SM,SM:VC,VC
  496. TM=NC,NC:TM,TM
  497. TS=CH,CH:DT,DT:TM,TM:TS,TS
  498. TT=AD,NA
  499. TZ=AD,NA
  500. VC=CH,CH:DB,DB:DM,DM:DT,DT:FL,FL:IT,IT:NC,NC:NU,NU:QD,QD:SM,SM:TM,TM:TS,TS:VC,VC
  501. [Directives Session DATABASE:INGRES_VECTORWISE]