Skip to content

camelCase 'name' field breaks Point type, adding to payload as issue #13394

@yall-e

Description

@yall-e

Describe the Bug

There's a bug where camelCase values in the 'name' field are incompatible with the point type. This will be added to the payload as an issue.

example:

            {
              name: 'customerLocation',
              type: 'point',
              label: 'Location',
              required: true,
            },
[21:00:52] ERROR: There was an error fetching the list view data for collection posts
    err: {
      "type": "DrizzleQueryError",
      "message": "Failed query: select \"_posts_v\".\"id\", \"_posts_v\".\"parent_id\", \"_posts_v\".\"version_title\", \"_posts_v\".\"version_hero_image_id\", \"_posts_v\".\"version_content\", \"_posts_v\".\"version_meta_title\", \"_posts_v\".\"version_meta_image_id\", \"_posts_v\".\"version_meta_description\", \"_posts_v\".\"version_published_at\", \"_posts_v\".\"version_slug\", \"_posts_v\".\"version_slug_lock\", \"_posts_v\".\"version_updated_at\", \"_posts_v\".\"version_created_at\", \"_posts_v\".\"version__status\", \"_posts_v\".\"created_at\", \"_posts_v\".\"updated_at\", \"_posts_v\".\"latest\", \"_posts_v\".\"autosave\", ST_AsGeoJSON(version_customerlocation)::jsonb as \"version_customerLocation\", \"_posts_v_version_populatedAuthors\".\"data\" as \"version_populatedAuthors\", \"_posts_v__rels\".\"data\" as \"_rels\" from \"_posts_v\" \"_posts_v\" left join lateral (select coalesce(json_agg(json_build_array(\"_posts_v_version_populatedAuthors\".\"_order\", \"_posts_v_version_populatedAuthors\".\"id\", \"_posts_v_version_populatedAuthors\".\"_uuid\", \"_posts_v_version_populatedAuthors\".\"name\") order by \"_posts_v_version_populatedAuthors\".\"_order\" asc), '[]'::json) as \"data\" from (select * from \"_posts_v_version_populated_authors\" \"_posts_v_version_populatedAuthors\" where \"_posts_v_version_populatedAuthors\".\"_parent_id\" = \"_posts_v\".\"id\" order by \"_posts_v_version_populatedAuthors\".\"_order\" asc) \"_posts_v_version_populatedAuthors\") \"_posts_v_version_populatedAuthors\" on true left join lateral (select coalesce(json_agg(json_build_array(\"_posts_v__rels\".\"order\", \"_posts_v__rels\".\"path\", \"_posts_v__rels\".\"posts_id\", \"_posts_v__rels\".\"categories_id\", \"_posts_v__rels\".\"users_id\") order by \"_posts_v__rels\".\"order\" asc), '[]'::json) as \"data\" from (select * from \"_posts_v_rels\" \"_posts_v__rels\" where \"_posts_v__rels\".\"parent_id\" = \"_posts_v\".\"id\" order by \"_posts_v__rels\".\"order\" asc) \"_posts_v__rels\") \"_posts_v__rels\" on true where \"_posts_v\".\"latest\" = $1 order by \"_posts_v\".\"version_created_at\" desc, \"_posts_v\".\"created_at\" desc limit $2\nparams: true,10: column \"version_customerlocation\" does not exist",
      "stack":
          Error: Failed query: select "_posts_v"."id", "_posts_v"."parent_id", "_posts_v"."version_title", "_posts_v"."version_hero_image_id", "_posts_v"."version_content", "_posts_v"."version_meta_title", "_posts_v"."version_meta_image_id", "_posts_v"."version_meta_description", "_posts_v"."version_published_at", "_posts_v"."version_slug", "_posts_v"."version_slug_lock", "_posts_v"."version_updated_at", "_posts_v"."version_created_at", "_posts_v"."version__status", "_posts_v"."created_at", "_posts_v"."updated_at", "_posts_v"."latest", "_posts_v"."autosave", ST_AsGeoJSON(version_customerlocation)::jsonb as "version_customerLocation", "_posts_v_version_populatedAuthors"."data" as "version_populatedAuthors", "_posts_v__rels"."data" as "_rels" from "_posts_v" "_posts_v" left join lateral (select coalesce(json_agg(json_build_array("_posts_v_version_populatedAuthors"."_order", "_posts_v_version_populatedAuthors"."id", "_posts_v_version_populatedAuthors"."_uuid", "_posts_v_version_populatedAuthors"."name") order by "_posts_v_version_populatedAuthors"."_order" asc), '[]'::json) as "data" from (select * from "_posts_v_version_populated_authors" "_posts_v_version_populatedAuthors" where "_posts_v_version_populatedAuthors"."_parent_id" = "_posts_v"."id" order by "_posts_v_version_populatedAuthors"."_order" asc) "_posts_v_version_populatedAuthors") "_posts_v_version_populatedAuthors" on true left join lateral (select coalesce(json_agg(json_build_array("_posts_v__rels"."order", "_posts_v__rels"."path", "_posts_v__rels"."posts_id", "_posts_v__rels"."categories_id", "_posts_v__rels"."users_id") order by "_posts_v__rels"."order" asc), '[]'::json) as "data" from (select * from "_posts_v_rels" "_posts_v__rels" where "_posts_v__rels"."parent_id" = "_posts_v"."id" order by "_posts_v__rels"."order" asc) "_posts_v__rels") "_posts_v__rels" on true where "_posts_v"."latest" = $1 order by "_posts_v"."version_created_at" desc, "_posts_v"."created_at" desc limit $2
          params: true,10
              at NodePgPreparedQuery.queryWithCache (file:///home/yigitraphy/dev/payload-camel-case-point-field-bug/node_modules/drizzle-orm/pg-core/session.js:42:15)
              at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
              at async file:///home/yigitraphy/dev/payload-camel-case-point-field-bug/node_modules/drizzle-orm/node-postgres/session.js:117:22
              at async find (file:///home/yigitraphy/dev/payload-camel-case-point-field-bug/node_modules/@payloadcms/drizzle/dist/find/findMany.js:112:21)
              at async Object.queryDrafts (file:///home/yigitraphy/dev/payload-camel-case-point-field-bug/node_modules/@payloadcms/drizzle/dist/queryDrafts.js:13:20)
              at async findOperation (file:///home/yigitraphy/dev/payload-camel-case-point-field-bug/node_modules/payload/dist/collections/operations/find.js:107:22)
              at async renderListView (webpack-internal:///(rsc)/./node_modules/@payloadcms/next/dist/views/List/index.js:191:16)
              at async ListView (webpack-internal:///(rsc)/./node_modules/@payloadcms/next/dist/views/List/index.js:328:9)
          caused by: error: column "version_customerlocation" does not exist
              at /home/yigitraphy/dev/payload-camel-case-point-field-bug/node_modules/pg-pool/index.js:45:11
              at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
              at async file:///home/yigitraphy/dev/payload-camel-case-point-field-bug/node_modules/drizzle-orm/node-postgres/session.js:124:18
              at async NodePgPreparedQuery.queryWithCache (file:///home/yigitraphy/dev/payload-camel-case-point-field-bug/node_modules/drizzle-orm/pg-core/session.js:40:16)
              at async file:///home/yigitraphy/dev/payload-camel-case-point-field-bug/node_modules/drizzle-orm/node-postgres/session.js:117:22
              at async find (file:///home/yigitraphy/dev/payload-camel-case-point-field-bug/node_modules/@payloadcms/drizzle/dist/find/findMany.js:112:21)
              at async Object.queryDrafts (file:///home/yigitraphy/dev/payload-camel-case-point-field-bug/node_modules/@payloadcms/drizzle/dist/queryDrafts.js:13:20)
              at async findOperation (file:///home/yigitraphy/dev/payload-camel-case-point-field-bug/node_modules/payload/dist/collections/operations/find.js:107:22)
              at async renderListView (webpack-internal:///(rsc)/./node_modules/@payloadcms/next/dist/views/List/index.js:191:16)
              at async ListView (webpack-internal:///(rsc)/./node_modules/@payloadcms/next/dist/views/List/index.js:328:9)
      "query": "select \"_posts_v\".\"id\", \"_posts_v\".\"parent_id\", \"_posts_v\".\"version_title\", \"_posts_v\".\"version_hero_image_id\", \"_posts_v\".\"version_content\", \"_posts_v\".\"version_meta_title\", \"_posts_v\".\"version_meta_image_id\", \"_posts_v\".\"version_meta_description\", \"_posts_v\".\"version_published_at\", \"_posts_v\".\"version_slug\", \"_posts_v\".\"version_slug_lock\", \"_posts_v\".\"version_updated_at\", \"_posts_v\".\"version_created_at\", \"_posts_v\".\"version__status\", \"_posts_v\".\"created_at\", \"_posts_v\".\"updated_at\", \"_posts_v\".\"latest\", \"_posts_v\".\"autosave\", ST_AsGeoJSON(version_customerlocation)::jsonb as \"version_customerLocation\", \"_posts_v_version_populatedAuthors\".\"data\" as \"version_populatedAuthors\", \"_posts_v__rels\".\"data\" as \"_rels\" from \"_posts_v\" \"_posts_v\" left join lateral (select coalesce(json_agg(json_build_array(\"_posts_v_version_populatedAuthors\".\"_order\", \"_posts_v_version_populatedAuthors\".\"id\", \"_posts_v_version_populatedAuthors\".\"_uuid\", \"_posts_v_version_populatedAuthors\".\"name\") order by \"_posts_v_version_populatedAuthors\".\"_order\" asc), '[]'::json) as \"data\" from (select * from \"_posts_v_version_populated_authors\" \"_posts_v_version_populatedAuthors\" where \"_posts_v_version_populatedAuthors\".\"_parent_id\" = \"_posts_v\".\"id\" order by \"_posts_v_version_populatedAuthors\".\"_order\" asc) \"_posts_v_version_populatedAuthors\") \"_posts_v_version_populatedAuthors\" on true left join lateral (select coalesce(json_agg(json_build_array(\"_posts_v__rels\".\"order\", \"_posts_v__rels\".\"path\", \"_posts_v__rels\".\"posts_id\", \"_posts_v__rels\".\"categories_id\", \"_posts_v__rels\".\"users_id\") order by \"_posts_v__rels\".\"order\" asc), '[]'::json) as \"data\" from (select * from \"_posts_v_rels\" \"_posts_v__rels\" where \"_posts_v__rels\".\"parent_id\" = \"_posts_v\".\"id\" order by \"_posts_v__rels\".\"order\" asc) \"_posts_v__rels\") \"_posts_v__rels\" on true where \"_posts_v\".\"latest\" = $1 order by \"_posts_v\".\"version_created_at\" desc, \"_posts_v\".\"created_at\" desc limit $2",
      "params": [
        true,
        10
      ]
    }
[Error: Failed query: select "_posts_v"."id", "_posts_v"."parent_id", "_posts_v"."version_title", "_posts_v"."version_hero_image_id", "_posts_v"."version_content", "_posts_v"."version_meta_title", "_posts_v"."version_meta_image_id", "_posts_v"."version_meta_description", "_posts_v"."version_published_at", "_posts_v"."version_slug", "_posts_v"."version_slug_lock", "_posts_v"."version_updated_at", "_posts_v"."version_created_at", "_posts_v"."version__status", "_posts_v"."created_at", "_posts_v"."updated_at", "_posts_v"."latest", "_posts_v"."autosave", ST_AsGeoJSON(version_customerlocation)::jsonb as "version_customerLocation", "_posts_v_version_populatedAuthors"."data" as "version_populatedAuthors", "_posts_v__rels"."data" as "_rels" from "_posts_v" "_posts_v" left join lateral (select coalesce(json_agg(json_build_array("_posts_v_version_populatedAuthors"."_order", "_posts_v_version_populatedAuthors"."id", "_posts_v_version_populatedAuthors"."_uuid", "_posts_v_version_populatedAuthors"."name") order by "_posts_v_version_populatedAuthors"."_order" asc), '[]'::json) as "data" from (select * from "_posts_v_version_populated_authors" "_posts_v_version_populatedAuthors" where "_posts_v_version_populatedAuthors"."_parent_id" = "_posts_v"."id" order by "_posts_v_version_populatedAuthors"."_order" asc) "_posts_v_version_populatedAuthors") "_posts_v_version_populatedAuthors" on true left join lateral (select coalesce(json_agg(json_build_array("_posts_v__rels"."order", "_posts_v__rels"."path", "_posts_v__rels"."posts_id", "_posts_v__rels"."categories_id", "_posts_v__rels"."users_id") order by "_posts_v__rels"."order" asc), '[]'::json) as "data" from (select * from "_posts_v_rels" "_posts_v__rels" where "_posts_v__rels"."parent_id" = "_posts_v"."id" order by "_posts_v__rels"."order" asc) "_posts_v__rels") "_posts_v__rels" on true where "_posts_v"."latest" = $1 order by "_posts_v"."version_created_at" desc, "_posts_v"."created_at" desc limit $2
params: true,10] {
  query: `select "_posts_v"."id", "_posts_v"."parent_id", "_posts_v"."version_title", "_posts_v"."version_hero_image_id", "_posts_v"."version_content", "_posts_v"."version_meta_title", "_posts_v"."version_meta_image_id", "_posts_v"."version_meta_description", "_posts_v"."version_published_at", "_posts_v"."version_slug", "_posts_v"."version_slug_lock", "_posts_v"."version_updated_at", "_posts_v"."version_created_at", "_posts_v"."version__status", "_posts_v"."created_at", "_posts_v"."updated_at", "_posts_v"."latest", "_posts_v"."autosave", ST_AsGeoJSON(version_customerlocation)::jsonb as "version_customerLocation", "_posts_v_version_populatedAuthors"."data" as "version_populatedAuthors", "_posts_v__rels"."data" as "_rels" from "_posts_v" "_posts_v" left join lateral (select coalesce(json_agg(json_build_array("_posts_v_version_populatedAuthors"."_order", "_posts_v_version_populatedAuthors"."id", "_posts_v_version_populatedAuthors"."_uuid", "_posts_v_version_populatedAuthors"."name") order by "_posts_v_version_populatedAuthors"."_order" asc), '[]'::json) as "data" from (select * from "_posts_v_version_populated_authors" "_posts_v_version_populatedAuthors" where "_posts_v_version_populatedAuthors"."_parent_id" = "_posts_v"."id" order by "_posts_v_version_populatedAuthors"."_order" asc) "_posts_v_version_populatedAuthors") "_posts_v_version_populatedAuthors" on true left join lateral (select coalesce(json_agg(json_build_array("_posts_v__rels"."order", "_posts_v__rels"."path", "_posts_v__rels"."posts_id", "_posts_v__rels"."categories_id", "_posts_v__rels"."users_id") order by "_posts_v__rels"."order" asc), '[]'::json) as "data" from (select * from "_posts_v_rels" "_posts_v__rels" where "_posts_v__rels"."parent_id" = "_posts_v"."id" order by "_posts_v__rels"."order" asc) "_posts_v__rels") "_posts_v__rels" on true where "_posts_v"."latest" = $1 order by "_posts_v"."version_created_at" desc, "_posts_v"."created_at" desc limit $2`,
  params: [Array],
  [cause]: [error: column "version_customerlocation" does not exist] {
    length: 206,
    severity: 'ERROR',
    code: '42703',
    detail: undefined,
    hint: 'Perhaps you meant to reference the column "_posts_v.version_customer_location".',
    position: '548',
    internalPosition: undefined,
    internalQuery: undefined,
    where: undefined,
    schema: undefined,
    table: undefined,
    column: undefined,
    dataType: undefined,
    constraint: undefined,
    file: 'parse_relation.c',
    line: '3723',
    routine: 'errorMissingColumn'
  }
}

Link to the code that reproduces this issue

https://github.com/yall-e/payload-camelCase-point-field-bug

Reproduction Steps

  1. create a new payload repository.
  2. add 'point' field with camelCase.
  3. go to admin collection page that has newly created 'point'.

Which area(s) are affected? (Select all that apply)

db-postgres

Environment Info

> [email protected] payload
> cross-env NODE_OPTIONS=--no-deprecation payload info

! The local project doesn't define a 'packageManager' field. Corepack will now add one referencing [email protected]+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e.
! For more details about this field, consult the documentation at https://nodejs.org/api/packages.html#packagemanager

This project is configured to use yarn because /home/yigitraphy/dev/payload-camel-case-point-field-bug/package.json has a "packageManager" field

Binaries:
  Node: 22.14.0
  npm: 10.9.2
  Yarn: 1.22.22
  pnpm: N/A
Relevant Packages:
  payload: 3.50.0
  next: 15.4.4
  @payloadcms/db-postgres: 3.50.0
  @payloadcms/email-nodemailer: 3.50.0
  @payloadcms/graphql: 3.50.0
  @payloadcms/live-preview: 3.50.0
  @payloadcms/live-preview-react: 3.50.0
  @payloadcms/next/utilities: 3.50.0
  @payloadcms/payload-cloud: 3.50.0
  @payloadcms/plugin-form-builder: 3.50.0
  @payloadcms/plugin-nested-docs: 3.50.0
  @payloadcms/plugin-redirects: 3.50.0
  @payloadcms/plugin-search: 3.50.0
  @payloadcms/plugin-seo: 3.50.0
  @payloadcms/richtext-lexical: 3.50.0
  @payloadcms/translations: 3.50.0
  @payloadcms/ui/shared: 3.50.0
  react: 19.1.0
  react-dom: 19.1.0
Operating System:
  Platform: linux
  Arch: x64
  Version: #27~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 17:38:49 UTC 2
  Available memory (MB): 7741
  Available CPU cores: 8

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions