kaqing 2.0.54__tar.gz → 2.0.56__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. {kaqing-2.0.54 → kaqing-2.0.56}/PKG-INFO +1 -1
  2. {kaqing-2.0.54 → kaqing-2.0.56}/adam/sql/sql_completer.py +39 -12
  3. {kaqing-2.0.54 → kaqing-2.0.56}/adam/sql/term_completer.py +10 -3
  4. kaqing-2.0.56/adam/version.py +5 -0
  5. {kaqing-2.0.54 → kaqing-2.0.56}/kaqing.egg-info/PKG-INFO +1 -1
  6. {kaqing-2.0.54 → kaqing-2.0.56}/kaqing.egg-info/SOURCES.txt +0 -1
  7. {kaqing-2.0.54 → kaqing-2.0.56}/setup.py +1 -1
  8. kaqing-2.0.54/adam/sql/sql_utils.py +0 -5
  9. kaqing-2.0.54/adam/version.py +0 -5
  10. {kaqing-2.0.54 → kaqing-2.0.56}/README +0 -0
  11. {kaqing-2.0.54 → kaqing-2.0.56}/adam/__init__.py +0 -0
  12. {kaqing-2.0.54 → kaqing-2.0.56}/adam/app_session.py +0 -0
  13. {kaqing-2.0.54 → kaqing-2.0.56}/adam/apps.py +0 -0
  14. {kaqing-2.0.54 → kaqing-2.0.56}/adam/batch.py +0 -0
  15. {kaqing-2.0.54 → kaqing-2.0.56}/adam/checks/__init__.py +0 -0
  16. {kaqing-2.0.54 → kaqing-2.0.56}/adam/checks/check.py +0 -0
  17. {kaqing-2.0.54 → kaqing-2.0.56}/adam/checks/check_context.py +0 -0
  18. {kaqing-2.0.54 → kaqing-2.0.56}/adam/checks/check_result.py +0 -0
  19. {kaqing-2.0.54 → kaqing-2.0.56}/adam/checks/check_utils.py +0 -0
  20. {kaqing-2.0.54 → kaqing-2.0.56}/adam/checks/compactionstats.py +0 -0
  21. {kaqing-2.0.54 → kaqing-2.0.56}/adam/checks/cpu.py +0 -0
  22. {kaqing-2.0.54 → kaqing-2.0.56}/adam/checks/disk.py +0 -0
  23. {kaqing-2.0.54 → kaqing-2.0.56}/adam/checks/gossip.py +0 -0
  24. {kaqing-2.0.54 → kaqing-2.0.56}/adam/checks/issue.py +0 -0
  25. {kaqing-2.0.54 → kaqing-2.0.56}/adam/checks/memory.py +0 -0
  26. {kaqing-2.0.54 → kaqing-2.0.56}/adam/checks/status.py +0 -0
  27. {kaqing-2.0.54 → kaqing-2.0.56}/adam/cli.py +0 -0
  28. {kaqing-2.0.54 → kaqing-2.0.56}/adam/cli_group.py +0 -0
  29. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/__init__.py +0 -0
  30. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/column.py +0 -0
  31. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/columns.py +0 -0
  32. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/compactions.py +0 -0
  33. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/cpu.py +0 -0
  34. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/dir_data.py +0 -0
  35. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/dir_snapshots.py +0 -0
  36. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/gossip.py +0 -0
  37. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/host_id.py +0 -0
  38. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/memory.py +0 -0
  39. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/node_address.py +0 -0
  40. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/node_load.py +0 -0
  41. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/node_owns.py +0 -0
  42. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/node_status.py +0 -0
  43. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/node_tokens.py +0 -0
  44. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/node_utils.py +0 -0
  45. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/pod_name.py +0 -0
  46. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/volume_cassandra.py +0 -0
  47. {kaqing-2.0.54 → kaqing-2.0.56}/adam/columns/volume_root.py +0 -0
  48. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/__init__.py +0 -0
  49. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/alter_tables.py +0 -0
  50. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/app.py +0 -0
  51. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/app_ping.py +0 -0
  52. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/bash.py +0 -0
  53. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/cd.py +0 -0
  54. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/check.py +0 -0
  55. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/cli_commands.py +0 -0
  56. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/command.py +0 -0
  57. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/command_helpers.py +0 -0
  58. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/commands_utils.py +0 -0
  59. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/cp.py +0 -0
  60. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/cql/__init__.py +0 -0
  61. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/cql/cql_completions.py +0 -0
  62. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/cql/cql_table_completer.py +0 -0
  63. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/cql/cql_utils.py +0 -0
  64. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/cql/cqlsh.py +0 -0
  65. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/deploy/__init__.py +0 -0
  66. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/deploy/code_start.py +0 -0
  67. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/deploy/code_stop.py +0 -0
  68. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/deploy/code_utils.py +0 -0
  69. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/deploy/deploy.py +0 -0
  70. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/deploy/deploy_frontend.py +0 -0
  71. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/deploy/deploy_pg_agent.py +0 -0
  72. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/deploy/deploy_pod.py +0 -0
  73. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/deploy/deploy_utils.py +0 -0
  74. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/deploy/undeploy.py +0 -0
  75. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/deploy/undeploy_frontend.py +0 -0
  76. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/deploy/undeploy_pg_agent.py +0 -0
  77. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/deploy/undeploy_pod.py +0 -0
  78. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/describe/__init__.py +0 -0
  79. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/describe/describe.py +0 -0
  80. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/describe/describe_keyspace.py +0 -0
  81. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/describe/describe_keyspaces.py +0 -0
  82. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/describe/describe_table.py +0 -0
  83. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/describe/describe_tables.py +0 -0
  84. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/devices.py +0 -0
  85. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/exit.py +0 -0
  86. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/help.py +0 -0
  87. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/issues.py +0 -0
  88. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/login.py +0 -0
  89. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/logs.py +0 -0
  90. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/ls.py +0 -0
  91. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/medusa/__init__.py +0 -0
  92. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/medusa/medusa.py +0 -0
  93. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/medusa/medusa_backup.py +0 -0
  94. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/medusa/medusa_restore.py +0 -0
  95. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/medusa/medusa_show_backupjobs.py +0 -0
  96. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/medusa/medusa_show_restorejobs.py +0 -0
  97. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/nodetool.py +0 -0
  98. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/nodetool_commands.py +0 -0
  99. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/param_get.py +0 -0
  100. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/param_set.py +0 -0
  101. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/postgres/__init__.py +0 -0
  102. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/postgres/postgres.py +0 -0
  103. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/postgres/postgres_ls.py +0 -0
  104. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/postgres/postgres_preview.py +0 -0
  105. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/postgres/postgres_session.py +0 -0
  106. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/postgres/postgres_utils.py +0 -0
  107. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/postgres/psql_completions.py +0 -0
  108. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/postgres/psql_table_completer.py +0 -0
  109. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/preview_table.py +0 -0
  110. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/pwd.py +0 -0
  111. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/reaper/__init__.py +0 -0
  112. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/reaper/reaper.py +0 -0
  113. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/reaper/reaper_forward.py +0 -0
  114. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/reaper/reaper_forward_stop.py +0 -0
  115. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/reaper/reaper_restart.py +0 -0
  116. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/reaper/reaper_run_abort.py +0 -0
  117. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/reaper/reaper_runs.py +0 -0
  118. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/reaper/reaper_runs_abort.py +0 -0
  119. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/reaper/reaper_schedule_activate.py +0 -0
  120. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/reaper/reaper_schedule_start.py +0 -0
  121. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/reaper/reaper_schedule_stop.py +0 -0
  122. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/reaper/reaper_schedules.py +0 -0
  123. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/reaper/reaper_session.py +0 -0
  124. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/reaper/reaper_status.py +0 -0
  125. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/repair/__init__.py +0 -0
  126. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/repair/repair.py +0 -0
  127. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/repair/repair_log.py +0 -0
  128. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/repair/repair_run.py +0 -0
  129. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/repair/repair_scan.py +0 -0
  130. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/repair/repair_stop.py +0 -0
  131. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/report.py +0 -0
  132. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/restart.py +0 -0
  133. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/rollout.py +0 -0
  134. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/shell.py +0 -0
  135. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/show/__init__.py +0 -0
  136. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/show/show.py +0 -0
  137. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/show/show_adam.py +0 -0
  138. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/show/show_app_actions.py +0 -0
  139. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/show/show_app_id.py +0 -0
  140. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/show/show_app_queues.py +0 -0
  141. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/show/show_cassandra_status.py +0 -0
  142. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/show/show_cassandra_version.py +0 -0
  143. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/show/show_commands.py +0 -0
  144. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/show/show_login.py +0 -0
  145. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/show/show_params.py +0 -0
  146. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/show/show_processes.py +0 -0
  147. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/show/show_repairs.py +0 -0
  148. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/show/show_storage.py +0 -0
  149. {kaqing-2.0.54 → kaqing-2.0.56}/adam/commands/watch.py +0 -0
  150. {kaqing-2.0.54 → kaqing-2.0.56}/adam/config.py +0 -0
  151. {kaqing-2.0.54 → kaqing-2.0.56}/adam/embedded_apps.py +0 -0
  152. {kaqing-2.0.54 → kaqing-2.0.56}/adam/embedded_params.py +0 -0
  153. {kaqing-2.0.54 → kaqing-2.0.56}/adam/k8s_utils/__init__.py +0 -0
  154. {kaqing-2.0.54 → kaqing-2.0.56}/adam/k8s_utils/cassandra_clusters.py +0 -0
  155. {kaqing-2.0.54 → kaqing-2.0.56}/adam/k8s_utils/cassandra_nodes.py +0 -0
  156. {kaqing-2.0.54 → kaqing-2.0.56}/adam/k8s_utils/config_maps.py +0 -0
  157. {kaqing-2.0.54 → kaqing-2.0.56}/adam/k8s_utils/custom_resources.py +0 -0
  158. {kaqing-2.0.54 → kaqing-2.0.56}/adam/k8s_utils/deployment.py +0 -0
  159. {kaqing-2.0.54 → kaqing-2.0.56}/adam/k8s_utils/ingresses.py +0 -0
  160. {kaqing-2.0.54 → kaqing-2.0.56}/adam/k8s_utils/jobs.py +0 -0
  161. {kaqing-2.0.54 → kaqing-2.0.56}/adam/k8s_utils/kube_context.py +0 -0
  162. {kaqing-2.0.54 → kaqing-2.0.56}/adam/k8s_utils/pods.py +0 -0
  163. {kaqing-2.0.54 → kaqing-2.0.56}/adam/k8s_utils/secrets.py +0 -0
  164. {kaqing-2.0.54 → kaqing-2.0.56}/adam/k8s_utils/service_accounts.py +0 -0
  165. {kaqing-2.0.54 → kaqing-2.0.56}/adam/k8s_utils/services.py +0 -0
  166. {kaqing-2.0.54 → kaqing-2.0.56}/adam/k8s_utils/statefulsets.py +0 -0
  167. {kaqing-2.0.54 → kaqing-2.0.56}/adam/k8s_utils/volumes.py +0 -0
  168. {kaqing-2.0.54 → kaqing-2.0.56}/adam/log.py +0 -0
  169. {kaqing-2.0.54 → kaqing-2.0.56}/adam/pod_exec_result.py +0 -0
  170. {kaqing-2.0.54 → kaqing-2.0.56}/adam/repl.py +0 -0
  171. {kaqing-2.0.54 → kaqing-2.0.56}/adam/repl_commands.py +0 -0
  172. {kaqing-2.0.54 → kaqing-2.0.56}/adam/repl_session.py +0 -0
  173. {kaqing-2.0.54 → kaqing-2.0.56}/adam/repl_state.py +0 -0
  174. {kaqing-2.0.54 → kaqing-2.0.56}/adam/sql/__init__.py +0 -0
  175. {kaqing-2.0.54 → kaqing-2.0.56}/adam/sso/__init__.py +0 -0
  176. {kaqing-2.0.54 → kaqing-2.0.56}/adam/sso/authenticator.py +0 -0
  177. {kaqing-2.0.54 → kaqing-2.0.56}/adam/sso/authn_ad.py +0 -0
  178. {kaqing-2.0.54 → kaqing-2.0.56}/adam/sso/authn_okta.py +0 -0
  179. {kaqing-2.0.54 → kaqing-2.0.56}/adam/sso/cred_cache.py +0 -0
  180. {kaqing-2.0.54 → kaqing-2.0.56}/adam/sso/id_token.py +0 -0
  181. {kaqing-2.0.54 → kaqing-2.0.56}/adam/sso/idp.py +0 -0
  182. {kaqing-2.0.54 → kaqing-2.0.56}/adam/sso/idp_login.py +0 -0
  183. {kaqing-2.0.54 → kaqing-2.0.56}/adam/sso/idp_session.py +0 -0
  184. {kaqing-2.0.54 → kaqing-2.0.56}/adam/sso/sso_config.py +0 -0
  185. {kaqing-2.0.54 → kaqing-2.0.56}/adam/utils.py +0 -0
  186. {kaqing-2.0.54 → kaqing-2.0.56}/kaqing.egg-info/dependency_links.txt +0 -0
  187. {kaqing-2.0.54 → kaqing-2.0.56}/kaqing.egg-info/entry_points.txt +0 -0
  188. {kaqing-2.0.54 → kaqing-2.0.56}/kaqing.egg-info/top_level.txt +0 -0
  189. {kaqing-2.0.54 → kaqing-2.0.56}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kaqing
