Ankush Menat
4389447148
fix: always explicitly start a new transaction
...
Active read only transaction can be aborted by doing a commit and then
issuing queries. This prevents such edge cases.
2022-09-08 18:22:08 +05:30
Ankush Menat
5e86e1f192
feat: db.begin(read_only=True)
...
You can now start read only transaction by passing read only flag. Read
only transactions prevent any query that is of "WRITE" type like
insert/delete/update.
2022-09-08 18:22:03 +05:30
Aradhya
6262119eec
refactor: removed dead code
2022-09-01 20:04:04 +05:30
Aradhya
edfa63a4cf
fix: lint
2022-08-28 00:08:13 +05:30
Aradhya
535b64931e
refactor: using enumerate to iterate over fields & warn when passing query object to def sql
2022-08-22 14:49:30 +05:30
Aradhya Tripathi
e73ae6f039
Merge branch 'develop' into get-all-mod
2022-08-19 15:42:35 +05:30
Ankush Menat
f002016eb6
chore: limit over-logging of handled exception ( #17878 )
...
[skip ci]
2022-08-19 12:53:51 +05:30
Aradhya
9bb39131c0
refactor: changed get_value_for_many_names to get tuple values
2022-08-14 14:34:02 +05:30
Aradhya
ba2caf206b
feat: Added parameterization on queries going through database.py
2022-08-14 12:52:00 +05:30
Gavin D'souza
73994e3b46
refactor(minor): PY310+ API Usages
2022-08-10 19:34:52 +05:30
Gavin D'souza
22f79d735b
fix: raise ImplicitCommitError instead of bare exception
2022-08-10 18:45:17 +05:30
Ritwik Puri
cb6438158b
fix: don't use cache for sequence in mariadb ( #17640 )
...
* fix: don't use cache for sequence in mariadb
* chore: update sequence related comments
2022-07-27 22:46:56 +05:30
Gavin D'souza
1dbc0b4d3c
fix(db*): Use common fallback Datetime str
...
There existed inconsistencies between db_query & db's fallback for min
datetime in str format - missing decimal seconds places. Now, we're
storing the default string once and re-using it to reduce
inconsistencies or room for human errors.
2022-07-22 13:19:25 +05:30
Gavin D'souza
1a610e135d
fix(db): Use sentinel object for default values paramters
2022-07-22 12:11:01 +05:30
Gavin D'souza
e411132c6e
fix(db): Revert breaking change of wrapping NoneType in sequence
2022-07-22 12:11:01 +05:30
Gavin D'souza
1ccdad811a
Merge branch 'develop' of github.com:frappe/frappe into mariadb-client-refactor
2022-07-19 16:23:24 +05:30
Ankush Menat
0164a87ac9
Merge pull request #17350 from Aradhya-Tripathi/get-all-mod
...
feat: Adding support to Query engine
2022-07-13 18:36:04 +05:30
Sagar Vora
4671460b65
fix: dont scrub key if found in defaults, but falsy ( #17467 )
...
* fix: dont scrub key if found in defaults, but falsy
* fix: remove redundant use of `.get`
2022-07-12 17:06:06 +05:30
Sagar Vora
fc99c22ea2
fix: ensure that frappe.db.get_defaults works for all parents ( #17296 )
...
fix: ensure that frappe.db.get_defaults` for all parents, as designed
2022-07-08 18:08:36 +05:30
Gavin D'souza
8ccc0d039b
fix: Database._transform_query
...
* Don't try to convert None to sequence
* Skip transforming values that mariadb~=1.1 can handle - only worry
about sequences for now
2022-07-07 15:59:48 +05:30
Gavin D'souza
41b93392b1
fix: Database._transform_result
...
Transform data not already casted by mariadb client
2022-07-06 15:58:45 +05:30
Gavin D'souza
6a76f8ad5f
fix(pg): Transform Falsy values as None
...
ref: https://github.com/frappe/frappe/runs/7208763442
2022-07-06 11:47:43 +05:30
Gavin D'souza
1faa2fd1e2
fix: Format string instead of % to avoid TypeError
2022-07-06 10:52:48 +05:30
Gavin D'souza
dbb37acedf
fix: Transform queries with all types of values
2022-07-05 17:47:14 +05:30
Gavin D'souza
71b5c77e6e
Merge branch 'develop' of github.com:frappe/frappe into mariadb-client-refactor
2022-07-05 14:55:02 +05:30
Ankush Menat
c12b52a259
refactor: use frappe.get_system_settings
...
Not sure why this needs YET ANOTHER separate cache.
2022-07-04 11:25:47 +05:30
Aradhya Tripathi
ebd1d5b48c
Merge branch 'develop' into get-all-mod
2022-07-01 13:25:32 +05:30
Ankush Menat
81b37cb7d2
refactor: clean up code to py310 supported features ( #17367 )
...
refactor: clean up code to py39+ supported syntax
- f-strings instead of format
- latest typing support instead of pre 3.9 TitleCase
- remove UTF-8 declarations.
- many more changes
Powered by https://github.com/asottile/pyupgrade/ + manual cleanups
2022-07-01 11:51:05 +05:30
Gavin D'souza
fddd624a7c
Merge branch 'develop' of github.com:frappe/frappe into mariadb-client-refactor
2022-06-30 14:31:52 +05:30
Ankush Menat
813dcc1848
Revert "feat: Adding support to Query engine"
2022-06-29 23:30:23 +05:30
Aradhya
4da5fdcd02
fix: fixed spaces in args
...
fix: lint
2022-06-29 17:37:49 +05:30
Gavin D'souza
cf699fe40b
Merge branch 'develop' of github.com:frappe/frappe into mariadb-client-refactor
2022-06-29 13:49:18 +05:30
Ankush Menat
181833848f
Merge pull request #17337 from ankush/lint_cleanup
...
fix: remove bare exception catching
2022-06-29 11:39:05 +05:30
gavin
91e76ff874
Merge branch 'develop' into get-all-mod
2022-06-28 19:47:20 +05:30
Aradhya
6db6be1f3c
refactor: frappe.qb.engine
...
* Small fixes in set_fields and clean code
* Optimize casefolds
* Fixed functions passed in List
* get_sql => get_query - more expressive, less confusion
* Updated tests
2022-06-28 19:43:57 +05:30
Aradhya
7732accded
feat: Attached Engine object to qb & added dynamic type hints
2022-06-28 19:43:23 +05:30
Aradhya
fca026927e
refactor: moved all query logic to query class
2022-06-28 19:41:32 +05:30
Ankush Menat
d35d7ffbe2
fix: remove bare exception catching
...
A bare except catches lots of things (like generator iteration end) and should never be used.
2022-06-28 18:05:00 +05:30
Gavin D'souza
b8d2c195a6
fix: Disable connection pooling via bench commands unless specified
2022-06-23 19:42:12 +05:30
Gavin D'souza
ef078a4ab5
refactor(db-read_only): Track conn type in Database instance
2022-06-23 19:40:17 +05:30
Gavin D'souza
a58a5bb848
fix: Improve _transform_query unique key identification
2022-06-20 13:10:13 +05:30
Gavin D'souza
9b6a048bcd
refactor(minor): Use db.db_type instead of conf.db_type
2022-06-17 12:49:12 +05:30
Gavin D'souza
3af8d5caea
fix: Add fallbacks for values
...
Psycopg seems to like None over () and MariaDB - PyMySQL can't seem to
agree on anything - so this seems to keep everyone happy...a very
delicate balance :crie:
2022-06-17 12:47:44 +05:30
Gavin D'souza
a03bf6b0bb
fix(db): Transform values only if not None
2022-06-17 11:31:55 +05:30
Gavin D'souza
1a772e304c
fix(db): Store result of last executed query under frappe.db.last_result
2022-06-16 16:01:38 +05:30
Gavin D'souza
25b87a9d49
chore: NoneType alias for < PY310
2022-06-16 15:04:35 +05:30
Gavin D'souza
bc3780560e
perf: Use lazy mogrified query for logging
...
For parameterized queries, there's an improvement of ~30% in query
execution via frappe.db.sql - from 58.6 µs ± 2.37 µs to 44.6 µs ± 1.56 µs
2022-06-16 14:26:34 +05:30
Gavin D'souza
effa942f4c
refactor: frappe.db.log_query
...
* Mogrify queries and set them as frappe.db.last_query instead of
directly interfacing with the clients
* This is required for now as the MariaDB client uses binary protocol to
talk to the server and doesn't build the queries itself
* Add typing hints
* Imported Query object as FilterEngine - Query is too ambiguous lol
ref: https://jira.mariadb.org/browse/CONPY-208?focusedCommentId=226873&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-226873
2022-06-16 13:28:54 +05:30
Gavin D'souza
889ced3035
refactor: frappe.db.sql
...
* Move everything except _cursor.execute outside try-except block - This
caused multiple traceback printing (by recursion of db.sql)
* Include values mogrifying & executing via client alone in execution
time for query
* Reduce indentations lol
2022-06-16 12:39:30 +05:30
Gavin D'souza
0adf5e127a
fix(db): Track query engine under db._filter_engine
2022-06-16 12:31:14 +05:30