Skip to content

Commit

Permalink
Rename fyeld -> field
Browse files Browse the repository at this point in the history
z-silver committed Nov 18, 2023
1 parent c81cb95 commit aa80cd9
Showing 4 changed files with 16 additions and 17 deletions.
14 changes: 7 additions & 7 deletions ast.rkt
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@
(struct+updaters-out table)
fields-size
(struct+updaters-out procedure)
(struct+updaters-out fyeld)
(struct+updaters-out field)
(struct+updaters-out integer32)
(struct+updaters-out type)
stringl)
@@ -65,26 +65,26 @@
(define (deserialize _self byte-stream)
(values (integer32 (integer-bytes->integer (subbytes byte-stream 0 4) #t)) 4))])

(define-serializable fyeld [position type] #:transparent
(define-serializable field [position type] #:transparent
#:methods gen:serializable
[(define/generic super-serialize serialize)
(define (serialize self #:size [_size #f])
(let* [(position (fyeld-position self))
(let* [(position (field-position self))
(position-bytes (integer->integer-bytes position 1 #t))
(type (fyeld-type self))
(type (field-type self))
(type-bytes (super-serialize type #:size (type-byte-size type)))]
(bytes-append position-bytes type-bytes)))
(define/generic super-deserialize deserialize)
(define (deserialize self byte-stream)
(let* [(position-value (integer-bytes->integer (make-bytes 1 (bytes-ref byte-stream 0)) #t))
(type-bytes (subbytes byte-stream 1))]
(define-values [new-type type-consumed] (super-deserialize struct:type type-bytes))
(values (fyeld position-value new-type) (+ 1 type-consumed))))])
(values (field position-value new-type) (+ 1 type-consumed))))])

(define (fields-size fields)
(let* [(fields-values (hash-values fields))]
(foldl (lambda [elem acc]
(let [(size (type-byte-size (fyeld-type elem)))]
(let [(size (type-byte-size (field-type elem)))]
(+ acc size)))
0 fields-values)))

@@ -107,7 +107,7 @@
(bytes-append row-id-bytes (serialize-hash-list fields-list #:entity? #f))))
(define (deserialize self byte-stream)
(let* [(row-id-value (integer-bytes->integer (subbytes byte-stream 0 4) #t))
(fields-value (make-hash (deserialize-hash-list struct:fyeld (subbytes byte-stream 4) '())))]
(fields-value (make-hash (deserialize-hash-list struct:field (subbytes byte-stream 4) '())))]
(values
(table "table" row-id-value fields-value (list)) ;; TODO: constraints
(bytes-length byte-stream))))])
10 changes: 5 additions & 5 deletions io.rkt
Original file line number Diff line number Diff line change
@@ -16,9 +16,9 @@
(define (convert-literal table attribute-name literal)
(let* [(attribute (hash-ref (table-fields table)
attribute-name))
(type (fyeld-type attribute))
(type (field-type attribute))
(type-size (type-byte-size type))
(position (fyeld-position attribute))]
(position (field-position attribute))]
(cons position (serialize literal #:size type-size))))

(define (convert-row table row)
@@ -136,10 +136,10 @@
(entity (hash-ref schema table-name))]
(cond
[(table? entity)
(define (create-pair key-field) (cons (car key-field) (fyeld-type (cdr key-field))))
(define (create-pair key-field) (cons (car key-field) (field-type (cdr key-field))))
(define (sort-by-position key-field1 key-field2)
(let [(p1 (fyeld-position (cdr key-field1)))
(p2 (fyeld-position (cdr key-field2)))]
(let [(p1 (field-position (cdr key-field1)))
(p2 (field-position (cdr key-field2)))]
(< p1 p2)))
(define (reconstruct-literal-data accumulator fields sub-byte-stream)
(let* [(first-elem (first fields))
9 changes: 4 additions & 5 deletions main.rkt
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#lang racket
(require
racket/serialize
racket/class
(rename-in RacketowerDB/ast (procedure? procedura?))
(submod RacketowerDB/io writer)
(submod RacketowerDB/io reader)
@@ -23,10 +22,10 @@
;; http://docs.racket-lang.org/guide/Module_Syntax.html#%28part._main-and-test%29
(module+ main

(define field-name (fyeld 0 (type 'VARCHAR 7)))
(define field-editor (fyeld 1 (type 'VARCHAR 5)))
(define field-year (fyeld 1 (type 'INTEGER 4)))
(define field-age (fyeld 2 (type 'INTEGER 4)))
(define field-name (field 0 (type 'VARCHAR 7)))
(define field-editor (field 1 (type 'VARCHAR 5)))
(define field-year (field 1 (type 'INTEGER 4)))
(define field-age (field 2 (type 'INTEGER 4)))


(define constraint-1
Binary file modified ndf/schemas/schema.ndf
Binary file not shown.

0 comments on commit aa80cd9

Please sign in to comment.