FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » FUDforum Development » Bug Reports » upgrade.php and q_bitand() (Does not take into account appropriate DB driver)
Show: Today's Messages :: Unread Messages :: Show Polls :: Message Navigator
| Subscribe to topic | Bookmark topic 
Switch to threaded view of this topic Create a new topic Submit Reply
upgrade.php and q_bitand() [message #167363] Sun, 10 June 2012 11:20 Go to next message
NeXuS is currently offline  NeXuS
Messages: 121
Registered: July 2010
Location: South Korea
Karma: 5
Senior Member
Contributing Core Developer
add to buddy list
ignore all messages by this user
There is a hack in upgrade.php (around line 605) which works only for a few DBs.
  // Another hack: q_bitand() was introduced in 3.0.2 and is used in this script.
  // but the possibly older driver we've loaded may not have it yet.
  if (!function_exists('q_bitand')) {
    function q_bitand($fieldLeft, $fieldRight) {
      return $fieldLeft .' & '. $fieldRight;
    }
  }

We should really find the appropriate db.inc and load it before ever using the function.
Re: upgrade.php and q_bitand() [message #167366 is a reply to message #167363] Sun, 10 June 2012 15:25 Go to previous messageGo to next message
naudefj is currently offline  naudefj   South Africa
Messages: 3631
Registered: December 2004
Karma: 17
Senior Member
Administrator
Core Developer
add to buddy list
ignore all messages by this user
We need to load db.inc before we unpack the new files. Thus, the db.inc we load may not have q_bitand() in it yet (versions 3.0.0 and 3.0.1).

Also, once loaded, you cannot load it again after unpacking the new files as all functions are already defined.
Re: upgrade.php and q_bitand() [message #167371 is a reply to message #167366] Sun, 10 June 2012 23:46 Go to previous messageGo to next message
NeXuS is currently offline  NeXuS   Korea, Republic of
Messages: 121
Registered: July 2010
Location: South Korea
Karma: 5
Senior Member
Contributing Core Developer
add to buddy list
ignore all messages by this user
Well, then we need to have different implementations in the installer as well, otherwise it will not work with some of the DBs.
Re: upgrade.php and q_bitand() [message #167372 is a reply to message #167371] Mon, 11 June 2012 01:46 Go to previous messageGo to next message
naudefj is currently offline  naudefj   South Africa
Messages: 3631
Registered: December 2004
Karma: 17
Senior Member
Administrator
Core Developer
add to buddy list
ignore all messages by this user
This is why I want to make 3.0.4 the terminal release of the 3.0 series.
Users on older releases will have to upgrade to 3.0.4 before they will be allowed to upgrade to subsequent releases.
Thus, in future db.inc will always have the q_bit*() functions.
Re: upgrade.php and q_bitand() [message #167449 is a reply to message #167372] Fri, 22 June 2012 03:53 Go to previous messageGo to next message
NeXuS is currently offline  NeXuS
Messages: 121
Registered: July 2010
Location: South Korea
Karma: 5
Senior Member
Contributing Core Developer
add to buddy list
ignore all messages by this user
Anyway I have a patch ready for this problem. I'll submit it ASAP.
Re: upgrade.php and q_bitand() [message #167450 is a reply to message #167449] Fri, 22 June 2012 04:03 Go to previous messageGo to next message
NeXuS is currently offline  NeXuS
Messages: 121
Registered: July 2010
Location: South Korea
Karma: 5
Senior Member
Contributing Core Developer
add to buddy list
ignore all messages by this user
Commited @5516, please double check
Re: upgrade.php and q_bitand() [message #167455 is a reply to message #167450] Sat, 23 June 2012 12:13 Go to previous messageGo to next message
naudefj is currently offline  naudefj   South Africa
Messages: 3631
Registered: December 2004
Karma: 17
Senior Member
Administrator
Core Developer
add to buddy list
ignore all messages by this user
Nothing wrong with the patch, except that it's unnecessary. Support for Oracle (oci8 & pdo_oci) was added in 3.0.2 and support for DB2 and Firebird (Interbase) was added in 3.0.3. So, if we load their DB drivers, we will always have a q_bit* function. No need to define it in the installer. On the other hand, it's quite harmless.
Re: upgrade.php and q_bitand() [message #167458 is a reply to message #167455] Mon, 25 June 2012 03:09 Go to previous message
NeXuS is currently offline  NeXuS
Messages: 121
Registered: July 2010
Location: South Korea
Karma: 5
Senior Member
Contributing Core Developer
add to buddy list
ignore all messages by this user
Oh, I didn't look through the changelog, so I thought it would be necessary to have the function around for all the DBs. My bad! XD

Still waiting for an answer from the MySQL guys regarding the problem with the group_cache view. Sad
Quick Reply
Formatting Tools:   
  Switch to threaded view of this topic Create a new topic
Previous Topic: Sort Private Messages by Name
Next Topic: fud30_group_cache table, shouldn't it be a view?
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Mon Dec 11 12:15:11 EST 2017

Total time taken to generate the page: 0.00798 seconds