Skip to content

Commit

Permalink
test(dmmf): add tests for indexes
Browse files Browse the repository at this point in the history
  • Loading branch information
aqrln committed Jul 10, 2024
1 parent 8add78d commit d45499b
Show file tree
Hide file tree
Showing 6 changed files with 363 additions and 0 deletions.
134 changes: 134 additions & 0 deletions query-engine/dmmf/test_files/indexes_mongodb.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
{
"enums": [],
"models": [
{
"name": "Post",
"dbName": null,
"fields": [
{
"name": "id",
"dbName": "_id",
"kind": "scalar",
"isList": false,
"isRequired": true,
"isUnique": false,
"isId": true,
"isReadOnly": false,
"hasDefaultValue": false,
"type": "String",
"isGenerated": false,
"isUpdatedAt": false
},
{
"name": "title",
"kind": "scalar",
"isList": false,
"isRequired": true,
"isUnique": false,
"isId": false,
"isReadOnly": false,
"hasDefaultValue": false,
"type": "String",
"isGenerated": false,
"isUpdatedAt": false
},
{
"name": "content",
"kind": "scalar",
"isList": false,
"isRequired": true,
"isUnique": false,
"isId": false,
"isReadOnly": false,
"hasDefaultValue": false,
"type": "String",
"isGenerated": false,
"isUpdatedAt": false
},
{
"name": "comments",
"kind": "object",
"isList": true,
"isRequired": true,
"isUnique": false,
"isId": false,
"isReadOnly": false,
"hasDefaultValue": false,
"type": "Comment",
"isGenerated": false,
"isUpdatedAt": false
}
],
"primaryKey": null,
"uniqueFields": [],
"uniqueIndexes": [],
"isGenerated": false
}
],
"types": [
{
"name": "Comment",
"dbName": null,
"fields": [
{
"name": "userId",
"kind": "scalar",
"isList": false,
"isRequired": true,
"isUnique": false,
"isId": false,
"isReadOnly": false,
"hasDefaultValue": false,
"type": "String"
},
{
"name": "content",
"kind": "scalar",
"isList": false,
"isRequired": true,
"isUnique": false,
"isId": false,
"isReadOnly": false,
"hasDefaultValue": false,
"type": "String"
}
],
"primaryKey": null,
"uniqueFields": [],
"uniqueIndexes": []
}
],
"indexes": [
{
"model": "Post",
"type": "normal",
"isDefinedOnField": false,
"fields": [
{
"path": [
"comments",
"Comment.userId"
]
}
]
},
{
"model": "Post",
"type": "fulltext",
"isDefinedOnField": false,
"fields": [
{
"path": [
"title"
],
"sortOrder": "desc"
},
{
"path": [
"content"
]
}
]
}
]
}
24 changes: 24 additions & 0 deletions query-engine/dmmf/test_files/indexes_mongodb.prisma
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
datasource db {
provider = "mongodb"
url = "mongodb://"
}

generator client {
provider = "prisma-client-js"
previewFeatures = ["fullTextIndex"]
}

model Post {
id String @id @map("_id") @db.ObjectId
title String
content String
comments Comment[]
@@index([comments.userId])
@@fulltext([title(sort: Desc), content])
}

type Comment {
userId String @db.ObjectId
content String
}
121 changes: 121 additions & 0 deletions query-engine/dmmf/test_files/indexes_mysql.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
{
"enums": [],
"models": [
{
"name": "Post",
"dbName": null,
"fields": [
{
"name": "title",
"kind": "scalar",
"isList": false,
"isRequired": true,
"isUnique": false,
"isId": false,
"isReadOnly": false,
"hasDefaultValue": false,
"type": "String",
"isGenerated": false,
"isUpdatedAt": false
},
{
"name": "abstract",
"kind": "scalar",
"isList": false,
"isRequired": true,
"isUnique": false,
"isId": false,
"isReadOnly": false,
"hasDefaultValue": false,
"type": "String",
"isGenerated": false,
"isUpdatedAt": false
},
{
"name": "slug",
"kind": "scalar",
"isList": false,
"isRequired": true,
"isUnique": true,
"isId": false,
"isReadOnly": false,
"hasDefaultValue": false,
"type": "String",
"isGenerated": false,
"isUpdatedAt": false
},
{
"name": "author",
"kind": "scalar",
"isList": false,
"isRequired": true,
"isUnique": false,
"isId": false,
"isReadOnly": false,
"hasDefaultValue": false,
"type": "String",
"isGenerated": false,
"isUpdatedAt": false
},
{
"name": "created_at",
"kind": "scalar",
"isList": false,
"isRequired": true,
"isUnique": false,
"isId": false,
"isReadOnly": false,
"hasDefaultValue": false,
"type": "DateTime",
"isGenerated": false,
"isUpdatedAt": false
}
],
"primaryKey": {
"name": null,
"fields": [
"title",
"abstract"
]
},
"uniqueFields": [],
"uniqueIndexes": [],
"isGenerated": false
}
],
"types": [],
"indexes": [
{
"model": "Post",
"type": "unique",
"isDefinedOnField": true,
"fields": [
{
"path": [
"slug"
],
"sortOrder": "desc",
"length": 42
}
]
},
{
"model": "Post",
"type": "normal",
"isDefinedOnField": false,
"fields": [
{
"path": [
"author"
]
},
{
"path": [
"created_at"
],
"sortOrder": "desc"
}
]
}
]
}
15 changes: 15 additions & 0 deletions query-engine/dmmf/test_files/indexes_mysql.prisma
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
datasource db {
provider = "mysql"
url = "mysql://"
}

model Post {
title String @db.VarChar(300)
abstract String @db.VarChar(3000)
slug String @unique(sort: Desc, length: 42) @db.VarChar(3000)
author String
created_at DateTime
@@id([title(length: 100), abstract(length: 10)])
@@index([author, created_at(sort: Desc)])
}
58 changes: 58 additions & 0 deletions query-engine/dmmf/test_files/indexes_postgres.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
{
"enums": [],
"models": [
{
"name": "Example",
"dbName": null,
"fields": [
{
"name": "id",
"kind": "scalar",
"isList": false,
"isRequired": true,
"isUnique": false,
"isId": true,
"isReadOnly": false,
"hasDefaultValue": false,
"type": "Int",
"isGenerated": false,
"isUpdatedAt": false
},
{
"name": "value",
"kind": "scalar",
"isList": false,
"isRequired": true,
"isUnique": false,
"isId": false,
"isReadOnly": false,
"hasDefaultValue": false,
"type": "Json",
"isGenerated": false,
"isUpdatedAt": false
}
],
"primaryKey": null,
"uniqueFields": [],
"uniqueIndexes": [],
"isGenerated": false
}
],
"types": [],
"indexes": [
{
"model": "Example",
"type": "normal",
"isDefinedOnField": false,
"algorithm": "Gin",
"fields": [
{
"path": [
"value"
],
"operatorClass": "JsonbPathOps"
}
]
}
]
}
11 changes: 11 additions & 0 deletions query-engine/dmmf/test_files/indexes_postgres.prisma
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
datasource db {
provider = "postgresql"
url = "postgresql://"
}

model Example {
id Int @id
value Json
@@index([value(ops: JsonbPathOps)], type: Gin)
}

0 comments on commit d45499b

Please sign in to comment.