Files
steampipe/pkg/introspection/plugin_table_sql.go

72 lines
1.6 KiB
Go

package introspection
import (
"fmt"
"github.com/turbot/pipe-fittings/v2/plugin"
"github.com/turbot/steampipe/v2/pkg/constants"
"github.com/turbot/steampipe/v2/pkg/db/db_common"
)
func GetPluginTableCreateSql() db_common.QueryWithArgs {
return db_common.QueryWithArgs{
Query: fmt.Sprintf(`CREATE TABLE IF NOT EXISTS %s.%s (
plugin_instance TEXT,
plugin TEXT NOT NULL,
version TEXT ,
memory_max_mb INTEGER,
limiters JSONB,
file_name TEXT,
start_line_number INTEGER,
end_line_number INTEGER
);`, constants.InternalSchema, constants.PluginInstanceTable),
}
}
func GetPluginTablePopulateSql(plugin *plugin.Plugin) db_common.QueryWithArgs {
return db_common.QueryWithArgs{
Query: fmt.Sprintf(`INSERT INTO %s.%s (
plugin,
version,
plugin_instance,
memory_max_mb,
limiters,
file_name,
start_line_number,
end_line_number
)
VALUES($1,$2,$3,$4,$5,$6,$7,$8)`, constants.InternalSchema, constants.PluginInstanceTable),
Args: []any{
plugin.Plugin,
plugin.Version,
plugin.Instance,
plugin.MemoryMaxMb,
plugin.Limiters,
plugin.FileName,
plugin.StartLineNumber,
plugin.EndLineNumber,
},
}
}
func GetPluginTableDropSql() db_common.QueryWithArgs {
return db_common.QueryWithArgs{
Query: fmt.Sprintf(
`DROP TABLE IF EXISTS %s.%s;`,
constants.InternalSchema,
constants.PluginInstanceTable,
),
}
}
func GetPluginTableGrantSql() db_common.QueryWithArgs {
return db_common.QueryWithArgs{
Query: fmt.Sprintf(
`GRANT SELECT ON TABLE %s.%s to %s;`,
constants.InternalSchema,
constants.PluginInstanceTable,
constants.DatabaseUsersRole,
),
}
}