# data type

A data type defines a set of values or characters together with the operations that can be performed on them.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Kan Extensions in Double Categories

DevFeed: [Kan Extensions in Double Categories](<https://devfeed.tech/articles/kan-extensions-in-double-categories-28860.md>)

Original publisher: [Read original article](<https://bartoszmilewski.com/2026/06/13/kan-extensions-in-double-categories/>)

Author: Bartosz Milewski

Published: 2026-06-13T12:27:28Z

Content type: article

Language: en

Sources: [Bartosz Milewski's Programming Cafe](<https://devfeed.tech/sources/bartosz-milewski-s-programming-cafe.md>)

Topics: [Haskell](<https://devfeed.tech/topics/haskell.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [category-theory](<https://devfeed.tech/tags/category-theory.md>), [data-type](<https://devfeed.tech/tags/data-type.md>), [double-category](<https://devfeed.tech/tags/double-category.md>), [function](<https://devfeed.tech/tags/function.md>), [haskell](<https://devfeed.tech/tags/haskell.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [kan-extensions](<https://devfeed.tech/tags/kan-extensions.md>), [profunctor-equipment](<https://devfeed.tech/tags/profunctor-equipment.md>), [profunctors](<https://devfeed.tech/tags/profunctors.md>)

### AI overview

This article generalizes right and left Kan extensions from functors to profunctors in double categories and presents corresponding Haskell representations. It explains the associated universal and factorization properties, including their computational interpretation.

### Source excerpt

Previously: Kan extensions in Haskell. In a double category that is also a proarrow equipment, we have the ability to bend arrows. In particular, in the definition of the counit of the right Kan extension: we can bend the vertical arrow, replacing it with its horizontal conjoint . In a profunctor equipment, this is just [...]

## Calling Haskell from Swift

DevFeed: [Calling Haskell from Swift](<https://devfeed.tech/articles/calling-haskell-from-swift-27915.md>)

Original publisher: [Read original article](<http://alt-romes.github.io/posts/2024-04-02-calling-haskell-from-swift.html>)

Published: 2024-04-02T00:00:00Z

Content type: tutorial

Language: en

Sources: [Romes' Musings](<https://devfeed.tech/sources/romes-musings.md>)

Topics: [Haskell](<https://devfeed.tech/topics/haskell.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [interoperability](<https://devfeed.tech/topics/interoperability.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [SwiftUI](<https://devfeed.tech/topics/swiftui.md>)

Tags: [data-type](<https://devfeed.tech/tags/data-type.md>), [haskell](<https://devfeed.tech/tags/haskell.md>), [interoperability](<https://devfeed.tech/tags/interoperability.md>), [ios](<https://devfeed.tech/tags/ios.md>), [macos](<https://devfeed.tech/tags/macos.md>), [metaprogramming](<https://devfeed.tech/tags/metaprogramming.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swiftui](<https://devfeed.tech/tags/swiftui.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

This tutorial explains how to call non-trivial Haskell functions from Swift in native macOS and iOS applications. It uses foreign function exports, argument and result marshaling, serialization of user-defined data types, and Swift interoperability so Haskell functions can be exposed through Swift structs, classes, and idiomatic interfaces.

### Source excerpt

Contents 1 Introduction 2 Marshaling Inputs and Outputs 2.1 Haskell's Perspective 2.2 Swift's Perspective 3 Metaprogramming at the boundaries 3.1 Haskell's perspective 3.2 Swift's perspective 4 Remarks This is the second installment of the in-depth series of blog-posts on developing native macOS and iOS applications using both Haskell and Swift/SwiftUI. This post covers how to call (non-trivial) Haskell functions from Swift by using a foreign function calling-convention strategy similar to that described by Calling Purgatory from Heaven: Binding to Rust in Haskell that requires argument and result marshaling. You may find the other blog posts in this series interesting: Creating a macOS app with Haskell and Swift The series of blog posts is further accompanied by a github repository where each commit matches a step of this tutorial. If in doubt regarding any step, check the matching commit to make it clearer. This write-up has been cross-posted to Well-Typed's Blog. 1 Introduction We'll pick up from where the last post ended - we have set up an XCode project that includes our headers generated from Haskell modules with foreign exports and linking against the foreign library declared in the cabal file. We have already been able to call a very simple Haskell function on integers from Swift via Haskell's C foreign export feature and Swift's C interoperability. This part concerns itself with calling idiomatic Haskell functions, which typically involve user-defined datatypes as inputs and outputs, from Swift. Moreover, these functions should be made available to Swift transparently, such that Swift calls them as it does other idiomatic functions, with user defined structs and classes. For the running example, the following not-very-interesting function will suffice to showcase the method we will use to expose this function from Haskell to Swift, which easily scales to other complex data types and functions. data User = User { name :: String , age :: Int } birthday :: Use

## Mixed-input matrix multiplication performance optimizations

DevFeed: [Mixed-input matrix multiplication performance optimizations](<https://devfeed.tech/articles/mixed-input-matrix-multiplication-performance-optimizations-28543.md>)

Original publisher: [Read original article](<http://blog.research.google/2024/01/mixed-input-matrix-multiplication.html>)

Author: Google AI (noreply@blogger.com)

Published: 2024-01-26T19:56:00Z

Content type: article

Language: en

Sources: [Google Research](<https://devfeed.tech/sources/google-research.md>)

Topics: [Large language models (LLMs)](<https://devfeed.tech/topics/large-language-models-llms.md>), [quantization](<https://devfeed.tech/topics/quantization.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [Nvidia](<https://devfeed.tech/topics/nvidia.md>), [Tensor Cores](<https://devfeed.tech/topics/tensor-cores.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Software](<https://devfeed.tech/topics/software.md>), [data type](<https://devfeed.tech/topics/data-type.md>)

Tags: [accelerators](<https://devfeed.tech/tags/accelerators.md>), [ai](<https://devfeed.tech/tags/ai.md>), [algorithms](<https://devfeed.tech/tags/algorithms.md>), [ampere](<https://devfeed.tech/tags/ampere.md>), [compute](<https://devfeed.tech/tags/compute.md>), [conversion](<https://devfeed.tech/tags/conversion.md>), [data](<https://devfeed.tech/tags/data.md>), [deep-learning](<https://devfeed.tech/tags/deep-learning.md>), [effective](<https://devfeed.tech/tags/effective.md>), [efficiency](<https://devfeed.tech/tags/efficiency.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [language-models](<https://devfeed.tech/tags/language-models.md>), [large-language-models-llms](<https://devfeed.tech/tags/large-language-models-llms.md>), [models](<https://devfeed.tech/tags/models.md>), [nvidia](<https://devfeed.tech/tags/nvidia.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [precision](<https://devfeed.tech/tags/precision.md>), [quantization](<https://devfeed.tech/tags/quantization.md>), [research](<https://devfeed.tech/tags/research.md>), [software](<https://devfeed.tech/tags/software.md>), [tensor-cores](<https://devfeed.tech/tags/tensor-cores.md>)

### AI overview

This Google Research article explains software techniques for mapping mixed-input matrix multiplication onto NVIDIA Ampere hardware. It describes using lower-precision weights with higher-precision inputs, data-type conversion, and layout transformations to support weight-only quantization. The authors report minimal software overhead and performance close to peak hardware capabilities, and state that the techniques were released in the open-source NVIDIA/CUTLASS repository.

### Source excerpt

Posted by Manish Gupta, Staff Software Engineer, Google Research AI-driven technologies are weaving themselves into the fabric of our daily routines, with the potential to enhance our access to knowledge and boost our overall productivity. The backbone of these applications lies in large language models (LLMs). LLMs are memory-intensive and typically require specialized hardware accelerators to efficiently deliver tens of exaflops of computing power. This blog post shows how we can start addressing the computational challenges by utilizing memory more effectively. The bulk of an LLM's memory and compute are consumed by weights in matrix multiplication operations. Using narrower data types reduces memory consumption. For example, storing weights in the 8-bit integer (i.e., U8 or S8) data type reduces the memory footprint by 4x relative to single-precision (F32) and 2x relative to half-precision (F16) or bfloat16 (BF16). Furthermore, previous work has shown that LLM models running matrix multiplications with weights in S8 and input in F16 (preserving higher precision of the user-input) is an effective method for increasing the efficiency with acceptable trade-offs in accuracy. This technique is known as weight-only quantization and requires efficient implementation of matrix multiplication with mixed-inputs, e.g., half-precision input multiplied with 8-bits integer. Hardware accelerators, including GPUs, support a fixed set of data types, and thus, mixed-input matrix multiplication requires software transformations to map to the hardware operations. To that end, in this blog we focus on mapping mixed-input matrix multiplication onto the NVIDIA Ampere architecture. We present software techniques addressing data type conversion and layout conformance to map mixed-input matrix multiplication efficiently onto hardware-supported data types and layouts. Our results show that the overhead of additional work in software is minimal and enables performance close to the peak har

## Computed Properties for Haskell Records

DevFeed: [Computed Properties for Haskell Records](<https://devfeed.tech/articles/computed-properties-for-haskell-records-27914.md>)

Original publisher: [Read original article](<http://alt-romes.github.io/posts/2023-11-30-computed-properties-for-haskell-records.html>)

Published: 2023-11-30T00:00:00Z

Content type: article

Language: en

Sources: [Romes' Musings](<https://devfeed.tech/sources/romes-musings.md>)

Topics: [Haskell](<https://devfeed.tech/topics/haskell.md>), [properties](<https://devfeed.tech/topics/properties.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [C](<https://devfeed.tech/topics/c.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [data-type](<https://devfeed.tech/tags/data-type.md>), [extension](<https://devfeed.tech/tags/extension.md>), [haskell](<https://devfeed.tech/tags/haskell.md>), [properties](<https://devfeed.tech/tags/properties.md>), [rust](<https://devfeed.tech/tags/rust.md>), [swift](<https://devfeed.tech/tags/swift.md>)

### AI overview

This article explains Haskell record types and related syntax extensions, including OverloadedRecordDot and NamedFieldPuns. It then introduces computed properties by comparing Haskell records with properties in Swift, C#, and Java.

### Source excerpt

Contents 1 Records in Haskell 1.1 Overloaded Record Dot 1.2 Named Field Puns 2 Computed Properties 3 Conclusion 1 Records in Haskell Haskell has so-called record types, which are also commonly known as structs, for instance, in C, Swift, and Rust. To define a square, one would write: data Point = Point { x :: Int , y :: Int } data Square = Square { topLeft :: Point , bottomRight :: Point } mySquare = Square{ topLeft = Point{x = 0, y = 0} , bottomRight = Point{x = 2, y = 2} } mySquareWidth = x (bottomRight mySquare) - x (topLeft mySquare) In Haskell record types are just syntactic sugar for ordinary product types paired with functions that get and set these fields. In essence, the above is not fundamentally different from having the following standard product types and functions: data Point = Point Int Int data Square = Square Point Point x, y :: Point -> Int x (Point px _) = px y (Point _ py) = py topLeft, bottomRight :: Square -> Point topLeft (Square tl _) = tl bottomRight (Square _ br) = br -- And setters... 1.1 Overloaded Record Dot However, by turning on the OverloadedRecordDot syntax extension, you can use more syntactic sugar to project the fields of a record instead of using the field name as a standard function: {-# LANGUAGE OverloadedRecordDot #-} mySquareWidth = mySquare.bottomRight.x - mySquare.topLeft.x which is neat! I like OverloadedRecordDot. It looks clean and feels more like using proper property of the record data type. It is also less ambiguous for an LSP to suggest the record properties of a data type by typing after the ., than it is to suggest functions to apply to the record type argument. 1.2 Named Field Puns Since I'm already writing about records, I'll mention another extension I quite enjoy: NamedFieldPuns. Traditionally, when matching on a record, you can list the field names and bind variables to the value associated with that field. Continuing the above example: area :: Square -> Int area Square{topLeft = tl, bottomRight = br} = (br.x

## List PostgreSQL tables using extensions

DevFeed: [List PostgreSQL tables using extensions](<https://devfeed.tech/articles/list-postgresql-tables-using-extensions-34612.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2019/11/list-postgresql-tables-using-extensions/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2019-11-12T17:30:00Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [data-type](<https://devfeed.tech/tags/data-type.md>), [database](<https://devfeed.tech/tags/database.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [query](<https://devfeed.tech/tags/query.md>), [schemas](<https://devfeed.tech/tags/schemas.md>)

### AI overview

A PostgreSQL query lists tables whose columns use data types provided by installed extensions. The article explains that the query scans the PostgreSQL catalog to identify those dependencies.

### Source excerpt

Postgres has extensions, and that's awesome! Of course as the author of CREATE EXTENSION I'm a little biased... just remember that the ability to extend Postgres is way more than just this command. The whole database system has been design from the ground up to allow for extensibility. Parts of the design is to be found in the way you can register new objects at runtime: functions of course, and also data types, operators, index support structures such as operator classes and families, even index access methods! Today's article shows a query that you can use to list those tables in your schemas that are using a data type which is provided by an extension.

## PostgreSQL Data Types

DevFeed: [PostgreSQL Data Types](<https://devfeed.tech/articles/postgresql-data-types-34598.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2018/05/postgresql-data-types/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2018-05-24T12:47:05Z

Content type: article

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [JOIN](<https://devfeed.tech/topics/join.md>), [Query (disambiguation)](<https://devfeed.tech/topics/query.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>)

Tags: [data-type](<https://devfeed.tech/tags/data-type.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [join](<https://devfeed.tech/tags/join.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [query](<https://devfeed.tech/tags/query.md>), [regexp](<https://devfeed.tech/tags/regexp.md>), [reporting](<https://devfeed.tech/tags/reporting.md>)

### AI overview

A recap of a series on PostgreSQL data types, covering how types provide input validation, expected behaviors, and processing functions. It reviews examples involving booleans, text encoding and processing, date and time values, and network address types.

### Source excerpt

Today it's time to conclude our series of PostgreSQL Data Types articles with a recap. The series cover lots of core PostgreSQL data types and shows how to benefit from the PostgreSQL concept of a data type: more than input validation, a PostgreSQL data type also implements expected behaviors and processing functions. This allows an application developer to rely on PostgreSQL for more complex queries, having the processing happen where the data is, for instance when implementing advanced JOIN operations, then retrieving only the data set that is interesting for the application.

## PostgreSQL Data Types: ENUM

DevFeed: [PostgreSQL Data Types: ENUM](<https://devfeed.tech/articles/postgresql-data-types-enum-34596.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2018/05/postgresql-data-types-enum/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2018-05-02T09:00:26Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [enum](<https://devfeed.tech/topics/enum.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>)

Tags: [alter](<https://devfeed.tech/tags/alter.md>), [data-type](<https://devfeed.tech/tags/data-type.md>), [database](<https://devfeed.tech/tags/database.md>), [enum](<https://devfeed.tech/tags/enum.md>), [join](<https://devfeed.tech/tags/join.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [table](<https://devfeed.tech/tags/table.md>)

### AI overview

This tutorial compares PostgreSQL ENUM types with reference tables and foreign keys. It explains how PostgreSQL registers ENUM types, how values are stored, and why changing accepted values is a DDL operation with transaction restrictions. The article recommends ENUMs for very static value sets and reference tables when values or ordering may change.

### Source excerpt

Continuing our series of PostgreSQL Data Types today we're going to introduce the PostgreSQL ENUM type. This data type has been added to PostgreSQL in order to make it easier to support migrations from MySQL. Proper relational design would use a reference table and a foreign key instead.

## PostgreSQL Data Types: JSON

DevFeed: [PostgreSQL Data Types: JSON](<https://devfeed.tech/articles/postgresql-data-types-json-34590.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2018/04/postgresql-data-types-json/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2018-04-30T07:49:33Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [JSON](<https://devfeed.tech/topics/json.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [SQL](<https://devfeed.tech/topics/sql.md>)

Tags: [compatibility](<https://devfeed.tech/tags/compatibility.md>), [data-type](<https://devfeed.tech/tags/data-type.md>), [functions](<https://devfeed.tech/tags/functions.md>), [indexing](<https://devfeed.tech/tags/indexing.md>), [json](<https://devfeed.tech/tags/json.md>), [jsonb](<https://devfeed.tech/tags/jsonb.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [sql](<https://devfeed.tech/tags/sql.md>), [types](<https://devfeed.tech/tags/types.md>)

### AI overview

This tutorial introduces PostgreSQL's JSON and JSONB data types. It explains that JSON stores validated text, while JSONB uses a processed binary representation with operators, functions, indexing, and searching capabilities. The article recommends JSONB for most use cases and demonstrates differences through SQL queries.

### Source excerpt

Continuing our series of PostgreSQL Data Types today we're going to introduce the PostgreSQL JSON type. PostgreSQL has built-in support for JSON with a great range of processing functions and operators, and complete indexing support. The documentation covers all the details in the chapters entitled JSON Types and JSON Functions and Operators.

## PostgreSQL Data Types: XML

DevFeed: [PostgreSQL Data Types: XML](<https://devfeed.tech/articles/postgresql-data-types-xml-34595.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2018/04/postgresql-data-types-xml/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2018-04-23T16:18:48Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [XML](<https://devfeed.tech/topics/xml.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Databases](<https://devfeed.tech/topics/databases.md>)

Tags: [data-type](<https://devfeed.tech/tags/data-type.md>), [indexing](<https://devfeed.tech/tags/indexing.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sql-database](<https://devfeed.tech/tags/sql-database.md>), [sql-xml](<https://devfeed.tech/tags/sql-xml.md>), [stored-procedures](<https://devfeed.tech/tags/stored-procedures.md>), [transformation](<https://devfeed.tech/tags/transformation.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This article introduces PostgreSQL's XML data type and its SQL/XML support for storing and manipulating XML in a database. It also discusses PL/XSLT for XML processing and notes that PostgreSQL's XML processing and indexing capabilities are limited.

### Source excerpt

Continuing our series of PostgreSQL Data Types today we're going to introduce the PostgreSQL XML type. The SQL standard includes a SQL/XML which introduces the predefined data type XML together with constructors, several routines, functions, and XML-to-SQL data type mappings to support manipulation and storage of XML in a SQL database, as per the Wikipedia page.

## PostgreSQL Data Types: Ranges

DevFeed: [PostgreSQL Data Types: Ranges](<https://devfeed.tech/articles/postgresql-data-types-ranges-34592.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2018/04/postgresql-data-types-ranges/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2018-04-18T11:41:12Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [SQL](<https://devfeed.tech/topics/sql.md>)

Tags: [data-type](<https://devfeed.tech/tags/data-type.md>), [extension](<https://devfeed.tech/tags/extension.md>), [function](<https://devfeed.tech/tags/function.md>), [indexes](<https://devfeed.tech/tags/indexes.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [range](<https://devfeed.tech/tags/range.md>), [sql](<https://devfeed.tech/tags/sql.md>), [transformation](<https://devfeed.tech/tags/transformation.md>), [types](<https://devfeed.tech/tags/types.md>), [window](<https://devfeed.tech/tags/window.md>)

### AI overview

This tutorial introduces PostgreSQL range types, using daterange values to represent exchange-rate validity periods. It demonstrates loading and transforming exchange-rate data, then enforcing non-overlapping periods with exclusion constraints, GiST indexes, and the btree_gist extension.

### Source excerpt

Continuing our series of PostgreSQL Data Types today we're going to introduce the PostgreSQL ranges data type. Range types are a unique feature of PostgreSQL, managing two dimensions of data in a single column, and allowing advanced processing. The main example is the daterange data type, which stores as a single value a lower and an upper bound of the range as a single value. This allows PostgreSQL to implement a concurrent safe check against overlapping ranges, as we're going to see in this article.

## PostgreSQL Data Types: Text Encoding

DevFeed: [PostgreSQL Data Types: Text Encoding](<https://devfeed.tech/articles/postgresql-data-types-text-encoding-34593.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2018/04/postgresql-data-types-text-encoding/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2018-04-09T11:33:01Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [ASCII](<https://devfeed.tech/topics/ascii.md>)

Tags: [ascii](<https://devfeed.tech/tags/ascii.md>), [data-type](<https://devfeed.tech/tags/data-type.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>)

### AI overview

This tutorial introduces PostgreSQL's text data type and explains character encoding, including ASCII representation, server-side encoding, and client-side encoding.

### Source excerpt

Continuing our series of PostgreSQL Data Types today we're going to introduce the PostgreSQL text data type. The first notion to understand when processing text in any program is of course the notion of encoding. So when addressing the text datatype we must mention encoding settings, and possibly also issues. An encoding is a particular representation of characters in bits and bytes. In the ASCII encoding the letter A is encoded as the 7-bits byte 1000001, or 65 in decimal, or 41 in hexadecimal. All those numbers are going to be written the same way on-disk, and the letter A too.

## PostgreSQL Data Types: an intro

DevFeed: [PostgreSQL Data Types: an intro](<https://devfeed.tech/articles/postgresql-data-types-an-intro-34587.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2018/04/postgresql-data-types-an-intro/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2018-04-06T09:32:43Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [SQL](<https://devfeed.tech/topics/sql.md>)

Tags: [data-type](<https://devfeed.tech/tags/data-type.md>), [database](<https://devfeed.tech/tags/database.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [sql](<https://devfeed.tech/tags/sql.md>), [three-valued-logic](<https://devfeed.tech/tags/three-valued-logic.md>)

### AI overview

An introduction to PostgreSQL data types, explaining how data types enforce attribute properties and enable database-side processing. The article begins with Boolean values and SQL's three-valued logic involving TRUE, FALSE, and NULL.

### Source excerpt

Today, we're going to begin a dive into the PostgreSQL Data Types. As my colleague Will Leinweber said recently in his talk Constraints: a Developer's Secret Weapon that he gave at pgDay Paris: database constraints in Postgres are the last line of defense. The most important of those constraints is the data type, or the attribute domain in normalization slang. By declaring an attribute to be of a certain data type, then PostgreSQL ensures that this property is always true, and then implements advanced processing features for each data type, so that you may push the computation to the data, when needed. This article is the first of a series that will go through many of the PostgreSQL data types, and we open the journey with boolean.

## PostgreSQL and the calendar

DevFeed: [PostgreSQL and the calendar](<https://devfeed.tech/articles/postgresql-and-the-calendar-34559.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2017/06/postgresql-and-the-calendar/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2017-06-30T12:35:59Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [DateTime](<https://devfeed.tech/topics/datetime.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [function](<https://devfeed.tech/topics/function.md>)

Tags: [data-type](<https://devfeed.tech/tags/data-type.md>), [function](<https://devfeed.tech/tags/function.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [query](<https://devfeed.tech/tags/query.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

This tutorial explains how PostgreSQL handles calendar-related computations, including ISO week numbering, leap years, date series, and interval values. It recommends using PostgreSQL's built-in date/time functions and data types instead of implementing these calculations manually.

### Source excerpt

The modern calendar is a trap for the young engineer's mind. We deal with the calendar on a daily basis and until exposed to its insanity it's rather common to think that calendar based computations are easy. That's until you've tried to do it once. A very good read about how the current calendar came to be the way it is now is Erik's Naggum The Long, Painful History of Time.

## A year's look at Postgres

DevFeed: [A year's look at Postgres](<https://devfeed.tech/articles/a-year-s-look-at-postgres-41165.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2014/03/26/A-years-look-at-Postgres/>)

Author: Map

Published: 2014-03-26T20:55:56Z

Content type: article

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [Security](<https://devfeed.tech/topics/security.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>)

Tags: [data-type](<https://devfeed.tech/tags/data-type.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [psql](<https://devfeed.tech/tags/psql.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

The article looks back at highlights from the first year of Postgres Weekly, including PostgreSQL features, the postgresql-hll extension, the psql command-line editor, and coverage of a PostgreSQL security vulnerability.

### Source excerpt

A couple years back I started more regularly blogging, though I've done this off and on before, this time I kept some regularity. A common theme started to emerge with some content on Postgres about once a month because most of what was out there was much more reference oriented. A bit after that I connected with petercooper, who runs quite a few weekly email newsletters. As someone thats been interested helping give others a good reason to create content the obvious idea of Postgres Weekly emerged. Since then we've now had the newsletter running for over a year, helped surface quite a bit of content, and grown to over 5,000 subscribers. First if you're not subscribed, then go subscribe now. And if you need some inspiration or just want to reminisce with me... here's a look back at a few highlights over the past year: The inagural issue Postgres: The Bits You Haven't Found A slide-deck from a presentation at Heroku's Waza conference that highlights many of the more unknown and rare features within Postgres, including 'WITH', arrays, pub/sub, and hstore. Open Source Release:postgresql-hll Aggregate Knowledge released Postgres HyperLogLog, which is a new Postgres datatype hll that strikes a balance between HyperLogLog and a simple set. This data type solves the problem of calculating uniques for a given data set efficiently both in performance and storage. The above is still one of my favorite extensions that most of the world doesn't know about How I Work with Postgres - Psql, My PostgreSQL Admin A common question for anyone new or even experienced with Postgres is whats the best editor out there? Most when they are asking this are asking for a GUI editor, this post highlights much of the power in the CLI 'psql' editor. A mix of notable entries Issue 6 Dissecting PostgreSQL CVE-2013-1899 After the heavily publicized and very serious security vulnerability was patched last week Blackwing intelligence took the chance to dig in. Read more on the details of the vulnerabili

## Prefixes and Ranges

DevFeed: [Prefixes and Ranges](<https://devfeed.tech/articles/prefixes-and-ranges-34476.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2012/10/prefixes-and-ranges/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2012-10-16T08:47:00Z

Content type: release

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [changelog](<https://devfeed.tech/topics/changelog.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [changelog](<https://devfeed.tech/tags/changelog.md>), [data-type](<https://devfeed.tech/tags/data-type.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [range](<https://devfeed.tech/tags/range.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

The article announces version 1.2.0 of the prefix PostgreSQL extension and its prefix_range data type. The release fixes an index search bug and updates the package primarily for PostgreSQL 9.1 and 9.2, while discussing whether PostgreSQL range types can support prefix matching.

### Source excerpt

It's been a long time since I last had some time to spend on the prefix PostgreSQL extension and its prefix_range data type. With PostgreSQL 9.2 out, some users wanted me to update the extension for that release, and hinted me that it was high time that I fix that old bug for which I already had a patch. prefix_range release 1.2.0 I'm sorry it took that long. It's now done, you can have prefix 1.2.0 from https://github.com/dimitri/prefix or if you want a tagged tarball then you can use this link: https://github.com/dimitri/prefix/tarball/v1.2.0.

## Strings in Computer Science

DevFeed: [Strings in Computer Science](<https://devfeed.tech/articles/strings-in-computer-science-40745.md>)

Original publisher: [Read original article](<https://radek.io/posts/strings-in-computer-science/>)

Published: 2011-09-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [Radek Pazdera](<https://devfeed.tech/sources/radek-pazdera.md>)

Topics: [Computer science](<https://devfeed.tech/topics/computer-science.md>), [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [iteration](<https://devfeed.tech/topics/iteration.md>)

Tags: [computer-science](<https://devfeed.tech/tags/computer-science.md>), [data-type](<https://devfeed.tech/tags/data-type.md>), [iteration](<https://devfeed.tech/tags/iteration.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

This tutorial explains strings as finite ordered sequences of characters over an alphabet. It introduces the empty string and defines concatenation, prefixes, suffixes, substrings, and reversal, while distinguishing theoretical strings from programming string literals.

### Source excerpt

The concept of a string in Computer Science and what can you do with it.

## Reformatting Input Columns with pgloader

DevFeed: [Reformatting Input Columns with pgloader](<https://devfeed.tech/articles/pgloader-reformating-34444.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2011/08/pgloader-reformating/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2011-08-05T09:30:00Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [data type](<https://devfeed.tech/topics/data-type.md>), [Python](<https://devfeed.tech/topics/python.md>), [parallel](<https://devfeed.tech/topics/parallel.md>), [Scripting](<https://devfeed.tech/topics/scripting.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [parallel](<https://devfeed.tech/tags/parallel.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [python](<https://devfeed.tech/tags/python.md>), [scripting](<https://devfeed.tech/tags/scripting.md>), [transformation](<https://devfeed.tech/tags/transformation.md>)

### AI overview

This tutorial explains how pgloader reformats input columns before PostgreSQL receives them. It describes configuring reformat modules and functions, and implementing the transformation in Python, including an example that converts certain MySQL timestamp representations into a PostgreSQL-readable form.

### Source excerpt

Back to our series about pgloader. The previous articles detailed How To Use PgLoader then How to Setup pgloader, then what to expect from a parallel pgloader setup. This article will detail how to reformat input columns so that what PostgreSQL sees is not what's in the data file, but the result of a transformation from this data into something acceptable as an input for the target data type.