All systems

Progress 4GL / OpenEdge

Progress 4GL / OpenEdge
Supported

Prepare

  1. Upload Progress data files
Guide

Progress OpenEdge (formerly Progress 4GL) is an application development platform and database management system widely used for mission-critical business applications.

What You Can Upload

  • .db database files
  • .d data files / data extents
  • .st structure files
  • ZIP archive with complete database files

What You Get Out

DataMeans extracts your data into multiple modern formats:

OutputDescription
csv/{TableName}.csvOne CSV file per table with all row data
xlsx/{TableName}.xlsxExcel workbook per table
xls/{TableName}.xlsLegacy Excel format per table
json/{TableName}.jsonJSON array of records per table
json/{TableName}.jsonlNewline-delimited JSON (streaming-friendly)
postgres.sqlPostgreSQL CREATE TABLE + INSERT statements
schema/schema-graph.jsonRelationship graph for visualization
schema/er-model.jsonER model for diagram tools
report.jsonStructured extraction report
report.mdHuman-readable extraction summary

How to Export / Obtain Files

  1. Stop the Progress database or create a backup
  2. Locate the .db and associated data extent files
  3. Include .st structure file if available
  4. Create a ZIP with all database files
  5. Upload the ZIP to DataMeans

Alternative: Use proutil to dump data to .d files:

proutil dbname -C dump tablename tablename.d

Supported Features

  • Full schema extraction (tables, indexes, constraints)
  • Progress data type conversion
  • Sequence mapping
  • Relationship preservation
  • Multiple data extents

Known Limitations

  • Triggers and stored procedures documented but not converted
  • Application-level logic requires manual migration
  • Very large databases may need chunked exports

Troubleshooting

IssueSolution
Database lockedStop database or use backup copy
Missing extentsInclude all .d1, .d2, etc. files
Schema incompleteInclude .st structure file

Last updated: January 2026

Technical reference

Overview

Progress 4GL (now OpenEdge ABL) is a fourth-generation programming language and database platform developed by Progress Software Corporation. It combines a relational database with an English-like programming language for rapid business application development. The database uses a proprietary format optimized for transactional processing and complex business logic.

History and Background

  • 1981: Progress Software founded as Data Language Corporation (DLC) by MIT graduates including Joseph Alsop, Clyde Kessel, and Chip Ziering.
  • 1984: First commercial version of Progress ships for Unix.
  • 1987: Company renamed Progress Software, after its flagship product.
  • 1993: Progress Version 7 adds GUI development for Windows and Motif.
  • 1995: Progress Version 8 introduces component-based visual development.
  • 1998: Progress Version 9 introduces Type I storage areas.
  • 2003: OpenEdge 10 released, the first OpenEdge-branded version, introducing Type II storage areas.
  • 2005: OpenEdge 10.1 adds object-oriented language extensions.
  • 2006: Progress 4GL renamed OpenEdge ABL (Advanced Business Language).
  • 2009: OpenEdge 10.2 released; release 10.2B adds Transparent Data Encryption for data at rest.
  • 2011: OpenEdge 11 introduces multi-tenant database tables.
  • 2014: OpenEdge 11.5 introduces the Pacific Application Server for OpenEdge (PASOE).
  • 2017: OpenEdge 11.7, a long-term support release, introduces Change Data Capture.
  • 2019: OpenEdge 12 adds a multi-threaded database server.
  • 2022: OpenEdge 12.5 adds an ABL API for Apache Kafka messaging.
  • 2024: OpenEdge 12.8 adds Dynamic Data Masking and OpenTelemetry-based application observability.
  • 2026: OpenEdge 13.0 released, resolving the year-2038 problem by widening on-disk time values from 32 to 64 bits.

File Format Specifications

Database Files:

  • .db: Database control area, a binary table of contents listing every area and extent
  • .d1, .d2, etc.: Data extents holding table data, indexes, and LOBs
  • .b1, .b2, etc.: Before-image extents used to undo incomplete transactions
  • .a1, .a2, etc.: After-image extents for roll-forward recovery
  • .lg: Text log file recording significant database events
  • .lk: Lock file created at session startup, recording whether the database is open in single-user or multi-user mode
  • .st: Structure description file, a text file defining the database's areas and extents
  • .tn: Transaction log extents (fixed-length only) listing committed two-phase commit transactions