3
- Version: 2.0.54
3
+ Version: 2.0.56
4
4
  Summary: UNKNOWN
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -7,7 +7,10 @@ from sqlparse import tokens as T
7
7
 
8
8
  from adam.sql.term_completer import TermCompleter
9
9
 
10
+ columns = TermCompleter(['id', 'x.', 'y.', 'z.'])
11
+
10
12
  class SqlCompleter(Completer):
13
+
11
14
  def __init__(self, tables: Callable[[], list[str]], dml: str = None, debug = False):
12
15
  super().__init__()
13
16
  self.dml = dml
@@ -45,11 +48,17 @@ class SqlCompleter(Completer):
45
48
  elif state == "select_a_from_":
46
49
  completer = TermCompleter(self.tables())
47
50
  elif state == "select_a_from_x_":
51
+ completer = TermCompleter(['as', 'where', 'inner', 'left', 'right', 'full', 'group', 'limit'])
52
+ elif state == "select_a_from_x_as_x_":
48
53
  completer = TermCompleter(['where', 'inner', 'left', 'right', 'full', 'group', 'limit'])
49
54
  elif state == "select_a_from_x,":
50
55
  completer = TermCompleter(self.tables())
56
+ elif state == "select_a_from_x_as_":
57
+ completer = TermCompleter(['x', 'y', 'z'])
58
+ elif state == "select_a_from_x_as_x,":
59
+ completer = TermCompleter(self.tables())
51
60
  elif state == "select_a_from_x_where_":
