예제 #1
0
def validatecolumnvaluepair(parsetree):
    metadata = Metadata(parsetree.database, parsetree.table)
    for pair in parsetree.columnvaluepair:
        column = pair.key
        if not metadata.hascolumn(column):
            raise Exception("Column '{}' does not exist in table '{}'".format(
                column, parsetree.table))
            logger.get_event_logger().warning(
                "Column '{}' does not exist in table '{}'".format(
                    column, parsetree.table))
예제 #2
0
def validatecolumns(parsetree):

    if len(parsetree.columns) == 1 and parsetree.columns[0] == "*":
        parsetree.columns = None
        return
    metadata = Metadata(parsetree.database, parsetree.table)

    for column in parsetree.columns:
        if not metadata.hascolumn(column):
            raise Exception("Column '{}' does not exist in table '{}'".format(
                column, parsetree.table))
            logger.get_event_logger().warning(
                "Column '{}' does not exist in table '{}'".format(
                    column, parsetree.table))
예제 #3
0
def validatedata(parsetree):
    metadata = Metadata(parsetree.database, parsetree.table)

    for column in parsetree.columnvaluepair.keys():
        if not metadata.hascolumn(column):
            raise Exception("Column '{}' does not exist in table '{}'".format(
                column, parsetree.table))
            logger.get_event_logger().warning(
                "Column '{}' does not exist in table '{}'".format(
                    column, parsetree.table))

        validator.checkdatatype(metadata, column,
                                parsetree.columnvaluepair[column])
        validator.transformvalue(metadata, parsetree.columnvaluepair, column)
        validator.validatelength(metadata, column,
                                 parsetree.columnvaluepair[column])
예제 #4
0
def validatedata(parsetree):
    metadata = Metadata(parsetree.database,parsetree.table)

    actualcolumns = metadata.columns.keys()
    providedcolumns = parsetree.columnvaluepair.keys()

    if len(actualcolumns)!= len(providedcolumns):
        raise Exception("Column count does not match with actual columns")
        logger.get_event_logger().warning("Column count does not match with actual columns")

    for column in parsetree.columnvaluepair.keys():
        if not metadata.hascolumn(column):
            raise Exception("Column '{}' does not exist in table '{}'".format(column,parsetree.table))
            logger.get_event_logger().warning("Column '{}' does not exist in table '{}'".format(column,parsetree.table))

        validator.checkdatatype(metadata,column,parsetree.columnvaluepair[column])
        validator.transformvalue(metadata,parsetree.columnvaluepair,column)
        validator.validatelength(metadata,column,parsetree.columnvaluepair[column])
예제 #5
0
def validatecondition(parsetree):
    if parsetree.condition is None:
        return

    metadata = Metadata(parsetree.database, parsetree.table)

    column = list(parsetree.condition.keys())[0]
    value = parsetree.condition[column]

    if not metadata.hascolumn(column):
        raise Exception("Column '{}' does not exist in table '{}'".format(
            column, parsetree.table))
        logger.get_event_logger().warning(
            "Column '{}' does not exist in table '{}'".format(
                column, parsetree.table))

    checkdatatype(metadata, column, value)

    transformvalue(metadata, parsetree.condition, column)
    transformcomparator(parsetree)