private List extractColumns()

in doc-architect/doc-architect-core/src/main/java/com/docarchitect/core/scanner/impl/schema/SqlMigrationScanner.java [293:333]


    private List<DataEntity.Field> extractColumns(String tableBody) {
        List<DataEntity.Field> fields = new ArrayList<>();

        // Split by commas (simple approach, may not handle all edge cases)
        String[] lines = tableBody.split("\n");

        for (String line : lines) {
            line = line.trim();

            // Skip constraint definitions
            if (line.toUpperCase().startsWith(KEYWORD_PRIMARY_KEY) ||
                line.toUpperCase().startsWith(KEYWORD_FOREIGN_KEY) ||
                line.toUpperCase().startsWith(KEYWORD_CONSTRAINT) ||
                line.toUpperCase().startsWith(KEYWORD_UNIQUE) ||
                line.toUpperCase().startsWith(KEYWORD_CHECK) ||
                line.toUpperCase().startsWith(KEYWORD_INDEX) ||
                line.isEmpty()) {
                continue;
            }

            // Extract column name and type
            String[] parts = line.split("\\s+", 3);
            if (parts.length >= 2) {
                String columnName = parts[0].replaceAll("[`'\"]", "").replaceAll(",$", "");
                String columnType = parts[1].replaceAll(",$", "");

                // Determine if nullable
                boolean nullable = !line.toUpperCase().contains(KEYWORD_NOT_NULL);

                DataEntity.Field field = new DataEntity.Field(
                    columnName,
                    columnType,
                    nullable,
                    null
                );
                fields.add(field);
            }
        }

        return fields;
    }