pear / db Goto Github PK
View Code? Open in Web Editor NEWHome Page: http://pear.php.net/package/DB
Home Page: http://pear.php.net/package/DB
Waiting for several bugfixes before do a release.
At the moment, only changes in comments are present. #30
In SQLite3 sequence table created automatically and store AI informations for all tables in only one sequence table, if AUTOINCREMENT
is selected in a table.
Maybe create_sequence
, drop_sequence
, and sequence_name
are not needed anymore, and nextId
has to be changed to the new sequence table, or to work without sequence table.
Maybe AUTOINCREMENT
is needed, because AI works if PRIMARY KEY
is present, too.
Maybe AUTOINCREMENT
is obsolet, because the field has to be PRIMARY KEY
to select AUTOINCREMENT
.
prepare and release version 1.12.0
Many tests are broken: #26 (comment)
First fix from @remicollet was not successful, because of to many broken things: Fix test suite with sqlite3 #28
Whole test suite must be fixed.
method fetchInfo (line 379 of oci8.php) doesn't work because it's calling oci_fetch_array with wrong parameters (is using the same parameters for the deprecated function OciFetchInto)
For backwards-compatibility, leave the function and remove the workaround and create a ALTER TABLE sql statement
Testcase tests/driver/16tableinfo.phpt
encounters a failure when run on PHP 8.0, as seen below. The behavior differences appear to be in how the queried table characteristics are interpreted by DB
. The paste below is the runtime output of the testcase... you can visually compare it to the --EXPECT--
section in the PHPT to see what's different.
As best I can tell, some flags
are interpreted differently on 8.0 as compared to PHP7 and PHP5, e.g.
flags ... was 'not_null multiple_key group_by' but we expected 'not_null multiple_key'
while also some column characteristics show up differently, e.g.
type ... was 'varchar' but we expected 'string'
I thought at first that maybe the PHP 8.0 behavior should be different based on that test platform's database version (newer?) as compared to the PHP7 and PHP5 platforms, but I don't know that for sure.
@schengawegga , if you are able to research this testcase, see how it acts on your various PHP8 platforms. If you become convinced that the runtime behavior as seen below is correct, then I can adjust this testcase to only run itself against PHP7 and older... and create a sister testcase just for PHP8 and up, that is written to --EXPECT--
these flag and type differences.
tests/driver/16tableinfo.out
==========================================
Passing result OBJECT to method in DB_<type>.
Output = default.
------------------------------------------
column 0:
DIDN'T match expected values...
~~~~~~~~
Expected:
table ... matched expected value
name => a
type ... matched expected value
len ... matched expected value
flags ... matched expected value
~~~~
Actual:
table ... matched expected value
name => a
type ... matched expected value
len ... matched expected value
flags ... was 'not_null multiple_key group_by' but we expected 'not_null multiple_key'
~~~~~~~~
column 9:
DIDN'T match expected values...
~~~~~~~~
Expected:
table ... matched expected value
name => d
type ... matched expected value
len ... matched expected value
flags ... matched expected value
~~~~
Actual:
table ... matched expected value
name => d
type ... was 'varchar' but we expected 'string'
len ... matched expected value
flags ... matched expected value
~~~~~~~~
==========================================
Passing result ID to method in DB_<type>.
Output = DB_TABLEINFO_ORDER.
------------------------------------------
column 0:
DIDN'T match expected values...
~~~~~~~~
Expected:
table ... matched expected value
name => a
type ... matched expected value
len ... matched expected value
flags ... matched expected value
~~~~
Actual:
table ... matched expected value
name => a
type ... matched expected value
len ... matched expected value
flags ... was 'not_null multiple_key group_by' but we expected 'not_null multiple_key'
~~~~~~~~
column 3:
DIDN'T match expected values...
~~~~~~~~
Expected:
table ... matched expected value
name => d
type ... matched expected value
len ... matched expected value
flags ... matched expected value
~~~~
Actual:
table ... matched expected value
name => d
type ... matched expected value
len ... matched expected value
flags ... was 'not_null multiple_key' but we expected 'not_null multiple_key binary'
~~~~~~~~
num_fields: matched expected result
order:
matched expected result
==========================================
Passing DB_TABLEINFO_ORDERTABLE to method in DB_result.
Output = DB_TABLEINFO_ORDERTABLE.
------------------------------------------
column 0:
DIDN'T match expected values...
~~~~~~~~
Expected:
table ... matched expected value
name => a
type ... matched expected value
len ... matched expected value
flags ... matched expected value
~~~~
Actual:
table ... matched expected value
name => a
type ... matched expected value
len ... matched expected value
flags ... was 'not_null multiple_key group_by' but we expected 'not_null multiple_key'
~~~~~~~~
column 3:
DIDN'T match expected values...
~~~~~~~~
Expected:
table ... matched expected value
name => d
type ... matched expected value
len ... matched expected value
flags ... matched expected value
~~~~
Actual:
table ... matched expected value
name => d
type ... matched expected value
len ... matched expected value
flags ... was 'not_null multiple_key' but we expected 'not_null multiple_key binary'
~~~~~~~~
num_fields: matched expected result
ordertable[phptest]: matched expected result
ordertable[phptest_fk]: matched expected result
==========================================
Passing TABLE NAME 'phptest_fk' to method in DB_<driver>.
Output = default.
------------------------------------------
column 0:
DIDN'T match expected values...
~~~~~~~~
Expected:
table ... matched expected value
name => a
type ... matched expected value
len ... matched expected value
flags ... matched expected value
~~~~
Actual:
table ... matched expected value
name => a
type ... matched expected value
len ... matched expected value
flags ... was 'not_null multiple_key group_by' but we expected 'not_null multiple_key'
~~~~~~~~
column 1:
DIDN'T match expected values...
~~~~~~~~
Expected:
table ... matched expected value
name => fk
type ... matched expected value
len ... matched expected value
flags ... matched expected value
~~~~
Actual:
table ... matched expected value
name => fk
type ... matched expected value
len ... matched expected value
flags ... was 'not_null primary_key group_by' but we expected 'not_null primary_key'
~~~~~~~~
column 2:
matched expected result
column 3:
DIDN'T match expected values...
~~~~~~~~
Expected:
table ... matched expected value
name => d
type ... matched expected value
len ... matched expected value
flags ... matched expected value
~~~~
Actual:
table ... matched expected value
name => d
type ... matched expected value
len ... matched expected value
flags ... was 'not_null multiple_key' but we expected 'not_null multiple_key binary'
~~~~~~~~
column 4:
DIDN'T match expected values...
~~~~~~~~
Expected:
table ... matched expected value
name => e
type ... matched expected value
len ... matched expected value
flags ... matched expected value
~~~~
Actual:
table ... matched expected value
name => e
type ... was 'char' but we expected 'string'
len ... matched expected value
flags ... matched expected value
~~~~~~~~
column 5:
DIDN'T match expected values...
~~~~~~~~
Expected:
table ... matched expected value
name => f
type ... matched expected value
len ... matched expected value
flags ... matched expected value
~~~~
Actual:
table ... matched expected value
name => f
type ... was 'decimal' but we expected 'real'
len ... matched expected value
flags ... matched expected value
~~~~~~~~
==========================================
Passing TABLE NAME 'phptest_fk' to method in DB_<driver>.
Output = DB_TABLEINFO_FULL.
------------------------------------------
column 0:
DIDN'T match expected values...
~~~~~~~~
Expected:
table ... matched expected value
name => a
type ... matched expected value
len ... matched expected value
flags ... matched expected value
~~~~
Actual:
table ... matched expected value
name => a
type ... matched expected value
len ... matched expected value
flags ... was 'not_null multiple_key group_by' but we expected 'not_null multiple_key'
~~~~~~~~
order:
matched expected result
ordertable[phptest_fk]:
matched expected result
==========================================
Passing TABLE NAME 'phptest_fk' to method in DB_<driver> AGAIN.
Output = DB_TABLEINFO_FULL, lowercasing turned off.
------------------------------------------
column 0:
DIDN'T match expected values...
~~~~~~~~
Expected:
table ... matched expected value
name => a
type ... matched expected value
len ... matched expected value
flags ... matched expected value
~~~~
Actual:
table ... matched expected value
name => a
type ... matched expected value
len ... matched expected value
flags ... was 'not_null multiple_key group_by' but we expected 'not_null multiple_key'
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.