kaqing 2.0.98__tar.gz → 2.0.99__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 (197) hide show
  1. {kaqing-2.0.98 → kaqing-2.0.99}/PKG-INFO +1 -1
  2. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/alter_tables.py +0 -7
  3. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/audit/audit.py +10 -3
  4. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/cql/cql_completions.py +5 -1
  5. {kaqing-2.0.98 → kaqing-2.0.99}/adam/sql/sql_completer.py +31 -8
  6. kaqing-2.0.99/adam/sql/state_machine.py +549 -0
  7. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils_athena.py +4 -1
  8. kaqing-2.0.99/adam/version.py +5 -0
  9. {kaqing-2.0.98 → kaqing-2.0.99}/kaqing.egg-info/PKG-INFO +1 -1
  10. {kaqing-2.0.98 → kaqing-2.0.99}/setup.py +1 -1
  11. kaqing-2.0.98/adam/sql/state_machine.py +0 -460
  12. kaqing-2.0.98/adam/version.py +0 -5
  13. {kaqing-2.0.98 → kaqing-2.0.99}/README +0 -0
  14. {kaqing-2.0.98 → kaqing-2.0.99}/adam/__init__.py +0 -0
  15. {kaqing-2.0.98 → kaqing-2.0.99}/adam/app_session.py +0 -0
  16. {kaqing-2.0.98 → kaqing-2.0.99}/adam/apps.py +0 -0
  17. {kaqing-2.0.98 → kaqing-2.0.99}/adam/batch.py +0 -0
  18. {kaqing-2.0.98 → kaqing-2.0.99}/adam/checks/__init__.py +0 -0
  19. {kaqing-2.0.98 → kaqing-2.0.99}/adam/checks/check.py +0 -0
  20. {kaqing-2.0.98 → kaqing-2.0.99}/adam/checks/check_context.py +0 -0
  21. {kaqing-2.0.98 → kaqing-2.0.99}/adam/checks/check_result.py +0 -0
  22. {kaqing-2.0.98 → kaqing-2.0.99}/adam/checks/check_utils.py +0 -0
  23. {kaqing-2.0.98 → kaqing-2.0.99}/adam/checks/compactionstats.py +0 -0
  24. {kaqing-2.0.98 → kaqing-2.0.99}/adam/checks/cpu.py +0 -0
  25. {kaqing-2.0.98 → kaqing-2.0.99}/adam/checks/disk.py +0 -0
  26. {kaqing-2.0.98 → kaqing-2.0.99}/adam/checks/gossip.py +0 -0
  27. {kaqing-2.0.98 → kaqing-2.0.99}/adam/checks/issue.py +0 -0
  28. {kaqing-2.0.98 → kaqing-2.0.99}/adam/checks/memory.py +0 -0
  29. {kaqing-2.0.98 → kaqing-2.0.99}/adam/checks/status.py +0 -0
  30. {kaqing-2.0.98 → kaqing-2.0.99}/adam/cli.py +0 -0
  31. {kaqing-2.0.98 → kaqing-2.0.99}/adam/cli_group.py +0 -0
  32. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/__init__.py +0 -0
  33. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/column.py +0 -0
  34. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/columns.py +0 -0
  35. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/compactions.py +0 -0
  36. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/cpu.py +0 -0
  37. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/dir_data.py +0 -0
  38. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/dir_snapshots.py +0 -0
  39. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/gossip.py +0 -0
  40. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/host_id.py +0 -0
  41. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/memory.py +0 -0
  42. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/node_address.py +0 -0
  43. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/node_load.py +0 -0
  44. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/node_owns.py +0 -0
  45. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/node_status.py +0 -0
  46. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/node_tokens.py +0 -0
  47. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/node_utils.py +0 -0
  48. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/pod_name.py +0 -0
  49. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/volume_cassandra.py +0 -0
  50. {kaqing-2.0.98 → kaqing-2.0.99}/adam/columns/volume_root.py +0 -0
  51. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/__init__.py +0 -0
  52. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/app.py +0 -0
  53. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/app_ping.py +0 -0
  54. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/audit/__init__.py +0 -0
  55. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/audit/audit_repair_tables.py +0 -0
  56. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/bash.py +0 -0
  57. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/cd.py +0 -0
  58. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/check.py +0 -0
  59. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/cli_commands.py +0 -0
  60. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/command.py +0 -0
  61. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/command_helpers.py +0 -0
  62. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/commands_utils.py +0 -0
  63. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/cp.py +0 -0
  64. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/cql/__init__.py +0 -0
  65. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/cql/cql_table_completer.py +0 -0
  66. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/cql/cql_utils.py +0 -0
  67. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/cql/cqlsh.py +0 -0
  68. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/deploy/__init__.py +0 -0
  69. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/deploy/code_start.py +0 -0
  70. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/deploy/code_stop.py +0 -0
  71. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/deploy/code_utils.py +0 -0
  72. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/deploy/deploy.py +0 -0
  73. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/deploy/deploy_frontend.py +0 -0
  74. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/deploy/deploy_pg_agent.py +0 -0
  75. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/deploy/deploy_pod.py +0 -0
  76. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/deploy/deploy_utils.py +0 -0
  77. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/deploy/undeploy.py +0 -0
  78. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/deploy/undeploy_frontend.py +0 -0
  79. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/deploy/undeploy_pg_agent.py +0 -0
  80. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/deploy/undeploy_pod.py +0 -0
  81. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/describe/__init__.py +0 -0
  82. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/describe/describe.py +0 -0
  83. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/describe/describe_keyspace.py +0 -0
  84. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/describe/describe_keyspaces.py +0 -0
  85. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/describe/describe_schema.py +0 -0
  86. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/describe/describe_table.py +0 -0
  87. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/describe/describe_tables.py +0 -0
  88. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/devices.py +0 -0
  89. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/exit.py +0 -0
  90. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/help.py +0 -0
  91. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/issues.py +0 -0
  92. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/login.py +0 -0
  93. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/logs.py +0 -0
  94. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/ls.py +0 -0
  95. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/medusa/__init__.py +0 -0
  96. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/medusa/medusa.py +0 -0
  97. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/medusa/medusa_backup.py +0 -0
  98. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/medusa/medusa_restore.py +0 -0
  99. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/medusa/medusa_show_backupjobs.py +0 -0
  100. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/medusa/medusa_show_restorejobs.py +0 -0
  101. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/nodetool.py +0 -0
  102. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/nodetool_commands.py +0 -0
  103. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/param_get.py +0 -0
  104. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/param_set.py +0 -0
  105. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/postgres/__init__.py +0 -0
  106. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/postgres/postgres.py +0 -0
  107. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/postgres/postgres_ls.py +0 -0
  108. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/postgres/postgres_preview.py +0 -0
  109. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/postgres/postgres_session.py +0 -0
  110. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/postgres/postgres_utils.py +0 -0
  111. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/postgres/psql_completions.py +0 -0
  112. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/postgres/psql_table_completer.py +0 -0
  113. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/preview_table.py +0 -0
  114. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/pwd.py +0 -0
  115. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/reaper/__init__.py +0 -0
  116. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/reaper/reaper.py +0 -0
  117. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/reaper/reaper_forward.py +0 -0
  118. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/reaper/reaper_forward_stop.py +0 -0
  119. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/reaper/reaper_restart.py +0 -0
  120. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/reaper/reaper_run_abort.py +0 -0
  121. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/reaper/reaper_runs.py +0 -0
  122. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/reaper/reaper_runs_abort.py +0 -0
  123. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/reaper/reaper_schedule_activate.py +0 -0
  124. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/reaper/reaper_schedule_start.py +0 -0
  125. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/reaper/reaper_schedule_stop.py +0 -0
  126. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/reaper/reaper_schedules.py +0 -0
  127. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/reaper/reaper_session.py +0 -0
  128. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/reaper/reaper_status.py +0 -0
  129. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/repair/__init__.py +0 -0
  130. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/repair/repair.py +0 -0
  131. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/repair/repair_log.py +0 -0
  132. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/repair/repair_run.py +0 -0
  133. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/repair/repair_scan.py +0 -0
  134. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/repair/repair_stop.py +0 -0
  135. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/report.py +0 -0
  136. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/restart.py +0 -0
  137. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/rollout.py +0 -0
  138. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/shell.py +0 -0
  139. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/show/__init__.py +0 -0
  140. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/show/show.py +0 -0
  141. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/show/show_adam.py +0 -0
  142. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/show/show_app_actions.py +0 -0
  143. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/show/show_app_id.py +0 -0
  144. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/show/show_app_queues.py +0 -0
  145. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/show/show_cassandra_status.py +0 -0
  146. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/show/show_cassandra_version.py +0 -0
  147. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/show/show_commands.py +0 -0
  148. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/show/show_host.py +0 -0
  149. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/show/show_login.py +0 -0
  150. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/show/show_params.py +0 -0
  151. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/show/show_processes.py +0 -0
  152. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/show/show_repairs.py +0 -0
  153. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/show/show_storage.py +0 -0
  154. {kaqing-2.0.98 → kaqing-2.0.99}/adam/commands/watch.py +0 -0
  155. {kaqing-2.0.98 → kaqing-2.0.99}/adam/config.py +0 -0
  156. {kaqing-2.0.98 → kaqing-2.0.99}/adam/embedded_apps.py +0 -0
  157. {kaqing-2.0.98 → kaqing-2.0.99}/adam/embedded_params.py +0 -0
  158. {kaqing-2.0.98 → kaqing-2.0.99}/adam/log.py +0 -0
  159. {kaqing-2.0.98 → kaqing-2.0.99}/adam/pod_exec_result.py +0 -0
  160. {kaqing-2.0.98 → kaqing-2.0.99}/adam/repl.py +0 -0
  161. {kaqing-2.0.98 → kaqing-2.0.99}/adam/repl_commands.py +0 -0
  162. {kaqing-2.0.98 → kaqing-2.0.99}/adam/repl_session.py +0 -0
  163. {kaqing-2.0.98 → kaqing-2.0.99}/adam/repl_state.py +0 -0
  164. {kaqing-2.0.98 → kaqing-2.0.99}/adam/sql/__init__.py +0 -0
  165. {kaqing-2.0.98 → kaqing-2.0.99}/adam/sql/term_completer.py +0 -0
  166. {kaqing-2.0.98 → kaqing-2.0.99}/adam/sso/__init__.py +0 -0
  167. {kaqing-2.0.98 → kaqing-2.0.99}/adam/sso/authenticator.py +0 -0
  168. {kaqing-2.0.98 → kaqing-2.0.99}/adam/sso/authn_ad.py +0 -0
  169. {kaqing-2.0.98 → kaqing-2.0.99}/adam/sso/authn_okta.py +0 -0
  170. {kaqing-2.0.98 → kaqing-2.0.99}/adam/sso/cred_cache.py +0 -0
  171. {kaqing-2.0.98 → kaqing-2.0.99}/adam/sso/id_token.py +0 -0
  172. {kaqing-2.0.98 → kaqing-2.0.99}/adam/sso/idp.py +0 -0
  173. {kaqing-2.0.98 → kaqing-2.0.99}/adam/sso/idp_login.py +0 -0
  174. {kaqing-2.0.98 → kaqing-2.0.99}/adam/sso/idp_session.py +0 -0
  175. {kaqing-2.0.98 → kaqing-2.0.99}/adam/sso/sso_config.py +0 -0
  176. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils.py +0 -0
  177. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils_k8s/__init__.py +0 -0
  178. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils_k8s/cassandra_clusters.py +0 -0
  179. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils_k8s/cassandra_nodes.py +0 -0
  180. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils_k8s/config_maps.py +0 -0
  181. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils_k8s/custom_resources.py +0 -0
  182. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils_k8s/deployment.py +0 -0
  183. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils_k8s/ingresses.py +0 -0
  184. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils_k8s/jobs.py +0 -0
  185. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils_k8s/kube_context.py +0 -0
  186. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils_k8s/pods.py +0 -0
  187. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils_k8s/secrets.py +0 -0
  188. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils_k8s/service_accounts.py +0 -0
  189. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils_k8s/services.py +0 -0
  190. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils_k8s/statefulsets.py +0 -0
  191. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils_k8s/volumes.py +0 -0
  192. {kaqing-2.0.98 → kaqing-2.0.99}/adam/utils_net.py +0 -0
  193. {kaqing-2.0.98 → kaqing-2.0.99}/kaqing.egg-info/SOURCES.txt +0 -0
  194. {kaqing-2.0.98 → kaqing-2.0.99}/kaqing.egg-info/dependency_links.txt +0 -0
  195. {kaqing-2.0.98 → kaqing-2.0.99}/kaqing.egg-info/entry_points.txt +0 -0
  196. {kaqing-2.0.98 → kaqing-2.0.99}/kaqing.egg-info/top_level.txt +0 -0
  197. {kaqing-2.0.98 → kaqing-2.0.99}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kaqing
