Skip to content

Unable to exclude large indexes #1242

@dogmatic69

Description

@dogmatic69

Thanks for stopping by to let us know something could be better!

PLEASE READ: If you have a support contract with Google, please create an issue in the support console instead of filing on GitHub. This will ensure a timely response.

  1. Is this a client library issue or a product issue?
    client lib

  2. Did someone already solve this?
    existing feature that is broken

  3. Do you have a support contract?
    no

Environment details

  • OS: Alpine
  • Node.js version: 21.7.1
  • yarn: 1.22.19
  • @google-cloud/datastore version: 8.5.0

Steps to reproduce

in the code, when passing data with the name/value format rather than a normal object, this functionality seems to be completely skipped.

Simple save function with the excludeLargeProperties prop hard coded to true results in error that a field is too large. Given the prop is true, I'd expect it to ignore any large fields.

Feasible to include this functionality or do I avoid using the verbose data structure when saving?

await instance.save({ key, data: [ { name: 'field_a', value: 'value_a', }, { name: 'field_b', value: { nested_field: 'nested_value', // completely ignored }, } ], excludeLargeProperties: true, }) 

The above code with a suitably large field results in errors like this

Error saving data: 3 INVALID_ARGUMENT: The value of property "content" is longer than 1500 bytes. Error: 3 INVALID_ARGUMENT: The value of property "content" is longer than 1500 bytes. at callErrorFromStatus (/app/node_modules/@grpc/grpc-js/build/src/call.js:31:19) at Object.onReceiveStatus (/app/node_modules/@grpc/grpc-js/build/src/client.js:192:76) at Object.onReceiveStatus (/app/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:360:141) at Object.onReceiveStatus (/app/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:323:181) at /app/node_modules/@grpc/grpc-js/build/src/resolving-call.js:99:78 at process.processTicksAndRejections (node:internal/process/task_queues:77:11) for call at at ServiceClientImpl.makeUnaryRequest (/app/node_modules/@grpc/grpc-js/build/src/client.js:160:32) at ServiceClientImpl.<anonymous> (/app/node_modules/@grpc/grpc-js/build/src/make-client.js:105:19) at /app/node_modules/@google-cloud/datastore/build/src/v1/datastore_client.js:232:29 at /app/node_modules/google-gax/build/src/normalCalls/timeout.js:44:16 at OngoingCall.call (/app/node_modules/google-gax/build/src/call.js:67:27) at NormalApiCaller.call (/app/node_modules/google-gax/build/src/normalCalls/normalApiCaller.js:34:19) at /app/node_modules/google-gax/build/src/createApiCall.js:108:30 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 

Metadata

Metadata

Assignees

Labels

api: datastoreIssues related to the googleapis/nodejs-datastore API.priority: p2Moderately-important priority. Fix may not be included in next release.type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions