teradata.properties 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787
  1. # Licensed Materials - Property of IBM
  2. # IBM Cognos Products: OQP
  3. # (C) Copyright IBM Corp. 2005, 2022
  4. # US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM corp.
  5. #
  6. # Product information.
  7. #
  8. #
  9. # Delimiters.
  10. #
  11. #
  12. # Various limits.
  13. #
  14. limits.maxStatements=1
  15. limits.castClobToVarcharMaxSize=32000
  16. limits.maxDecimalPrecision=38
  17. #
  18. # General settings.
  19. #
  20. general.nullsOrdering=true
  21. general.nullsOrderingInWindowSpecification=true
  22. #
  23. # RTC 61393
  24. # Indicates whether to set nulls ok indicator to true when processing JDBC result set metadata.
  25. # This is set to true only if the value returned by invoking java.sql.ResultSetMetadata.isNullable() is
  26. # possibly incorrect.
  27. #
  28. general.forceNullsOk=true
  29. #
  30. # Override sampling policy with a different one.
  31. # 1. tablesample accepting values such as BERNOULLI or SYSTEM
  32. # 2. rowsample accepting values such as NTH or RANDOM
  33. #
  34. sampling.tablesample=
  35. sampling.rowsample=RANDOM
  36. #
  37. # Various features.
  38. #
  39. supports.expressionsInINPredicate=false
  40. supports.orderByAlias=false
  41. supports.orderByName=false
  42. supports.stitchJoins=false
  43. supports.nestedWithClause=false
  44. supports.subqueriesInCase=false
  45. supports.recursiveWithClause=false
  46. supports.booleanExpressionsInSelectList=false
  47. supports.orderByInDerivedTable=false
  48. supports.callProcedureInDerivedTable=false
  49. supports.top.distinct=false
  50. supports.top.set=false
  51. supports.top.0=false
  52. #casting with formatting pattern support
  53. supports.formatters.string_to_date=false
  54. supports.formatters.string_to_time=false
  55. supports.formatters.string_to_time_with_time_zone=false
  56. supports.formatters.string_to_timestamp=false
  57. supports.formatters.string_to_timestamp_with_time_zone=false
  58. #
  59. # Command.
  60. #
  61. #
  62. # Tables.
  63. #
  64. tables.lateral.derived=false
  65. #
  66. # Constructors.
  67. #
  68. constructors.table=false
  69. constructors.row=false
  70. constructors.array=false
  71. #
  72. # Clauses.
  73. #
  74. clauses.With=
  75. clauses.Top=TOP %1$s
  76. clauses.Top.Position=distinct.top
  77. clauses.At=
  78. clauses.Window=
  79. clauses.WithRecursive=
  80. clauses.TableSampleSystem=
  81. clauses.TableSampleBernoulli=
  82. clauses.ForSystemTimeAsOf=
  83. clauses.ForSystemTimeFrom=
  84. clauses.ForSystemTimeBetween=
  85. #
  86. # Joins.
  87. #
  88. #
  89. # Set operators.
  90. #
  91. #
  92. # Logical operators.
  93. #
  94. operators.logical.Is=
  95. operators.logical.IsNot=
  96. #
  97. # Arithmetic operators.
  98. #
  99. operators.arithmetic.Subtract[date,date]=((%1$s) - (%2$s) DAY(4))
  100. operators.arithmetic.Subtract[time,time]=((%1$s) - (%2$s) HOUR(4) TO SECOND(6))
  101. operators.arithmetic.Subtract[time,time_with_time_zone]=
  102. operators.arithmetic.Subtract[time_with_time_zone,time]=
  103. operators.arithmetic.Subtract[time_with_time_zone,time_with_time_zone]=((%1$s) - (%2$s) HOUR(4) TO SECOND(6))
  104. operators.arithmetic.Subtract[timestamp,timestamp]=((%1$s) - (%2$s) DAY(4) TO SECOND(6))
  105. operators.arithmetic.Subtract[timestamp,timestamp_with_time_zone]=
  106. operators.arithmetic.Subtract[timestamp_with_time_zone,timestamp]=
  107. operators.arithmetic.Subtract[timestamp_with_time_zone,timestamp_with_time_zone]=((%1$s) - (%2$s) DAY(4) TO SECOND(6))
  108. #
  109. # Group By Operators
  110. #
  111. operators.groupBy.Rollup=
  112. operators.groupBy.Cube=
  113. operators.groupBy.GroupingSets=
  114. #
  115. # Comparison predicates.
  116. #
  117. predicates.comparison.LessThan[interval_year_month,interval_year_month]=
  118. predicates.comparison.LessThan[interval_year_to_month,interval_year_to_month]=%1$s < %2$s
  119. predicates.comparison.LessThan[interval_year,interval_year]=%1$s < %2$s
  120. predicates.comparison.LessThan[interval_month,interval_month]=%1$s < %2$s
  121. predicates.comparison.LessThan[interval_day_time,interval_day_time]=
  122. predicates.comparison.LessThan[interval_day_to_second,interval_day_to_second]=%1$s < %2$s
  123. predicates.comparison.LessThan[interval_day_to_minute,interval_day_to_minute]=%1$s < %2$s
  124. predicates.comparison.LessThan[interval_day_to_hour,interval_day_to_hour]=%1$s < %2$s
  125. predicates.comparison.LessThan[interval_day,interval_day]=%1$s < %2$s
  126. predicates.comparison.LessThan[interval_hour_to_second,interval_hour_to_second]=%1$s < %2$s
  127. predicates.comparison.LessThan[interval_hour_to_minute,interval_hour_to_minute]=%1$s < %2$s
  128. predicates.comparison.LessThan[interval_hour,interval_hour]=%1$s < %2$s
  129. predicates.comparison.LessThan[interval_minute_to_second,interval_minute_to_second]=%1$s < %2$s
  130. predicates.comparison.LessThan[interval_minute,interval_minute]=%1$s < %2$s
  131. predicates.comparison.LessThan[interval_second,interval_second]=%1$s < %2$s
  132. predicates.comparison.LessThan[date,timestamp]=
  133. predicates.comparison.LessThan[date,timestamp_with_time_zone]=
  134. predicates.comparison.LessThan[timestamp,date]=
  135. predicates.comparison.LessThan[timestamp_with_time_zone,date]=
  136. predicates.comparison.LessThan[time,time_with_time_zone]=
  137. predicates.comparison.LessThan[time_with_time_zone,time]=
  138. predicates.comparison.LessThan[timestamp,timestamp_with_time_zone]=
  139. predicates.comparison.LessThan[timestamp_with_time_zone,timestamp]=
  140. predicates.comparison.LessThanOrEquals[interval_year_month,interval_year_month]=
  141. predicates.comparison.LessThanOrEquals[interval_year_to_month,interval_year_to_month]=%1$s <= %2$s
  142. predicates.comparison.LessThanOrEquals[interval_year,interval_year]=%1$s <= %2$s
  143. predicates.comparison.LessThanOrEquals[interval_month,interval_month]=%1$s <= %2$s
  144. predicates.comparison.LessThanOrEquals[interval_day_time,interval_day_time]=
  145. predicates.comparison.LessThanOrEquals[interval_day_to_second,interval_day_to_second]=%1$s <= %2$s
  146. predicates.comparison.LessThanOrEquals[interval_day_to_minute,interval_day_to_minute]=%1$s <= %2$s
  147. predicates.comparison.LessThanOrEquals[interval_day_to_hour,interval_day_to_hour]=%1$s <= %2$s
  148. predicates.comparison.LessThanOrEquals[interval_day,interval_day]=%1$s <= %2$s
  149. predicates.comparison.LessThanOrEquals[interval_hour_to_second,interval_hour_to_second]=%1$s <= %2$s
  150. predicates.comparison.LessThanOrEquals[interval_hour_to_minute,interval_hour_to_minute]=%1$s <= %2$s
  151. predicates.comparison.LessThanOrEquals[interval_hour,interval_hour]=%1$s <= %2$s
  152. predicates.comparison.LessThanOrEquals[interval_minute_to_second,interval_minute_to_second]=%1$s <= %2$s
  153. predicates.comparison.LessThanOrEquals[interval_minute,interval_minute]=%1$s <= %2$s
  154. predicates.comparison.LessThanOrEquals[interval_second,interval_second]=%1$s <= %2$s
  155. predicates.comparison.LessThanOrEquals[date,timestamp]=
  156. predicates.comparison.LessThanOrEquals[date,timestamp_with_time_zone]=
  157. predicates.comparison.LessThanOrEquals[timestamp,date]=
  158. predicates.comparison.LessThanOrEquals[timestamp_with_time_zone,date]=
  159. predicates.comparison.LessThanOrEquals[time,time_with_time_zone]=
  160. predicates.comparison.LessThanOrEquals[time_with_time_zone,time]=
  161. predicates.comparison.LessThanOrEquals[timestamp,timestamp_with_time_zone]=
  162. predicates.comparison.LessThanOrEquals[timestamp_with_time_zone,timestamp]=
  163. predicates.comparison.Equals[interval_year_month,interval_year_month]=
  164. predicates.comparison.Equals[interval_year_to_month,interval_year_to_month]=%1$s = %2$s
  165. predicates.comparison.Equals[interval_year,interval_year]=%1$s = %2$s
  166. predicates.comparison.Equals[interval_month,interval_month]=%1$s = %2$s
  167. predicates.comparison.Equals[interval_day_time,interval_day_time]=
  168. predicates.comparison.Equals[interval_day_to_second,interval_day_to_second]=%1$s = %2$s
  169. predicates.comparison.Equals[interval_day_to_minute,interval_day_to_minute]=%1$s = %2$s
  170. predicates.comparison.Equals[interval_day_to_hour,interval_day_to_hour]=%1$s = %2$s
  171. predicates.comparison.Equals[interval_day,interval_day]=%1$s = %2$s
  172. predicates.comparison.Equals[interval_hour_to_second,interval_hour_to_second]=%1$s = %2$s
  173. predicates.comparison.Equals[interval_hour_to_minute,interval_hour_to_minute]=%1$s = %2$s
  174. predicates.comparison.Equals[interval_hour,interval_hour]=%1$s = %2$s
  175. predicates.comparison.Equals[interval_minute_to_second,interval_minute_to_second]=%1$s = %2$s
  176. predicates.comparison.Equals[interval_minute,interval_minute]=%1$s = %2$s
  177. predicates.comparison.Equals[interval_second,interval_second]=%1$s = %2$s
  178. predicates.comparison.Equals[date,timestamp]=
  179. predicates.comparison.Equals[date,timestamp_with_time_zone]=
  180. predicates.comparison.Equals[timestamp,date]=
  181. predicates.comparison.Equals[timestamp_with_time_zone,date]=
  182. predicates.comparison.Equals[time,time_with_time_zone]=
  183. predicates.comparison.Equals[time_with_time_zone,time]=
  184. predicates.comparison.Equals[timestamp,timestamp_with_time_zone]=
  185. predicates.comparison.Equals[timestamp_with_time_zone,timestamp]=
  186. predicates.comparison.NotEquals[interval_year_month,interval_year_month]=
  187. predicates.comparison.NotEquals[interval_year_to_month,interval_year_to_month]=%1$s <> %2$s
  188. predicates.comparison.NotEquals[interval_year,interval_year]=%1$s <> %2$s
  189. predicates.comparison.NotEquals[interval_month,interval_month]=%1$s <> %2$s
  190. predicates.comparison.NotEquals[interval_day_time,interval_day_time]=
  191. predicates.comparison.NotEquals[interval_day_to_second,interval_day_to_second]=%1$s <> %2$s
  192. predicates.comparison.NotEquals[interval_day_to_minute,interval_day_to_minute]=%1$s <> %2$s
  193. predicates.comparison.NotEquals[interval_day_to_hour,interval_day_to_hour]=%1$s <> %2$s
  194. predicates.comparison.NotEquals[interval_day,interval_day]=%1$s <> %2$s
  195. predicates.comparison.NotEquals[interval_hour_to_second,interval_hour_to_second]=%1$s <> %2$s
  196. predicates.comparison.NotEquals[interval_hour_to_minute,interval_hour_to_minute]=%1$s <> %2$s
  197. predicates.comparison.NotEquals[interval_hour,interval_hour]=%1$s <> %2$s
  198. predicates.comparison.NotEquals[interval_minute_to_second,interval_minute_to_second]=%1$s <> %2$s
  199. predicates.comparison.NotEquals[interval_minute,interval_minute]=%1$s <> %2$s
  200. predicates.comparison.NotEquals[interval_second,interval_second]=%1$s <> %2$s
  201. predicates.comparison.NotEquals[date,timestamp]=
  202. predicates.comparison.NotEquals[date,timestamp_with_time_zone]=
  203. predicates.comparison.NotEquals[timestamp,date]=
  204. predicates.comparison.NotEquals[timestamp_with_time_zone,date]=
  205. predicates.comparison.NotEquals[time,time_with_time_zone]=
  206. predicates.comparison.NotEquals[time_with_time_zone,time]=
  207. predicates.comparison.NotEquals[timestamp,timestamp_with_time_zone]=
  208. predicates.comparison.NotEquals[timestamp_with_time_zone,timestamp]=
  209. predicates.comparison.GreaterThan[interval_year_month,interval_year_month]=
  210. predicates.comparison.GreaterThan[interval_year_to_month,interval_year_to_month]=%1$s > %2$s
  211. predicates.comparison.GreaterThan[interval_year,interval_year]=%1$s > %2$s
  212. predicates.comparison.GreaterThan[interval_month,interval_month]=%1$s > %2$s
  213. predicates.comparison.GreaterThan[interval_day_time,interval_day_time]=
  214. predicates.comparison.GreaterThan[interval_day_to_second,interval_day_to_second]=%1$s > %2$s
  215. predicates.comparison.GreaterThan[interval_day_to_minute,interval_day_to_minute]=%1$s > %2$s
  216. predicates.comparison.GreaterThan[interval_day_to_hour,interval_day_to_hour]=%1$s > %2$s
  217. predicates.comparison.GreaterThan[interval_day,interval_day]=%1$s > %2$s
  218. predicates.comparison.GreaterThan[interval_hour_to_second,interval_hour_to_second]=%1$s > %2$s
  219. predicates.comparison.GreaterThan[interval_hour_to_minute,interval_hour_to_minute]=%1$s > %2$s
  220. predicates.comparison.GreaterThan[interval_hour,interval_hour]=%1$s > %2$s
  221. predicates.comparison.GreaterThan[interval_minute_to_second,interval_minute_to_second]=%1$s > %2$s
  222. predicates.comparison.GreaterThan[interval_minute,interval_minute]=%1$s > %2$s
  223. predicates.comparison.GreaterThan[interval_second,interval_second]=%1$s > %2$s
  224. predicates.comparison.GreaterThan[date,timestamp]=
  225. predicates.comparison.GreaterThan[date,timestamp_with_time_zone]=
  226. predicates.comparison.GreaterThan[timestamp,date]=
  227. predicates.comparison.GreaterThan[timestamp_with_time_zone,date]=
  228. predicates.comparison.GreaterThan[time,time_with_time_zone]=
  229. predicates.comparison.GreaterThan[time_with_time_zone,time]=
  230. predicates.comparison.GreaterThan[timestamp,timestamp_with_time_zone]=
  231. predicates.comparison.GreaterThan[timestamp_with_time_zone,timestamp]=
  232. predicates.comparison.GreaterThanOrEquals[interval_year_month,interval_year_month]=
  233. predicates.comparison.GreaterThanOrEquals[interval_year_to_month,interval_year_to_month]=%1$s >= %2$s
  234. predicates.comparison.GreaterThanOrEquals[interval_year,interval_year]=%1$s >= %2$s
  235. predicates.comparison.GreaterThanOrEquals[interval_month,interval_month]=%1$s >= %2$s
  236. predicates.comparison.GreaterThanOrEquals[interval_day_time,interval_day_time]=
  237. predicates.comparison.GreaterThanOrEquals[interval_day_to_second,interval_day_to_second]=%1$s >= %2$s
  238. predicates.comparison.GreaterThanOrEquals[interval_day_to_minute,interval_day_to_minute]=%1$s >= %2$s
  239. predicates.comparison.GreaterThanOrEquals[interval_day_to_hour,interval_day_to_hour]=%1$s >= %2$s
  240. predicates.comparison.GreaterThanOrEquals[interval_day,interval_day]=%1$s >= %2$s
  241. predicates.comparison.GreaterThanOrEquals[interval_hour_to_second,interval_hour_to_second]=%1$s >= %2$s
  242. predicates.comparison.GreaterThanOrEquals[interval_hour_to_minute,interval_hour_to_minute]=%1$s >= %2$s
  243. predicates.comparison.GreaterThanOrEquals[interval_hour,interval_hour]=%1$s >= %2$s
  244. predicates.comparison.GreaterThanOrEquals[interval_minute_to_second,interval_minute_to_second]=%1$s >= %2$s
  245. predicates.comparison.GreaterThanOrEquals[interval_minute,interval_minute]=%1$s >= %2$s
  246. predicates.comparison.GreaterThanOrEquals[interval_second,interval_second]=%1$s >= %2$s
  247. predicates.comparison.GreaterThanOrEquals[date,timestamp]=
  248. predicates.comparison.GreaterThanOrEquals[date,timestamp_with_time_zone]=
  249. predicates.comparison.GreaterThanOrEquals[timestamp,date]=
  250. predicates.comparison.GreaterThanOrEquals[timestamp_with_time_zone,date]=
  251. predicates.comparison.GreaterThanOrEquals[time,time_with_time_zone]=
  252. predicates.comparison.GreaterThanOrEquals[time_with_time_zone,time]=
  253. predicates.comparison.GreaterThanOrEquals[timestamp,timestamp_with_time_zone]=
  254. predicates.comparison.GreaterThanOrEquals[timestamp_with_time_zone,timestamp]=
  255. #
  256. # Various predicates.
  257. #
  258. predicates.Between[interval_year_month,interval_year_month,interval_year_month]=
  259. predicates.Between[interval_year_to_month,interval_year_to_month,interval_year_to_month]=%1$s BETWEEN %2$s AND %3$s
  260. predicates.Between[interval_year,interval_year,interval_year]=%1$s BETWEEN %2$s AND %3$s
  261. predicates.Between[interval_month,interval_month,interval_month]=%1$s BETWEEN %2$s AND %3$s
  262. predicates.Between[interval_day_time,interval_day_time,interval_day_time]=
  263. predicates.Between[interval_day_to_second,interval_day_to_second,interval_day_to_second]=%1$s BETWEEN %2$s AND %3$s
  264. predicates.Between[interval_day_to_minute,interval_day_to_minute,interval_day_to_minute]=%1$s BETWEEN %2$s AND %3$s
  265. predicates.Between[interval_day_to_hour,interval_day_to_hour,interval_day_to_hour]=%1$s BETWEEN %2$s AND %3$s
  266. predicates.Between[interval_day,interval_day,interval_day]=%1$s BETWEEN %2$s AND %3$s
  267. predicates.Between[interval_hour_to_second,interval_hour_to_second,interval_hour_to_second]=%1$s BETWEEN %2$s AND %3$s
  268. predicates.Between[interval_hour_to_minute,interval_hour_to_minute,interval_hour_to_minute]=%1$s BETWEEN %2$s AND %3$s
  269. predicates.Between[interval_hour,interval_hour,interval_hour]=%1$s BETWEEN %2$s AND %3$s
  270. predicates.Between[interval_minute_to_second,interval_minute_to_second,interval_minute_to_second]=%1$s BETWEEN %2$s AND %3$s
  271. predicates.Between[interval_minute,interval_minute,interval_minute]=%1$s BETWEEN %2$s AND %3$s
  272. predicates.Between[interval_second,interval_second,interval_second]=%1$s BETWEEN %2$s AND %3$s
  273. predicates.Between[date,timestamp,any]=
  274. predicates.Between[date,any,timestamp]=
  275. predicates.Between[date,timestamp_with_time_zone,any]=
  276. predicates.Between[date,any,timestamp_with_time_zone]=
  277. predicates.Between[timestamp,date,any]=
  278. predicates.Between[timestamp,any,date]=
  279. predicates.Between[timestamp_with_time_zone,date,any]=
  280. predicates.Between[timestamp_with_time_zone,any,date]=
  281. predicates.In[interval_year_month,interval_year_month]=
  282. predicates.In[interval_year_to_month,interval_year_to_month]=%1$s IN (%2$s)
  283. predicates.In[interval_year,interval_year]=%1$s IN (%2$s)
  284. predicates.In[interval_month,interval_month]=%1$s IN (%2$s)
  285. predicates.In[interval_day_time,interval_day_time]=
  286. predicates.In[interval_day_to_second,interval_day_to_second]=%1$s IN (%2$s)
  287. predicates.In[interval_day_to_minute,interval_day_to_minute]=%1$s IN (%2$s)
  288. predicates.In[interval_day_to_hour,interval_day_to_hour]=%1$s IN (%2$s)
  289. predicates.In[interval_day,interval_day]=%1$s IN (%2$s)
  290. predicates.In[interval_hour_to_second,interval_hour_to_second]=%1$s IN (%2$s)
  291. predicates.In[interval_hour_to_minute,interval_hour_to_minute]=%1$s IN (%2$s)
  292. predicates.In[interval_hour,interval_hour]=%1$s IN (%2$s)
  293. predicates.In[interval_minute_to_second,interval_minute_to_second]=%1$s IN (%2$s)
  294. predicates.In[interval_minute,interval_minute]=%1$s IN (%2$s)
  295. predicates.In[interval_second,interval_second]=%1$s IN (%2$s)
  296. predicates.In[date,timestamp]=
  297. predicates.In[date,timestamp_with_time_zone]=
  298. predicates.In[timestamp,date]=
  299. predicates.In[timestamp_with_time_zone,date]=
  300. predicates.IsDistinctFrom[any,any]=(%1$s IS NULL AND %2$s IS NOT NULL) OR (%1$s IS NOT NULL AND %2$s IS NULL) OR %1$s <> %2$s
  301. predicates.IsNotDistinctFrom[any,any]=%1$s = %2$s OR (%1$s IS NULL AND %2$s IS NULL)
  302. predicates.LikeRegex=
  303. predicates.LikeRegex.flag=
  304. predicates.Similar=
  305. predicates.Similar.escape=
  306. #
  307. # Expressions.
  308. #
  309. #
  310. # Cast expression.
  311. #
  312. expressions.Cast[clob,char]=CAST(%1$s AS %2$s)
  313. expressions.Cast[clob,varchar]=CAST(%1$s AS %2$s)
  314. expressions.Cast[clob,any]=
  315. expressions.Cast[date,clob]=
  316. expressions.Cast[date,text]=
  317. expressions.Cast[datetime,time_with_time_zone]=
  318. expressions.Cast[datetime,timestamp_with_time_zone]=
  319. expressions.Cast[time,clob]=
  320. expressions.Cast[time_with_time_zone,clob]=
  321. expressions.Cast[time_with_time_zone,datetime]=
  322. expressions.Cast[timestamp,clob]=
  323. expressions.Cast[timestamp_with_time_zone,clob]=
  324. expressions.Cast[timestamp_with_time_zone,datetime]=
  325. expressions.Cast[interval_day_to_hour,interval_second]=
  326. expressions.Cast[interval_day_to_minute,interval_second]=
  327. expressions.Cast[interval_day_to_second,interval_second]=
  328. expressions.Cast[interval_year,clob]=
  329. expressions.Cast[interval_year_to_month,clob]=
  330. expressions.Cast[interval_month,clob]=
  331. expressions.Cast[decimal,clob]=
  332. expressions.Cast[double,clob]=
  333. expressions.Cast[float,clob]=
  334. expressions.Cast[integer,clob]=
  335. expressions.Cast[smallint,clob]=
  336. expressions.Cast[char,clob]=
  337. expressions.Cast[varchar,clob]=
  338. # Minimum number of arguments for Coalesce function.
  339. expressions.Coalesce.minArgs=2
  340. #
  341. # Extract expression.
  342. #
  343. expressions.Extract.EPOCH[any]=
  344. #
  345. # Trim expression.
  346. #
  347. #
  348. # Windowed aggregates (SQL/OLAP).
  349. #
  350. olap.Count[blob]=
  351. olap.Count[xml]=
  352. olap.Rank[]=RANK()
  353. olap.DenseRank[]=DENSE_RANK()
  354. olap.CumeDist[]=CUME_DIST()
  355. olap.FirstValue[any]=FIRST_VALUE(%1$s)
  356. olap.FirstValue[date]=
  357. olap.LastValue[any]=LAST_VALUE(%1$s)
  358. olap.LastValue[date]=
  359. olap.NTile[any]=
  360. olap.RatioToReport[any]=
  361. olap.Tertile[]=
  362. olap.Difference[any]=
  363. olap.PercentileCont[any,any]=
  364. olap.PercentileDisc[any,any]=
  365. olap.Median[any]=
  366. # Teradata does not implicitly cast the type for default value
  367. # Offset can only be an integeral type
  368. olap.Lag[any]=LAG(%1$s)
  369. olap.Lag[blob]=
  370. olap.Lag[xml]=
  371. olap.Lag[any,any]=LAG(%1$s, %2$s)
  372. olap.Lag[any,decimal]=
  373. olap.Lag[any,double]=
  374. olap.Lag[any,float]=
  375. olap.Lag[blob,any]=
  376. olap.Lag[xml,any]=
  377. olap.Lag[any,any,any]=
  378. olap.Lag[any,decimal,any]=
  379. olap.Lag[any,double,any]=
  380. olap.Lag[any,float,any]=
  381. olap.Lag[smallint,any,any]=LAG(%1$s, %2$s, cast(%3$s as smallint))
  382. olap.Lag[integer,any,any]=LAG(%1$s, %2$s, cast(%3$s as integer))
  383. olap.Lag[long,any,any]=LAG(%1$s, %2$s, cast(%3$s as bigint))
  384. olap.Lag[double,any,any]=LAG(%1$s, %2$s, cast(%3$s as double precision))
  385. olap.Lag[float,any,any]=LAG(%1$s, %2$s, cast(%3$s as float))
  386. olap.Lag[date,any,date]=LAG(%1$s, %2$s, %3$s)
  387. olap.Lag[time,any,time]=LAG(%1$s, %2$s, cast(%3$s as time))
  388. olap.Lag[timestamp,any,timestamp]=LAG(%1$s, %2$s, cast(%3$s as timestamp))
  389. olap.Lag[any,any,any,any]=
  390. olap.Lag[any,decimal,any,any]=
  391. olap.Lag[any,double,any,any]=
  392. olap.Lag[any,float,any,any]=
  393. olap.Lag[smallint,any,any,any]=LAG(%1$s, %2$s, cast(%3$s as smallint)) %4$s
  394. olap.Lag[integer,any,any,any]=LAG(%1$s, %2$s, cast(%3$s as integer)) %4$s
  395. olap.Lag[long,any,any,any]=LAG(%1$s, %2$s, cast(%3$s as bigint)) %4$s
  396. olap.Lag[double,any,any,any]=LAG(%1$s, %2$s, cast(%3$s as double precision)) %4$s
  397. olap.Lag[float,any,any,any]=LAG(%1$s, %2$s, cast(%3$s as float)) %4$s
  398. olap.Lag[date,any,date,any]=LAG(%1$s, %2$s, %3$s) %4$s
  399. olap.Lag[time,any,time,any]=LAG(%1$s, %2$s, cast(%3$s as time)) %4$s
  400. olap.Lag[timestamp,any,timestamp,any]=LAG(%1$s, %2$s, cast(%3$s as timestamp)) %4$s
  401. olap.Lead[any]=LEAD(%1$s)
  402. olap.Lead[blob]=
  403. olap.Lead[xml]=
  404. olap.Lead[any,any]=LEAD(%1$s, %2$s)
  405. olap.Lead[any,decimal]=
  406. olap.Lead[any,double]=
  407. olap.Lead[any,float]=
  408. olap.Lead[blob,any]=
  409. olap.Lead[xml,any]=
  410. olap.Lead[any,any,any]=
  411. olap.Lead[any,decimal,any]=
  412. olap.Lead[any,double,any]=
  413. olap.Lead[any,float,any]=
  414. olap.Lead[smallint,any,any]=LEAD(%1$s, %2$s, cast(%3$s as smallint))
  415. olap.Lead[integer,any,any]=LEAD(%1$s, %2$s, cast(%3$s as integer))
  416. olap.Lead[long,any,any]=LEAD(%1$s, %2$s, cast(%3$s as bigint))
  417. olap.Lead[double,any,any]=LEAD(%1$s, %2$s, cast(%3$s as double precision))
  418. olap.Lead[float,any,any]=LEAD(%1$s, %2$s, cast(%3$s as float))
  419. olap.Lead[date,any,date]=LEAD(%1$s, %2$s, %3$s)
  420. olap.Lead[time,any,time]=LEAD(%1$s, %2$s, cast(%3$s as time))
  421. olap.Lead[timestamp,any,timestamp]=LEAD(%1$s, %2$s, cast(%3$s as timestamp))
  422. olap.Lead[any,any,any,any]=
  423. olap.Lead[any,decimal,any,any]=
  424. olap.Lead[any,double,any,any]=
  425. olap.Lead[any,float,any,any]=
  426. olap.Lead[smallint,any,any,any]=LEAD(%1$s, %2$s, cast(%3$s as smallint)) %4$s
  427. olap.Lead[integer,any,any,any]=LEAD(%1$s, %2$s, cast(%3$s as integer)) %4$s
  428. olap.Lead[long,any,any,any]=LEAD(%1$s, %2$s, cast(%3$s as bigint)) %4$s
  429. olap.Lead[double,any,any,any]=LEAD(%1$s, %2$s, cast(%3$s as double precision)) %4$s
  430. olap.Lead[float,any,any,any]=LEAD(%1$s, %2$s, cast(%3$s as float)) %4$s
  431. olap.Lead[date,any,date,any]=LEAD(%1$s, %2$s, %3$s) %4$s
  432. olap.Lead[time,any,time,any]=LEAD(%1$s, %2$s, cast(%3$s as time)) %4$s
  433. olap.Lead[timestamp,any,timestamp,any]=LEAD(%1$s, %2$s, cast(%3$s as timestamp)) %4$s
  434. olap.NthValue[any,any]=
  435. olap.NthValue[any,any,any]=
  436. olap.NthValue[any,any,any,any]=
  437. olap.Collect[any]=
  438. #
  439. # Window clause.
  440. #
  441. #
  442. # Olap (distinct).
  443. #
  444. olap.Max.distinct[any]=
  445. olap.Min.distinct[any]=
  446. olap.Sum.distinct[any]=
  447. olap.Avg.distinct[any]=
  448. olap.Count.distinct[any]=
  449. #
  450. # Aggregates.
  451. #
  452. aggregates.Count[any]=CAST(COUNT(%1$s) AS DECIMAL(15,0))
  453. aggregates.Count[xml]=
  454. aggregates.CountStar[]=CAST(COUNT(*) AS DECIMAL(15,0))
  455. aggregates.CumeDistH[any,any]=
  456. aggregates.PercentileCont[any,any]=PERCENTILE_CONT(%1$s) WITHIN GROUP (ORDER BY %2$s)
  457. aggregates.PercentileDisc[any,any]=PERCENTILE_DISC(%1$s) WITHIN GROUP (ORDER BY %2$s)
  458. aggregates.Median[any]=PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY %1$s)
  459. aggregates.ArrayAgg[any]=
  460. aggregates.ArrayAgg[any,any]=
  461. aggregates.Collect[any]=
  462. aggregates.ApproxCountDistinct[any]=
  463. #
  464. # Aggregates (distinct).
  465. #
  466. aggregates.Count.distinct[blob]=
  467. #
  468. # JSON aggregates.
  469. #
  470. aggregates.JSONArrayAgg=
  471. aggregates.JSONObjectAgg=
  472. #
  473. # Linear regression aggregates.
  474. #
  475. #
  476. # Character scalar functions.
  477. #
  478. functions.BitLength[any]=(OCTET_LENGTH(%1$s) * 8)
  479. functions.Position[any,any]=INDEX(%2$s, %1$s)
  480. functions.Translate[any,any]=
  481. functions.Normalize[any]=
  482. functions.Normalize[any,any]=
  483. functions.Normalize[any,any,any]=
  484. #
  485. # Regular expression functions.
  486. # Need to determine if the regular expression flavor is XQuery or POSIX.
  487. #
  488. functions.SubstringRegex[any,any,any,any,any]=
  489. functions.OccurrencesRegex[any,any,any,any]=
  490. functions.PositionRegex[any,any,any,any,any,any]=
  491. #
  492. # Numeric scalar functions.
  493. #
  494. functions.Mod[any,any]=((%1$s) MOD (%2$s))
  495. functions.Power[any,any]=CAST(POWER(%1$s, %2$s) AS DOUBLE PRECISION)
  496. functions.Random[]=CAST(RANDOM(0,999999999) as DOUBLE PRECISION) / 1000000000
  497. functions.Random[any]=
  498. functions.Log10[any]=Log(%1$s)
  499. functions.Round[any]=
  500. functions.Round[any,any]=ROUND(%1$s, %2$s)
  501. functions.Round[any,any,any]=
  502. #
  503. # Array scalar functions.
  504. #
  505. functions.Cardinality[any]=
  506. functions.TrimArray[any,any]=
  507. #
  508. # Trigonometric functions.
  509. #
  510. #
  511. # Datetime value functions.
  512. #
  513. functions.CurrentDate[]=CURRENT_DATE
  514. functions.CurrentTime[]=
  515. functions.CurrentTimestamp[]=
  516. functions.LocalTime[]=CURRENT_TIME
  517. functions.LocalTimestamp[]=CURRENT_TIMESTAMP
  518. functions.CurrentTime[numeric]=
  519. functions.CurrentTimestamp[numeric]=
  520. functions.LocalTime[numeric]=
  521. functions.LocalTimestamp[numeric]=
  522. #
  523. # XML functions.
  524. #
  525. functions.XMLAttributes=
  526. functions.XMLComment=
  527. functions.XMLConcat=
  528. functions.XMLDocument=
  529. functions.XMLElement=
  530. functions.XMLExists=
  531. functions.XMLForest=
  532. functions.XMLParse=
  533. functions.XMLPI=
  534. functions.XMLNamespaces=
  535. functions.XMLQuery=
  536. functions.XMLSerialize=
  537. functions.XMLTable=
  538. functions.XMLText=
  539. functions.XMLTransform=
  540. functions.XMLValidate=
  541. #
  542. # JSON functions.
  543. #
  544. functions.JSONArray=
  545. functions.JSONExists=
  546. functions.JSONObject=
  547. functions.JSONQuery=
  548. functions.JSONTable=
  549. functions.JSONValue=
  550. #
  551. # Business date functions.
  552. #
  553. functions.AddFractionalSeconds[any,any]=
  554. functions.AddSeconds[any,any]=( (%1$s) + cast( (%2$s) as INTERVAL SECOND ) )
  555. functions.AddMinutes[any,any]=( (%1$s) + cast( (%2$s) as INTERVAL MINUTE ) )
  556. functions.AddHours[any,any]=( (%1$s) + cast( (%2$s) as INTERVAL HOUR ) )
  557. functions.AddDays[any,any]=( (%1$s) + cast( (%2$s) as INTERVAL DAY(4) ) )
  558. functions.AddWeeks[any,any]=( (%1$s) + cast( (%2$s * 7) as INTERVAL DAY(4) ) )
  559. functions.AddMonths[any,any]=ADD_MONTHS( %1$s, CAST(%2$s as INTEGER) )
  560. functions.AddMonths[interval_year_month,numeric]=( (%1$s) + cast( (%2$s) as INTERVAL MONTH(4) ) )
  561. functions.AddQuarters[any,any]=ADD_MONTHS( %1$s, (CAST(%2$s as INTEGER) * 3) )
  562. functions.AddQuarters[interval_year_month,numeric]=( (%1$s) + cast( (%2$s * 3) as INTERVAL MONTH(4) ) )
  563. functions.AddYears[any,any]=ADD_MONTHS( %1$s, ( (CAST(%2$s as INTEGER)) * 12 ) )
  564. functions.AddYears[interval_year_month,numeric]=( (%1$s) + cast( (%2$s) as INTERVAL YEAR(4) ) )
  565. functions.FractionalSecondsBetween[any,any]=
  566. functions.SecondsBetween[any,any]=
  567. functions.MinutesBetween[any,any]=
  568. functions.HoursBetween[any,any]=
  569. functions.DaysBetween[date,date]=( (%1$s) - (%2$s) )
  570. functions.DaysBetween[date,timestamp]=( (%1$s) - cast( (%2$s) as DATE ) )
  571. functions.DaysBetween[timestamp,date]=( cast( (%1$s) as DATE ) - (%2$s) )
  572. functions.DaysBetween[any,any]=( cast( (%1$s) as DATE ) - cast( (%2$s) as DATE) )
  573. functions.WeeksBetween[any,any]=
  574. functions.MonthsBetween[any,any]=
  575. functions.QuartersBetween[any,any]=
  576. functions.YearsBetween[any,any]=
  577. functions.Age[any]=
  578. functions.DayOfWeek[any,any]=
  579. functions.DayOfYear[any]=CAST( ( CAST ((%1$s) AS DATE) + 1 - CAST( ( CAST( EXTRACT( YEAR FROM (CAST ((%1$s) AS DATE) )) AS CHAR(4)) || '-01-01' ) AS DATE) ) AS INTEGER)
  580. functions.DaysToEndOfMonth[any]=(EXTRACT( DAY FROM (ADD_MONTHS((%1$s) - CAST( EXTRACT( DAY FROM (%1$s) ) AS INTERVAL DAY) + INTERVAL '1' DAY, 1) - INTERVAL '1' DAY)) - EXTRACT(DAY FROM (%1$s)))
  581. functions.FirstOfMonth[any]=( (%1$s) - CAST((EXTRACT(DAY FROM (%1$s))-1) AS INTERVAL DAY) )
  582. functions.LastOfMonth[any]=( ADD_MONTHS( (%1$s) - CAST((EXTRACT(DAY FROM (%1$s))-1) AS INTERVAL DAY), 1 ) - INTERVAL '1' DAY )
  583. functions.MakeTimestamp[any,any,any]=
  584. functions.WeekOfYear[any]=
  585. functions.YMDIntBetween[any,any]=
  586. #
  587. # FDS and JDBC functions.
  588. #
  589. #Substring function to negative START value to parse the input string from its rightmost end.
  590. functions.SubstringR[any,any]=CASE WHEN (%2$s) < 0 THEN (SUBSTR( %1$s, (CHAR_LENGTH(%1$s ) - ABS(%2$s) + 1))) ELSE (SUBSTR(%1$s, %2$s)) END
  591. functions.SubstringR[any,any,any]=CASE WHEN (%2$s) < 0 THEN (SUBSTR( %1$s, (CHAR_LENGTH(%1$s ) - ABS(%2$s) + 1), %3$s)) ELSE (SUBSTR(%1$s, %2$s, %3$s)) END
  592. functions.length[text]={fn LENGTH(%1$s)}
  593. functions.locate[text,text]={fn LOCATE(%1$s, %2$s)}
  594. functions.ltrim[text]={fn LTRIM(%1$s)}
  595. functions.ucase[text]={fn UCASE(%1$s)}
  596. functions.year[datetime]={fn YEAR(%1$s)}
  597. functions.month[datetime]={fn MONTH(%1$s)}
  598. functions.concat[any,any]={fn CONCAT(%1$s, %2$s)}
  599. functions.pi[]={fn PI()}
  600. functions.left[text,numeric]=SUBSTR(%1$s, 1, %2$s)
  601. functions.dayofweek[date]=CAST( ( CAST ((%1$s) AS DATE) - CAST( ( '1970-01-01' ) AS DATE) + 5) AS INTEGER) MOD 7
  602. functions.dayofyear[date]=CAST( ( CAST ((%1$s) AS DATE) + 1 - CAST( ( CAST( EXTRACT( YEAR FROM (CAST ((%1$s) AS DATE) )) AS CHAR(4)) || '-01-01' ) AS DATE) ) AS INTEGER)
  603. functions.monthname[date]=TRIM( SUBSTR (' January February March April May June July August SeptemberOctober November December ', ( CAST ( CAST ( (%1$s) as DATE) as INTEGER)/100 MOD 100)*9 + 1,9))
  604. #
  605. # Temporal functions.
  606. #
  607. functions.dqmudf.begin[period]=BEGIN(%1$s)
  608. functions.dqmudf.contains[period,period]=%1$s CONTAINS %2$s
  609. functions.dqmudf.end[period]=END(%1$s)
  610. functions.dqmudf.intersect[period]=P_INTERSECT(%1$s)
  611. functions.dqmudf.last[period]=LAST(%1$s)
  612. functions.dqmudf.ldiff[period]=LDIFF(%1$s)
  613. functions.dqmudf.meets[period,period]=%1$s MEETS %2$s
  614. functions.dqmudf.next[period]=NEXT(%1$s)
  615. functions.dqmudf.normalize[period,period]=%1$s P_NORMALIZE %2$s
  616. functions.dqmudf.overlaps[period,period]=%1$s OVERLAPS %2$s
  617. functions.dqmudf.precedes[period,period]=%1$s PRECEDES %2$s
  618. functions.dqmudf.prior[period]=PRIOR(%1$s)
  619. functions.dqmudf.rdiff[period]=RDIFF(%1$s)
  620. #
  621. # Literals.
  622. #
  623. literals.binary=false
  624. literals.blob=true
  625. literals.clob=true
  626. literals.boolean=false
  627. literals.date=true
  628. literals.time=true
  629. literals.time_with_time_zone=true
  630. literals.timestamp=true
  631. literals.timestamp_with_time_zone=true
  632. literals.interval_day=true
  633. literals.interval_day_to_hour=true
  634. literals.interval_day_to_minute=true
  635. literals.interval_day_to_second=true
  636. literals.interval_hour=true
  637. literals.interval_hour_to_minute=true
  638. literals.interval_hour_to_second=true
  639. literals.interval_minute=true
  640. literals.interval_minute_to_second=true
  641. literals.interval_second=true
  642. literals.interval_year=true
  643. literals.interval_year_to_month=true
  644. literals.interval_month=true
  645. literals.decimal=true
  646. literals.double=true
  647. literals.float=true
  648. literals.real=true
  649. literals.integer=true
  650. literals.long=true
  651. literals.smallint=true
  652. literals.char=true
  653. literals.nchar=true
  654. literals.nvarchar=true
  655. literals.varchar=true
  656. literals.xml=false
  657. #
  658. # Literal format specifications.
  659. #
  660. literals.format.time=TIME '%1$02d:%2$02d:%3$02d%4$.7s'
  661. literals.format.time_with_time_zone=TIME '%1$02d:%2$02d:%3$02d%4$.7s%7$c%5$02d:%6$02d'
  662. literals.format.timestamp=TIMESTAMP '%1$04d-%2$02d-%3$02d %4$02d:%5$02d:%6$02d%7$.7s'
  663. literals.format.timestamp_with_time_zone=TIMESTAMP '%1$04d-%2$02d-%3$02d %4$02d:%5$02d:%6$02d%7$.7s%10$c%8$02d:%9$02d'
  664. literals.format.interval_day=INTERVAL %3$s'%1$d' DAY
  665. literals.format.interval_day_to_hour=INTERVAL %4$s'%1$d %2$02d' DAY TO HOUR
  666. literals.format.interval_day_to_minute=INTERVAL %5$s'%1$d %2$02d:%3$02d' DAY TO MINUTE
  667. literals.format.interval_day_to_second=INTERVAL %8$s'%1$d %2$02d:%3$02d:%4$02d%5$.7s' DAY TO SECOND
  668. literals.format.interval_hour=INTERVAL %3$s'%1$d' HOUR
  669. literals.format.interval_hour_to_minute=INTERVAL %4$s'%1$d:%2$02d' HOUR TO MINUTE
  670. literals.format.interval_hour_to_second=INTERVAL %7$s'%1$d:%2$02d:%3$02d%4$.7s' HOUR TO SECOND
  671. literals.format.interval_minute=INTERVAL %3$s'%1$d' MINUTE
  672. literals.format.interval_minute_to_second=INTERVAL %6$s'%1$d:%2$02d%3$.7s' MINUTE TO SECOND
  673. literals.format.interval_second=INTERVAL %5$s'%1$02d%2$.7s' SECOND
  674. literals.format.interval_year=INTERVAL %3$s'%1$d' YEAR
  675. literals.format.interval_year_to_month=INTERVAL %4$s'%1$d-%2$02d' YEAR TO MONTH
  676. literals.format.interval_month=INTERVAL %3$s'%1$d' MONTH
  677. literals.format.nchar='%s'
  678. literals.format.nvarchar='%s'
  679. #
  680. # Data types.
  681. #
  682. dataType.nchar=false
  683. dataType.nvarchar=false
  684. #
  685. # Data source type overrides
  686. #
  687. #datasource.type.TIME_WITH_TIME_ZONE=time with time zone
  688. #datasource.type.time_with_time_zone.method=getTimeZoneWithCalendar
  689. #datasource.type.TIMESTAMP_WITH_TIME_ZONE=timestamp with time zone
  690. #datasource.type.timestamp_with_time_zone.method=getTimeZoneWithCalendar
  691. #datasource.type.INTERVAL_YEAR=interval year
  692. #datasource.type.INTERVAL_MONTH=interval month
  693. #datasource.type.INTERVAL_YEAR_TO_MONTH=interval year to month
  694. #datasource.type.INTERVAL_DAY=interval day
  695. #datasource.type.INTERVAL_HOUR=interval hour
  696. #datasource.type.INTERVAL_MINUTE=interval minute
  697. #datasource.type.INTERVAL_SECOND=interval second
  698. #datasource.type.INTERVAL_DAY_TO_HOUR=interval day to hour
  699. #datasource.type.INTERVAL_DAY_TO_MINUTE=interval day to minute
  700. #datasource.type.INTERVAL_DAY_TO_SECOND=interval day to second
  701. #datasource.type.INTERVAL_HOUR_TO_MINUTE=interval hour to minute
  702. #datasource.type.INTERVAL_HOUR_TO_SECOND=interval hour to second
  703. #datasource.type.INTERVAL_MINUTE_TO_SECOND=interval minute to second
  704. #datasource.type.PERIOD[date]=period(date)
  705. #datasource.type.PERIOD[time]=period(time)
  706. #datasource.type.PERIOD[timestamp]=period(timestamp)
  707. #datasource.type.PERIOD[timestamp_with_time_zone]=period(timestamp with time zone)
  708. #
  709. # We are unable to retrieve the collation sequence from teradata but we can still check if the comparison is case sensitive or not
  710. #
  711. collation.sequence.sql=SELECT '', CASE WHEN 'A' = 'a' and 'é' = 'e' THEN 'CI_AI' WHEN 'A' = 'a' and 'é' <> 'e' THEN 'CI_AS' WHEN 'A' <> 'a' and 'é' <> 'e' THEN 'CS_AS' ELSE 'CS_AI' END as COLLATOR_STRENGTH
  712. #
  713. # Window specification
  714. # A list of windows specifications that are supported by the DB
  715. # P = PARTITION BY
  716. # O = ORDER BY
  717. # F = FRAME
  718. #
  719. # Teradata Defect has been opened "RECEQ85HV"
  720. olap.Window.Specification[O]=false
  721. olap.Window.Specification[PO]=false