...

Source file src/github.com/doug-martin/goqu/v9/dialect/sqlite3/sqlite3.go

Documentation: github.com/doug-martin/goqu/v9/dialect/sqlite3

     1  package sqlite3
     2  
     3  import (
     4  	"time"
     5  
     6  	"github.com/doug-martin/goqu/v9"
     7  	"github.com/doug-martin/goqu/v9/exp"
     8  )
     9  
    10  func DialectOptions() *goqu.SQLDialectOptions {
    11  	opts := goqu.DefaultDialectOptions()
    12  
    13  	opts.SupportsReturn = false
    14  	opts.SupportsOrderByOnUpdate = true
    15  	opts.SupportsLimitOnUpdate = true
    16  	opts.SupportsOrderByOnDelete = true
    17  	opts.SupportsLimitOnDelete = true
    18  	opts.SupportsConflictUpdateWhere = false
    19  	opts.SupportsInsertIgnoreSyntax = true
    20  	opts.SupportsConflictTarget = true
    21  	opts.SupportsMultipleUpdateTables = false
    22  	opts.WrapCompoundsInParens = false
    23  	opts.SupportsDistinctOn = false
    24  	opts.SupportsWindowFunction = false
    25  	opts.SupportsLateral = false
    26  
    27  	opts.PlaceHolderFragment = []byte("?")
    28  	opts.IncludePlaceholderNum = false
    29  	opts.QuoteRune = '`'
    30  	opts.DefaultValuesFragment = []byte("")
    31  	opts.True = []byte("1")
    32  	opts.False = []byte("0")
    33  	opts.TimeFormat = time.RFC3339Nano
    34  	opts.BooleanOperatorLookup = map[exp.BooleanOperation][]byte{
    35  		exp.EqOp:             []byte("="),
    36  		exp.NeqOp:            []byte("!="),
    37  		exp.GtOp:             []byte(">"),
    38  		exp.GteOp:            []byte(">="),
    39  		exp.LtOp:             []byte("<"),
    40  		exp.LteOp:            []byte("<="),
    41  		exp.InOp:             []byte("IN"),
    42  		exp.NotInOp:          []byte("NOT IN"),
    43  		exp.IsOp:             []byte("IS"),
    44  		exp.IsNotOp:          []byte("IS NOT"),
    45  		exp.LikeOp:           []byte("LIKE"),
    46  		exp.NotLikeOp:        []byte("NOT LIKE"),
    47  		exp.ILikeOp:          []byte("LIKE"),
    48  		exp.NotILikeOp:       []byte("NOT LIKE"),
    49  		exp.RegexpLikeOp:     []byte("REGEXP"),
    50  		exp.RegexpNotLikeOp:  []byte("NOT REGEXP"),
    51  		exp.RegexpILikeOp:    []byte("REGEXP"),
    52  		exp.RegexpNotILikeOp: []byte("NOT REGEXP"),
    53  	}
    54  	opts.UseLiteralIsBools = false
    55  	opts.BitwiseOperatorLookup = map[exp.BitwiseOperation][]byte{
    56  		exp.BitwiseOrOp:         []byte("|"),
    57  		exp.BitwiseAndOp:        []byte("&"),
    58  		exp.BitwiseLeftShiftOp:  []byte("<<"),
    59  		exp.BitwiseRightShiftOp: []byte(">>"),
    60  	}
    61  	opts.EscapedRunes = map[rune][]byte{
    62  		'\'': []byte("''"),
    63  	}
    64  	opts.InsertIgnoreClause = []byte("INSERT OR IGNORE INTO ")
    65  	opts.ConflictFragment = []byte(" ON CONFLICT ")
    66  	opts.ConflictDoUpdateFragment = []byte(" DO UPDATE SET ")
    67  	opts.ConflictDoNothingFragment = []byte(" DO NOTHING ")
    68  	opts.ForUpdateFragment = []byte("")
    69  	opts.OfFragment = []byte("")
    70  	opts.NowaitFragment = []byte("")
    71  	return opts
    72  }
    73  
    74  func init() {
    75  	goqu.RegisterDialect("sqlite3", DialectOptions())
    76  }
    77  

View as plain text