Commit Graph

253 Commits

Author SHA1 Message Date
Maurício Meneghini Fauth
feca48cc76
Change return type of DatabaseInterface::getError method
Now, it returns last error message or an empty string instead of false
if no errors occurred.

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-12-27 14:43:14 -03:00
Kamil Tekiela
70c86f5e21 Remove $row_number from DatabaseInterface::fetchValue
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2021-12-21 21:09:38 +00:00
Maurício Meneghini Fauth
995ec44d13
Move DatabaseInterface::initRelationParamsCache method to Relation class
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-12-17 12:09:13 -03:00
Maurício Meneghini Fauth
c411121fd8
Move Relation classes into the ConfigStorage namespace
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-12-17 12:09:13 -03:00
Maurício Meneghini Fauth
4c3bf41d56
Use DatabaseName for RelationParameters::db instead of string
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-12-11 08:10:40 -03:00
Kamil Tekiela
56a832948c
Refactor DatabaseInterface.php (#17209)
* Use str_starts_with()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Remove redundant !empty()

!empty() on a declared variable is redundant.

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Replace loop with array_column()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Simpify assignment by removing temporary variable

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Remove redundant if statements and array_merge

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Remove temporary variable

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Unindent code

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add helper method fetchByMode()

This is done to avoid calling methods through variables. It is the same
in terms of performance.

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Move if statements to where they are relevant

I had a choice to either move the while loop out of the if statements
or move the if statements inside. I decided it made more sense to move
them inside.

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Add NULL to phpdoc for the two parameters that can be null

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Simplify return statement

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Improve performance and simplify code

Since we are always using STORE mode then we can use data_seek() method.
This will allow us to get rid of the loop and use fetchByMode() method.

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Inline value defaulting

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Remove redundant check

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* [bugfix] getColumnNames() should return an array of strings

There were multiple issues here. If we are selecting only a certain
column from the SQL then let's use the handy function instead of
array_keys. We will never get anything other than an array so checking
if it is not an array makes no sense. Returning null only to cast it to
an array is pointless. If really necessary, we could still check for an
empty array. The ColumnController returned the value without even
casting it to an array. I am not sure how jQuery/JavaScript dealt with it.

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Refactor getColumnMapFromSql and add type hint

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Refactor getVirtualTables

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Remove redundant loop

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Remove redundant usage of freeResult()

If there was no chance for the object to leak the scope and it is the
end of the scope then there's no reason to call this method.

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Replace dynamic variable with declare one

It's always the same name. If we were creating more than one, we could
use associative array, but in this case there seems to be absolutely no
need for any of this. Dynamic variables make it harder to debug the code.

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Update psalm-baseline.xml

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Widen the condition per williamdes suggestion

This will allow value such as '' and '0' to pass through. Previously
`if(! empty($database))` and `if($database)` dissallowed them.

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* fetchResult() should return only arrays

Tests fixed to return arrays. Non-empty in case of true, empty in case
of false.
Fixed a lot of Psalm issues where the condition was always true.

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2021-11-26 20:17:46 -03:00
Maurício Meneghini Fauth
89fa3d2aea
Merge pull request #17205 from kamil-tekiela/Fix-tryMultiQuery-signature
Fix tryMultiQuery signature
2021-11-26 15:11:50 -03:00
Kamil Tekiela
3a3bb2dc29 Fix tryMultiQuery signature
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2021-11-25 13:45:56 +00:00
Kamil Tekiela
58d9bb4a32 Refactor DatabaseInterface::getColumns()
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2021-11-25 10:28:39 +00:00
Maurício Meneghini Fauth
857a9d3337
Remove unnecessary @var annotations
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-11-18 12:15:30 -03:00
Maurício Meneghini Fauth
b2a51c4d84
Create the RelationParameters value object
Replaces the $cfgRelation array with the RelationParameters value
object.

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-11-14 18:22:36 -03:00
Maurício Meneghini Fauth
43867f262d
Fix some errors errors found by PHPStan
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-11-11 11:16:13 -03:00
Maurício Meneghini Fauth
e8f57353f5
Merge branch 'QA_5_1'
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-10-28 14:10:04 -03:00
Maurício Meneghini Fauth
7bcccf7bdc
Remove connection parameter from getClientInfo
Related to #16911

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-10-28 13:53:15 -03:00
Maurício Meneghini Fauth
b188b1fda0 Remove exception throw from Dbal\Warning class
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-10-10 18:39:43 -03:00
Maurício Meneghini Fauth
c1e864b1d7
Add Warning value object for SHOW WARNINGS rows
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-10-09 00:09:01 -03:00
Maurício Meneghini Fauth
3e0856c77b
Remove useless string concatenations
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-09-27 21:40:22 -03:00
Maurício Meneghini Fauth
9f3b4f04e9
Wrap variable variables in curly braces
See: https://www.php.net/manual/en/language.variables.variable.php

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-09-27 19:18:48 -03:00
Maurício Meneghini Fauth
f00d70cccb
Remove useless whitespaces
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-09-15 17:05:40 -03:00
Maurício Meneghini Fauth
9f3510d11a
Add bool return type where possible
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-09-14 20:11:51 -03:00
Maurício Meneghini Fauth
7f6472b2c2
Add void return type where possible
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-09-13 15:29:11 -03:00
Maurício Meneghini Fauth
8f2f3eff40
Remove the Core::isValid method
This improves the type checking and simplifies the code.

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-09-02 13:20:50 -03:00
William Desportes
880043961e
Merge branch 'QA_5_1'
Signed-off-by: William Desportes <williamdes@wdes.fr>
2021-08-11 02:53:56 +02:00
William Desportes
5271b960bc
Fix #17039 - Unable to have 2FA working with a pmadb value != phpmyadmin
Fixes #17039

Signed-off-by: William Desportes <williamdes@wdes.fr>
2021-08-10 23:55:50 +02:00
William Desportes
05f134c91b
Documentation and typo fixes
Signed-off-by: William Desportes <williamdes@wdes.fr>
2021-07-11 22:05:30 +02:00
Josep Sanz
de1c381f23
Add suport to the Mroonga engine: with this patch you can see the size
of the Mroonga's tables

Apply an optimization suggested

In reality, I have applied 2 optimizations, the first consists in filter by the object type as @williamdes suggested to me and the second is because we don't need to store all data of each mroonga object, we only need the name of the object that is used to compare with the tables names, thanks @williamdes by the optimization idea

Signed-off-by: Josep Sanz <josep.sanz@saltos.org>
2021-07-11 21:22:06 +02:00
Maurício Meneghini Fauth
6ae07c96fb
Replace strpos !== false with str_contains
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-07-09 22:30:42 -03:00
Maurício Meneghini Fauth
bcdb7e40fb
Replace strncmp === 0 with str_starts_with
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-07-09 19:14:30 -03:00
Maurício Meneghini Fauth
21431578db
Fix some errors found by PHPStan and Psalm
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-06-24 18:03:14 -03:00
Maurício Meneghini Fauth
8f992a4fbf
Fix some errors found by PHPStan and Psalm
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-06-15 18:49:37 -03:00
Maurício Meneghini Fauth
1c084de30b
Fix coding standard errors
Related to 62f142c9fa.

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-06-03 16:50:33 -03:00
Maurício Meneghini Fauth
cd1b8a9b77
Fix some errors found by PHPStan and Psalm
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-05-22 15:14:24 -03:00
Maurício Meneghini Fauth
5faf95016f
Use DatabaseName VO for db names in Table\Partition
- Adds DatabaseName support for DatabaseInterface::selectDb method

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-05-21 21:30:37 -03:00
William Desportes
db01d6a9da
Remove some else conditions by using early exits or moving code
Signed-off-by: William Desportes <williamdes@wdes.fr>
2021-04-29 01:18:39 +02:00
William Desportes
a4bcd1cfc4
Move DBI getForeignKeyConstrains method to controller
Signed-off-by: William Desportes <williamdes@wdes.fr>
2021-04-29 00:19:02 +02:00
William Desportes
d20f7f7d0a
Merge branch 'QA_5_1'
Signed-off-by: William Desportes <williamdes@wdes.fr>
2021-04-24 19:01:26 +02:00
William Desportes
e70c7c40ea
Improve debug SQL format
Signed-off-by: William Desportes <williamdes@wdes.fr>
2021-04-24 16:16:29 +02:00
Maurício Meneghini Fauth
8d0c2a339c
Move both operands of an assignment to the same line
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-04-20 22:35:21 -03:00
Maurício Meneghini Fauth
6b0a10d8ca
Rename the error_handler global to use camel case
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-03-16 12:11:51 -03:00
Maurício Meneghini Fauth
d83abf63e7
Use PSR-12 for control structures spacing
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-03-05 15:27:03 -03:00
Maurício Meneghini Fauth
0b8edc5bde
Use PSR-12 for namespace use statements
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2021-03-05 14:18:35 -03:00
William Desportes
1ac9a165e0
Merge branch 'QA_5_1'
Signed-off-by: William Desportes <williamdes@wdes.fr>
2021-02-25 18:44:47 +01:00
William Desportes
3e8b51214f
Fix a non working query that prevented events to show up right after adding them
Ref: 535c1a4cb5

Signed-off-by: William Desportes <williamdes@wdes.fr>
2021-02-25 18:31:49 +01:00
William Desportes
c5155ecae9
Refactor field flags to use an object an not strpos
Signed-off-by: William Desportes <williamdes@wdes.fr>
2021-02-24 23:56:33 +01:00
William Desportes
8917e77bba
Fix #16595 - escape mysql wildcards on structure edit fields
Signed-off-by: William Desportes <williamdes@wdes.fr>
2021-01-31 01:30:56 +01:00
Prashant Tholia
ebff28171c
Fix #16463 - 'REFERENCES' privilege checkbox's title
Set different title messages depending on database and database version for 'REFERENCES' field in user 'Edit Preferences' form.

Co-Authored-By: William Desportes <williamdes@wdes.fr>
Signed-off-by: Prashant Tholia <prashant.tholia@gmail.com>
2021-01-22 00:05:43 +01:00
William Desportes
5abcae9255
Fixed some typos in the code base
I used code spell checker and did all the libraries/classes/*.php files one by one.
Signed-off-by: William Desportes <williamdes@wdes.fr>
2020-11-01 22:46:01 +01:00
Maurício Meneghini Fauth
e4e274976e Extract cache methods from Util to SessionCache class
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2020-10-25 22:45:56 -03:00
Maurício Meneghini Fauth
4873c32273 Remove DatabaseInterface::isUserType method
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2020-10-25 20:53:50 -03:00
Maurício Meneghini Fauth
a83ec78ebf Make DatabaseInterface::isUserType method private
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2020-10-24 00:40:03 -03:00