Commit graph

161 commits

Author SHA1 Message Date
stronk7
db3df7266a Deprecating sql_as (now the AS keyword is required in COLUMN aliases)
Merged from MOODLE_17_STABLE
2006-10-30 17:41:55 +00:00
stronk7
b716e2e069 Now record_cache is controlled by $CFG->enablerecordcache
Merged from MOODLE_17_STABLE
2006-10-28 19:56:34 +00:00
stronk7
2fd40f8cbe Moved cache cleaning code near the begin of functions. Sometimes
it wasnt' executed due to function ending. MDL-7196

Merged from MOODLE_17_STABLE
2006-10-28 17:53:00 +00:00
stronk7
4bfb64aad2 Counting extra updates performed by Oracle & MSSQL in PERF 2006-10-27 17:49:25 +00:00
stronk7
068744a7a5 I forgot to globalize $record_cache in delete_record_XXX() functions.
Merged from MOODLE_17_STABLE
2006-10-27 17:14:58 +00:00
stronk7
9d98635b5e Minor improvements to the get_record() cache. Part of MDL-7196
1) Check the cache issset() before unset() it.
2) In the set_field() function, if fieldX = 'id',
   just delete such element from the cache,
   else the whole table
3) Add some more unset() operations against the cache in
   the delete_xxxx() dmllib functions.

Merged from MOODLE_17_STABLE
2006-10-27 16:56:34 +00:00
toyomoyo
4bda5c717c merged, taking care of a warning 2006-10-27 02:15:02 +00:00
moodler
92309430b8 Merged get_record caching from MDL-7196 in stable (thanks sam!) 2006-10-26 07:57:07 +00:00
stronk7
92602651dc Now insert_record() is using $db->GenID() to retrieve
sequence numbers for Oracle. Just wondering if the same
function should be used by PostgreSQL too. MDL-7183

Merged from MOODLE_17_STABLE
2006-10-23 17:46:08 +00:00
stronk7
f96a5db1c4 strip "old" harcoded "limit" clauses from the sql passed and
debug about them. MDL-7173

Merged from MOODLE_17_STABLE
2006-10-23 07:46:10 +00:00
stronk7
b9c3b8c734 Prevent MSSQL to return from insert_record() before
trying to execute the updating of LOBs.

Merged from MOODLE_17_STABLE
2006-10-23 00:01:57 +00:00
stronk7
c1bf1b0073 Debugging sql_paging_limit() as deprecated and
enforcing get_field_sql() to return 1 record max

Merged from MOODLE_17_STABLE
2006-10-22 23:21:59 +00:00
stronk7
cb4c207832 Adding limitfrom and limitnum parameters to a bunch of
rarely executed functions...

Merged from MOODLE_17_STABLE
2006-10-22 22:37:30 +00:00
stronk7
1afef7d9b3 Now insert/update/set of BINATY fields is supported by MSSQL
(and easier to add new DB in the furure) MDL-7062

Merged from MOODLE_17_STABLE
2006-10-17 23:37:58 +00:00
stronk7
e45346f98e Fixed typo that was preventing correct BLOB storage under Oracle.
Merged from MOODLE_17_STABLE
2006-10-17 18:31:56 +00:00
stronk7
6b7be6d74f Now set_field() supports Oracle LOBs. Better error handling of oracle_update_lobs()
Merged from MOODLE_17_STABLE
2006-10-15 20:21:27 +00:00
stronk7
73ad2d0c29 Now update_record() supports LOBs under Oracle. Plus prevent empty objects to be updated.
Merged from MOODLE_17_STABLE
2006-10-15 19:40:33 +00:00
stronk7
1a8078073e Minor changes + debug info in UpdateXlob()
Merged from MOODLE_17_STABLE
2006-10-15 18:37:01 +00:00
stronk7
b825e563c0 - Introducing the first version of the new mssql_n adodb driver (not finished, just for experimenting).
- 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
2006-10-15 16:41:55 +00:00
stronk7
97ab73aad4 Add odbc_msql dbtype to a bunch of places. 2006-10-09 22:55:55 +00:00
stronk7
5fbab6173a Now Oracle uses the new find_sequence_name() function to find the
correct sequence name for each table on insert.