3
- Version: 2.0.98
3
+ Version: 2.0.99
4
4
  Summary: UNKNOWN
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -1,7 +1,6 @@
1
1
  from adam.commands.command import Command
2
2
  from adam.commands.cql.cql_utils import tables as get_tables, run_cql
3
3
  from adam.config import Config
4
- from adam.pod_exec_result import PodExecResult
5
4
  from adam.repl_state import ReplState, RequiredState
6
5
  from adam.utils import log2
7
6
 
@@ -80,12 +79,6 @@ class AlterTables(Command):
80
79
  return state
81
80
 
82
81
  def completion(self, state: ReplState) -> dict[str, any]:
83
- if state.sts:
84
- ps = Config().get('cql.alter-tables.gc-grace-periods', '3600,86400,864000,7776000').split(',')
85
- return super().completion(state, {
86
- 'GC_GRACE_SECONDS': {'=': {p.strip(' \r\n'): {'--include-reaper': None} for p in ps}},
87
- })
88
-
89
82
  return {}
90
83
 
91
84
  def help(self, _: ReplState) -> str:
@@ -50,12 +50,19 @@ class Audit(Command):
50
50
  if not self.schema_read:
51
51
  Config().wait_log(f'Inspecting audit database schema...')
52
52
  self.schema_read = True
53
+ # warm up the caches first time when l: drive is accessed
53
54
  audit_column_names()
55
+ audit_column_names(partition_cols_only=True)
54
56
 
55
- def columns(_):
56
- return audit_column_names()
57
+ # def columns(_):
58
+ # return audit_column_names()
57
59
 
58
- return super().completion(state) | SqlCompleter.completions(lambda: audit_table_names(), columns=columns) | {
60
+ return super().completion(state) | SqlCompleter.completions(
61
+ lambda: audit_table_names(),
62
+ columns=lambda table: audit_column_names(),
63
+ partition_columns=lambda table: audit_column_names(partition_cols_only=True),
64
+ variant='athena'
65
+ ) | {
59
66
  'desc': {table: None for table in audit_table_names()}}
60
67
 
61
68
  return {}
@@ -1,11 +1,15 @@
1
1
  from adam.commands.cql.cql_utils import table_names
2
+ from adam.config import Config
2
3
  from adam.repl_state import ReplState
3
4
  from adam.sql.sql_completer import SqlCompleter
4
5
 
5
6
  def cql_completions(state: ReplState) -> dict[str, any]:
7
+ ps = Config().get('cql.alter-tables.gc-grace-periods', '3600,86400,864000,7776000').split(',')
6
8
  return {
7
9
  'describe': {
8
10
  'keyspaces': None,
9
11
  'table': {t: None for t in table_names(state)},
10
12
  'tables': None},
11
- } | SqlCompleter.completions(lambda: table_names(state))
13
+ } | SqlCompleter.completions(lambda: table_names(state), table_props=lambda: {
14
+ 'GC_GRACE_SECONDS': ps
15
+ }, variant='cql')
@@ -11,19 +11,28 @@ __all__ = [
11
11
  "SqlCompleter",
12
12
  ]
