Skip to content
cbandy edited this page Dec 1, 2011 · 20 revisions
Issue Version Status Real-Database Solution
#1893 Error in PDO sqlite 3.0.0 Invalid PDO_SQLite driver implements charset()
#1927 Missing ; in Expression 3.0.0 Fixed Unit tests
#1945 Raw query type 3.0.1 Won’t Database::execute() et al. execute raw SQL
#1957 table prefix with quote_identifier() 3.0.0 Fixed Split Database::quote_identifier() into quote_column(), quote_table() and quote_identifier()
#1998 JOIN USING in builder 3.1.0 Fixed SQL_Table_Reference::using()
#2005 Default result $as_object = FALSE 3.0.9 Fixed Default argument value in Database::execute_query()
#2009 Support OR in JOIN ON conditions 3.3.0 - SQL_Table_Reference::on() accepts SQL_Conditions
#2024 count_records() missing parameter 3.0.0 Fixed Unit tests
#2069 BETWEEN condition 3.0.2 Fixed Unit tests
#2130 alias support in quote_table() 3.0.1 Fixed SQL_Alias class
#2188 PDO + PgSQL last insert id 3.2.0 Won’t Native PgSQL driver
#2219 allow OFFSET without LIMIT 3.0.3 Won’t Native builders implement as necessary
#2233 from()→from() should not list a table twice 3.0.1 Fixed from() overwrites the table reference
#2239 SELECT query drops fields 3.0.1 Fixed Selected columns are not manipulated by SQL_DML_Select
#2261 Standardized introspection 3.0.2 Fixed Database_iIntrospect driver interface closely matches the SQL-92 Information Schema
#2264 Result::as_array() ignores $value 3.0.2 Fixed Unit tests
#2273 PgSQL support 3.1.0 Won’t Native PgSQL driver
#2278 Transaction support 3.1.0 Fixed Database::begin(), Database::commit() and Database::rollback()
#2297 Allow Result serialization 3.0.5 Fixed Database_Result::serializable() cbdf168a
#2308 table prefix ignored in introspection 3.0.2 Fixed Unit tests
#2363 return the right length for decimal data 3.0.3 Fixed Unit tests
#2366 cannot INSERT INTO .. SELECT 3.0.3 Fixed Unit tests
#2376 Regression: not quoting booleans 3.0.4 Fixed Unit tests
#2377 schema support 3.1.0 Fixed SQL_Identifier allows unlimited number of namespaces
#2382 Move column types to config 3.0.4 Fixed Drivers can override SQL::datatype() to handle non-standard types
#2383 Consistent introspection 3.3.0 Database_iIntrospect driver interface closely matches the SQL-92 Information Schema
#2388 query builder does not support parameter binding 3.0.4 Fixed Builders derive from SQL_Expression which has parameter binding
#2399 cannot assign SELECT columns using array 3.0.4 Fixed SQL_DML_Select::columns() accepts an array of columns
#2413 list_tables() throws exception 3.0.4 Fixed Unit tests
#2466 Database_Result as_array() should rewind 3.0.4 Fixed Database_Result::as_array() does not change the iterator position
#2467 ODBC cannot escape values 3.0.4 Invalid Builders are passed directly to Database::execute() et al. The driver can turn this into parameterized SQL when necessary
#2481 Allow DELETE .. LIMIT 3.0.4 Fixed Allowed in SQL_DML_Delete with documented RDBMS support
#2549 UNION support 3.1.0 Fixed SQL_DML_Set::union()
#2636 Incorrect SQL generated when escaping floats 3.0.4 Fixed Unit tests. Database_Numeric can be used for advanced formatting
#2741 count_last_query() 3.0.5 Fixed Builders can be reused with LIMIT and OFFSET unset
#2753 Dynamically set the default database instance 3.0.5 Fixed The ‘default’ Database instance can be given any configuration array in Database::instance()
#2760 Allow cache to be cleared and fetched in one call 3.2.0 Fixed Database_Query_Cached has methods for each use case. set() will execute and cache unconditionally 2fc65909
#2761 Query should not require a query type 3.1.0 Invalid Split Database::query() into Database::execute_command(), Database::execute_insert() and Database::execute_query()
#2780 table prefixes not handled correctly in JOIN 3.0.8 Fixed SQL_Table receives the table prefix while SQL_Identifier does not
#2799 MySQL disconnect() does not return correct boolean 3.0.5 Fixed Database::disconnect() throws a Database_Exception upon error
#2842 Allow single expressions in WHERE 3.3.0 SQL_DML_Select::where() accepts a single SQL_Expression
#2851 INSERT builder not replacing placeholders with NULL 3.0.5 Fixed Unit tests
#2859 Automatically change = NULL to IS NULL 3.0.6 Fixed = and IS should not be interchanged. SQL_Identical expression handles such matching for NULL parameter values
#2881 Query::cached() does not use default lifetime 3.0.9 Fixed Database_Query_Cached::execute() uses the Cache driver default when no lifetime is passed
#2883 Allow clearing cached result of query object 3.1.0 Fixed Database_Query_Cached::delete()
#2915 Lacking identifier option of PDO 3.0.6 Fixed Every driver supports the 'quote_character' configuration option
#2931 NOT condition helpers 3.3.0 SQL_Conditions::not() et al. 6fab9e74
#2935 Reconnect support 3.0.10 Fixed Connection credentials are allowed in a trace
#2955 Ability to UPDATE and DELETE from multiple tables 3.0.8 Fixed SQL_DML_Delete and SQL_DML_Update accept SQL_Table_Reference
#2974 Allow values (not identifiers) in JOIN ON conditions 3.0.8 Invalid SQL_Table_Reference::on() accepts SQL_Conditions. Columns are distinguished from values using SQL_Column
#2985 PDO + SQLite introspection 3.0.8 Won’t PDO_SQLite driver implements Database_iIntrospect
#3011 Support UPDATE .. LIMIT 3.0.8 Fixed Allowed in SQL_DML_Update with documented RDBMS support
#3048 MSSQL SET NAMES error 3.0.7 Invalid Character set configuration documented in each driver
#3069 PDO should include prepare() 3.1.0 Won’t Database_PDO::prepare() creates a PDOStatement from raw SQL
#3076 Abstract query builder to support more than SQL 3.3.0 - Each driver can override the builder factory methods
#3095 Support OR in JOIN conditions 3.3.0 SQL_Table_Reference::on() accepts SQL_Conditions
#3152 Throw Database_Exception instead of PDOException 3.0.8 Fixed Unit tests
#3156 and_where() should alias where() Won’t SQL_Conditions allows any logical operator and has helpers and_column(), or_column(), et al.
#3165 Database::connect() should throw Database_Exception 3.0.8 Fixed Unit tests
#3204 current() broken with PDO 3.0.9 Fixed Don’t call current() when the iterator is not valid(). get() and offsetGet() have defined behavior for invalid offsets
#3227 Allow row result class to be passed in execute() 3.2.0 Fixed Builders are passed directly to Database::execute() et al.
#3305 exists() support in query builder 3.0.9 Fixed SQL_Conditions::exists() accepts a query builder or raw SQL
#3329 MySQL sql_mode in config 3.2.0 Fixed Database_MySQL has a variables config option to set any number of session variables during connect()
#3350 Move PDO driver to module 3.1.0 Won’t Unit tests
#3351 list table columns without the table_prefix 3.0.10 Fixed Passing SQL_Identifier to table_columns() will not add the table_prefix
#3356 Symbol for table prefix in raw SQL 3.1.0 Won’t SQL_Expression with SQL_Table parameter
#3389 Result::current() should return NULL 3.1.0 Fixed Don’t call current() when the iterator is not valid(). get() and offsetGet() have defined behavior for invalid offsets
#3394 Database::count_last_query() SQL injection 3.1.0 Fixed Method removed. Builder components can be reset
#3398 UPDATE .. ORDER BY 3.0.9 Fixed Native builders for DELETE and UPDATE for MySQL
#3443 query builder ON should support IN 3.0.9 Won’t SQL_Table_Reference::on() accepts SQL_Conditions
#3412 PDO introspection 3.3.0 Introspection is an optional feature in the Database_iIntrospect interface
#3429 Expression parameters 3.2.0 Fixed SQL_Expression allows any type of parameter
#3432 Nested transactions 3.3.0 4ac9bc5a
#3502 Getter/setter for PDO instance 3.2.0 Fixed PDO SQLite driver exposes its native features e350bf9f
#3569 Regression: Database subquery with aliases 3.1.0 Unit tests
#3608 MySQL connect() errors 3.0.12 Fixed Unit tests
#3625 Creating tables in database 3.3.0 - SQL_DDL_Create_Table
#3707 escape should not add quotes 3.2.0 Won’t Not all drivers can escape values. Database_iEscape::escape_literal() adds quotes because PDO does
#3735 Builders updated to allow unsetting LIMIT/OFFSET 3.2.0 Fixed limit() and offset() can be reset with NULL on all builders
#3862 Allow caching via Cache module 3.3.0 - Database_Query_Cached uses the Cache module d2ad6327
#3867 Query builder ignores JOINs for UPDATE/DELETE 3.2.0 Won’t The syntax is not standard but is supported in the builders by using SQL_Table_Reference
#3872 Make instance optional in compile() Builders are compiled by Database::execute() et al.
#3963 DB docs, “prepared statements” is misleading 3.1.4 - Real prepared statements are handled by each driver natively
#4032 Logic in execute() results in empty result sets being queried again 3.1.4 Fixed Database_Query_Cached uses the Cache class to store results
#4052 Ignore empty parentheses in or_where_close() / and_where_close() 3.3.0 SQL_Conditions::close_empty() 779b63ae
#4078 PDO set charset is not compatible 3.3.0 Database::set_charset() is removed and proper configuration arguments are documented ff4e3662
#4103 Set MySQL session variables in a single statement 3.2.0 Fixed 02ba3657
#4106 PDO driver for SQLite 3.3.0 PDO_SQLite driver
#4342 Remove selected values 3.3.0 Reset by passing NULL to SQL_DML_Select::values()

Review

  • #2077 – move Config_Database to database module
  • #2647 – Session garbage collection
  • #2667 – Session_Database missing parameter
  • #2849 – Consistency when initializing classes with config dependencies
  • #2852 – Enable caching at database-config level
  • #2861 – list_columns() should return integer display width as well
  • #3495 – Ability to remove “commands” from SQL builder
  • #3842 – Easier syntax for where() and set() for inserts
  • #3898 – Add support for MySQLi
  • #4057 – Automatically handle aliases in GROUP BY, ORDER BY, WHERE and HAVING
  • #4328 – Implement Log_Writer_Database with example schema
Clone this wiki locally