github.com/turbot/steampipe@v1.7.0-rc.0.0.20240517123944-7cef272d4458/pkg/introspection/plugin_table_sql.go (about)

     1  package introspection
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/turbot/steampipe/pkg/constants"
     7  	"github.com/turbot/steampipe/pkg/db/db_common"
     8  	"github.com/turbot/steampipe/pkg/steampipeconfig/modconfig"
     9  )
    10  
    11  func GetPluginTableCreateSql() db_common.QueryWithArgs {
    12  	return db_common.QueryWithArgs{
    13  		Query: fmt.Sprintf(`CREATE TABLE IF NOT EXISTS %s.%s (
    14  				plugin_instance TEXT,
    15  				plugin TEXT NOT NULL,
    16  				version TEXT ,
    17  				memory_max_mb INTEGER,
    18  				limiters JSONB,
    19  				file_name TEXT, 
    20  				start_line_number INTEGER, 
    21  				end_line_number INTEGER				
    22  		);`, constants.InternalSchema, constants.PluginInstanceTable),
    23  	}
    24  }
    25  
    26  func GetPluginTablePopulateSql(plugin *modconfig.Plugin) db_common.QueryWithArgs {
    27  	return db_common.QueryWithArgs{
    28  		Query: fmt.Sprintf(`INSERT INTO %s.%s (
    29  plugin,
    30  version,
    31  plugin_instance,
    32  memory_max_mb,
    33  limiters,                
    34  file_name,
    35  start_line_number,
    36  end_line_number
    37  )
    38  	VALUES($1,$2,$3,$4,$5,$6,$7,$8)`, constants.InternalSchema, constants.PluginInstanceTable),
    39  		Args: []any{
    40  			plugin.Plugin,
    41  			plugin.Version,
    42  			plugin.Instance,
    43  			plugin.MemoryMaxMb,
    44  			plugin.Limiters,
    45  			plugin.FileName,
    46  			plugin.StartLineNumber,
    47  			plugin.EndLineNumber,
    48  		},
    49  	}
    50  }
    51  
    52  func GetPluginTableDropSql() db_common.QueryWithArgs {
    53  	return db_common.QueryWithArgs{
    54  		Query: fmt.Sprintf(
    55  			`DROP TABLE IF EXISTS %s.%s;`,
    56  			constants.InternalSchema,
    57  			constants.PluginInstanceTable,
    58  		),
    59  	}
    60  }
    61  
    62  func GetPluginTableGrantSql() db_common.QueryWithArgs {
    63  	return db_common.QueryWithArgs{
    64  		Query: fmt.Sprintf(
    65  			`GRANT SELECT ON TABLE %s.%s to %s;`,
    66  			constants.InternalSchema,
    67  			constants.PluginInstanceTable,
    68  			constants.DatabaseUsersRole,
    69  		),
    70  	}
    71  }