github.com/RevenueMonster/sqlike@v1.0.6/sqlike/helper.go (about)

     1  package sqlike
     2  
     3  import (
     4  	"github.com/RevenueMonster/sqlike/reflext"
     5  	"github.com/RevenueMonster/sqlike/sql/util"
     6  	"github.com/RevenueMonster/sqlike/sqlike/logs"
     7  )
     8  
     9  func getLogger(logger logs.Logger, debug bool) logs.Logger {
    10  	if debug {
    11  		return logger
    12  	}
    13  	return nil
    14  }
    15  
    16  // we should skip column generated by virtual & stored columns on insertion and migration
    17  func skipColumns(sfs []reflext.StructFielder, omits util.StringSlice) (fields []reflext.StructFielder) {
    18  	fields = make([]reflext.StructFielder, 0, len(sfs))
    19  	length := len(omits)
    20  	for _, sf := range sfs {
    21  		// omit all the struct field with `generated_column` tag, it shouldn't include when inserting to the db
    22  		if _, ok := sf.Tag().LookUp("generated_column"); ok {
    23  			continue
    24  		}
    25  		// omit all the field provided by user
    26  		if length > 0 && omits.IndexOf(sf.Name()) > -1 {
    27  			continue
    28  		}
    29  		fields = append(fields, sf)
    30  	}
    31  	return
    32  }