webmcp
view libraries/mondelefant/mondelefant_native.autodoc.lua @ 217:7f9c9c4434a1
Bugfixes/improvements in mcp.lua
| author | jbe | 
|---|---|
| date | Fri Jan 30 03:41:00 2015 +0100 (2015-01-30) | 
| parents | ed00b972f40e | 
| children | a533ab6d7337 | 
 line source
     2 --[[--
     3 db_handle,                            -- database handle, or nil in case of error
     4 errmsg,                               -- error message
     5 errcode =                             -- error code
     6 mondelefant.connect{
     7   engine          = "postgresql",     -- no other engine is supported
     8   conninfo        = conninfo,         -- string passed directly to PostgreSQL's libpq
     9   host            = host,             -- hostname or directory with leading slash where Unix-domain socket resides
    10   hostaddr        = hostaddr,         -- IPv4, or IPv6 address if supported
    11   port            = port,             -- TCP port or socket file name extension
    12   dbname          = dbname,           -- name of database to connect with
    13   user            = user,             -- login name
    14   password        = password,         -- password
    15   connect_timeout = connect_timeout,  -- seconds to wait for connection to be established. Zero or nil means infinite
    16   ...
    17 }  
    19 Opens a new database connection and returns a handle for that connection. You may chose to specify host, port, dbname, etc. as seperated arguments, or to use a "conninfo" string, which is directly passed to PostgreSQL's libpq.
    21 --]]--
    22 -- implemented in mondelefant_native.c as
    23 -- static int mondelefant_connect(lua_State *L)
    24 --//--
    27 --[[--
    28 <db_handle>:close()
    30 Closes the database connection. This method may be called multiple times and is called automatically when the database handle is garbage collected.
    32 --]]--
    33 -- implemented in mondelefant_native.c as
    34 -- static int mondelefant_conn_close(lua_State *L)
    35 --//--
    38 --[[--
    39 status =             -- true, if database connection has no malfunction
    40 <db_handle>:is_ok()
    42 Returns false, if the database connection has a malfunction, otherwise true.
    44 --]]--
    45 -- implemented in mondelefant_native.c as
    46 -- static int mondelefant_conn_is_ok(lua_State *L)
    47 --//--
    50 --[[--
    51 status =                              -- status string
    52 <db_handle>:get_transaction_status()
    54 Depending on the transaction status of the connection a string is returned:
    55 - idle
    56 - active
    57 - intrans
    58 - inerror
    59 - unknown
    61 --]]--
    62 -- implemented in mondelefant_native.c as
    63 -- static int mondelefant_conn_get_transaction_status(lua_State *L)
    64 --//--
    67 --[[--
    68 db_list =                  -- database result being an empty list
    69 <db_handle>:create_list()
    71 Creates an empty database result representing a list. The used meta-table is "result_metatable". The attribute "_connection" is set to the database handle, and the attribute "_type" is set to "list".
    73 --]]--
    74 -- implemented in mondelefant_native.c as
    75 -- static int mondelefant_conn_create_list(lua_State *L)
    76 --//--
    79 --[[--
    80 db_object =                  -- database result being an empty object (row)
    81 <db_handle>:create_object()
    83 Creates an empty database result representing an object (row). The used meta-table is "result_metatable". The attribute "_connection" is set to the database handle, and the attribute "_type" is set to "object". Additionally the attributes "_data", "_dirty" and "_ref" are initialized with an empty table. TODO: Documentation of _data, _dirty and _ref.
    85 --]]--
    86 -- implemented in mondelefant_native.c as
    87 -- static int mondelefant_conn_create_object(lua_State *L)
    88 --//--
    91 --[[--
    92 quoted_encoded_string =    -- encoded and quoted string
    93 <db_handle>:quote_string(
    94   unencoded_string         -- string to encode and quote
    95 )
    97 Prepares a string to be used safely within SQL queries. This function is database dependent (see "backslash_quote" server configuration option for PostgreSQL).
    99 --]]--
   100 -- implemented in mondelefant_native.c as
   101 -- static int mondelefant_conn_quote_string(lua_State *L)
   102 --//--
   105 --[[--
   106 quoted_encoded_data =      -- encoded and quoted data (as Lua string)
   107 <db_handle>:quote_string(
   108   raw_data                 -- data (as Lua string) to encode and quote
   109 )
   111 Prepares a binary string to be used safely within SQL queries (as "bytea" type). This function is database dependent.
   113 --]]--
   114 -- implemented in mondelefant_native.c as
   115 -- static int mondelefant_conn_quote_binary(lua_State *L)
   116 --//--
   119 --[[--
   120 sql_string =
   121 <db_handle>:assemble_command{
   122   template,                    -- template string
   123   arg1,                        -- value to be inserted
   124   arg2,                        -- another value to be inserted
   125   key1 = named_arg3,           -- named value
   126   key2 = named_arg4,           -- another named value
   127   ...
   128 }
   130 This method returns a SQL command by inserting the given values into the template string. Placeholders are "?" or "$", optionally followed by alphanumeric characters (including underscores). Placeholder characters can be escaped by writing them twice. A question-mark ("?") denotes a single value to be inserted, a dollar-sign ("$") denotes a list of sub-structures to be inserted. If alphanumeric characters are following the placeholder character, then these characters form a key, which is used to lookup the value to be used, otherwise values of numeric indicies are used.
   132 TODO: documentation of input-converters
   134 List of sub-structures are tables with an optional "sep" value, which is used as seperator. Each (numerically indexed) entry  of this table is passed to a recursive call of "assemble_command" and concatenated with the given seperator, or ", ", if no seperator is given.
   136 --]]--
   137 -- implemented in mondelefant_native.c as
   138 -- static int mondelefant_conn_assemble_command(lua_State *L)
   139 --//--
   142 --[[--
   143 db_error,               -- error object, or nil in case of success
   144 result1,                -- result of first command
   145 result2,                -- result of second command
   146 ... =
   147 <db_handle>:try_query(
   148   command1,             -- first command (to be processed by "assemble_command" method)
   149   mode1,                -- mode for first command: "list", "object" or "opt_object"
   150   command2,             -- second command (to be processed by "assemble_command" method)
   151   mode2,                -- mode for second command: "list", "object" or "opt_object"
   152   ..
   153 )
   155 This method executes one or multiple SQL commands and returns its results. Each command is pre-processed by the "assemble_command" method of the database handle. A mode can be selected for each command: "list" for normal queries, "object" for queries which have exactly one result row, or "opt_object" which have one or zero result rows. If an error occurs, an error object is returned as first result value.
   157 The mode of the last command may be ommitted and default to "list".
   159 --]]--
   160 -- implemented in mondelefant_native.c as
   161 -- static int mondelefant_conn_try_query(lua_State *L)
   162 --//--
   165 --[[--
   166 <db_error>:escalate()
   168 Causes a Lua error to be thrown. If the database connection has "error_objects" set to true, then the object is thrown itself, otherwise a string is thrown.
   170 --]]--
   171 -- implemented in mondelefant_native.c as
   172 -- static int mondelefant_errorobject_escalate(lua_State *L)
   173 --//--
   176 --[[--
   177 bool =                  -- true or false
   178 <db_error>:is_kind_of(
   179   error_code            -- error code as used by this library
   180 )
   182 Checks, if a given error is of a given kind.
   184 Example:
   185 db_error:is_kind_of("IntegrityConstraintViolation")
   187 --]]--
   188 -- implemented in mondelefant_native.c as
   189 -- static int mondelefant_errorobject_is_kind_of(lua_State *L)
   190 --//--
   193 --[[--
   194 result1,            -- result of first command
   195 result2,            -- result of second command
   196 ... =
   197 <db_handle>:query(
   198   command1,         -- first command (to be processed by "assemble_command" method)
   199   mode1,            -- mode for first command: "list", "object" or "opt_object"
   200   command2,         -- second command (to be processed by "assemble_command" method)
   201   mode2,            -- mode for second command: "list", "object" or "opt_object"
   202   ..
   203 )
   205 Same as "try_query" but raises error, when occurring.
   207 --]]--
   208 -- implemented in mondelefant_native.c as
   209 -- static int mondelefant_conn_query(lua_State *L)
   210 --//--
   213 --[[--
   214 db_list_or_object =     -- first argument is returned
   215 mondelefant.set_class(
   216   db_list_or_object,    -- database result list or object
   217   db_class              -- database class (model)
   218 )
   220 This function sets a class for a given database result list or object. If a result list is given as first argument, the class is also set for all elements of the list.
   222 --]]--
   223 -- implemented in mondelefant_native.c as
   224 -- static int mondelefant_set_class(lua_State *L)
   225 --//--
   228 --[[--
   229 db_class =               -- new database class (model)
   230 mondelefant.new_class()
   232 This function creates a new class (model) used for database result lists or objects.
   234 --]]--
   235 -- implemented in mondelefant_native.c as
   236 -- static int mondelefant_new_class(lua_State *L) 
   237 --//--
   240 --[[--
   241 reference_data =           -- table with reference information
   242 <db_class>:get_reference(
   243   name                     -- reference name
   244 )
   246 This function performs a lookup for the given name in the "reference" table. Prototypes are used, when lookup was unsuccessful.
   248 --]]--
   249 -- implemented in mondelefant_native.c as
   250 -- static int mondelefant_class_get_reference(lua_State *L)
   251 --//--
   254 --[[--
   255 reference_name =                            -- reference name
   256 <db_class>:get_foreign_key_reference_name(
   257   foreign_key                               -- foreign key
   258 )
   260 This function performs a lookup for the given name in the "foreign_keys" table. Prototypes are used, when lookup was unsuccessful.
   262 --]]--
   263 -- implemented in mondelefant_native.c as
   264 -- static int mondelefant_class_get_reference(lua_State *L)
   265 --//--