52
- completer = TermCompleter(['id'])
61
+ completer = columns
53
62
  elif state == "select_a_from_x_where_id":
54
63
  completer = TermCompleter(['=', '<', '<=', '>', '>=', '<>', 'like'])
55
64
  elif state == "select_a_from_x_where_id=":
@@ -61,9 +70,9 @@ class SqlCompleter(Completer):
61
70
  elif state == "select_a_from_x_group_":
62
71
  completer = TermCompleter(['by'])
63
72
  elif state == "select_a_from_x_group_by_":
64
- completer = TermCompleter(['id'])
73
+ completer = columns
65
74
  elif state == "select_a_from_x_group_by_a,":
66
- completer = TermCompleter(['id'])
75
+ completer = columns
67
76
  elif state == "select_a_from_x_group_by_a_":
68
77
  completer = TermCompleter(['limit'])
69
78
  elif state == "select_a_from_x_group_by_a_limit_":
@@ -77,11 +86,11 @@ class SqlCompleter(Completer):
77
86
  elif state == "select_a_from_x_inner_join_y_":
78
87
  completer = TermCompleter(['on'])
79
88
  elif state == "select_a_from_x_inner_join_y_on_":
80
- completer = TermCompleter(['id'])
89
+ completer = columns
81
90
  elif state == "select_a_from_x_inner_join_y_on_a":
