kaqing 2.0.53__tar.gz → 2.0.55__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.
- {kaqing-2.0.53 → kaqing-2.0.55}/PKG-INFO +1 -1
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/sql/sql_completer.py +140 -1
- kaqing-2.0.55/adam/version.py +5 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/kaqing.egg-info/PKG-INFO +1 -1
- {kaqing-2.0.53 → kaqing-2.0.55}/setup.py +1 -1
- kaqing-2.0.53/adam/version.py +0 -5
- {kaqing-2.0.53 → kaqing-2.0.55}/README +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/__init__.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/app_session.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/apps.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/batch.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/checks/__init__.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/checks/check.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/checks/check_context.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/checks/check_result.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/checks/check_utils.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/checks/compactionstats.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/checks/cpu.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/checks/disk.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/checks/gossip.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/checks/issue.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/checks/memory.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/checks/status.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/cli.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/cli_group.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/__init__.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/column.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/columns.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/compactions.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/cpu.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/dir_data.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/dir_snapshots.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/gossip.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/host_id.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/memory.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/node_address.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/node_load.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/node_owns.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/node_status.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/node_tokens.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/node_utils.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/pod_name.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/volume_cassandra.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/columns/volume_root.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/__init__.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/alter_tables.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/app.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/app_ping.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/bash.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/cd.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/check.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/cli_commands.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/command.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/command_helpers.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/commands_utils.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/cp.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/cql/__init__.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/cql/cql_completions.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/cql/cql_table_completer.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/cql/cql_utils.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/cql/cqlsh.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/deploy/__init__.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/deploy/code_start.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/deploy/code_stop.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/deploy/code_utils.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/deploy/deploy.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/deploy/deploy_frontend.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/deploy/deploy_pg_agent.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/deploy/deploy_pod.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/deploy/deploy_utils.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/deploy/undeploy.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/deploy/undeploy_frontend.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/deploy/undeploy_pg_agent.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/deploy/undeploy_pod.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/describe/__init__.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/describe/describe.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/describe/describe_keyspace.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/describe/describe_keyspaces.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/describe/describe_table.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/describe/describe_tables.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/devices.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/exit.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/help.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/issues.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/login.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/logs.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/ls.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/medusa/__init__.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/medusa/medusa.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/medusa/medusa_backup.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/medusa/medusa_restore.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/medusa/medusa_show_backupjobs.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/medusa/medusa_show_restorejobs.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/nodetool.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/nodetool_commands.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/param_get.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/param_set.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/postgres/__init__.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/postgres/postgres.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/postgres/postgres_ls.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/postgres/postgres_preview.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/postgres/postgres_session.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/postgres/postgres_utils.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/postgres/psql_completions.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/postgres/psql_table_completer.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/preview_table.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/pwd.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/reaper/__init__.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/reaper/reaper.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/reaper/reaper_forward.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/reaper/reaper_forward_stop.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/reaper/reaper_restart.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/reaper/reaper_run_abort.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/reaper/reaper_runs.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/reaper/reaper_runs_abort.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/reaper/reaper_schedule_activate.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/reaper/reaper_schedule_start.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/reaper/reaper_schedule_stop.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/reaper/reaper_schedules.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/reaper/reaper_session.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/reaper/reaper_status.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/repair/__init__.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/repair/repair.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/repair/repair_log.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/repair/repair_run.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/repair/repair_scan.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/repair/repair_stop.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/report.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/restart.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/rollout.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/shell.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/show/__init__.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/show/show.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/show/show_adam.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/show/show_app_actions.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/show/show_app_id.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/show/show_app_queues.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/show/show_cassandra_status.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/show/show_cassandra_version.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/show/show_commands.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/show/show_login.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/show/show_params.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/show/show_processes.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/show/show_repairs.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/show/show_storage.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/commands/watch.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/config.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/embedded_apps.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/embedded_params.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/k8s_utils/__init__.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/k8s_utils/cassandra_clusters.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/k8s_utils/cassandra_nodes.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/k8s_utils/config_maps.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/k8s_utils/custom_resources.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/k8s_utils/deployment.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/k8s_utils/ingresses.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/k8s_utils/jobs.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/k8s_utils/kube_context.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/k8s_utils/pods.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/k8s_utils/secrets.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/k8s_utils/service_accounts.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/k8s_utils/services.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/k8s_utils/statefulsets.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/k8s_utils/volumes.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/log.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/pod_exec_result.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/repl.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/repl_commands.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/repl_session.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/repl_state.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/sql/__init__.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/sql/sql_utils.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/sql/term_completer.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/sso/__init__.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/sso/authenticator.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/sso/authn_ad.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/sso/authn_okta.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/sso/cred_cache.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/sso/id_token.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/sso/idp.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/sso/idp_login.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/sso/idp_session.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/sso/sso_config.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/adam/utils.py +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/kaqing.egg-info/SOURCES.txt +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/kaqing.egg-info/dependency_links.txt +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/kaqing.egg-info/entry_points.txt +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/kaqing.egg-info/top_level.txt +0 -0
- {kaqing-2.0.53 → kaqing-2.0.55}/setup.cfg +0 -0
@@ -45,7 +45,7 @@ class SqlCompleter(Completer):
|
|
45
45
|
elif state == "select_a_from_":
|
46
46
|
completer = TermCompleter(self.tables())
|
47
47
|
elif state == "select_a_from_x_":
|
48
|
-
completer = TermCompleter(['where', 'group', 'limit'])
|
48
|
+
completer = TermCompleter(['where', 'inner', 'left', 'right', 'full', 'group', 'limit'])
|
49
49
|
elif state == "select_a_from_x,":
|
50
50
|
completer = TermCompleter(self.tables())
|
51
51
|
elif state == "select_a_from_x_where_":
|
@@ -68,6 +68,34 @@ class SqlCompleter(Completer):
|
|
68
68
|
completer = TermCompleter(['limit'])
|
69
69
|
elif state == "select_a_from_x_group_by_a_limit_":
|
70
70
|
completer = TermCompleter(['1'])
|
71
|
+
elif state == "select_a_from_x_inner_":
|
72
|
+
completer = TermCompleter(['join'])
|
73
|
+
elif state in ["select_a_from_x_inner_join_", "select_a_from_x_left_join_"]:
|
74
|
+
completer = TermCompleter(self.tables())
|
75
|
+
elif state == "select_a_from_x_inner_join_y,":
|
76
|
+
completer = TermCompleter(self.tables())
|
77
|
+
elif state == "select_a_from_x_inner_join_y_":
|
78
|
+
completer = TermCompleter(['on'])
|
79
|
+
elif state == "select_a_from_x_inner_join_y_on_":
|
80
|
+
completer = TermCompleter(['id'])
|
81
|
+
elif state == "select_a_from_x_inner_join_y_on_a":
|
82
|
+
completer = TermCompleter(['='])
|
83
|
+
elif state == "select_a_from_x_inner_join_y_on_a=":
|
84
|
+
completer = TermCompleter(['id'])
|
85
|
+
elif state == "select_a_from_x_inner_join_y_on_a=b_":
|
86
|
+
completer = TermCompleter(['where', 'group', 'limit'])
|
87
|
+
elif state == "select_a_from_x_left_":
|
88
|
+
completer = TermCompleter(['outer', 'join'])
|
89
|
+
elif state == "select_a_from_x_left_outer_":
|
90
|
+
completer = TermCompleter(['join'])
|
91
|
+
elif state == "select_a_from_x_right_":
|
92
|
+
completer = TermCompleter(['outer', 'join'])
|
93
|
+
elif state == "select_a_from_x_right_outer_":
|
94
|
+
completer = TermCompleter(['join'])
|
95
|
+
elif state == "select_a_from_x_full_":
|
96
|
+
completer = TermCompleter(['outer'])
|
97
|
+
elif state == "select_a_from_x_full_outer_":
|
98
|
+
completer = TermCompleter(['join'])
|
71
99
|
|
72
100
|
elif state == "insert_":
|
73
101
|
completer = TermCompleter(['into'])
|
@@ -196,6 +224,22 @@ class SqlCompleter(Completer):
|
|
196
224
|
state = 'select_a_from_x_group'
|
197
225
|
elif token.ttype == T.Keyword and token.value.lower() == 'group by':
|
198
226
|
state = 'select_a_from_x_group_by'
|
227
|
+
elif token.ttype == T.Keyword and token.value.lower() == 'inner':
|
228
|
+
state = 'select_a_from_x_inner'
|
229
|
+
elif token.ttype == T.Keyword and token.value.lower() == 'inner join':
|
230
|
+
state = 'select_a_from_x_inner_join'
|
231
|
+
elif token.ttype == T.Keyword and token.value.lower() == 'left':
|
232
|
+
state = 'select_a_from_x_left'
|
233
|
+
elif token.ttype == T.Keyword and token.value.lower() in ['left join', 'left outer join']:
|
234
|
+
state = 'select_a_from_x_inner_join'
|
235
|
+
elif token.ttype == T.Keyword and token.value.lower() == 'right':
|
236
|
+
state = 'select_a_from_x_right'
|
237
|
+
elif token.ttype == T.Keyword and token.value.lower() in ['right join', 'right outer join']:
|
238
|
+
state = 'select_a_from_x_inner_join'
|
239
|
+
elif token.ttype == T.Keyword and token.value.lower() == 'full':
|
240
|
+
state = 'select_a_from_x_full'
|
241
|
+
elif token.ttype == T.Keyword and token.value.lower() == 'full outer join':
|
242
|
+
state = 'select_a_from_x_inner_join'
|
199
243
|
elif state == 'select_a_from_x_where':
|
200
244
|
if token.ttype == T.Text.Whitespace:
|
201
245
|
state = 'select_a_from_x_where_'
|
@@ -246,6 +290,101 @@ class SqlCompleter(Completer):
|
|
246
290
|
elif state == 'select_a_from_x_where_id=v_limit':
|
247
291
|
if token.ttype == T.Text.Whitespace:
|
248
292
|
state = 'select_a_from_x_where_id=v_limit_'
|
293
|
+
elif state == 'select_a_from_x_inner':
|
294
|
+
if token.ttype == T.Text.Whitespace:
|
295
|
+
state = 'select_a_from_x_inner_'
|
296
|
+
elif state == 'select_a_from_x_inner_':
|
297
|
+
if token.ttype == T.Keyword and token.value.lower() == 'join':
|
298
|
+
state = 'select_a_from_x_inner_join'
|
299
|
+
elif state == 'select_a_from_x_inner_join':
|
300
|
+
if token.ttype == T.Text.Whitespace:
|
301
|
+
state = 'select_a_from_x_inner_join_'
|
302
|
+
elif state == 'select_a_from_x_inner_join_':
|
303
|
+
if token.ttype == T.Name:
|
304
|
+
state = 'select_a_from_x_inner_join_y'
|
305
|
+
|
306
|
+
elif state == 'select_a_from_x_left':
|
307
|
+
if token.ttype == T.Text.Whitespace:
|
308
|
+
state = 'select_a_from_x_left_'
|
309
|
+
elif state == 'select_a_from_x_left_':
|
310
|
+
if token.ttype == T.Keyword and token.value.lower() == 'join':
|
311
|
+
state = 'select_a_from_x_inner_join'
|
312
|
+
elif token.ttype == T.Keyword and token.value.lower() == 'outer':
|
313
|
+
state = 'select_a_from_x_left_outer'
|
314
|
+
elif state == 'select_a_from_x_left_outer':
|
315
|
+
if token.ttype == T.Text.Whitespace:
|
316
|
+
state = 'select_a_from_x_left_outer_'
|
317
|
+
elif state == 'select_a_from_x_left_outer_':
|
318
|
+
if token.ttype == T.Keyword and token.value.lower() == 'join':
|
319
|
+
state = 'select_a_from_x_inner_join_'
|
320
|
+
|
321
|
+
elif state == 'select_a_from_x_right':
|
322
|
+
if token.ttype == T.Text.Whitespace:
|
323
|
+
state = 'select_a_from_x_right_'
|
324
|
+
elif state == 'select_a_from_x_right_':
|
325
|
+
if token.ttype == T.Keyword and token.value.lower() == 'join':
|
326
|
+
state = 'select_a_from_x_inner_join'
|
327
|
+
elif token.ttype == T.Keyword and token.value.lower() == 'outer':
|
328
|
+
state = 'select_a_from_x_right_outer'
|
329
|
+
elif state == 'select_a_from_x_right_outer':
|
330
|
+
if token.ttype == T.Text.Whitespace:
|
331
|
+
state = 'select_a_from_x_right_outer_'
|
332
|
+
elif state == 'select_a_from_x_right_outer_':
|
333
|
+
if token.ttype == T.Keyword and token.value.lower() == 'join':
|
334
|
+
state = 'select_a_from_x_inner_join_'
|
335
|
+
|
336
|
+
elif state == 'select_a_from_x_full':
|
337
|
+
if token.ttype == T.Text.Whitespace:
|
338
|
+
state = 'select_a_from_x_full_'
|
339
|
+
elif state == 'select_a_from_x_full_':
|
340
|
+
if token.ttype == T.Keyword and token.value.lower() == 'outer':
|
341
|
+
state = 'select_a_from_x_full_outer'
|
342
|
+
elif state == 'select_a_from_x_full_outer':
|
343
|
+
if token.ttype == T.Text.Whitespace:
|
344
|
+
state = 'select_a_from_x_full_outer_'
|
345
|
+
elif state == 'select_a_from_x_full_outer_':
|
346
|
+
if token.ttype == T.Keyword and token.value.lower() == 'join':
|
347
|
+
state = 'select_a_from_x_inner_join_'
|
348
|
+
|
349
|
+
elif state == 'select_a_from_x_inner_join_y':
|
350
|
+
if token.ttype == T.Punctuation and token.value == ',':
|
351
|
+
state = 'select_a_from_x_inner_join_y,'
|
352
|
+
elif token.ttype == T.Text.Whitespace:
|
353
|
+
state = 'select_a_from_x_inner_join_y_'
|
354
|
+
elif state == 'select_a_from_x_inner_join_y,':
|
355
|
+
if token.ttype == T.Name:
|
356
|
+
state = 'select_a_from_x_inner_join_y'
|
357
|
+
elif state == 'select_a_from_x_inner_join_y_':
|
358
|
+
if token.ttype == T.Keyword and token.value.lower() == 'on':
|
359
|
+
state = 'select_a_from_x_inner_join_y_on'
|
360
|
+
elif state == 'select_a_from_x_inner_join_y_on':
|
361
|
+
if token.ttype == T.Text.Whitespace:
|
362
|
+
state = 'select_a_from_x_inner_join_y_on_'
|
363
|
+
elif state == 'select_a_from_x_inner_join_y_on_':
|
364
|
+
if token.ttype == T.Name:
|
365
|
+
state = 'select_a_from_x_inner_join_y_on_a'
|
366
|
+
elif state == 'select_a_from_x_inner_join_y_on_a':
|
367
|
+
if token.ttype == T.Operator.Comparison:
|
368
|
+
state = 'select_a_from_x_inner_join_y_on_a='
|
369
|
+
elif state == 'select_a_from_x_inner_join_y_on_a=':
|
370
|
+
if token.ttype in [T.Literal.String.Single, T.Name]:
|
371
|
+
state = 'select_a_from_x_inner_join_y_on_a=b'
|
372
|
+
elif state == 'select_a_from_x_inner_join_y_on_a=b':
|
373
|
+
if token.ttype == T.Text.Whitespace:
|
374
|
+
state = 'select_a_from_x_inner_join_y_on_a=b_'
|
375
|
+
elif token.ttype == T.Punctuation and token.value == ',':
|
376
|
+
state = 'select_a_from_x_inner_join_y_on_'
|
377
|
+
elif state == 'select_a_from_x_inner_join_y_on_a=b_':
|
378
|
+
if token.ttype == T.Keyword and token.value.lower() in ['and', 'or']:
|
379
|
+
state = 'select_a_from_x_inner_join'
|
380
|
+
elif token.ttype == T.Keyword and token.value.lower() == 'where':
|
381
|
+
state = 'select_a_from_x_where'
|
382
|
+
elif token.ttype == T.Keyword and token.value.lower() == 'group':
|
383
|
+
state = 'select_a_from_x_group'
|
384
|
+
elif token.ttype == T.Keyword and token.value.lower() == 'group by':
|
385
|
+
state = 'select_a_from_x_group_by'
|
386
|
+
elif token.ttype == T.Keyword and token.value.lower() == 'limit':
|
387
|
+
state = 'select_a_from_x_where_id=v_limit'
|
249
388
|
|
250
389
|
elif state == 'insert':
|
251
390
|
if token.ttype == T.Text.Whitespace:
|
kaqing-2.0.53/adam/version.py
DELETED
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
|
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
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|