1. Known Issues

Polybase is currently in alpha. We appreciate your patience while we add functionality and address these issues. Please report any issues in Discord.

Limitation on indexing maps and arrays

Currently, Polybase does not support indexing of elements of maps or arrays. This means that you will not be able to use where or sort on the elements in these types.

Example:

If you have a schema such as:

collection User {
    id: string;
    details: map<string, string>;
    adresses: string[]
}

You will not be able to add details or addresses to the index

collection User {
    id: string;
    details: map<string, string>;

    @index(details, adresses) //  DOES NOT WORK
}

You also will not be able to add elements of details or addresses

collection User {
    id: string;
    details: map<string, string>;

    @index(details['name'], adresses[0]) //  DOES NOT WORK
}

Limitations on optional types in maps

Currently Polybase does not support null values in maps. If you have an optional value that may not exist, you must still provide a value for the key or omit the type.

Example:

If you have a schema such as:

collection User {
    id: string;
    name: string;
    details: map<string, string>;
}

You must provide a value for all fields in details or omit it

// User provided an email but not a phone number
const userName = 'John Doe'
const userEmail = 'john.doe@polybase.xyz'
const userPhone = null

const collectionReference = db.collection("User")

// DOES NOT WORK
const recordData = await collectionReference.create([userName, {email: userEmail, phone: userPhone}]) 

// WORKS
const recordData = await collectionReference.create([userName, {email: userEmail, phone: ""}]) 

// WORKS
const recordData = await collectionReference.create([userName, {}])