sqltype.go 882 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package sqlite
  2. import "time"
  3. func SQLType(ftype string) string {
  4. switch ftype {
  5. case "map", "set", "list":
  6. return "blob"
  7. case "bucket":
  8. return "blob"
  9. case "relation":
  10. return "blob"
  11. }
  12. return ftype
  13. }
  14. func defaultvalue(ftype string) any {
  15. switch ftype {
  16. case "text":
  17. return ""
  18. case "varchar":
  19. return ""
  20. case "string":
  21. return ""
  22. case "bool":
  23. return false
  24. case "boolean":
  25. return false
  26. case "int":
  27. return 0
  28. case "smallint":
  29. return int16(0)
  30. case "enum":
  31. return int16(0)
  32. case "bigint":
  33. return int64(0)
  34. case "float":
  35. return float32(0)
  36. case "double":
  37. return float64(0)
  38. case "date":
  39. return "1970-01-01"
  40. case "timestamp":
  41. return time.Time{}.UnixNano() / 1e6
  42. case "map":
  43. return []byte{}
  44. case "set":
  45. return []byte{}
  46. case "list":
  47. return []byte{}
  48. case "bucket":
  49. return []byte{}
  50. case "relation":
  51. return []byte{}
  52. }
  53. return nil
  54. }