sql_dictionary.py 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  1. """
  2. /***************************************************************************
  3. Name : DB Manager
  4. Description : Database manager plugin for QGIS (Oracle)
  5. Date : Aug 27, 2014
  6. copyright : (C) 2014 by Médéric RIBREUX
  7. email : mederic.ribreux@gmail.com
  8. The content of this file is based on
  9. - PG_Manager by Martin Dobias <wonder.sk@gmail.com> (GPLv2 license)
  10. - DB Manager by Giuseppe Sucameli <brush.tyler@gmail.com> (GPLv2 license)
  11. ***************************************************************************/
  12. /***************************************************************************
  13. * *
  14. * This program is free software; you can redistribute it and/or modify *
  15. * it under the terms of the GNU General Public License as published by *
  16. * the Free Software Foundation; either version 2 of the License, or *
  17. * (at your option) any later version. *
  18. * *
  19. ***************************************************************************/
  20. """
  21. __author__ = 'Médéric RIBREUX'
  22. __date__ = 'August 2014'
  23. __copyright__ = '(C) 2014, Médéric RIBREUX'
  24. # keywords
  25. keywords = [
  26. # From:
  27. # http://docs.oracle.com/cd/B19306_01/server.102/b14200/ap_keywd.htm
  28. "ACCESS", "ADD", "ALL", "ALTER", "AND", "ANY", "AS", "ASC",
  29. "AUDIT", "BETWEEN", "BY", "CHAR", "CHECK", "CLUSTER", "COLUMN",
  30. "COMMENT", "COMPRESS", "CONNECT", "CREATE", "CURRENT", "DATE",
  31. "DECIMAL", "DEFAULT", "DELETE", "DESC", "DISTINCT", "DROP",
  32. "ELSE", "EXCLUSIVE", "EXISTS", "FILE", "FLOAT", "FOR", "FROM",
  33. "GRANT", "GROUP", "HAVING", "IDENTIFIED", "IMMEDIATE", "IN",
  34. "INCREMENT", "INDEX", "INITIAL", "INSERT", "INTEGER", "INTERSECT",
  35. "INTO", "IS", "LEVEL", "LIKE", "LOCK", "LONG", "MAXEXTENTS",
  36. "MINUS", "MLSLABEL", "MODE", "MODIFY", "NOAUDIT", "NOCOMPRESS",
  37. "NOT", "NOWAIT", "NULL", "NUMBER", "OF", "OFFLINE", "ON",
  38. "ONLINE", "OPTION", "OR", "ORDER", "PCTFREE", "PRIOR",
  39. "PRIVILEGES", "PUBLIC", "RAW", "RENAME", "RESOURCE", "REVOKE",
  40. "ROW", "ROWID", "ROWNUM", "ROWS", "SELECT", "SESSION", "SET",
  41. "SHARE", "SIZE", "SMALLINT", "START", "SUCCESSFUL", "SYNONYM",
  42. "SYSDATE", "TABLE", "THEN", "TO", "TRIGGER", "UID", "UNION",
  43. "UNIQUE", "UPDATE", "USER", "VALIDATE", "VALUES", "VARCHAR",
  44. "VARCHAR2", "VIEW", "WHENEVER", "WHERE", "WITH",
  45. # From http://docs.oracle.com/cd/B13789_01/appdev.101/a42525/apb.htm
  46. "ADMIN", "CURSOR", "FOUND", "MOUNT", "AFTER", "CYCLE", "FUNCTION",
  47. "NEXT", "ALLOCATE", "DATABASE", "GO", "NEW", "ANALYZE",
  48. "DATAFILE", "GOTO", "NOARCHIVELOG", "ARCHIVE", "DBA", "GROUPS",
  49. "NOCACHE", "ARCHIVELOG", "DEC", "INCLUDING", "NOCYCLE",
  50. "AUTHORIZATION", "DECLARE", "INDICATOR", "NOMAXVALUE", "AVG",
  51. "DISABLE", "INITRANS", "NOMINVALUE", "BACKUP", "DISMOUNT",
  52. "INSTANCE", "NONE", "BEGIN", "DOUBLE", "INT", "NOORDER", "BECOME",
  53. "DUMP", "KEY", "NORESETLOGS", "BEFORE", "EACH", "LANGUAGE",
  54. "NORMAL", "BLOCK", "ENABLE", "LAYER", "NOSORT", "BODY", "END",
  55. "LINK", "NUMERIC", "CACHE", "ESCAPE", "LISTS", "OFF", "CANCEL",
  56. "EVENTS", "LOGFILE", "OLD", "CASCADE", "EXCEPT", "MANAGE", "ONLY",
  57. "CHANGE", "EXCEPTIONS", "MANUAL", "OPEN", "CHARACTER", "EXEC",
  58. "MAX", "OPTIMAL", "CHECKPOINT", "EXPLAIN", "MAXDATAFILES", "OWN",
  59. "CLOSE", "EXECUTE", "MAXINSTANCES", "PACKAGE", "COBOL", "EXTENT",
  60. "MAXLOGFILES", "PARALLEL", "COMMIT", "EXTERNALLY",
  61. "MAXLOGHISTORY", "PCTINCREASE", "COMPILE", "FETCH",
  62. "MAXLOGMEMBERS", "PCTUSED", "CONSTRAINT", "FLUSH", "MAXTRANS",
  63. "PLAN", "CONSTRAINTS", "FREELIST", "MAXVALUE", "PLI", "CONTENTS",
  64. "FREELISTS", "MIN", "PRECISION", "CONTINUE", "FORCE",
  65. "MINEXTENTS", "PRIMARY", "CONTROLFILE", "FOREIGN", "MINVALUE",
  66. "PRIVATE", "COUNT", "FORTRAN", "MODULE", "PROCEDURE", "PROFILE",
  67. "SAVEPOINT", "SQLSTATE", "TRACING", "QUOTA", "SCHEMA",
  68. "STATEMENT_ID", "TRANSACTION", "READ", "SCN", "STATISTICS",
  69. "TRIGGERS", "REAL", "SECTION", "STOP", "TRUNCATE", "RECOVER",
  70. "SEGMENT", "STORAGE", "UNDER", "REFERENCES", "SEQUENCE", "SUM",
  71. "UNLIMITED", "REFERENCING", "SHARED", "SWITCH", "UNTIL",
  72. "RESETLOGS", "SNAPSHOT", "SYSTEM", "USE", "RESTRICTED", "SOME",
  73. "TABLES", "USING", "REUSE", "SORT", "TABLESPACE", "WHEN", "ROLE",
  74. "SQL", "TEMPORARY", "WRITE", "ROLES", "SQLCODE", "THREAD", "WORK",
  75. "ROLLBACK", "SQLERROR", "TIME", "ABORT", "BETWEEN", "CRASH",
  76. "DIGITS", "ACCEPT", "BINARY_INTEGER", "CREATE", "DISPOSE",
  77. "ACCESS", "BODY", "CURRENT", "DISTINCT", "ADD", "BOOLEAN",
  78. "CURRVAL", "DO", "ALL", "BY", "CURSOR", "DROP", "ALTER", "CASE",
  79. "DATABASE", "ELSE", "AND", "CHAR", "DATA_BASE", "ELSIF", "ANY",
  80. "CHAR_BASE", "DATE", "END", "ARRAY", "CHECK", "DBA", "ENTRY",
  81. "ARRAYLEN", "CLOSE", "DEBUGOFF", "EXCEPTION", "AS", "CLUSTER",
  82. "DEBUGON", "EXCEPTION_INIT", "ASC", "CLUSTERS", "DECLARE",
  83. "EXISTS", "ASSERT", "COLAUTH", "DECIMAL", "EXIT", "ASSIGN",
  84. "COLUMNS", "DEFAULT", "FALSE", "AT", "COMMIT", "DEFINITION",
  85. "FETCH", "AUTHORIZATION", "COMPRESS", "DELAY", "FLOAT", "AVG",
  86. "CONNECT", "DELETE", "FOR", "BASE_TABLE", "CONSTANT", "DELTA",
  87. "FORM", "BEGIN", "COUNT", "DESC", "FROM", "FUNCTION", "NEW",
  88. "RELEASE", "SUM", "GENERIC", "NEXTVAL", "REMR", "TABAUTH", "GOTO",
  89. "NOCOMPRESS", "RENAME", "TABLE", "GRANT", "NOT", "RESOURCE",
  90. "TABLES", "GROUP", "NULL", "RETURN", "TASK", "HAVING", "NUMBER",
  91. "REVERSE", "TERMINATE", "IDENTIFIED", "NUMBER_BASE", "REVOKE",
  92. "THEN", "IF", "OF", "ROLLBACK", "TO", "IN", "ON", "ROWID", "TRUE",
  93. "INDEX", "OPEN", "ROWLABEL", "TYPE", "INDEXES", "OPTION",
  94. "ROWNUM", "UNION", "INDICATOR", "OR", "ROWTYPE", "UNIQUE",
  95. "INSERT", "ORDER", "RUN", "UPDATE", "INTEGER", "OTHERS",
  96. "SAVEPOINT", "USE", "INTERSECT", "OUT", "SCHEMA", "VALUES",
  97. "INTO", "PACKAGE", "SELECT", "VARCHAR", "IS", "PARTITION",
  98. "SEPARATE", "VARCHAR2", "LEVEL", "PCTFREE", "SET", "VARIANCE",
  99. "LIKE", "POSITIVE", "SIZE", "VIEW", "LIMITED", "PRAGMA",
  100. "SMALLINT", "VIEWS", "LOOP", "PRIOR", "SPACE", "WHEN", "MAX",
  101. "PRIVATE", "SQL", "WHERE", "MIN", "PROCEDURE", "SQLCODE", "WHILE",
  102. "MINUS", "PUBLIC", "SQLERRM", "WITH", "MLSLABEL", "RAISE",
  103. "START", "WORK", "MOD", "RANGE", "STATEMENT", "XOR", "MODE",
  104. "REAL", "STDDEV", "NATURAL", "RECORD", "SUBTYPE"
  105. ]
  106. oracle_spatial_keywords = []
  107. # SQL functions
  108. # other than math/string/aggregate/date/conversion/xml/data mining
  109. functions = [
  110. # FROM
  111. # https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions001.htm
  112. "CAST", "COALESCE", "DECODE", "GREATEST", "LEAST", "LNNVL",
  113. "NULLIF", "NVL", "NVL2", "SET", "UID", "USER", "USERENV"
  114. ]
  115. # SQL math functions
  116. math_functions = [
  117. 'ABS', 'ACOS', 'ASIN', 'ATAN', 'ATAN2', 'BITAND', 'CEIL', 'COS',
  118. 'COSH', 'EXP', 'FLOOR', 'LN', 'LOG', 'MOD', 'NANVL', 'POWER',
  119. 'REMAINDER', 'ROUND', 'SIGN', 'SIN', 'SINH', 'SQRT', 'TAN',
  120. 'TANH', 'TRUNC', 'WIDTH_BUCKET'
  121. ]
  122. # Strings functions
  123. string_functions = [
  124. 'CHR', 'CONCAT', 'INITCAP', 'LOWER', 'LPAD', 'LTRIM', 'NLS_INITCAP',
  125. 'NLS_LOWER', 'NLSSORT', 'NLS_UPPER', 'REGEXP_REPLACE', 'REGEXP_SUBSTR',
  126. 'REPLACE', 'RPAD', 'RTRIM', 'SOUNDEX', 'SUBSTR', 'TRANSLATE', 'TREAT',
  127. 'TRIM', 'UPPER', 'ASCII', 'INSTR', 'LENGTH', 'REGEXP_INSTR'
  128. ]
  129. # Aggregate functions
  130. aggregate_functions = [
  131. 'AVG', 'COLLECT', 'CORR', 'COUNT', 'COVAR_POP', 'COVAR_SAMP', 'CUME_DIST',
  132. 'DENSE_RANK', 'FIRST', 'GROUP_ID', 'GROUPING', 'GROUPING_ID',
  133. 'LAST', 'MAX', 'MEDIAN', 'MIN', 'PERCENTILE_CONT',
  134. 'PERCENTILE_DISC', 'PERCENT_RANK', 'RANK',
  135. 'STATS_BINOMIAL_TEST', 'STATS_CROSSTAB', 'STATS_F_TEST',
  136. 'STATS_KS_TEST', 'STATS_MODE', 'STATS_MW_TEST',
  137. 'STATS_ONE_WAY_ANOVA', 'STATS_WSR_TEST', 'STDDEV',
  138. 'STDDEV_POP', 'STDDEV_SAMP', 'SUM', 'SYS_XMLAGG', 'VAR_POP',
  139. 'VAR_SAMP', 'VARIANCE', 'XMLAGG'
  140. ]
  141. oracle_spatial_functions = [
  142. # From http://docs.oracle.com/cd/B19306_01/appdev.102/b14255/toc.htm
  143. # Spatial operators
  144. "SDO_ANYINTERACT", "SDO_CONTAINS", "SDO_COVEREDBY", "SDO_COVERS",
  145. "SDO_EQUAL", "SDO_FILTER", "SDO_INSIDE", "SDO_JOIN", "SDO_NN",
  146. "SDO_NN_DISTANCE", "SDO_ON", "SDO_OVERLAPBDYDISJOINT",
  147. "SDO_OVERLAPBDYINTERSECT", "SDO_OVERLAPS", "SDO_RELATE",
  148. "SDO_TOUCH", "SDO_WITHIN_DISTANCE",
  149. # SPATIAL AGGREGATE FUNCTIONS
  150. "SDO_AGGR_CENTROID", "SDO_AGGR_CONCAT_LINES",
  151. "SDO_AGGR_CONVEXHULL", "SDO_AGGR_LRS_CONCAT", "SDO_AGGR_MBR",
  152. "SDO_AGGR_UNION",
  153. # COORDINATE SYSTEM TRANSFORMATION (SDO_CS)
  154. "SDO_CS.ADD_PREFERENCE_FOR_OP", "SDO_CS.CONVERT_NADCON_TO_XML",
  155. "SDO_CS.CONVERT_NTV2_TO_XML", "SDO_CS.CONVERT_XML_TO_NADCON",
  156. "SDO_CS.CONVERT_XML_TO_NTV2", "SDO_CS.CREATE_CONCATENATED_OP",
  157. "SDO_CS.CREATE_OBVIOUS_EPSG_RULES",
  158. "SDO_CS.CREATE_PREF_CONCATENATED_OP",
  159. "SDO_CS.DELETE_ALL_EPSG_RULES", "SDO_CS.DELETE_OP",
  160. "SDO_CS.DETERMINE_CHAIN", "SDO_CS.DETERMINE_DEFAULT_CHAIN",
  161. "SDO_CS.FIND_GEOG_CRS", "SDO_CS.FIND_PROJ_CRS",
  162. "SDO_CS.FROM_OGC_SIMPLEFEATURE_SRS", "SDO_CS.FROM_USNG",
  163. "SDO_CS.MAP_EPSG_SRID_TO_ORACLE",
  164. "SDO_CS.MAP_ORACLE_SRID_TO_EPSG",
  165. "SDO_CS.REVOKE_PREFERENCE_FOR_OP",
  166. "SDO_CS.TO_OGC_SIMPLEFEATURE_SRS", "SDO_CS.TO_USNG",
  167. "SDO_CS.TRANSFORM", "SDO_CS.TRANSFORM_LAYER",
  168. "SDO_CS.UPDATE_WKTS_FOR_ALL_EPSG_CRS",
  169. "SDO_CS.UPDATE_WKTS_FOR_EPSG_CRS",
  170. "SDO_CS.UPDATE_WKTS_FOR_EPSG_DATUM",
  171. "SDO_CS.UPDATE_WKTS_FOR_EPSG_ELLIPS",
  172. "SDO_CS.UPDATE_WKTS_FOR_EPSG_OP",
  173. "SDO_CS.UPDATE_WKTS_FOR_EPSG_PARAM",
  174. "SDO_CS.UPDATE_WKTS_FOR_EPSG_PM", "SDO_CS.VALIDATE_WKT",
  175. "SDO_CS.VIEWPORT_TRANSFORM",
  176. # GEOCODING (SDO_GCDR)
  177. "SDO_GCDR.GEOCODE", "SDO_GCDR.GEOCODE_ADDR",
  178. "SDO_GCDR.GEOCODE_ADDR_ALL", "SDO_GCDR.GEOCODE_ALL",
  179. "SDO_GCDR.GEOCODE_AS_GEOMETRY", "SDO_GCDR.REVERSE_GEOCODE",
  180. # GEOMETRY (SDO_GEOM)
  181. "SDO_GEOM.RELATE", "SDO_GEOM.SDO_ARC_DENSIFY",
  182. "SDO_GEOM.SDO_AREA", "SDO_GEOM.SDO_BUFFER",
  183. "SDO_GEOM.SDO_CENTROID", "SDO_GEOM.SDO_CONVEXHULL",
  184. "SDO_GEOM.SDO_DIFFERENCE", "SDO_GEOM.SDO_DISTANCE",
  185. "SDO_GEOM.SDO_INTERSECTION", "SDO_GEOM.SDO_LENGTH",
  186. "SDO_GEOM.SDO_MAX_MBR_ORDINATE", "SDO_GEOM.SDO_MBR",
  187. "SDO_GEOM.SDO_MIN_MBR_ORDINATE", "SDO_GEOM.SDO_POINTONSURFACE",
  188. "SDO_GEOM.SDO_UNION", "SDO_GEOM.SDO_XOR",
  189. "SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT",
  190. "SDO_GEOM.VALIDATE_LAYER_WITH_CONTEXT",
  191. "SDO_GEOM.WITHIN_DISTANCE",
  192. # LINEAR REFERENCING SYSTEM (SDO_LRS)
  193. "SDO_LRS.CLIP_GEOM_SEGMENT", "SDO_LRS.CONCATENATE_GEOM_SEGMENTS",
  194. "SDO_LRS.CONNECTED_GEOM_SEGMENTS",
  195. "SDO_LRS.CONVERT_TO_LRS_DIM_ARRAY", "SDO_LRS.CONVERT_TO_LRS_GEOM",
  196. "SDO_LRS.CONVERT_TO_LRS_LAYER",
  197. "SDO_LRS.CONVERT_TO_STD_DIM_ARRAY", "SDO_LRS.CONVERT_TO_STD_GEOM",
  198. "SDO_LRS.CONVERT_TO_STD_LAYER", "SDO_LRS.DEFINE_GEOM_SEGMENT",
  199. "SDO_LRS.DYNAMIC_SEGMENT", "SDO_LRS.FIND_LRS_DIM_POS",
  200. "SDO_LRS.FIND_MEASURE", "SDO_LRS.FIND_OFFSET",
  201. "SDO_LRS.GEOM_SEGMENT_END_MEASURE", "SDO_LRS.GEOM_SEGMENT_END_PT",
  202. "SDO_LRS.GEOM_SEGMENT_LENGTH",
  203. "SDO_LRS.GEOM_SEGMENT_START_MEASURE",
  204. "SDO_LRS.GEOM_SEGMENT_START_PT", "SDO_LRS.GET_MEASURE",
  205. "SDO_LRS.GET_NEXT_SHAPE_PT", "SDO_LRS.GET_NEXT_SHAPE_PT_MEASURE",
  206. "SDO_LRS.GET_PREV_SHAPE_PT", "SDO_LRS.GET_PREV_SHAPE_PT_MEASURE",
  207. "SDO_LRS.IS_GEOM_SEGMENT_DEFINED",
  208. "SDO_LRS.IS_MEASURE_DECREASING", "SDO_LRS.IS_MEASURE_INCREASING",
  209. "SDO_LRS.IS_SHAPE_PT_MEASURE", "SDO_LRS.LOCATE_PT",
  210. "SDO_LRS.LRS_INTERSECTION", "SDO_LRS.MEASURE_RANGE",
  211. "SDO_LRS.MEASURE_TO_PERCENTAGE", "SDO_LRS.OFFSET_GEOM_SEGMENT",
  212. "SDO_LRS.PERCENTAGE_TO_MEASURE", "SDO_LRS.PROJECT_PT",
  213. "SDO_LRS.REDEFINE_GEOM_SEGMENT", "SDO_LRS.RESET_MEASURE",
  214. "SDO_LRS.REVERSE_GEOMETRY", "SDO_LRS.REVERSE_MEASURE",
  215. "SDO_LRS.SET_PT_MEASURE", "SDO_LRS.SPLIT_GEOM_SEGMENT",
  216. "SDO_LRS.TRANSLATE_MEASURE", "SDO_LRS.VALID_GEOM_SEGMENT",
  217. "SDO_LRS.VALID_LRS_PT", "SDO_LRS.VALID_MEASURE",
  218. "SDO_LRS.VALIDATE_LRS_GEOMETRY",
  219. # SDO_MIGRATE
  220. "SDO_MIGRATE.TO_CURRENT",
  221. # SPATIAL ANALYSIS AND MINING (SDO_SAM)
  222. "SDO_SAM.AGGREGATES_FOR_GEOMETRY", "SDO_SAM.AGGREGATES_FOR_LAYER",
  223. "SDO_SAM.BIN_GEOMETRY", "SDO_SAM.BIN_LAYER",
  224. "SDO_SAM.COLOCATED_REFERENCE_FEATURES",
  225. "SDO_SAM.SIMPLIFY_GEOMETRY", "SDO_SAM.SIMPLIFY_LAYER",
  226. "SDO_SAM.SPATIAL_CLUSTERS", "SDO_SAM.TILED_AGGREGATES",
  227. "SDO_SAM.TILED_BINS",
  228. # TUNING (SDO_TUNE)
  229. "SDO_TUNE.AVERAGE_MBR", "SDO_TUNE.ESTIMATE_RTREE_INDEX_SIZE",
  230. "SDO_TUNE.EXTENT_OF", "SDO_TUNE.MIX_INFO",
  231. "SDO_TUNE.QUALITY_DEGRADATION",
  232. # UTILITY (SDO_UTIL)
  233. "SDO_UTIL.APPEND", "SDO_UTIL.CIRCLE_POLYGON",
  234. "SDO_UTIL.CONCAT_LINES", "SDO_UTIL.CONVERT_UNIT",
  235. "SDO_UTIL.ELLIPSE_POLYGON", "SDO_UTIL.EXTRACT",
  236. "SDO_UTIL.FROM_WKBGEOMETRY", "SDO_UTIL.FROM_WKTGEOMETRY",
  237. "SDO_UTIL.GETNUMELEM", "SDO_UTIL.GETNUMVERTICES",
  238. "SDO_UTIL.GETVERTICES", "SDO_UTIL.INITIALIZE_INDEXES_FOR_TTS",
  239. "SDO_UTIL.POINT_AT_BEARING", "SDO_UTIL.POLYGONTOLINE",
  240. "SDO_UTIL.PREPARE_FOR_TTS", "SDO_UTIL.RECTIFY_GEOMETRY",
  241. "SDO_UTIL.REMOVE_DUPLICATE_VERTICES",
  242. "SDO_UTIL.REVERSE_LINESTRING", "SDO_UTIL.SIMPLIFY",
  243. "SDO_UTIL.TO_GMLGEOMETRY", "SDO_UTIL.TO_WKBGEOMETRY",
  244. "SDO_UTIL.TO_WKTGEOMETRY", "SDO_UTIL.VALIDATE_WKBGEOMETRY",
  245. "SDO_UTIL.VALIDATE_WKTGEOMETRY"
  246. ]
  247. # Oracle Operators
  248. operators = [
  249. ' AND ', ' OR ', '||', ' < ', ' <= ', ' > ', ' >= ', ' = ',
  250. ' <> ', '!=', '^=', ' IS ', ' IS NOT ', ' IN ', ' ANY ', ' SOME ',
  251. ' NOT IN ', ' LIKE ', ' GLOB ', ' MATCH ', ' REGEXP ',
  252. ' BETWEEN x AND y ', ' NOT BETWEEN x AND y ', ' EXISTS ',
  253. ' IS NULL ', ' IS NOT NULL', ' ALL ', ' NOT ',
  254. ' CASE {column} WHEN {value} THEN {value} '
  255. ]
  256. # constants
  257. constants = ["null", "false", "true"]
  258. oracle_spatial_constants = []
  259. def getSqlDictionary(spatial=True):
  260. k, c, f = list(keywords), list(constants), list(functions)
  261. if spatial:
  262. k += oracle_spatial_keywords
  263. f += oracle_spatial_functions
  264. c += oracle_spatial_constants
  265. return {'keyword': k, 'constant': c, 'function': f}
  266. def getQueryBuilderDictionary():
  267. # concat functions
  268. def ff(l):
  269. return [s for s in l if s[0] != '*']
  270. def add_paren(l):
  271. return [s + "(" for s in l]
  272. foo = sorted(
  273. add_paren(
  274. ff(
  275. list(
  276. set.union(set(functions),
  277. set(oracle_spatial_functions))))))
  278. m = sorted(add_paren(ff(math_functions)))
  279. agg = sorted(add_paren(ff(aggregate_functions)))
  280. op = ff(operators)
  281. s = sorted(add_paren(ff(string_functions)))
  282. return {'function': foo, 'math': m, 'aggregate': agg,
  283. 'operator': op, 'string': s}