Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tuoeb-00C85w-68 for pgsql-general@arkaria.postgresql.org; Wed, 19 Mar 2025 08:19:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tuoeZ-00Gjgb-61 for pgsql-general@arkaria.postgresql.org; Wed, 19 Mar 2025 08:19:55 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tuoeY-00GjgR-Qz for pgsql-general@lists.postgresql.org; Wed, 19 Mar 2025 08:19:54 +0000 Received: from smtp126.ord1d.emailsrvr.com ([184.106.54.126]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1tuoeX-003f4t-0G for pgsql-general@postgresql.org; Wed, 19 Mar 2025 08:19:53 +0000 X-Auth-ID: xof@thebuild.com Received: by smtp24.relay.ord1d.emailsrvr.com (Authenticated sender: xof-AT-thebuild.com) with ESMTPSA id 04FEFA00E9; Wed, 19 Mar 2025 04:19:51 -0400 (EDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3776.700.51.11.1\)) Subject: Re: pgvector as standard PostgreSQL feature? From: Christophe Pettus In-Reply-To: Date: Wed, 19 Mar 2025 09:19:20 +0100 Cc: "pgsql-general@postgresql.org" Content-Transfer-Encoding: quoted-printable Message-Id: <558AE558-C724-435B-9F32-F40966A20907@thebuild.com> References: To: Sebastien Flaesch X-Mailer: Apple Mail (2.3776.700.51.11.1) X-Classification-ID: b4233b31-f460-4773-848d-a77b19a43173-1-1 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk > On Mar 19, 2025, at 07:47, Sebastien Flaesch = wrote: >=20 > Is there a plan to get pgvector's types (vector, halfvec, sparsevec, = bit) implemented as native built-in data types like json/jsonb ? (I'm speaking just for myself here.) I would not base any plans on this = functionality being available in the PostgreSQL core in the near future = (and by "near future," I mean the next five years). 1. You list three different extensions with overlapping functionality, = and that's a good sign that there isn't consensus on what the features = that would be offered in core should be. 2. Adding a type to the core distribution (or even to contrib/) creates = a maintenance burden on the core developers, and that's not something = assumed lightly. Once a type is in core, it (almost) never can be = removed, and the more specialized the type and detailed the = implementation, the greater the risk that the developers who know and = care about it won't be available in the future. Search the archives for = a discussion of the "money" type for what happens when a type added to = core starts becoming ill-supported... and "money" isn't anywhere near as = complex as vector functionality. 3. PostgreSQL is designed to have a rich ecosystem of extensions. The = ability to add this kind of functionality in an extension is exactly = what distinguishes PostgreSQL from many other RDBMS systems. There's no = burning need to add functionality like this to core. It is true that hosted environments take time to adopt new extensions = (although AWS RDS has supported pgvector for nearly two years now), but = that's not in itself a reason to move things into core. > Side note: I have some doubts about these type names, especially "bit" = ... why not "bitvec"? BIT and BIT VARYING are the SQL standard names for these types. =09