82
91
  completer = TermCompleter(['='])
83
92
  elif state == "select_a_from_x_inner_join_y_on_a=":
84
- completer = TermCompleter(['id'])
93
+ completer = columns
85
94
  elif state == "select_a_from_x_inner_join_y_on_a=b_":
86
95
  completer = TermCompleter(['where', 'group', 'limit'])
87
96
  elif state == "select_a_from_x_left_":
@@ -104,9 +113,9 @@ class SqlCompleter(Completer):
104
113
  elif state == "insert_into_x_":
105
114
  completer = TermCompleter(['values'])
106
115
  elif state == "insert_into_x(":
107
- completer = TermCompleter(['id'])
116
+ completer = columns
108
117
  elif state == "insert_into_x(a,":
109
- completer = TermCompleter(['id'])
118
+ completer = columns
110
119
  elif state == "insert_into_x(a)_":
111
120
  completer = TermCompleter(['values('])
112
121
  elif state == "insert_into_x_values":
@@ -119,7 +128,7 @@ class SqlCompleter(Completer):
119
128
  elif state == "update_x_":
120
129
  completer = TermCompleter(['set'])
121
130
  elif state in ["update_x_set_", "update_x_set_a=v,"]:
122
- completer = TermCompleter(['id'])
131
+ completer = columns
123
132
  elif state == "update_x_set_a":
