Exemplo n.º 1
0
def p_quit_statement(p):
    '''
        quit_statement : QUIT SEMICOLON
    '''
    add_result('bye bye!')
    MinisqlFacade.quit()
    sys.exit()
Exemplo n.º 2
0
def p_delete_statement(p):
    '''
        delete_statement : delete_all
                        | conditional_delete
    '''
    type_code = p[1]['type']
    if type_code == 'delete_all':
        try:
            MinisqlFacade.delete_record_all(p[1]['table_name'])
        except Exception as ex:
            print('Error! ', ex)
    elif type_code == 'conditional_delete':
        MinisqlFacade.delete_record_conditionally(p[1]['table_name'],
                                                  p[1]['conditions'])
Exemplo n.º 3
0
def p_insert_statement(p):
    '''
        insert_statement : INSERT INTO ID VALUES LPAREN value_list RPAREN SEMICOLON
    '''
    table_name = p[3]
    value_list = p[6]
    try:
        MinisqlFacade.insert_record(table_name, value_list)
    except KeyError as key_error:
        print('Insertion failed.')
        print('Error message: No table {}'.format(key_error))
    except Exception as ex:
        print('Insertion failed.')
        print('Error message:  ', ex)
Exemplo n.º 4
0
def p_insert_statement(p):
    '''
        insert_statement : INSERT INTO ID VALUES LPAREN value_list RPAREN SEMICOLON
    '''
    table_name = p[3]
    value_list = p[6]
    try:
        MinisqlFacade.insert_record(table_name, value_list)
        add_result('insert successfully!')
        set_result_flag()
    except KeyError as key_error:
        add_result('Insertion failed.')
        add_result('Error message: No table {}'.format(key_error))
    except Exception as ex:
        add_result('Insertion failed.')
        add_result('Error message:  ' + str(ex))
Exemplo n.º 5
0
def p_delete_statement(p):
    '''
        delete_statement : delete_all
                        | conditional_delete
    '''
    type_code = p[1]['type']
    if type_code == 'delete_all':
        try:
            MinisqlFacade.delete_record_all(p[1]['table_name'])
            add_result('delete all successfully!')
            set_result_flag()
        except Exception as ex:
            add_result('Error! ' + str(ex))
    elif type_code == 'conditional_delete':
        MinisqlFacade.delete_record_conditionally(p[1]['table_name'], p[1]['conditions'])
        add_result('delete successfully!')
        set_result_flag()
Exemplo n.º 6
0
def p_drop_statement(p):
    '''
        drop_statement : drop_table
                        | drop_index
    '''
    type_code = p[1]['type']
    if type_code == 'drop_table':
        try:
            MinisqlFacade.drop_table(p[1]['table_name'])
        except ValueError as value_error:
            print('Error! ', value_error)
        except KeyError:
            print('Error! There is no table {}.'.format(p[1]['table_name']))
    elif type_code == 'drop_index':
        try:
            MinisqlFacade.drop_index(p[1]['index_name'])
        except Exception as ex:
            print('Error! ', ex)
Exemplo n.º 7
0
def p_drop_statement(p):
    '''
        drop_statement : drop_table
                        | drop_index
    '''
    type_code = p[1]['type']
    if type_code == 'drop_table':
        try:
            MinisqlFacade.drop_table(p[1]['table_name'])
            add_result('drop table successfully!')
            set_result_flag()
        except ValueError as value_error:
            add_result('Error! ' + str(value_error))
        except KeyError:
            add_result('Error! There is no table {}.'.format(p[1]['table_name']))
    elif type_code == 'drop_index':
        try:
            MinisqlFacade.drop_index(p[1]['index_name'])
            add_result('drop index successfully!')
            set_result_flag()
        except Exception as ex:
            add_result('Error! ' + str(ex))
Exemplo n.º 8
0
def p_select_statement(p):
    '''
        select_statement : select_all
                        | conditional_select
    '''
    type_code = p[1]['type']
    try:
        columns = MinisqlFacade.get_columns_name(p[1]['table_name'])
        columns_format = ' | '.join(column for column in columns)
        if type_code == 'select_all':
            records = MinisqlFacade.select_record_all(p[1]['table_name'])
        else:  # conditional select
            records = MinisqlFacade.select_record_conditionally(p[1]['table_name'], p[1]['conditions'])
        add_result('*****' * len(columns))
        add_result(columns_format)
        add_result('*****' * len(columns))
        for record in records:
            record_str = ' | '.join(str(item) for item in record)
            add_result(record_str)
        set_result_flag()
    except KeyError:
        add_result('Error! The table {} is not exist!'.format(p[1]['table_name']))
Exemplo n.º 9
0
def p_create_statement(p):
    '''
        create_statement : create_table
                          | create_index
    '''
    type_code = p[1]['type']
    if type_code == 'create_index':
        MinisqlFacade.create_index(p[1]['table_name'], p[1]['index_name'], p[1]['column_name'])
        add_result('create index successfully!')
        set_result_flag()
    elif type_code == 'create_table':
        try:
            if p[1]['primary']:
                MinisqlFacade.create_table(p[1]['table_name'], p[1]['primary key'], p[1]['element_list'])
            else:
                MinisqlFacade.create_table(p[1]['table_name'], None, p[1]['element_list'])
            add_result('create table successfully!')
            set_result_flag()
        except ValueError as value_error:
            add_result('Error! {}'.format(value_error))