- Now insert_record() is handling Oracle CLOBS and BLOBS properly (really annoying the number of hacks needed).
- Creating one new global object to cache $db->MetaColumns() calls per request, because it's being used
in a lot of places inside dmllib.
TODO: hack update_record() and set_field() to allow Oracle LOBs
enclose all the Oracle function calls into one db transaction
Merged from MOODLE_17_STABLE
select, insert or update on user_students, user_teachers, user_coursecreators,
or user_admins (once roles is installed), because they should not be used
at all and we will drop them soon.
This covers most (all?) the gaps in data retrieval except get_recordset_sql().
To tackle get_recordset_sql, where the actual data retrieval is done within
AdoDB, we would have to to wrap around AdoDB with a subclass, but that would
be dirty, dirty, dirtier.
sql_concat() is just a passthrough to $db->Concat() -- it doesn't
add any value, and I think the dispatching is somewhat expensive.
Just using $db->Concat() should be good enough, were it not for
consistency in our DM API.
Oracle DB use the oracle_dirty_hack() function to transform
empty strings into something different ' ' in order to avoid
the problems with the empty=NULL stupid norm of Oracle.
With this change, Oracle installation works completely.
Now we need to implement everywhere the opposite hack: transforming
all those ' ' (1 whitespace) back to the '' (empty string). Working
on it now.
back to '' (empty string) in order to allow Oracle to work, more
or less until all the not real NOT NULL DEFAULT '' fields were out!
TODO: Apply the same hack to some more functions...
Anyway, this isn't enough and if must be defined in php.ini
or .htaccess, because GPC are added BEFORE this setting
has effect so they are slashed with the default char.
in order to:
- Don't get our first named column under some drivers.
- Be able to migrate to ADODB_FETCH_ASSOC soon.
For more info, http://docs.moodle.org/en/XMLDB_Problems,
in the ADOdb fetch mode (ASSOC, NUM and BOTH) section.
- ddllib.php: Where all the DDL (install/upgrade) functions will be.
- dmllib.php: Where all the DML (select...) functions will be.
- datalib.php: Legacy lib. Its contents should go to other libraries soon.
For more info see: http://docs.moodle.org/en/XMLDB_Roadmap (point 1)