fukamachi / cl-dbi

Database independent interface for Common Lisp
206 stars 28 forks source link

Converts Calls With Parameters to `&optional` instead of `&rest` #61

Closed kat-co closed 4 years ago

kat-co commented 4 years ago

Passing large numbers of arguments within a &rest variable is not very portable Common Lisp because of call-arguments-limit.

For performance reasons, users may want many bind parameters to take advantage of so-called extended inserts, e.g.:

INSERT INTO tbl_name (a,b,c) VALUES(?,?,?),(?,?,?),(?,?,?),(?,?,?),...

When this is the case, cl-dbi is artificially coupling how many &rest parameters can be passed with how many extended inserts a DB can support thus potentially artificially limiting an application's performance. Further, it becomes more difficult to write portable code because of this implementation detail.

fixes #60

kat-co commented 4 years ago

Please note: I have not run the tests locally. My local docker-compose is currently broken.