cogdmod_ve.ini 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525
  1. ;***********************************************************************
  2. ;Licensed Materials - Property of IBM
  3. ;
  4. ;BI and PM: UDA
  5. ;
  6. ;(C) Copyright IBM Corp. 2005, 2019
  7. ;
  8. ;U.S. Government Users Restricted Rights - Use, duplication, or disclosure
  9. ;by GSA ADP Schedule Contract with IBM Corp.
  10. ;
  11. ;Unless specifically authorized by IBM, you may not modify any part of this
  12. ;file. Where modification is authorized, you must reproduce any copyright
  13. ;notices contained in this file and specifically identify which
  14. ;modifications have been made by your organization. YOU ARE SOLELY
  15. ;RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF ANY MODIFICATIONS TO
  16. ;THIS FILE AND ASSUME ALL RISKS ASSOCIATED WITH THE USE AND DISTRIBUTION
  17. ;OF THE MODIFIED FILE. IBM will not provide support relating to
  18. ;unauthorized changes you make to this file.
  19. ;***********************************************************************
  20. ; $Header: $
  21. ;
  22. ; Module:
  23. ; cogdmod_ve.ini
  24. ;
  25. ; Purpose:
  26. ; This module contains the Vertica gateway information.
  27. ;
  28. ; Notes:
  29. ; Do NOT modify this file. Doing so could result in unknown behavior
  30. ; by the Vertica gateway, possibly resulting in application aborts.
  31. ;
  32. ; ************************************************************************
  33. [DATABASE:VERTICA DATABASE]
  34. Disable_Subquery_With_Parameters=T
  35. Keyword Alias=" as \"%s\" "
  36. ; Vertica support for parameter markers is very limited and specific so not considered supported
  37. SQL_API_SQLDESCRIBEPARAM="FALSE"
  38. [Exceptions Commands DATABASE:VERTICA DATABASE]
  39. Select="select"
  40. Insert=
  41. Update=
  42. Delete=
  43. Call=
  44. Select_Star="T"
  45. Max_Stmt_Len=""
  46. [Exceptions Clauses DATABASE:VERTICA DATABASE]
  47. From="from"
  48. Where="where"
  49. Group_By="Group By"
  50. Having="having"
  51. Window=
  52. With=
  53. With_Recursive=
  54. [Exceptions Tables DATABASE:VERTICA DATABASE]
  55. Derived=T
  56. Joined=T
  57. Simple_And_Joined=T
  58. Tbl_Ref_Limit=""
  59. SubSelect_Limit=""
  60. Table_Constructor=F
  61. UniqueName_Prefix="coguda"
  62. [Exceptions Tables DATABASE:VERTICA DATABASE VERSION:03]
  63. Joined=F
  64. [Exceptions Joins DATABASE:VERTICA DATABASE]
  65. Inner=T
  66. Left_Outer=T
  67. Right_Outer=T
  68. Full_Outer=T
  69. Cross=T
  70. On_Condition_Or_Predicate=T
  71. Nested_Outer=T
  72. Inner_Tbl_Restrict=F
  73. Optnl_Tbl_Restrict=F
  74. Non_Equi_Joins=T
  75. One_Outer=F
  76. Natural=T
  77. Left_Nested=T
  78. Right_Nested=T
  79. Two_Sided_Join_Restrict=F
  80. Optnl_Tbl_Join_Restrict=F
  81. Optnl_Tbl_Join_Filter=T
  82. Optnl_Tbl_Filter=T
  83. Prsrv_Tbl_Join_Filter=T
  84. Prsrv_Tbl_Filter=T
  85. On_Condition_Set_Functions=F
  86. On_Condition_Subqueries=F
  87. Full_Non_Equi_Join=T
  88. On_Condition_In_Predicate=T
  89. On_Condition_Not_Predicate=T
  90. On_Condition_Like_Predicate=T
  91. On_Condition_Between_Predicate=T
  92. On_Condition_IsNull_Predicate=T
  93. Non_Join_Expr=T
  94. Non_Join_Non_Equi_Expr=T
  95. Only_Eql_With_And=F
  96. On_Condition_Functions=T
  97. Two_Sided_Join_Restrict_Filter=F
  98. Nested_Inner=T
  99. Product_Join=T
  100. Outer_Non_Equi_Join=T
  101. On_Condition_No_Expr=T
  102. Outer_Syntax=T
  103. Left_Pre=
  104. ;Left_Eql=" LEFT OUTER JOIN "
  105. Left_Post=
  106. Right_Pre=
  107. ;Right_Eql=" RIGHT OUTER JOIN "
  108. Right_Post=
  109. ;Full_Syntax=" FULL OUTER JOIN "
  110. Full_Pre=
  111. Full_Post=
  112. ;Inner_Syntax=" INNER JOIN "
  113. Inner_Col_Pre=
  114. Inner_Col_Post=
  115. ;Cross_Syntax=" CROSS JOIN "
  116. ;Union_Syntax=" UNION "
  117. ;Natural_Syntax=" NATURAL JOIN "
  118. [Exceptions Joins DATABASE:VERTICA DATABASE VERSION:03]
  119. ; Some 3.0.x ODBC drivers incorrectly claim FOJ is available. Vertica defect VER-9676
  120. Full_Outer=F
  121. Optnl_Tbl_Restrict=T
  122. Left_Nested=F
  123. Right_Nested=F
  124. Optnl_Tbl_Join_Restrict=T
  125. On_Condition_Set_Functions=T
  126. Full_Non_Equi_Join=F
  127. Only_Eql_With_And=T
  128. Two_Sided_Join_Restrict_Filter=T
  129. [Exceptions Predicates DATABASE:VERTICA DATABASE]
  130. Between="between"
  131. In="in"
  132. Like="like"
  133. Is_Null="is null"
  134. Any=
  135. All=
  136. Exists="exists"
  137. NotLike="not like"
  138. [Exceptions Aggregates DATABASE:VERTICA DATABASE]
  139. Max="max"
  140. Min="min"
  141. Sum="sum"
  142. Avg="avg"
  143. Count="count"
  144. Count_Star="count(*)"
  145. Stddev="stddev"
  146. Stddev_Pop="stddev_pop"
  147. Stddev_Samp="stddev_samp"
  148. Variance="variance"
  149. Var_Pop="var_pop"
  150. Var_Samp="var_samp"
  151. Grouping=
  152. Rank=
  153. Dense_Rank=
  154. Percent_Rank=
  155. Cume_Dist=
  156. Percentile_Cont=
  157. Percentile_Disc=
  158. First_Value=
  159. Last_Value=
  160. Percentile=F
  161. [Exceptions OLAP Functions DATABASE:VERTICA DATABASE]
  162. Olap_Min="min"
  163. Olap_Max="max"
  164. Olap_Sum="sum"
  165. Olap_Avg="avg"
  166. Olap_Count="count"
  167. Olap_Count_Star="count(*)"
  168. Olap_Stddev=
  169. Olap_Stddev_Pop="stddev_pop"
  170. Olap_Stddev_Samp=
  171. Olap_Variance=
  172. Olap_Var_Pop="var_pop"
  173. Olap_Var_Samp=
  174. Olap_Rank="rank"
  175. Olap_Dense_Rank="dense_rank"
  176. Olap_Percent_Rank="percent_rank"
  177. Olap_Cume_Dist="cume_dist"
  178. Olap_Percentile_Cont="percentile_cont"
  179. Olap_Percentile_Disc="percentile_disc"
  180. Olap_First_Value="first_value"
  181. Olap_Last_Value="last_value"
  182. Olap_Row_Number="row_number"
  183. Olap_Ratio_To_Report=
  184. Olap_Ntile="ntile"
  185. ; Olap_Count_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING"
  186. ; Olap_Sum_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING"
  187. Olap_Last_Value_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING"
  188. [Exceptions OLAP Functions DATABASE:VERTICA DATABASE VERSION:03]
  189. Olap_Min=
  190. Olap_Max=
  191. Olap_Sum=
  192. Olap_Avg=
  193. Olap_Count=
  194. Olap_Count_Star=
  195. Olap_Stddev_Pop=
  196. Olap_Var_Pop=
  197. Olap_Percent_Rank=
  198. Olap_Cume_Dist=
  199. Olap_Percentile_Cont=
  200. Olap_Percentile_Disc=
  201. Olap_Last_Value=
  202. Olap_Ntile=
  203. ; Olap_Last_Value_Default="ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING"
  204. [Exceptions Set Operators DATABASE:VERTICA DATABASE]
  205. Union="union"
  206. Union_All=T
  207. Intersect=
  208. Intersect_All=F
  209. Except=
  210. Except_All=F
  211. Distinct="distinct"
  212. Order_By="order by"
  213. [Exceptions Operators DATABASE:VERTICA DATABASE]
  214. Add="+"
  215. Sub="-"
  216. Mul="*"
  217. Div="/"
  218. Eql="="
  219. Neq="<>"
  220. Grt=">"
  221. Geq=">="
  222. Les="<"
  223. Leq="<="
  224. Neg="-"
  225. And="and"
  226. Or="or"
  227. Not="not"
  228. Assign="="
  229. ; Note: Vertica 3.0 documents that string functions do not handle multibyte UTF-8 sequences correctly.
  230. ; They treat each byte as a character.
  231. [Exceptions Value Expressions DATABASE:VERTICA DATABASE]
  232. Case_Simple=T
  233. Case_Searched=T
  234. Coalesce=T
  235. Nullif=T
  236. Grouping_Sets=F
  237. Rollup=F
  238. Cube=F
  239. ; Position. In some edge cases Vertica does not align to the SQL standard
  240. Position=T
  241. Char_Length=F
  242. Octet_Length=F
  243. Substring=T
  244. Upper=T
  245. Lower=T
  246. StrCat=T
  247. Cast=C
  248. Abs=T
  249. Floor=T
  250. Ceiling=C
  251. ; Ln. In some edge cases Vertica does not align to the SQL standard and follows IEEE
  252. ln=T
  253. Exp=T
  254. ; Ln. In some edge cases Vertica does not align to the SQL standard and follows IEEE
  255. Mod=T
  256. ; Sqrt. In some edge cases Vertica does not align to the SQL standard and follows IEEE
  257. Sqrt=T
  258. ; Power. In some edge cases Vertica does not align to the SQL standard and follows IEEE
  259. Power=T
  260. Current_Date=T
  261. ;Unable to get timezone type via ODBC so disabled
  262. Current_Time=F
  263. Current_TimeStamp=F
  264. LocalTime=T
  265. LocalTimestamp=T
  266. ; Aspects of Extract can be mapped via entries in the built in section
  267. Extract=C
  268. Extract_Year=coguda#extract_year
  269. Extract_Month=coguda#extract_month
  270. Extract_Day=coguda#extract_day
  271. Extract_Hours=coguda#extract_hour
  272. Extract_Minutes=coguda#extract_minute
  273. Extract_Seconds=coguda#extract_second
  274. Trim=T
  275. Row_Value_Constructors=T
  276. Olap_Window_Order_By=T
  277. [Exceptions General DATABASE:VERTICA DATABASE]
  278. Aggregate_In_Expr=T
  279. Aggregate_Value_Expr=T
  280. Correlated_Subqueries=T
  281. Cross_Product=T
  282. Distinct_Aggregates=T
  283. Distinct_Aggr_In_Case=T
  284. Group_By_Expr=T
  285. Group_By_Ordinal=T
  286. Group_By_Alias=T
  287. Multiple_Distinct=T
  288. Count_Non_Distinct=T
  289. Count_Value_Expr=T
  290. Count_Literal=T
  291. Is_Null_Value_Expr=T
  292. Is_Null_Value_Parm=T
  293. Like_Value_Expr=T
  294. Subquery_In_Having=T
  295. Subquery_In_Group_By=F
  296. Subquery_In_Case=F
  297. Count_Blob=T
  298. Expression_In_In=T
  299. Null_Order=F
  300. Olap_Null_Order=T
  301. Olap_Distinct=F
  302. Nested_Olap_Functions=F
  303. Empty_String_Is_Null=F
  304. Order_By_In_Derived_Table=T
  305. Interval_As_VarChar=F
  306. Boolean_Comparison=T
  307. Derived_Column_List=T
  308. With_Column_List=F
  309. Aggr_With_Interval=T
  310. Nested_Case=T
  311. Not_In_Subquery=T
  312. Nulls_Sort_Last=F
  313. ; Note: Vertica sorts nulls first or last depending on the data type.
  314. Order_By_Alias=T
  315. Order_By_Name=T
  316. Substring_On_Expr=T
  317. Subqueries=T
  318. Subquery_Column_Alias=T
  319. Parameter_In_Select_List=T
  320. Remove_Parameter_Cast=T
  321. Subquery_With_Parameters=T
  322. Like_With_Parameters=T
  323. Like_With_Escape=T
  324. Comments=T
  325. Integer_Division_Truncation=T
  326. ; Vertica has various limitations with respect to parameter markers
  327. Parameter_Markers=F
  328. [Exceptions General DATABASE:VERTICA DATABASE VERSION:03]
  329. Group_By_Alias=F
  330. [Exceptions Literals DATABASE:VERTICA DATABASE]
  331. Date_Literal=T
  332. Timestamp_Literal=T
  333. Time_Literal=T
  334. Interval_Literal=F
  335. IntervalYM_Literal=F
  336. TimeTZ_Literal=F
  337. TimestampTZ_Literal=F
  338. NChar_Literal=T
  339. [Exceptions Misc DATABASE:VERTICA DATABASE]
  340. [Exceptions Delimiters DATABASE:VERTICA DATABASE]
  341. ;Catalog_Delimiter="\""
  342. ;Schema_Delimiter="\""
  343. ;Table_Delimiter="\""
  344. ;Column_Delimiter="\""
  345. ;Procedure_Delimiter="\""
  346. ;Wholename_Delimiter="\""
  347. ;Table_Function_PreStr="TABLE( "
  348. ;Table_Function_PostStr=" )"
  349. ; ANSI style dashdash is also supported
  350. Comment_Begin="/* "
  351. Comment_End=" */ "
  352. [Exceptions Separators DATABASE:VERTICA DATABASE]
  353. Catalog_Separator="."
  354. Schema_Separator="."
  355. Table_Separator="."
  356. [Exceptions Blob Expressions DATABASE:VERTICA DATABASE]
  357. Blob_In_Substring=T
  358. Blob_In_Trim=T
  359. Blob_In_StrCat=T
  360. Blob_In_IsNull=T
  361. Blob_In_Substring_Return_Blob=F
  362. ;b stands for boolean.
  363. ;c stands for character.
  364. ;x stands for text.
  365. ;d stands for date.
  366. ;i stands for the interval.
  367. ;n stands for the numeric.
  368. ;s stands for the timestamp.
  369. ;t stands for the time.
  370. ;y stands for time with time zone
  371. ;z stands for timestamp with time zone
  372. [Database Functions DATABASE:VERTICA DATABASE]
  373. n:ceiling(%1n)=CEIL(%1);
  374. [Builtin Functions DATABASE:VERTICA DATABASE]
  375. d:_add_days(%1d,%2n)=CAST(%1 + (INTERVAL '1' day * FLOOR(%2)) AS DATE);
  376. d:_add_months(%1d,%2n)=CAST(%1 + (INTERVAL '1' month * FLOOR(%2)) AS DATE);
  377. d:_add_years(%1d,%2n)=CAST(%1 + (INTERVAL '1' year * FLOOR(%2)) AS DATE);
  378. d:_first_of_month(%1d)=CAST((%1 - ( EXTRACT( DAY FROM %1 ) * INTERVAL '1' DAY ) + INTERVAL '1' DAY) AS DATE);
  379. d:_last_of_month(%1d)=CAST( (%1 - ( EXTRACT( DAY FROM %1 ) * INTERVAL '1' DAY ) + INTERVAL '1' DAY + INTERVAL '1' MONTH - INTERVAL '1' DAY ) AS DATE);
  380. s:_add_days(%1s,%2n)=%1 + (INTERVAL '1' day * FLOOR(%2));
  381. s:_add_months(%1s,%2n)=%1 + (INTERVAL '1' month * FLOOR(%2)) ;
  382. s:_add_years(%1s,%2n)=%1 + (INTERVAL '1' year * FLOOR(%2)) ;
  383. s:_first_of_month(%1s)=%1 - ( EXTRACT( DAY FROM %1 ) * INTERVAL '1' DAY ) + INTERVAL '1' DAY ;
  384. s:_last_of_month(%1s)=%1 - ( EXTRACT( DAY FROM %1 ) * INTERVAL '1' DAY ) + INTERVAL '1' MONTH;
  385. s:_make_timestamp(%1n,%2n,%3n)=cast(TO_TIMESTAMP('%1-%2-%3','YYYY-MM-DD') as timestamp without time zone);
  386. s:_add_hours(%1s,%2n)=%1 + (INTERVAL '1' hour * FLOOR(%2));
  387. s:_add_minutes(%1s,%2n)=%1 + (INTERVAL '1' minute * FLOOR(%2));
  388. s:_add_seconds(%1s,%2n)=%1 + (INTERVAL '1' second * FLOOR(%2));
  389. n:_days_between(%1ds,%2ds)=DATEDIFF(day, %2, %1);
  390. n:_months_between(%1ds,%2ds)=DATEDIFF(month, %2, %1);
  391. n:_years_between(%1ds,%2ds)=age_in_years(%1, %2);
  392. n:_hours_between(%1s,%2s)=DATEDIFF('hour', %1 , %2 );
  393. n:_minutes_between(%1s,%2s)=DATEDIFF('minute', %1 , %2 );
  394. n:_seconds_between(%1s,%2s)=DATEDIFF('second', %1 , %2 );
  395. n:_days_to_end_of_month(%1ds)=DATEDIFF('dy', %1, (%1 - ( EXTRACT( DAY FROM %1 ) * INTERVAL '1' DAY ) + INTERVAL '1' MONTH) );
  396. n:_day_of_year(%1ds)=EXTRACT('doy' FROM %1);
  397. n:_day_of_week(%1ds, %2n)=(MOD( CAST( TO_CHAR( %1, 'D' ) AS INTEGER ) + 6 - %2, 7 ) + 1);
  398. n:_age(%1ds)=CAST((age_in_years(current_date, %1 )*10000 + age_in_months(current_date, %1 ) % 12 * 100 + (current_date - ( %1 + age_in_months(current_date, %1 ) * interval '1' month)::date)) AS INT);
  399. ;n:_ymdint_between(%1ds,%2ds)=;
  400. n:_week_of_year(%1ds)=EXTRACT( WEEK FROM %1 );
  401. n:_round(%1n, %2n)=ROUND(%1,%2);
  402. n:coguda#extract_year(%1ds)=extract(year from %1);
  403. n:coguda#extract_month(%1ds)=extract(month from %1);
  404. n:coguda#extract_day(%1ds)=extract(day from %1);
  405. n:coguda#extract_hour(%1st)=extract(hour from %1);
  406. n:coguda#extract_minute(%1st)=extract(minute from %1);
  407. n:coguda#extract_second(%1st)=extract(millisecond from %1 )/1000;
  408. [Operator Addition]
  409. [Operator Subtraction]
  410. [Operator Multiplication]
  411. [Operator Division]
  412. [Operator Comparison]
  413. [Operator Cast DATABASE:VERTICA DATABASE]
  414. AD=AD,NA
  415. BL=AD,NA
  416. CH=CH,CH:DB,DB:DM,DM:DT,DT:FL,FL:IT,IT:NU,NU:QD,QD:TM,TM:TS,TS:VC,VC
  417. DB=DB,DB:DM,DM:FL,FL:IT,IT:NU,NU:QD,QD
  418. DM=DB,DB:DM,DM:FL,FL:IT,IT:NU,NU:QD,QD
  419. DT=CH,CH:DT,DT:TS,TS:VC,VC
  420. FL=DB,DB:DM,DM:FL,FL:IT,IT:NU,NU:QD,QD
  421. IT=CH,CH:DB,DB:DM,DM:FL,FL:IT,IT:NU,NU:QD,QD:VC,VC
  422. IV=AD,NA
  423. IY=AD,NA
  424. NA=CH,CH:DB,DB:DT,DT:FL,FL:IT,IT:QD,QD:TM,TM:VC,VC:NU,NU:DM,DM
  425. NC=AD,NA
  426. NU=DB,DB:FL,FL:IT,IT:QD,QD
  427. QD=CH,CH:DB,DB:DM,DM:FL,FL:IT,IT:NU,NU:QD,QD:VC,VC
  428. SM=AD,NA
  429. TM=TM,TM
  430. TS=DT,DT:TM,TM:TS,TS
  431. TT=AD,NA
  432. TZ=AD,NA
  433. VC=CH,CH:DB,DB:DM,DM:DT,DT:FL,FL:IT,IT:NU,NU:QD,QD:TM,TM:TS,TS:VC,VC
  434. [Operator Cast DATABASE:VERTICA DATABASE VERSION:03]
  435. AD=AD,NA
  436. BL=AD,NA
  437. CH=CH,CH:DB,DB:DT,DT:FL,FL:IT,IT:QD,QD:TM,TM:TS,TS:VC,VC
  438. DB=DB,DB:FL,FL:IT,IT:QD,QD
  439. DT=CH,CH:DT,DT:TS,TS:VC,VC
  440. FL=DB,DB:FL,FL:QD,QD
  441. IT=CH,CH:DB,DB:FL,FL:IT,IT:QD,QD:VC,VC
  442. IV=AD,NA
  443. IY=AD,NA
  444. NA=CH,CH:DB,DB:DT,DT:FL,FL:IT,IT:QD,QD:TM,TM:VC,VC
  445. NC=AD,NA
  446. QD=CH,CH:DB,DB:FL,FL:IT,IT:QD,QD:VC,VC
  447. SM=AD,NA
  448. TM=TM,TM
  449. TS=DT,DT:TM,TM:TS,TS
  450. TT=AD,NA
  451. TZ=AD,NA
  452. VC=CH,CH:DB,DB:DT,DT:FL,FL:IT,IT:QD,QD:TM,TM:TS,TS:VC,VC
  453. FL=DB,DB:FL,FL:QD,QD
  454. [Directives Session]
  455. [Builtin Functions DATABASE:VERTICA DATABASE VERSION:03]
  456. d:_add_days(%1d,%2n)=CAST(%1 + (INTERVAL '1 day' * FLOOR(%2)) AS DATE);
  457. d:_add_months(%1d,%2n)=CAST(%1 + (INTERVAL '1 month' * FLOOR(%2)) AS DATE);
  458. d:_add_years(%1d,%2n)=CAST(%1 + (INTERVAL '1 year' * FLOOR(%2)) AS DATE);
  459. d:_first_of_month(%1d)=CAST((%1 - ( EXTRACT( DAY FROM %1 ) * INTERVAL '1 DAY' ) + INTERVAL '1 DAY') AS DATE);
  460. d:_last_of_month(%1d)=CAST((%1 - ( EXTRACT( DAY FROM %1 ) * INTERVAL '1 DAY' ) + INTERVAL '1 MONTH') AS DATE);
  461. s:_add_days(%1s,%2n)=%1 + (INTERVAL '1 day' * FLOOR(%2));
  462. s:_add_months(%1s,%2n)=%1 + (INTERVAL '1 month' * FLOOR(%2)) ;
  463. s:_add_years(%1s,%2n)=%1 + (INTERVAL '1 year' * FLOOR(%2)) ;
  464. s:_first_of_month(%1s)=%1 - ( EXTRACT( DAY FROM %1 ) * INTERVAL '1 DAY' ) + INTERVAL '1 DAY' ;
  465. s:_last_of_month(%1s)=%1 - ( EXTRACT( DAY FROM %1 ) * INTERVAL '1 DAY' ) + INTERVAL '1 MONTH';
  466. s:_add_hours(%1s,%2n)=%1 + (INTERVAL '1 hour' * FLOOR(%2));
  467. s:_add_minutes(%1s,%2n)=%1 + (INTERVAL '1 minute' * FLOOR(%2));
  468. s:_add_seconds(%1s,%2n)=%1 + (INTERVAL '1 second' * FLOOR(%2));
  469. n:_years_between(%1ds,%2ds)=EXTRACT (YEAR FROM AGE (%1 , %2 ) );
  470. n:_days_to_end_of_month(%1ds)=DATEDIFF('dy', %1, (%1 - ( EXTRACT( DAY FROM %1 ) * INTERVAL '1 DAY' ) + INTERVAL '1 MONTH') );
  471. n:_age(%1ds)=CAST((extract('year' from age( %1)) * 10000 + extract('month' from age( %1 )) * 100 + extract('day' from age( %1 )) ) AS INT);
  472. n:_week_of_year(%1ds)=EXTRACT( WEEK FROM %1 );
  473. n:_round(%1n, %2n)=ROUND(%1,%2);
  474. n:coguda#extract_year(%1ds)=extract(year from %1);
  475. n:coguda#extract_month(%1ds)=extract(month from %1);
  476. n:coguda#extract_day(%1ds)=extract(day from %1);
  477. n:coguda#extract_hour(%1st)=extract(hour from %1);
  478. n:coguda#extract_minute(%1st)=extract(minute from %1);
  479. n:coguda#extract_second(%1st)=extract(millisecond from %1 )/1000;
  480. [DATABASE:VERTICA DATABASE VERSION:03]
  481. ; When connecting to Vertica 3.x look at these sections
  482. DBINFO_SUBTYPE="VERSION:03"