Also, introduced initial hooks to support Oracle LOBs in insert_record()
2006-10-08 09:58:11 +00:00
moodler
937b63ee52 Adding some serious checks to make Moodle break when there is any
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.
2006-10-01 09:16:49 +00:00
stronk7
66841aed29 One wrong use of onespace2empty() - an strange function - :-/
in the DIRTY HACK was causing not info to be returned under Oracle
by the get_field_sql() function, so sequence numbers were broken.
2006-09-26 18:27:44 +00:00
skodak
6de2a7b6c8 fixed another missing global $CFG 2006-09-26 08:49:47 +00:00
skodak
05f8f7e76b fixed missing global $CFG 2006-09-26 06:31:18 +00:00
martinlanghoff
1e7368e782 dmlib: set_field() now has the Oracle DIRTY HACK too! 2006-09-26 05:10:39 +00:00
martinlanghoff
5a55af6097 dmlib: Add Oracle dirty hack cleanup to recordset_to_menu() get_field_sql() and get_fieldset_sql()
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.
2006-09-26 05:10:18 +00:00
martinlanghoff
44f9885044 sql_concat(): fixed param order thinko -- and now it works too! 2006-09-26 05:09:48 +00:00
martinlanghoff
95008f81c6 sql_ilike() -- added notes on Oracle support or lack thereof 2006-09-26 05:07:28 +00:00
martinlanghoff
38e02f4c32 Introducing sql_concat_join($sep, $array) helper
returns the SQL to do the equivalente of a join() or implode()
on the DB server. Watch the RDBMS work! ;-)
2006-09-26 05:05:54 +00:00
martinlanghoff
0ce96669c9 Introducing sql_concat() - and use it in sql_fullname()
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.
2006-09-26 05:02:59 +00:00
mjollnir_
6e58026b29 recredited the sql_primary_role_subselect function to correct author (much as I would like to claim it) 2006-09-26 04:41:45 +00:00
moodler
867f5adb73 Moved Penny's funky sql function into dmllib.php 2006-09-26 04:33:59 +00:00
stronk7
f46e2c8cbc Changed one LIMIT to a cross-db WHERE clause 2006-09-24 09:59:25 +00:00
stronk7
2a2905fb6f Now using ADOdb standard transactions. Some day, we should switch to
Smart Transactions (http://phplens.com/adodb/tutorial.smart.transactions.html)
as they autodetect errors and are nestable and easier to write
2006-09-22 20:05:44 +00:00
stronk7
94e65cc36c Now all the insert_record() and update_record() calls under
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.
2006-09-21 18:30:50 +00:00
stronk7
0ce61c841f Force ANSI NULLs under mssql. It's not critical to work
but it avoids some problems when changing nullability
of fields in the future.
2006-09-21 07:44:56 +00:00
skodak
eef868d17d major whitespace cleanup - fixed trailng whitespace in new files and admin area 2006-09-20 21:00:45 +00:00
skodak
daa588aa52 merged changes in moodlelib.php from MOODLE_16_STABLE 2006-09-20 18:40:22 +00:00
martinlanghoff
d7e901c669 dmlib: changed array access to keyed instead of ordinal.
This supports the move to ADODB_FETCH_ASSOC instead of ADODB_FETCH_BOTH.
see:
http://docs.moodle.org/en/XMLDB_Problems#ADOdb_fetch_mode_.28ASSOC.2C_NUM_and_BOTH.29

Author: Luke Hudson <luke@catalyst.net.nz>
2006-09-20 11:26:47 +00:00
vyshane
3d5fb99f00 Fixed bug in get_records_sql(). This call:
$rs = get_recordset_sql($sql, $limitfrom='', $limitnum='');

should really be:

$rs = get_recordset_sql($sql, $limitfrom, $limitnum);
2006-09-15 06:03:32 +00:00
moodler
ea82d6b638 CHanged a lot of CFG->debug stuff to use the new debuggin() function 2006-09-13 09:45:07 +00:00
moodler
3d1885af1e Added some checking that should not be necessary but I had notices in one extreme situation 2006-09-13 08:09:18 +00:00
stronk7
83a78d9d17 PHPDoc update. 2006-09-10 18:37:57 +00:00
stronk7
5f45d2ae80 New function sql_order_by_text() to automatically build
custom expresions to being used in ORDER BY clauses with
TEXT columns.
2006-09-09 13:51:40 +00:00
stronk7
e20d180c11 DIRTY HACK to convert back all the ' ' (1 space) field contents
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...
2006-09-07 23:48:48 +00:00
stronk7
3c4f35e645 Mark as deprecated the sql_paging_limit_function() 2006-09-05 21:42:20 +00:00
stronk7
3c242a66f5 Now get_records_sql() supports limitfrom and limitnum.
Required to kill all those hardcoded LIMIT x,y clauses.
2006-09-05 18:53:08 +00:00
stronk7
95f610334e Mark two functions as deprecated because that's standard now. 2006-09-04 22:40:42 +00:00
stronk7
fda5418401 $CFG required. 2006-09-04 22:30:56 +00:00