-
- if a user with unsufficient permissions trys to select a database
- PEAR::DB previously threw a "no database selected" error instead
- of a more proper "insufficient permissions". This is fixed now.
-
- if a user selects a nonexistant database PEAR::DB threw a
- "no database selected" error instead of "no such database".
- This is fixed as well.
-
- I added two new constants to DB.php and a simple case construct to
- DB/mysql.php which can be easily extended to achive the above. I
- hope this is ok.
- Thanks to Till Gerken for mentioning this.
Bug #15454 results from a bug in GMP. If you pass in a string '0xABCD' and
specify a base of 0, GMP figures out that it is hex and skips over the 0x
characters. If you specify base 16, then it doesn't skip those chars.
This was confirmed with the following test program:
#include <stdio.h>
#include <gmp.h>
int main()
{
char *str_one, *str_two;
mpz_t num_one, num_two;
mpz_init_set_str (num_one, "0x45", 0);
str_one = mpz_get_str(NULL, 10, num_one);
mpz_init_set_str (num_two, "0x45", 16);
str_two = mpz_get_str(NULL, 10, num_two);
printf("%s / %s\n", str_one, str_two);
mpz_clear (num_one);
mpz_clear (num_two);
return 0;
}
We now take anything that starts with 0[xX] as hexidecimal and anything
that starts 0[bB] as binary (this is what GMP does internally). We also
no longer force the base to 10 or 16, but instead let GMP decide what the
best base is, be it hex, dec, or octal.
- only invalidate the define list after all rows from a REFCORSOR are read,
"normal" corsors will now remember their column defines. this means that
ocigetcolumn[name|type|..] will from now on work even after the result set
has been read.
Note: only standard Zend objects are working now. This is definitely going to
break custom objects like COM, Java, etc. - this will be fixed later.
Also, this may break other things that access objects' internals directly.