Merge branch 'v1' of github.com:Masterminds/squirrel into issue_126
diff --git a/select.go b/select.go
index 7037443..eb2c1e0 100644
--- a/select.go
+++ b/select.go
@@ -208,6 +208,15 @@
return data.ToSql()
}
+func (b SelectBuilder) MustSql() (string, []interface{}, error) {
+ data := builder.GetStruct(b).(selectData)
+ sql, args, err := data.ToSql()
+ if err != nil {
+ panic(err)
+ }
+ return sql, args, err
+}
+
func (b SelectBuilder) toSqlRaw() (string, []interface{}, error) {
data := builder.GetStruct(b).(selectData)
return data.toSqlRaw()
diff --git a/select_test.go b/select_test.go
index 72c074c..83bcc14 100644
--- a/select_test.go
+++ b/select_test.go
@@ -176,6 +176,18 @@
assert.Equal(t, "SELECT * FROM foo WHERE x = $1 AND NOT EXISTS ( SELECT * FROM bar WHERE y = $2 )", outerSql)
}
+func TestMustSql(t *testing.T) {
+ func() {
+ defer func() {
+ if r := recover(); r == nil {
+ t.Errorf("TestUserFail should have panicked!")
+ }
+ }()
+ // This function should cause a panic
+ Select().From("foo").MustSql()
+ }()
+}
+
func TestEmptyWhereClause(t *testing.T) {
sql, _, err := Select("*").From("users").ToSql()
assert.NoError(t, err)