general module
Return the type of the arguments given to the function
# File plruby.rb, line 635 def args_type end
Return the name of the columns for the table
# File plruby.rb, line 640 def column_name(table) end
return the type of the columns for the table
# File plruby.rb, line 645 def column_type(table) end
Return the context (or nil) associated with a SETOF function (ExprMultiResult)
# File plruby.rb, line 651 def context end
Set the context for a SETOF function (ExprMultiResult)
# File plruby.rb, line 656 def context= end
Call parser/planner/optimizer/executor for query. The optional count value tells spi_exec the maximum number of rows to be processed by the query.
SELECT
If the query is a SELECT statement, an array is return (if count is not specified or with a value > 1). Each element of this array is an hash where the key is the column name.
If type is specified it can take the value
"array" return for each column an array with the element
"hash" return for each column an hash with the keys
{"name", "value", "type", "len", "typeid"}
"value" return all values
For example this procedure display all rows in the table pg_table.
CREATE FUNCTION pg_table_dis() RETURNS int4 AS ' res = PL.exec("select * from pg_class") res.each do |x| warn "======================" x.each do |y, z| warn "name = #{y} -- value = #{z}" end warn "======================" end return res.size ' LANGUAGE 'plruby';
A block can be specified, in this case a call to yield() will be made.
If count is specified with the value 1, only the first row (or FALSE if it fail) is returned as a hash. Here a little example :
CREATE FUNCTION pg_table_dis() RETURNS int4 AS ' PL.exec("select * from pg_class", 1) { |y, z| warn "name = #{y} -- value = #{z}" } return 1 ' LANGUAGE 'plruby';
Another example with count = 1
create table T_pkey1 ( skey1 int4, skey2 varchar(20), stxt varchar(40) ); create function toto() returns bool as ' warn("=======") PL.exec("select * from T_pkey1", 1, "hash") do |a| warn(a.inspect) end warn("=======") PL.exec("select * from T_pkey1", 1, "array") do |a| warn(a.inspect) end warn("=======") PL.exec("select * from T_pkey1", 1) do |a| warn(a.inspect) end warn("=======") return true ' language 'plruby'; plruby_test=# select toto(); NOTICE: ======= NOTICE: {"name"=>"skey1", "typeid"=>23, "type"=>"int4", "value"=>"12", "len"=>4} NOTICE: {"name"=>"skey2", "typeid"=>1043, "type"=>"varchar", "value"=>"a", "len"=>20} NOTICE: {"name"=>"stxt", "typeid"=>1043, "type"=>"varchar", "value"=>"b", "len"=>40} NOTICE: ======= NOTICE: ["skey1", "12", "int4", 4, 23] NOTICE: ["skey2", "a", "varchar", 20, 1043] NOTICE: ["stxt", "b", "varchar", 40, 1043] NOTICE: ======= NOTICE: ["skey1", "12"] NOTICE: ["skey2", "a"] NOTICE: ["stxt", "b"] NOTICE: ======= toto ------ t (1 row) plruby_test=#
SELECT INTO, INSERT, UPDATE, DELETE
return the number of rows insered, updated, deleted, ...
UTILITY
return TRUE
# File plruby.rb, line 789 def exec(string [, count [, type]]) end
Deprecated : See PL::Plan::new and PL::Plan#save
Prepares AND SAVES a query plan for later execution. It is a bit different from the C level SPI_prepare in that the plan is automatically copied to the toplevel memory context.
If the query references arguments, the type names must be given as a Ruby array of strings. The return value from prepare is a PL::Plan object to be used in subsequent calls to PL::Plan#exec.
If the hash given has the keys count, output these values will be given to the subsequent calls to each
# File plruby.rb, line 810 def prepare(string[, types]) end
Duplicates all occurences of single quote and backslash characters. It should be used when variables are used in the query string given to spi_exec or spi_prepare (not for the value list on execp).
# File plruby.rb, line 665 def quote(string) end
Return the table description given to a function returning a SETOF
# File plruby.rb, line 686 def result_description end
Return the name of the columns for a function returning a SETOF
# File plruby.rb, line 670 def result_name end
Return the number of columns for a function returning a SETOF
# File plruby.rb, line 681 def result_size end
Return the type of the columns for a function returning a SETOF or the type of the return value
# File plruby.rb, line 676 def result_type end
Generated with the Darkfish Rdoc Generator 2.