Skip to content

Commit

Permalink
Rebase/drizzle main (#27)
Browse files Browse the repository at this point in the history
* created singlestore-core and singlestore driver

* change 'json_array' to 'json_to_array'

* add bson type

* Renamed mysql to singlestore in singlestore-core

* test actions

* add uuid column

* add guid

* add override tag to `build`

* more actions tests

* release to github

* add vector data type, operator experessions

* nits

* nits

* add geographypoint type

* Push to NPM instead

* Corrected version

* Removed foreign keys

* Disallow INTERSECT ALL and EXCEPT ALL; Allow MINUS

* Removed more stuff of foreign keys

* Build fork when pushing to main

* Changed name of version var

* fixed action

* Added detach

* Renamed driver

* Fixed detach

* Added attach

* Differentiate rowstore and columnstore on creation and block btree indexes on columnstore

* Formatted files

* Make index types difference clearer

* Apparently ATTACH does not support prepared statements, so we give the database name in raw format

* Added ATTACH AT TIME

* Added ATTACH AS

* Trying another approach for type checking index input

* initial geography implementation

* Reverth all columnstore and rowstore work

* add types to index, fix? geography

* fix polygon

* Remove check

* improve geography type narrowing

* error -> drizzleerror

* add branching

* CREATE and DROP MILESTONE

* combine buildAttachQuery and buildBranchQuery

* OPTIMIZE TABLE

* nits to OPTIMIZE TABLE

* more nits

* even more nits

* more nits to OPTIMIZE TABLE

* stringify BSON column

* new blob column type

* Try another approach for table type related typecheck

* Fixed build

* Even more nits to OPTIMIZE TABLE

* Revert table changes

* Add defaultCurrentTimestamp and fsp to defaultNow

* Separated tables into columnstore and rowstore

* Fix build

* Fix build v2

* fix geography data type

* fix geography type v2

* lint/fmt

* nits with datetime

* improve geography code readability

* lint/fmt datetime

* improve readability in geography mapToDriverValue

* Undo changes to differentiate tables

* Fix build

* Fix datetime merge error

* fix polygon generator

* fix relational query?

* revert

* fixed revert of 46e8864

* Fix relational queries for S2

* stuff

* Full text

* nits with fulltext index

* MATCH AGAINST

* nits

* more nits

* nits with MATCH AGAINST

* nits of MATCH AGAINST

* Sort key

* Fixed sortKey

* fix lint issues and add lint:fix command

* add singlestore dialect to drizzle-kit

* create new singlestore-schemas.test.ts file

* adapt validations.test.ts to singlestore dialect

* replicate generate tables and general singlestore migrations test

* replicate generate tables and general singlestore migrations test

* lint fix on drizzle-kit files

* vector elementType optional

* created singlestore-proxy from mysql-proxy

* define intersectAll and excludeAll sql functions for SingleStore

* add type-tests for SingleStore dialect

* Remove new column types (#11)

* rm new columns, will add back in alter PR

* rm bson, index references

* Test implementation

* Type-level implementation

* Added functional runtimes for node-pg, aws-data-api-pg [custom drizzle config WIP]

* Resolved bun type related build issues

* Implemented extra drivers

* Complete runtime implementations [TO BE TESTED]

* Prototype implementation

* switched bun to dynamic imports

* Removed static imports, removed promise wrapper

* Returned async imports due to conflicts

* More comnprehensive import errors

* Changed error messge

* Improved params destructurization

* Functional prototype of SQLite $count

* Added pg, mysql; Added tests, type tests for $count

* Added missing runtime tests

* LibSQL improvements

Added:
- handling alteting columns in libsql
- new json statement for recreation table for sqlite and libsql
- push updated for sqlite and libsql
- tests

* - updated tests
- added handling create reference and create column for sqlite and libsql

* - handled foreign keys for recreate table
- handled alter column with unique keys
- made more tests
- updated recreate sql statements order

* changed package json to prev state

* updated tests

* - moved 'turso' driver to dialect
- rewrote tests

* fixed dialects in introspect musql, psql, sqlite
updated packages

* updated tests and removed pragma from push in libsql

* removed console.log

* updated pull config
update migrate function in drizzle-orm

* removed driver

* updated sqlite connection to libsql

* Added alternate config for better-sqlite3, bun:sqlite; Renamed bun-sqlite to bun:sqlite; Fixed schema inferrence issue (no schema would resrresult in `unknown`, expected: `Record<string, never>`)

* Added monomigrator

* Changed style of monodriver, monomigrator function args

* Fixed overload order for better autocomplete

* Removed garbage

* Added missing  postgres.js to monomigrator

* Fixed missing defaults in templates

* Improved types, matched supported instances of monodriver and monomigrator, fixed pg withReplicas type's schema inferrence, fixed lack of [entityKind] on some instances, fixed migrators not accepting string as a config

* Fixed invalid [entityKind] call

* Added `:memory:` autocomplete

* Removed leftover code from overloads, added `assertUnreachable`

* Exposed db drivers from monodriver

* Fixed test tables using already existing names

* Fixed faulty test cases; Fixed lack of count type conversion in mysql; added all method functionality to pg proxy driver; added websocket instance to monodriver neon serverless config

* Switched mysql count to execute

* Added cast to embedded

* Switched to `.execute` for mysql, pg; reverted pg proxy session changes; fixed misplaced mysql tests; removed unused args

* Moved type conversion drom db to ORM; improved types

* Moved pg, mysql counts to sessions to resolve return shape conflicts

* Fixed neon-http, planetscale; removed leftover lines; switched sqlite to session-based count

* changed console.log outputs for connection to Sqlite
returned removed console.log in mysql push

* Add draft for beta release

* Add release notes for orm and kit

* Update release notes

* add singlestore dialect to drizzle-kit

* create new singlestore-schemas.test.ts file

* lint fix on drizzle-kit files

* adding missing driver declaration in drizzle-orm

* squashing integration tests commits

* keeping DrizzleConfig Mode type

* add jira ticket to singlestore-common.ts

* Bugfix/skip unsupported relational tests (#26)

* created singlestore-proxy from mysql-proxy

* singlestore integration tests

* Added singlestore docker image to integration tests

* singlestore custom integration tests pass

* fix most of singlestore.test.ts integration tests

* rewrite init.sql for each docker container

* fix 'having' singlstore-prefixed.test.ts  integration tests

* removed nested transaction tests

* changed timestamps precision to 6 and other minor IT tests fixes

* fixed "set operations (union) from query builder with subquery" test

* lint

* fix "'set operations (union all) from query builder'" test

* fix union all and intersect as function tests

* fix set operations (intersect) from query builder and as function tests

* Remove intersect all tests

'INTERSECT ALL' is not supported by SingleStore

* Fix except tests

* Removed additional intersectall tests

* Fixed mixed and mixed all tests

* remove .only

* timestamp timezone test fix

* fix select from subquery sql it test

* Remove new column types (#11)

* rm new columns, will add back in alter PR

* rm bson, index references

* Remove new column types (#11)

* rm new columns, will add back in alter PR

* rm bson, index references

* Fix timestamp timezone test

* fix build query insert with onDuplicate

* fix UTC config for datetime: remove datetime as string as it is unsupported

* fixed onupdate tests

need to find exact match on update as singlestore doesn't guarantee order

* Fixed returningid test

batch insert autoincrements serial columns in singlestore, so updated test code to reflect that

* remove .only

* Fixed flaky mixed all test

Added two possible outputs because order is not guaranteed

* removed except all tests

* Removed additional exceptall tests

* Readded sqlite except tests

* fix linting

* remove unnecessary 'desc' import

* Cleaned up logic for mixed all test

* Fixed docker container flakiness

* remove .only

* created singlestore-proxy from mysql-proxy

* singlestore integration tests

* Added singlestore docker image to integration tests

* singlestore custom integration tests pass

* fix most of singlestore.test.ts integration tests

* rewrite init.sql for each docker container

* fix 'having' singlstore-prefixed.test.ts  integration tests

* fixed "set operations (union) from query builder with subquery" test

* changed timestamps precision to 6 and other minor IT tests fixes

* lint

* fix "'set operations (union all) from query builder'" test

* fix union all and intersect as function tests

* fix set operations (intersect) from query builder and as function tests

* Fix except tests

* removed nested transaction tests

* Fixed mixed and mixed all tests

* remove .only

* timestamp timezone test fix

* fix select from subquery sql it test

* Remove intersect all tests

'INTERSECT ALL' is not supported by SingleStore

* Removed additional intersectall tests

* Fix timestamp timezone test

* fix build query insert with onDuplicate

* fix UTC config for datetime: remove datetime as string as it is unsupported

* fixed onupdate tests

need to find exact match on update as singlestore doesn't guarantee order

* Fixed returningid test

batch insert autoincrements serial columns in singlestore, so updated test code to reflect that

* remove .only

* Fixed flaky mixed all test

Added two possible outputs because order is not guaranteed

* removed except all tests

* Removed additional exceptall tests

* Readded sqlite except tests

* fix linting

* remove unnecessary 'desc' import

* Cleaned up logic for mixed all test

* Fixed docker container flakiness

* remove .only

* removed transaction isolationlevel tests as singlestore only has one isolationlevel: https://docs.singlestore.com/cloud/getting-started-with-singlestore-helios/about-singlestore-helios/singlestore-helios-faqs/durability/

* removed transaction isolationlevel tests as singlestore only has one isolationlevel: https://docs.singlestore.com/cloud/getting-started-with-singlestore-helios/about-singlestore-helios/singlestore-helios-faqs/durability/

* fix linting

* removed isolation level since S2 only supports READ COMMITTED isolation level

* rm mode

* SingleStore2 -> SingleStoreDriver

* fix tsc

* rm unused dialect func

* lint fix

* fix type test

* fix integration tests

* update brocli version

* Added singlestore docker image to integration tests

* singlestore custom integration tests pass

* merge all commits

* create singlestore replicas tests

* change mysql protocol to singlestore on integration tests connection string remove .only

* Delete test-docker.js

* Delete init.sql

* Removed comment

* removed singlestoreproxy references

* new singlestore relational and duplicated IT tests

* add planetscale mode to allow for tests with schema

* Removed + skipped unsupported tests

Nested Scalar Subselects in Project List: "The query cannot be executed. SingleStore does not support this type of query: nested scalar subselects in project list."

Subselect in Aggregate Functions (duplicates.test and test):

"Feature 'Subselect in aggregate functions' is not supported by SingleStore. Near '(select json_agg(JSON_BUILD_OBJECT(...)) at line 1, character ...'."

* Updated remaining non-skipped tests to be order agnostic

* fixed two additional tests to be order agnostic

* skipping not supported relational it tests

* skipped unsupported tests

* remove 'mode' from relational it tests

* Delete skip-failing-tests.js

---------

Co-authored-by: apeng-singlestore <[email protected]>
Co-authored-by: Mitchell Adair <[email protected]>
Co-authored-by: Mitchell Adair <[email protected]>
Co-authored-by: Alex Blokh <[email protected]>

* lint fix

* integration-tests/tests/prisma directory is  no longer in the drizzle repository

* rebase drizzle main with PR's main

---------

Co-authored-by: Diogo Rodrigues <[email protected]>
Co-authored-by: Mitchell Adair <[email protected]>
Co-authored-by: Tiago Castro <[email protected]>
Co-authored-by: Mitchell Adair <[email protected]>
Co-authored-by: Sukairo-02 <[email protected]>
Co-authored-by: Aleksandr Sherman <[email protected]>
Co-authored-by: AndriiSherman <[email protected]>
Co-authored-by: apeng-singlestore <[email protected]>
Co-authored-by: Alex Blokh <[email protected]>
  • Loading branch information
10 people authored Oct 1, 2024
1 parent 9151924 commit 3c7d07d
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 102 deletions.
1 change: 1 addition & 0 deletions integration-tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
"@aws-sdk/client-rds-data": "^3.549.0",
"@aws-sdk/credential-providers": "^3.549.0",
"@electric-sql/pglite": "^0.1.1",
"@libsql/client": "^0.10.0",
"@miniflare/d1": "^2.14.2",
"@miniflare/shared": "^2.14.2",
"@planetscale/database": "^1.16.0",
Expand Down
121 changes: 19 additions & 102 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 3c7d07d

Please sign in to comment.