124
133
  completer = TermCompleter(['='])
125
134
  elif state == "update_x_set_a=":
@@ -127,7 +136,7 @@ class SqlCompleter(Completer):
127
136
  elif state == "update_x_set_a=v_":
128
137
  completer = TermCompleter(['where'])
129
138
  elif state == "update_x_set_a=v_where_":
130
- completer = TermCompleter(['id'])
139
+ completer = columns
131
140
  elif state == "update_x_set_a=v_where_id":
132
141
  completer = TermCompleter(['='])
133
142
  elif state == "update_x_set_a=v_where_id=v_":
@@ -140,7 +149,7 @@ class SqlCompleter(Completer):
140
149
  elif state == "delete_from_x_":
141
150
  completer = TermCompleter(['where'])
142
151
  elif state == "delete_from_x_where_":
143
- completer = TermCompleter(['id'])
152
+ completer = columns
144
153
  elif state == "delete_from_x_where_id":
145
154
  completer = TermCompleter(['='])
146
155
  elif state == "delete_from_x_where_id=":
@@ -215,8 +224,12 @@ class SqlCompleter(Completer):
215
224
  elif state == 'select_a_from_x,':
216
225
  if token.ttype == T.Name:
217
226
  state = 'select_a_from_x'
218
- elif state == 'select_a_from_x_':
219
- if token.ttype == T.Keyword and token.value.lower() == 'where':
227
+ elif state in ['select_a_from_x_', 'select_a_from_x_as_x_']:
228
+ if token.ttype == T.Punctuation and token.value == ',':
229
+ state = 'select_a_from_x,'
230
+ elif token.ttype == T.Keyword and token.value.lower() == 'as':
231
+ state = 'select_a_from_x_as'
232
+ elif token.ttype == T.Keyword and token.value.lower() == 'where':
220
233
  state = 'select_a_from_x_where'
221
234
  elif token.ttype == T.Keyword and token.value.lower() == 'limit':
222
235
  state = 'select_a_from_x_where_id=v_limit'
@@ -240,6 +253,20 @@ class SqlCompleter(Completer):
240
253
  state = 'select_a_from_x_full'
241
254
  elif token.ttype == T.Keyword and token.value.lower() == 'full outer join':
242
255
  state = 'select_a_from_x_inner_join'
256
+ elif state == 'select_a_from_x_as':
257
+ if token.ttype == T.Text.Whitespace:
258
+ state = 'select_a_from_x_as_'
259
+ elif state == 'select_a_from_x_as_':
260
+ if token.ttype == T.Name:
261
+ state = 'select_a_from_x_as_x'
262
+ elif state == 'select_a_from_x_as_x':
263
+ if token.ttype == T.Text.Whitespace:
264
+ state = 'select_a_from_x_as_x_'
265
+ elif token.ttype == T.Punctuation and token.value == ',':
266
+ state = 'select_a_from_x_as_x,'
267
+ elif state == 'select_a_from_x_as_x,':
268
+ if token.ttype == T.Name:
269
+ state = 'select_a_from_x'
243
270
  elif state == 'select_a_from_x_where':
244
271
  if token.ttype == T.Text.Whitespace:
245
272
  state = 'select_a_from_x_where_'
@@ -46,15 +46,22 @@ class TermCompleter(WordCompleter):
46
46
  if self.ignore_case:
47
47
  word = word.lower()
48
48
 
49
- if word_before_cursor in ['(', ',', '=']:
50
- return True
51
-
52
49
  if self.match_middle:
53
50
  return word_before_cursor in word
54
51
  else:
55
52
  return word.startswith(word_before_cursor)
56
53
 
57
54
  for a in words:
55
+ if word_before_cursor in ['(', ',', '=']:
56
+ display = self.display_dict.get(a, a)
57
+ display_meta = self.meta_dict.get(a, "")
58
+ yield Completion(
59
+ a,
60
+ 0,
61
+ display=display,
62
+ display_meta=display_meta,
63
+ )
64
+
58
65
  if word_matches(a):
59
66
  display = self.display_dict.get(a, a)
60
67
  display_meta = self.meta_dict.get(a, "")
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+
4
+ __version__ = "2.0.56" #: the working version
5
+ __release__ = "1.0.0" #: the release version
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kaqing
3
- Version: 2.0.54
3
+ Version: 2.0.56
4
4
  Summary: UNKNOWN
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -167,7 +167,6 @@ adam/k8s_utils/statefulsets.py
167
167
  adam/k8s_utils/volumes.py
168
168
  adam/sql/__init__.py
169
169
  adam/sql/sql_completer.py
170
- adam/sql/sql_utils.py
171
170
  adam/sql/term_completer.py
172
171
  adam/sso/__init__.py
173
172
  adam/sso/authenticator.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='kaqing',
5
- version='2.0.54',
5
+ version='2.0.56',
6
6
  packages=find_packages(),
7
7
  entry_points={
8
8
  'console_scripts': [
@@ -1,5 +0,0 @@
1
- import re
2
-
3
- def safe_terms(text: str):
4
- tokens = re.findall(r'"[^"]+"|\b\w+\b|\S', text)
5
- return tokens, len(tokens) > 1 or text.startswith(' ') or text.endswith(' ')
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding: utf-8 -*-
3
-
4
- __version__ = "2.0.54" #: the working version
5
- __release__ = "1.0.0" #: the release version
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes