66 Commits

Author SHA1 Message Date
Delyan Angelov
a80bc23314
tools: cleanup entries from the hardcoded skip_files list in common.v (used by v test, v test-self etc); use the new // vtest build: syntax to mark the tests instead (#23918) 2025-03-13 19:51:51 +02:00
Louis Brauer
d2b30df19c
db.pg: add support for prepared statement, with db.prepare/3 and db.exec_prepared/2 (#23442) 2025-01-12 13:08:17 +02:00
Delyan Angelov
124927ba96
db.sqlite: add tracing for more calls, when using -d trace_sqlite, not just for the ORM 2025-01-07 16:43:10 +02:00
Delyan Angelov
e9bdfa1dd7
db.sqlite: reduce memory usage in common db.exec() methods (#23286) 2024-12-27 18:36:40 +02:00
Rodrigo Abt
e0a63dba62
db.sqlite: add an exec_map function, returning []map[string]string, given an SQL query (#23246) 2024-12-23 16:06:36 +02:00
Felipe Pena
b0772193f8
vlib: enable more satnitized memleak detection runs without false positives on the CI (#23200) 2024-12-20 16:09:16 +02:00
Alexander Medvednikov
27ff2f1628 orm: cross compile pg to linux; openssl: make cross compile work 2024-10-28 17:37:34 +03:00
alexey semenyuk
bfee824860
docs: fix broken links by adding missing READMEs (#22636) 2024-10-26 13:15:50 +03:00
yuyi
da3112e545
all: replace fn name '@xxx' with 'xxx' (#22506) 2024-10-12 22:17:02 +03:00
yuyi
79786732ef
all: replace struct field name '@type' with 'type' (#22485) 2024-10-11 08:53:18 +03:00
Felipe Pena
6f97ced860
orm: allow comptime field.name as field name (fix #22329) (#22344) 2024-09-29 07:53:47 +03:00
Delyan Angelov
f890566199
db.sqlite: add instructions for installing SQLite's amalgamation or development package, if it is missing 2024-09-10 17:20:29 +03:00
yuyi
008aaad999
fmt: remove the prefixed module name of const names, that are in the same module (related #22183) (#22185) 2024-09-10 11:25:56 +03:00
yuyi
c51d30bf53
fmt: fix alignment of struct init fields (#22025) 2024-08-11 09:11:24 +03:00
yuyi
79ee4ae046
fmt: fix alignment of enumeration types (#21999) 2024-08-07 15:46:50 +03:00
yuyi
ddb6685d8a
fmt: fix and simplify align of struct fields (#21995) 2024-08-05 20:23:39 +03:00
yuyi
209063ffd0
fmt: implement wrapping function's super long arguments (fix #15545, fix #21643) (#21782) 2024-07-02 23:10:00 +03:00
Felipe Pena
1e86e06eb6
orm: fix subquery without where expr (#21598) 2024-06-04 13:22:06 +03:00
Delyan Angelov
dbc6b50cda
vlib: make ./v -Wimpure-v -W test vlib/ pass on Linux (#21554) 2024-05-23 16:21:01 +03:00
Turiiya
712a9125bf
all: use apt over apt-get for common APT subcommands (#21359) 2024-04-26 21:01:52 +03:00
Roman
2192d9b1e5
db.mysql: fix invalid memory access in exec_one for returned rows with NULL fields (#21317) 2024-04-20 12:52:58 +03:00
Turiiya
1363cc85fd
time: update unix time acces, fix issues related to deviating unix times (#21293) 2024-04-17 00:33:37 +03:00
Felipe Pena
24af002249
v,breaking: add ability to read enum, fn, interface and sumtype attributes in compile-time, change builtin StructAttribute to VAttribute (#21149) 2024-03-31 09:14:33 +03:00
jacksonmowry
8ec990eed8
db.sqlite: fix exec_param_many bug (#21008) 2024-03-13 14:39:15 +02:00
Turiiya
d485cceee8
doc: update trim_doc_node_description, make module readmes more uniform (#20792) 2024-02-12 12:38:47 +02:00
Kim Shrier
1207c29044
db.pg: add include and lib paths for PostgreSQL on FreeBSD (#20582) 2024-01-19 10:14:08 +02:00
Felipe Pena
1303c244e2
orm.pg: fix f32 and f64 endianness (#20412) 2024-01-06 22:27:10 +02:00
André ldev
363d4e1f5a
db.pg: fix compilation error with the msvc compiler on windows, and add readme (#20326) 2024-01-01 23:22:15 +02:00
jacksonmowry
06a536eff2
db.pg: fix invalid memory access in res_to_rows (#20248) 2023-12-22 02:02:31 +02:00
jacksonmowry
d86a11c257
db.mysql: add ability to prepare and execute statements separately (#20146) 2023-12-11 13:34:20 +02:00
Dmitriy Mihaylenko
eec9c7f242
db.pg: fix using postgresql on windows, improve instructions for installing it (#20053) 2023-12-01 18:03:28 +02:00
Kim Shrier
7357ef3686
db.mysql: add support for the FreeBSD name of the mariadb client library (#20039) 2023-11-30 15:32:44 +02:00
Alexander Medvednikov
f09826e928 all: unwrap const() blocks 2023-11-25 10:02:51 +03:00
Joe C
757929392e
all: update attributes to use new syntax 2023-11-15 16:16:01 +11:00
JalonSolov
24befa0ba6
pg: hande C calls, move to .c.v files (#19739) 2023-11-03 20:43:44 +02:00
Turiiya
690ec7d3a5
all: fix typos (#19693) 2023-10-30 03:28:34 +02:00
asvln
0f81e3bfd7
db.pg: fix typos (#19654) 2023-10-26 08:55:12 +03:00
Larpon
95509cf8fb
all: make all struct C.XYZ -> pub struct C.XYZ (#19651) 2023-10-25 15:01:50 +03:00
Turiiya
6437d82ee1
checker: warn about byte deprecation, when used as a fn parameter (#19629) 2023-10-23 20:54:28 +03:00
Tim Marston
756075380b
orm: add null handling and option fields (#19379)
* orm: added is none and !is none handling

* orm: added NullType, support option fields and deprecate [nonull]

Nullable DB fields are now determined by corresponding option struct field.  The
[nonull] attribute is deprecated and fields are all NOT NULL now, unless they
are option fields. New orm primitive, NullType, added to support passing none
values to db backends, which have been updated to support it.  Also, empty
string and 0 numberic values are no longer skipped during insert (since they may
be valid values).

* orm: fix [nonull] deprecation warning

* orm: add null handling to update and select

also, improved formatting for orm cgen, and removed optimised operand handling
of orm `is` and `!is` operators

* sqlite: read/report NULLs using new orm NullType

* postgres: returning data primitives now returns new orm.NullType

* orm: initialise NullType Primitives properly

* orm: do not smart cast operands inside sql

* orm: fix bad setting of option value

* orm: improve orm_null_test.v, adding/fixing selects

* orm: cleanup: rename NullType->Null, use serial const, cgen output

* orm: handle automatically generated fields more explicitly

During insert, fields which are
* [sql: serial]
* [default: whatever]
and where the data is a default value (e.g., 0, ""), those fields are not sent
to the db, so that the db can generate auto-increment or default values.  (This
was previously done only for [primary] fields, and not in all circumstances, but
that is not correct -- primary and serial/auto-increment fields are differnet.)

* orm: udpated README

* orm: select cgen fixes: read from uninit res; fail to init res

* orm: udpated tests

* orm: fix option sub-struct fields

* orm: fixed joins to option structs

Changed orm.write_orm_select() so that you pass to it the name of a resut
variable which it populates with the result (or not) and changed use of it in
sql_select_expr() and calls in write_orm_select() to populate substructs.

* orm: fix pg driver handling of NULL results

* orm: move runtime checks to comptime checker; cache checked tables

* orm: vfmt :(

* orm: markdown formatting

* orm: renamed orm.time_ and orm.enum_; updated db drivers

* checker: updated orm tests

* orm: fix issue setting up ast option values as orm primitives

* checker: ORM use of none/options and operations (added tests)

* orm: fixed tests

* db: clean code

* examples: remove orm nonull attributes

* orm: skip test memory santisation for orm_null_test.v

* orm: make the type-to-primitive converstion fns not public

* orm: mv object var c-code from checker->cgen; fix memory corruption

Code in checker/orm.v used the SqlStmtLine object field name to store c-specific
referenecs to option and array fields (for arrays of children).  I moved this
logic to cgen.  And fixed an issue introduced with option fields, where an array
of children was unpacked into a non-array result which could corrupt memory.

* orm: fixed vast error

* orm: skip 2 tests on ubuntu-musl which require sqlite3.h

* cgen: prevent casting a struct (string)

* v fmt orm_fkey_attribute.vv, orm_multidim_array.vv, orm_table_attributes.vv; run `VAUTOFIX=1 ./v vlib/v/compiler_errors_test.v`
2023-10-05 19:09:03 +03:00
yuyi
55ca8d8d8e
fmt: align the custom values of the enum fields (#19331) 2023-09-12 14:44:38 +03:00
Swastik Baranwal
68cbf272fc
parser: disallow using sql as name (#19298) 2023-09-08 17:31:47 +03:00
omerrob
f18086cd89
db.pg: allow postgres connection using service definitions (#19288) 2023-09-07 12:30:34 +03:00
jacksonmowry
d285ff08f0
db.mysql: add the exec family of methods (#19132) 2023-08-14 16:18:01 +03:00
jacksonmowry
76b4c92848
db.sqlite: make functions return results, breaking change (#19093) 2023-08-10 05:39:32 +03:00
Delyan Angelov
d0cc564089
db.mysql: make mysql.Result.result public (fix #19098) 2023-08-10 05:21:44 +03:00
jacksonmowry
07b36d69f3
db.sqlite: add exec_param_many and exec_param methods (#19071) 2023-08-07 09:00:03 +03:00
jacksonmowry
a609d6c9d1
db.pg: add parameter syntax to docs (#19003) 2023-07-31 21:26:45 +03:00
JalonSolov
c3ff4b2f85
net.conv: rename functions to match other langs, making them easier t… (#18937) 2023-07-22 09:11:01 +03:00
Mark aka walkingdevel
7ee25843c2
db.mysql: fix the support for TIMESTAMP columns (#18704) 2023-06-29 06:49:58 +03:00