13
13
 
14
- DML_COMPLETER = TermCompleter(['select', 'insert', 'delete', 'update'])
14
+ DML_COMPLETER = TermCompleter(['select', 'insert', 'delete', 'update', 'alter'])
15
15
 
16
16
  def default_columns(tables: list[str]):
17
17
  return 'id,x.,y.,z.'.split(',')
18
18
 
19
19
  class SqlCompleter(Completer):
20
- def __init__(self, tables: Callable[[], list[str]], dml: str = None, columns: Callable[[list[str]], list[str]] = default_columns, debug = False):
20
+ def __init__(self,
21
+ tables: Callable[[], list[str]],
22
+ dml: str = None,
23
+ columns: Callable[[list[str]], list[str]] = default_columns,
24
+ partition_columns: Callable[[list[str]], list[str]] = lambda x: [],
25
+ table_props: Callable[[], dict[str,list[str]]] = lambda: [],
26
+ variant = 'sql',
27
+ debug = False):
21
28
  super().__init__()
22
29
  self.dml = dml
23
30
  self.tables = tables
24
31
  self.columns = columns
32
+ self.partition_columns = partition_columns
33
+ self.table_props = table_props
25
34
  self.debug = debug
26
- self.machine = StateMachine(debug=self.debug)
35
+ self.machine = StateMachine(variant=variant, debug=self.debug)
27
36
 
28
37
  def get_completions(
29
38
  self, document: Document, complete_event: CompleteEvent
@@ -53,8 +62,17 @@ class SqlCompleter(Completer):
53
62
  for word in self.machine.suggestions[state.to_s].strip(' ').split(','):
54
63
  if word == 'tables':
55
64
  terms.extend(self.tables())
65
+ elif word == '`tables`':
66
+ terms.append('tables')
56
67
  elif word == 'columns':
57
68
  terms.extend(self.columns([]))
69
+ elif word == 'partition-columns':
70
+ terms.extend(self.partition_columns([]))
71
+ elif word == 'table-props':
72
+ terms.extend(self.table_props().keys())
73
+ elif word == 'table-prop-values':
74
+ if 'last_name' in state.context and state.context['last_name']:
75
+ terms.extend(self.table_props()[state.context['last_name']])
58
76
  elif word == 'single':
59
77
  terms.append("'")
60
78
  elif word == 'comma':
@@ -69,10 +87,15 @@ class SqlCompleter(Completer):
69
87
  for c in completer.get_completions(document, complete_event):
70
88
  yield c
71
89
 
72
- def completions(table_names: Callable[[], list[str]], columns: Callable[[list[str]], list[str]] = default_columns):
90
+ def completions(table_names: Callable[[], list[str]],
91
+ columns: Callable[[list[str]], list[str]] = default_columns,
92
+ partition_columns: Callable[[list[str]], list[str]] = lambda x: [],
93
+ table_props: Callable[[], dict[str, list[str]]] = lambda: [],
94
+ variant = 'sql'):
73
95
  return {
74
- 'delete': SqlCompleter(table_names, 'delete', columns=columns),
75
- 'insert': SqlCompleter(table_names, 'insert', columns=columns),
76
- 'select': SqlCompleter(table_names, 'select', columns=columns),
77
- 'update': SqlCompleter(table_names, 'update', columns=columns),
96
+ 'delete': SqlCompleter(table_names, 'delete', columns=columns, partition_columns=partition_columns, table_props=table_props, variant=variant),
97
+ 'insert': SqlCompleter(table_names, 'insert', columns=columns, partition_columns=partition_columns, table_props=table_props, variant=variant),
98
+ 'select': SqlCompleter(table_names, 'select', columns=columns, partition_columns=partition_columns, table_props=table_props, variant=variant),
99
+ 'update': SqlCompleter(table_names, 'update', columns=columns, partition_columns=partition_columns, table_props=table_props, variant=variant),
100
+ 'alter': SqlCompleter(table_names, 'alter', columns=columns, partition_columns=partition_columns, table_props=table_props, variant=variant),
78
101
  }