Storage Architecture:

  • Block-based storage with configurable block sizes (1KB, 2KB, 4KB, or 8KB)
  • B-tree indexes for fast lookups
  • Record-level locking for concurrency
  • Default block size of 4KB on Windows and Linux, 8KB on UNIX
  • Databases divided into storage areas composed of one or more extents
  • Up to 32,000 storage areas per database, of which 31,994 can hold application data
  • Up to 1,024 extents per area and 1TB per extent; Type II areas can reach about 1PB with large files enabled
  • Records per block configurable in powers of two from 1 to 256, defaulting to 64 for 8KB blocks and 32 for other block sizes

File Structure:

  • Schema stored within the database's schema area
  • Compiled ABL code in .r files (r-code)
  • Data dictionary for metadata management
  • Audit trails and security settings
  • Replication and high-availability configurations
  • Limits of 32,767 table definitions and 32,767 indexes per database
  • Up to 1,000 fields per table through ABL, or 500 through the SQL engine
  • Index entries of at most 16 fields each

Data Types and Structures

TypeSizeDescription
CHARACTERVariableText strings up to 32KB
LONGCHARVariableCharacter data exceeding the 32KB CHARACTER limit
INTEGER1-4 bytes32-bit signed integers
INT641-8 bytes64-bit signed integers (added in OpenEdge 10.1B)
DECIMALVariableFixed-point decimals, up to 50 digits with up to 10 decimal places
DATE1-4 bytesStored as an integer count of days
DATETIMEDate + 4 bytesDate and time in milliseconds from midnight
DATETIME-TZDate + 8 bytesDate/time with time zone offset from UTC in minutes
LOGICAL1-2 bytesBoolean (yes/no)
BLOBUp to 1GBBinary large objects
CLOBUp to 1GBCharacter large objects
RAWVariableRaw binary data
RECID4 bytesLegacy record pointer; can be stored in database fields
ROWIDVariablePortable record pointer; cannot be stored in database fields

Database Objects:

  • Tables: Primary data containers
  • Indexes: B-tree structures for performance
  • Sequences: Auto-incrementing number generators (32-bit and 64-bit)
  • Triggers: ABL schema triggers and Java-based SQL triggers
  • Stored Procedures: Java routines executed by the SQL engine
  • Views: Virtual tables defined through the SQL engine

Version Differences

VersionYearKey FeaturesFile Format
Progress V71993GUI for Windows and MotifPre-storage-area format
Progress V81995Visual development; AppServer (8.2)Single- or multi-volume structure
Progress V91998Dynamic queries, Java Open ClientType I storage areas (CONV89 upgrade)
OpenEdge 102003Web services, ProDataSetsType II storage areas (CONV910 upgrade)
OpenEdge 10.12005Object-oriented ABLINT64 data type added in 10.1B
OpenEdge 10.22009GUI for .NET (10.2A); Transparent Data Encryption (10.2B)Optional encrypted on-disk storage (TDE, 10.2B)
OpenEdge 112011Multi-tenant tablesPer-tenant partitions; CONV1011 upgrade
OpenEdge 11.72017Change Data CaptureNo format change within Release 11
OpenEdge 122019Multi-threaded database serverConversion from Release 11 required
OpenEdge 12.82024Dynamic Data Masking, OpenTelemetry supportNo conversion within Release 12
OpenEdge 13.02026FIPS 140-3 support; multi-threaded backup by default64-bit time values in master blocks and extent headers (year-2038 fix)

Compatibility Notes:

  • Databases can be upgraded but not downgraded; reverting requires a restore from backup
  • The database format changes between major releases; PROUTIL conversion utilities (CONV89, CONV910, CONV1011, CONV1112) upgrade databases in place
  • Minor releases share a format; a database created under any Release 11.x can be opened by any other 11.x release without conversion
  • Some data types require minimum versions; INT64 fields require OpenEdge 10.1B or later
  • Single-volume Version 8 databases must be converted to multi-volume structure before upgrading to Version 9
  • Migration utilities are provided for major-version upgrades

Technical References


To learn how to use this format with DataMeans, see the User Guide.