Example #1
0
def create_cf_composite_key_declaration_completer(ctxt, cass):
    cols_declared = ctxt.get_binding("newcolname")
    pieces_already = ctxt.get_binding("ptkey", ()) + ctxt.get_binding("pkey", ())
    pieces_already = map(dequote_name, pieces_already)
    while cols_declared[0] in pieces_already:
        cols_declared = cols_declared[1:]
        if len(cols_declared) < 2:
            return ()
    return [maybe_escape_name(cols_declared[0])]
Example #2
0
def insert_colname_completer(ctxt, cass):
    layout = get_table_meta(ctxt, cass)
    colnames = set(map(dequote_name, ctxt.get_binding("colname", ())))
    keycols = layout.primary_key
    for k in keycols:
        if k.name not in colnames:
            return [maybe_escape_name(k.name)]
    normalcols = set(regular_column_names(layout)) - colnames
    return map(maybe_escape_name, normalcols)
def create_cf_pkdef_declaration_completer(ctxt, cass):
    cols_declared = ctxt.get_binding('newcolname')
    pieces_already = ctxt.get_binding('ptkey', ())
    pieces_already = map(dequote_name, pieces_already)
    while cols_declared[0] in pieces_already:
        cols_declared = cols_declared[1:]
        if len(cols_declared) < 2:
            return ()
    return [maybe_escape_name(cols_declared[0])]
def update_countername_completer(ctxt, cass):
    layout = get_table_meta(ctxt, cass)
    curcol = dequote_name(ctxt.get_binding('updatecol', ''))
    coltype = layout.columns[curcol].cql_type
    if coltype == 'counter':
        return [maybe_escape_name(curcol)]
    if coltype in ('map', 'set'):
        return ["{"]
    if coltype == 'list':
        return ["["]
    return [Hint('<term (%s)>' % coltype)]
Example #5
0
def update_countername_completer(ctxt, cass):
    layout = get_table_meta(ctxt, cass)
    curcol = dequote_name(ctxt.get_binding("updatecol", ""))
    cqltype = layout.columns[curcol].data_type
    coltype = cqltype.typename
    if coltype == "counter":
        return [maybe_escape_name(curcol)]
    if coltype in ("map", "set"):
        return ["{"]
    if coltype == "list":
        return ["["]
    return [Hint("<term (%s)>" % cqltype.cql_parameterized_type())]
Example #6
0
def select_order_column_completer(ctxt, cass):
    prev_order_cols = ctxt.get_binding("ordercol", ())
    keyname = ctxt.get_binding("keyname")
    if keyname is None:
        keyname = ctxt.get_binding("rel_lhs", ())
        if not keyname:
            return [Hint("Can't ORDER BY here: need to specify partition key in WHERE clause")]
    layout = get_table_meta(ctxt, cass)
    order_by_candidates = [col.name for col in layout.clustering_key]
    if len(order_by_candidates) > len(prev_order_cols):
        return [maybe_escape_name(order_by_candidates[len(prev_order_cols)])]
    return [Hint("No more orderable columns here.")]
Example #7
0
def insert_newval_completer(ctxt, cass):
    layout = get_table_meta(ctxt, cass)
    insertcols = map(dequote_name, ctxt.get_binding("colname"))
    valuesdone = ctxt.get_binding("newval", ())
    if len(valuesdone) >= len(insertcols):
        return []
    curcol = insertcols[len(valuesdone)]
    cqltype = layout.columns[curcol].data_type
    coltype = cqltype.typename
    if coltype in ("map", "set"):
        return ["{"]
    if coltype == "list":
        return ["["]
    if coltype == "boolean":
        return ["true", "false"]
    return [Hint("<value for %s (%s)>" % (maybe_escape_name(curcol), cqltype.cql_parameterized_type()))]
def insert_newval_completer(ctxt, cass):
    layout = get_table_meta(ctxt, cass)
    insertcols = map(dequote_name, ctxt.get_binding('colname'))
    valuesdone = ctxt.get_binding('newval', ())
    if len(valuesdone) >= len(insertcols):
        return []
    curcol = insertcols[len(valuesdone)]
    cqltype = layout.columns[curcol].data_type
    coltype = cqltype.typename
    if coltype in ('map', 'set'):
        return ['{']
    if coltype == 'list':
        return ['[']
    if coltype == 'boolean':
        return ['true', 'false']
    return [Hint('<value for %s (%s)>' % (maybe_escape_name(curcol),
                                          cqltype.cql_parameterized_type()))]
Example #9
0
def update_listcol_completer(ctxt, cass):
    rhs = ctxt.get_binding("update_rhs")
    if rhs.startswith("["):
        colname = dequote_name(ctxt.get_binding("updatecol"))
        return [maybe_escape_name(colname)]
    return []
Example #10
0
def cf_ks_name_completer(ctxt, cass):
    return [maybe_escape_name(ks) + "." for ks in cass.get_keyspace_names()]
Example #11
0
def quote_name(name):
    return maybe_escape_name(name)
Example #12
0
def idx_ks_name_completer(ctxt, cass):
    return [maybe_escape_name(ks) + '.' for ks in cass.get_keyspace_names()]
Example #13
0
def update_listcol_completer(ctxt, cass):
    rhs = ctxt.get_binding('update_rhs')
    if rhs.startswith('['):
        colname = dequote_name(ctxt.get_binding('updatecol'))
        return [maybe_escape_name(colname)]
    return []
Example #14
0
def quote_name(name):
    return maybe_escape_name(name)