def insert_user(user, db_config):
    try:
        # attempt to insert user row
        insert_query = "insert into %s (userid, last_name, first_name) " \
                       "values('%s', '%s' ,'%s')" % (db_config.user_table, user['userid'], user['last_name'],
                                                     user['first_name'])
        db_utils.execute_query(insert_query, db_config)

        # get user id
        user_id = get_user_id_by_userid(user['userid'], db_config)

        # build join table
        for group_name in user['groups']:
            group_id = get_group_id_by_name(group_name, db_config)
            if group_id is None:
                raise InsertException('Error creating user, one or more groups do not exist in database')

            insert_query = "insert into %s (user_id, group_id) " \
                           "values('%s', '%s')" % (db_config.user_group_table, user_id, group_id)

            db_utils.execute_query(insert_query, db_config)

    except Exception as exception:
        # check for duplicate correlation id constraint violation
        if 'duplicate' in str(exception):
            raise DuplicateException('Error creating user, duplicate found: %s' % exception)
        else:
            raise InsertException('Error creating user: %s' % exception)
def insert_group(group, db_config):
    try:
        # attempt to insert row
        insert_query = "insert into %s (name) " \
                       "values('%s')" % (db_config.group_table, group['name'])
        db_utils.execute_query(insert_query, db_config)

    except Exception as exception:
        # check for duplicate correlation id constraint violation
        if 'duplicate' in str(exception):
            raise DuplicateException('Error creating group, duplicate found: %s' % exception)
        else:
            raise InsertException('Error creating group: %s' % exception)
def update_group(userids, group_name, db_config):
    try:
        delete_group_by_name(group_name, db_config)
        group = create_group_object({"name": "%s" % group_name})
        insert_group(group, db_config)
        group_id = get_group_id_by_name(group_name, db_config)
        for userid in userids:
            user_id = get_user_id_by_userid(userid, db_config)
            insert_query = "insert into %s (user_id, group_id) " \
                           "values('%s', '%s')" % (db_config.user_group_table, user_id, group_id)

            db_utils.execute_query(insert_query, db_config)
    except Exception as exception:
        raise UpdateException('Error updating group: %s' % exception)
Example #4
0
def get_non_refactored_fields(dataset=""):
    sql = ("select  " + "  classAnonymousClassesQty, " +
           "  classAssignmentsQty, " + "  classCbo, " +
           "  classComparisonsQty, " + "  classLambdasQty, " +
           "  classLcom, " + "  classLoc, " + "  classLoopQty, " +
           "  classMathOperationsQty, " + "  classMaxNestedBlocks, " +
           "  classNosi, " + "  classNumberOfAbstractMethods, " +
           "  classNumberOfDefaultFields, " +
           "  classNumberOfDefaultMethods, " + "  classNumberOfFields, " +
           "  classNumberOfFinalFields, " + "  classNumberOfFinalMethods, " +
           "  classNumberOfMethods, " + "  classNumberOfPrivateFields, " +
           "  classNumberOfPrivateMethods, " +
           "  classNumberOfProtectedFields, " +
           "  classNumberOfProtectedMethods, " +
           "  classNumberOfPublicFields, " + "  classNumberOfPublicMethods, " +
           "  classNumberOfStaticFields, " + "  classNumberOfStaticMethods, " +
           "  classNumberOfSynchronizedFields, " +
           "  classNumberOfSynchronizedMethods, " + "  classNumbersQty, " +
           "  classParenthesizedExpsQty, " + "  classReturnQty, " +
           "  classRfc, " + "  classStringLiteralsQty, " +
           "  classSubClassesQty, " + "  classTryCatchQty, " +
           "  classUniqueWordsQty, " + "  classVariablesQty, " +
           "  classWmc, " + "  fieldAppearances, " + "  authorOwnership, " +
           "  bugFixCount, " + "  linesAdded, " + "  linesDeleted, " +
           "  qtyMajorAuthors, " + "  qtyMinorAuthors, " + "  qtyOfAuthors, " +
           "  qtyOfCommits, " + "  refactoringsInvolved " + " " + "from no " +
           "where type = 4")

    if not dataset == "":
        sql = sql + " and project_id in (select id from project where datasetName = '" + dataset + "')"

    sql = sql + " order by id"

    df = execute_query(sql)
    return df
Example #5
0
def get_field_level_refactorings_count(dataset=""):
    if dataset == "":
        sql = "SELECT refactoring, count(*) total from yes where refactoringType = 4 group by refactoring order by count(*) desc"
    else:
        sql = "SELECT refactoring, count(*) total from yes where refactoringType = 4 and project_id in (select id from project where datasetName = '" + dataset + "') group by refactoring order by count(*) desc"

    df = execute_query(sql)
    return df
Example #6
0
def get_refactoring_types(dataset=""):
    if dataset == "":
        sql = "SELECT refactoring, count(*) total from yes group by refactoring order by count(*) desc"
    else:
        sql = "SELECT refactoring, count(*) total from yes where project_id in (select id from project where datasetName = '" + dataset + "') group by refactoring order by count(*) desc"

    df = execute_query(sql)
    return df
def delete_group_by_name(name, db_config):
    delete_query = "delete from %s where name = '%s'" % (db_config.group_table, name)
    db_utils.execute_query(delete_query, db_config)
def delete_user(userid, db_config):
    delete_query = "delete from %s where userid = '%s'" % (db_config.user_table, userid)
    db_utils.execute_query(delete_query, db_config)