If SELECT_JSON returns more than one row of NULL values, SELECT_JSON should return an error.
This commit is contained in:
parent
a1d7684fc1
commit
159cd95599
3 changed files with 16 additions and 8 deletions
|
|
@ -80,7 +80,7 @@ func GenerateDB(db *sql.DB, schema, destDir string, templates ...template.Templa
|
||||||
|
|
||||||
err = template.ProcessSchema(destDir, schemaMetadata, generatorTemplate)
|
err = template.ProcessSchema(destDir, schemaMetadata, generatorTemplate)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to generate schema %s: %d", schemaMetadata.Name, err)
|
return fmt.Errorf("failed to generate schema %s: %w", schemaMetadata.Name, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -131,15 +131,13 @@ func queryJson(ctx context.Context, db Queryable, query string, args []interface
|
||||||
return 1, err
|
return 1, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if jsonData == nil {
|
if jsonData != nil {
|
||||||
return 1, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
err = GlobalConfig.JsonUnmarshalFunc(jsonData, &destPtr)
|
err = GlobalConfig.JsonUnmarshalFunc(jsonData, &destPtr)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 1, fmt.Errorf("jet: invalid json, %w", err)
|
return 1, fmt.Errorf("jet: invalid json, %w", err)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if rows.Next() {
|
if rows.Next() {
|
||||||
return 1, fmt.Errorf("jet: query returned more then one row")
|
return 1, fmt.Errorf("jet: query returned more then one row")
|
||||||
|
|
|
||||||
|
|
@ -956,3 +956,13 @@ world",
|
||||||
}
|
}
|
||||||
`)
|
`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSelectJsonObject_NullMoreThanOneRow(t *testing.T) {
|
||||||
|
var dest map[string]any
|
||||||
|
|
||||||
|
_, err := qrm.QueryJsonObj(ctx, db, `
|
||||||
|
SELECT NULL::json AS "json"
|
||||||
|
UNION ALL
|
||||||
|
SELECT NULL::json AS "json"`, nil, &dest)
|
||||||
|
require.ErrorContains(t, err, "jet: query returned more then one row")
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue