53 lines
2.2 KiB
Smarty
53 lines
2.2 KiB
Smarty
{{- $tableNameSingular := .Table.Name | singular | titleCase -}}
|
|
{{- $colDefs := sqlColDefinitions .Table.Columns .Table.PKey.Columns -}}
|
|
{{- $pkNames := $colDefs.Names | stringMap .StringFuncs.camelCase | stringMap .StringFuncs.replaceReserved -}}
|
|
{{- $pkArgs := joinSlices " " $pkNames $colDefs.Types | join ", " -}}
|
|
{{- $schemaTable := .Table.Name | .SchemaTable}}
|
|
// {{$tableNameSingular}}Exists checks if the {{$tableNameSingular}} row exists.
|
|
func {{$tableNameSingular}}Exists(exec boil.Executor, {{$pkArgs}}) (bool, error) {
|
|
var exists bool
|
|
{{if eq .DriverName "mssql" -}}
|
|
sql := "select case when exists(select top(1) 1 from {{$schemaTable}} where {{if .Dialect.IndexPlaceholders}}{{whereClause .LQ .RQ 1 .Table.PKey.Columns}}{{else}}{{whereClause .LQ .RQ 0 .Table.PKey.Columns}}{{end}}) then 1 else 0 end"
|
|
{{- else -}}
|
|
sql := "select exists(select 1 from {{$schemaTable}} where {{if .Dialect.IndexPlaceholders}}{{whereClause .LQ .RQ 1 .Table.PKey.Columns}}{{else}}{{whereClause .LQ .RQ 0 .Table.PKey.Columns}}{{end}} limit 1)"
|
|
{{- end}}
|
|
|
|
if boil.DebugMode {
|
|
fmt.Fprintln(boil.DebugWriter, sql)
|
|
fmt.Fprintln(boil.DebugWriter, {{$pkNames | join ", "}})
|
|
}
|
|
|
|
row := exec.QueryRow(sql, {{$pkNames | join ", "}})
|
|
|
|
err := row.Scan(&exists)
|
|
if err != nil {
|
|
return false, errors.Wrap(err, "{{.PkgName}}: unable to check if {{.Table.Name}} exists")
|
|
}
|
|
|
|
return exists, nil
|
|
}
|
|
|
|
// {{$tableNameSingular}}ExistsG checks if the {{$tableNameSingular}} row exists.
|
|
func {{$tableNameSingular}}ExistsG({{$pkArgs}}) (bool, error) {
|
|
return {{$tableNameSingular}}Exists(boil.GetDB(), {{$pkNames | join ", "}})
|
|
}
|
|
|
|
// {{$tableNameSingular}}ExistsGP checks if the {{$tableNameSingular}} row exists. Panics on error.
|
|
func {{$tableNameSingular}}ExistsGP({{$pkArgs}}) bool {
|
|
e, err := {{$tableNameSingular}}Exists(boil.GetDB(), {{$pkNames | join ", "}})
|
|
if err != nil {
|
|
panic(boil.WrapErr(err))
|
|
}
|
|
|
|
return e
|
|
}
|
|
|
|
// {{$tableNameSingular}}ExistsP checks if the {{$tableNameSingular}} row exists. Panics on error.
|
|
func {{$tableNameSingular}}ExistsP(exec boil.Executor, {{$pkArgs}}) bool {
|
|
e, err := {{$tableNameSingular}}Exists(exec, {{$pkNames | join ", "}})
|
|
if err != nil {
|
|
panic(boil.WrapErr(err))
|
|
}
|
|
|
|
return e
|
|
}
|